{"version":3,"sources":["../node_modules/react/index.js","../../src/utils/Constants.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../../src/utils/BrowserConstants.ts","../node_modules/prop-types/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/draw2d/dist/draw2d.js","../node_modules/recharts/es6/util/DataUtils.js","../node_modules/primereact/button.js","../../node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/react-is/cjs/react-is.development.js","../../node_modules/object-assign/index.js","../../node_modules/react-is/index.js","../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../node_modules/prop-types/checkPropTypes.js","../../node_modules/prop-types/factoryWithTypeCheckers.js","../../node_modules/prop-types/factoryWithThrowingShims.js","../../node_modules/prop-types/index.js","../../node_modules/style-inject/dist/style-inject.es.js","../../src/components/Box/Box.jsx","../../src/components/Box/BoxTitle.jsx","../../src/components/Box/BoxBody.jsx","../../src/components/Button/Button.jsx","../../src/components/Card/CardHeader.jsx","../../src/components/Card/CardImage.jsx","../../src/components/Card/CardFooter.jsx","../../src/components/Card/Card.jsx","../../src/components/Card/CardBody.jsx","../../src/components/Checkbox/Checkbox.jsx","../../src/components/Content/ContentHeader.jsx","../../src/components/Content/Content.jsx","../../node_modules/react-feather/dist/icons/chevron-down.js","../../src/components/Content/ContentActions.jsx","../../src/components/Content/ContentInfo.jsx","../../src/components/Content/ContentBody.jsx","../../src/components/Content/ContentFooter.jsx","../../node_modules/react-feather/dist/icons/info.js","../../node_modules/react-feather/dist/icons/minus.js","../../node_modules/react-feather/dist/icons/plus.js","../../node_modules/react-feather/dist/icons/x-square.js","../../node_modules/react-feather/dist/icons/x.js","../../src/components/Input/InputNumeric.jsx","../../src/components/Input/InputPassword.jsx","../../src/components/Input/InputText.jsx","../../src/components/Input/InputTextArea.jsx","../../src/components/Input/Input.jsx","../../src/components/Portal/Portal.jsx","../../src/components/Overlay/Overlay.jsx","../../src/components/Modal/ModalHeader.jsx","../../src/components/Modal/ModalTitle.jsx","../../src/components/Modal/ModalBody.jsx","../../src/components/Modal/ModalFooter.jsx","../../src/components/Modal/Modal.jsx","../../src/components/Panel/PanelHeader.jsx","../../src/components/Panel/Panel.jsx","../../src/components/Panel/PanelBody.jsx","../../src/components/Panel/PanelFooter.jsx","../../src/components/Panel/PanelGroup.jsx","../../src/components/Question/QuestionTitle.jsx","../../src/components/Question/QuestionImage.jsx","../../src/components/Question/Question.jsx","../../src/components/Question/QuestionBody.jsx","../../src/components/Question/QuestionInfo.jsx","../../src/components/Radio/Radio.jsx","../../src/components/Select/Select.jsx","../../src/components/SelectGroup/SelectGroup.jsx","../../src/components/SelectGroup/SelectGroupItemTitle.jsx","../../src/components/SelectGroup/SelectGroupItem.jsx","../../src/components/SelectGroup/SelectGroupItemDescription.jsx","../../src/components/SelectGroup/SelectGroupItemImage.jsx","../../src/components/Steps/Steps.jsx","../../src/components/Steps/Step.jsx","../../src/components/Subheader/Subheader.jsx","../../src/components/Table/Table.jsx","../../src/error/ClientAuthError.ts","../node_modules/primereact/dropdown.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/primereact/dialog.js","../../src/utils/StringUtils.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/primereact/components/button/Button.js","../node_modules/prismic-reactjs/dist/prismic-reactjs.js","../../src/event/EventType.ts","../node_modules/primereact/column.js","../node_modules/lodash/isNil.js","../node_modules/primereact/toast.js","../node_modules/recharts-scale/es6/util/utils.js","../node_modules/recharts-scale/es6/util/arithmetic.js","../node_modules/recharts-scale/es6/getNiceTickValues.js","../node_modules/d3-shape/src/offset/none.js","../node_modules/d3-shape/src/order/none.js","../node_modules/d3-shape/src/stack.js","../node_modules/recharts/es6/util/ChartUtils.js","../node_modules/d3-shape/src/offset/expand.js","../node_modules/d3-shape/src/offset/silhouette.js","../node_modules/d3-shape/src/offset/wiggle.js","../node_modules/recharts/es6/util/types.js","../node_modules/lodash/isFunction.js","../../src/error/AuthError.ts","../node_modules/recharts/node_modules/classnames/index.js","../node_modules/primereact/components/utils/ClassNames.js","../node_modules/primereact/inputtext.js","../node_modules/lodash/isArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/recharts/es6/util/ReactUtils.js","../node_modules/d3-scale/src/init.js","../node_modules/primereact/card.js","../node_modules/decimal.js-light/decimal.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/d3-shape/src/constant.js","../node_modules/d3-scale/src/continuous.js","../node_modules/d3-scale/src/constant.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/primereact/fileupload.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/react-dom/index.js","../node_modules/primereact/datatable.js","../../modules/createNamedContext.js","../../modules/HistoryContext.js","../../modules/RouterContext.js","../../modules/Router.js","../../modules/MemoryRouter.js","../../modules/Lifecycle.js","../../modules/generatePath.js","../../modules/Redirect.js","../../modules/matchPath.js","../../modules/Route.js","../../modules/StaticRouter.js","../../modules/Switch.js","../../modules/withRouter.js","../../modules/hooks.js","../node_modules/primereact/toolbar.js","../node_modules/recharts/es6/util/PolarUtils.js","../node_modules/recharts/es6/container/Layer.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../../src/error/BrowserConfigurationAuthError.ts","../node_modules/primereact/components/utils/DomHandler.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/primereact/components/ripple/Ripple.js","../node_modules/primereact/components/utils/ObjectUtils.js","../node_modules/lodash/get.js","../node_modules/react-ga/dist/esm/utils/console/warn.js","../node_modules/react-ga/dist/esm/components/OutboundLink.js","../node_modules/react-ga/dist/esm/utils/redactEmail.js","../node_modules/react-ga/dist/esm/utils/mightBeEmail.js","../node_modules/react-ga/dist/esm/utils/trim.js","../node_modules/react-ga/dist/esm/utils/toTitleCase.js","../node_modules/react-ga/dist/esm/utils/loadGA.js","../node_modules/react-ga/dist/esm/utils/console/log.js","../node_modules/react-ga/dist/esm/utils/testModeAPI.js","../node_modules/react-ga/dist/esm/core.js","../node_modules/react-ga/dist/esm/utils/format.js","../node_modules/react-ga/dist/esm/utils/removeLeadingSlash.js","../node_modules/react-ga/dist/esm/index.js","../node_modules/lodash/isObject.js","../node_modules/d3-scale/src/linear.js","../../build/platforms.js","../../build/util.js","../../build/global.js","../../build/runtime.js","../../build/web-plugin.js","../node_modules/primereact/components/column/Column.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/superPropBase.js","../../src/account/ClientInfo.ts","../node_modules/recharts/es6/util/Events.js","../node_modules/recharts/es6/util/IfOverflowMatches.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../node_modules/axios/lib/utils.js","../node_modules/primereact/components/datatable/DataTable.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/webpack/buildin/global.js","../node_modules/primereact/components/tooltip/Tooltip.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/primereact/checkbox.js","../node_modules/recharts/es6/util/DOMUtils.js","../../src/authority/AuthorityType.ts","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/primereact/radiobutton.js","../node_modules/recharts/es6/component/Label.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/lodash/_root.js","../node_modules/recharts/es6/util/Global.js","../node_modules/d3-format/src/exponent.js","../node_modules/recharts/es6/util/LogUtils.js","../node_modules/recharts/es6/util/CartesianUtils.js","../node_modules/primereact/multiselect.js","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.js","../node_modules/jspdf/dist/jspdf.es.min.js","../node_modules/d3-format/src/formatDecimal.js","../node_modules/recharts/es6/util/ShallowEqual.js","../../src/error/InteractionRequiredAuthError.ts","../node_modules/xlsx/xlsx.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/_baseIteratee.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/react-transition-group/esm/CSSTransition.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/react-transition-group/esm/utils/ChildMapping.js","../node_modules/react-transition-group/esm/TransitionGroup.js","../node_modules/react-transition-group/esm/ReplaceTransition.js","../node_modules/react-transition-group/esm/SwitchTransition.js","../node_modules/@monaco-editor/loader/lib/es/_virtual/_rollupPluginBabelHelpers.js","../node_modules/state-local/lib/es/state-local.js","../node_modules/@monaco-editor/loader/lib/es/config/index.js","../node_modules/@monaco-editor/loader/lib/es/utils/isObject.js","../node_modules/@monaco-editor/loader/lib/es/validators/index.js","../node_modules/@monaco-editor/loader/lib/es/utils/curry.js","../node_modules/@monaco-editor/loader/lib/es/utils/compose.js","../node_modules/@monaco-editor/loader/lib/es/utils/deepMerge.js","../node_modules/@monaco-editor/loader/lib/es/utils/makeCancelable.js","../node_modules/@monaco-editor/loader/lib/es/loader/index.js","../node_modules/@monaco-editor/react/lib/es/_virtual/_rollupPluginBabelHelpers.js","../node_modules/@monaco-editor/react/lib/es/Loading/Loading.js","../node_modules/@monaco-editor/react/lib/es/MonacoContainer/styles.js","../node_modules/@monaco-editor/react/lib/es/MonacoContainer/MonacoContainer.js","../node_modules/@monaco-editor/react/lib/es/MonacoContainer/index.js","../node_modules/@monaco-editor/react/lib/es/hooks/useMount/index.js","../node_modules/@monaco-editor/react/lib/es/hooks/useUpdate/index.js","../node_modules/@monaco-editor/react/lib/es/utils/index.js","../node_modules/@monaco-editor/react/lib/es/DiffEditor/DiffEditor.js","../node_modules/@monaco-editor/react/lib/es/hooks/usePrevious/index.js","../node_modules/@monaco-editor/react/lib/es/Editor/Editor.js","../node_modules/@monaco-editor/react/lib/es/Editor/index.js","../node_modules/lodash/isString.js","../node_modules/react-smooth/es6/setRafTimeout.js","../node_modules/react-smooth/es6/AnimateManager.js","../node_modules/react-smooth/es6/util.js","../node_modules/react-smooth/es6/easing.js","../node_modules/react-smooth/es6/configUpdate.js","../node_modules/react-smooth/es6/Animate.js","../node_modules/react-smooth/es6/AnimateGroupChild.js","../node_modules/react-smooth/es6/AnimateGroup.js","../node_modules/react-smooth/es6/index.js","../node_modules/i18next-http-backend/esm/utils.js","../../src/cache/entities/AccountEntity.ts","../node_modules/primereact/components/utils/UniqueComponentId.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/upperFirst.js","../node_modules/d3-scale/src/number.js","../node_modules/recharts/es6/component/Text.js","../node_modules/primereact/tabview.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/identity.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/lodash/sortBy.js","../node_modules/d3-array/src/ascending.js","../node_modules/d3-shape/src/array.js","../node_modules/recharts/es6/shape/Dot.js","../node_modules/lodash/range.js","../node_modules/lodash/isNaN.js","../node_modules/lodash/uniqBy.js","../node_modules/recharts/es6/cartesian/CartesianAxis.js","../node_modules/primereact/fieldset.js","../node_modules/primereact/components/utils/ConnectedOverlayScrollHandler.js","../node_modules/primereact/components/inputtext/InputText.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/isArrayLike.js","../node_modules/d3-scale/src/ordinal.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.js","../node_modules/recharts/es6/container/Surface.js","../node_modules/d3-array/src/number.js","../node_modules/d3-interpolate/src/number.js","../node_modules/recharts/es6/shape/Rectangle.js","../node_modules/d3-shape/src/noop.js","../node_modules/d3-shape/src/curve/basis.js","../node_modules/d3-shape/src/curve/basisClosed.js","../node_modules/d3-shape/src/curve/basisOpen.js","../node_modules/d3-shape/src/curve/linearClosed.js","../node_modules/d3-shape/src/curve/linear.js","../node_modules/d3-shape/src/curve/monotone.js","../node_modules/d3-shape/src/curve/natural.js","../node_modules/d3-shape/src/curve/step.js","../node_modules/d3-shape/src/point.js","../node_modules/d3-shape/src/line.js","../node_modules/d3-shape/src/area.js","../node_modules/recharts/es6/shape/Curve.js","../node_modules/d3-shape/src/math.js","../node_modules/d3-shape/src/symbol/circle.js","../node_modules/d3-shape/src/symbol/cross.js","../node_modules/d3-shape/src/symbol/diamond.js","../node_modules/d3-shape/src/symbol/square.js","../node_modules/d3-shape/src/symbol/star.js","../node_modules/d3-shape/src/symbol/triangle.js","../node_modules/d3-shape/src/symbol/wye.js","../node_modules/recharts/es6/shape/Symbols.js","../node_modules/d3-shape/src/symbol.js","../node_modules/recharts/es6/component/DefaultLegendContent.js","../node_modules/recharts/es6/component/Legend.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/i18next/dist/esm/i18next.js","../node_modules/fflate/esm/browser.js","../node_modules/lodash/max.js","../node_modules/lodash/min.js","../node_modules/react-i18next/dist/es/unescape.js","../node_modules/react-i18next/dist/es/context.js","../node_modules/recharts/es6/component/DefaultTooltipContent.js","../node_modules/recharts/es6/component/Tooltip.js","../node_modules/lodash/keys.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_toKey.js","../node_modules/lodash/_isIterateeCall.js","../node_modules/react-draggable/build/cjs/utils/shims.js","../node_modules/react-is/index.js","../node_modules/d3-scale/src/tickFormat.js","../node_modules/d3-format/src/precisionPrefix.js","../node_modules/d3-format/src/precisionRound.js","../node_modules/d3-format/src/precisionFixed.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/slicedToArray.js","../../node_modules/tslib/tslib.es6.js","../../node_modules/src/Util.ts","../../src/css/layout/bounds.ts","../../node_modules/css-line-break/node_modules/src/Util.ts","../../node_modules/css-line-break/node_modules/utrie/node_modules/src/index.ts","../../node_modules/css-line-break/node_modules/src/Trie.ts","../../node_modules/src/linebreak-trie.ts","../../node_modules/src/LineBreak.ts","../../src/css/syntax/tokenizer.ts","../../src/css/syntax/parser.ts","../../src/css/types/length.ts","../../src/css/types/length-percentage.ts","../../src/css/types/angle.ts","../../src/css/types/color.ts","../../src/css/property-descriptors/background-size.ts","../../src/css/property-descriptors/background-clip.ts","../../src/css/property-descriptors/background-color.ts","../../src/css/types/functions/gradient.ts","../../src/css/types/functions/-prefix-linear-gradient.ts","../../src/css/types/functions/-prefix-radial-gradient.ts","../../src/css/types/functions/radial-gradient.ts","../../src/css/types/image.ts","../../src/css/types/functions/linear-gradient.ts","../../src/css/types/functions/-webkit-gradient.ts","../../src/css/property-descriptors/background-image.ts","../../src/css/property-descriptors/background-origin.ts","../../src/css/property-descriptors/background-position.ts","../../src/css/property-descriptors/background-repeat.ts","../../src/css/property-descriptors/line-break.ts","../../src/css/property-descriptors/border-color.ts","../../src/css/property-descriptors/border-radius.ts","../../src/css/property-descriptors/border-style.ts","../../src/css/property-descriptors/border-width.ts","../../src/css/property-descriptors/color.ts","../../src/css/property-descriptors/direction.ts","../../src/css/property-descriptors/display.ts","../../src/css/property-descriptors/float.ts","../../src/css/property-descriptors/letter-spacing.ts","../../src/css/property-descriptors/word-break.ts","../../src/css/property-descriptors/line-height.ts","../../src/css/property-descriptors/list-style-image.ts","../../src/css/property-descriptors/list-style-position.ts","../../src/css/property-descriptors/list-style-type.ts","../../src/css/property-descriptors/margin.ts","../../src/css/property-descriptors/overflow.ts","../../src/css/property-descriptors/overflow-wrap.ts","../../src/css/property-descriptors/padding.ts","../../src/css/property-descriptors/text-align.ts","../../src/css/property-descriptors/position.ts","../../src/css/property-descriptors/text-shadow.ts","../../src/css/property-descriptors/text-transform.ts","../../src/css/property-descriptors/transform.ts","../../src/css/property-descriptors/transform-origin.ts","../../src/css/property-descriptors/visibility.ts","../../node_modules/text-segmentation/node_modules/src/Util.ts","../../src/css/property-descriptors/z-index.ts","../../src/css/types/time.ts","../../src/css/property-descriptors/opacity.ts","../../src/css/property-descriptors/text-decoration-color.ts","../../src/css/property-descriptors/text-decoration-line.ts","../../src/css/property-descriptors/font-family.ts","../../src/css/property-descriptors/font-size.ts","../../src/css/property-descriptors/font-weight.ts","../../src/css/property-descriptors/font-variant.ts","../../src/css/property-descriptors/font-style.ts","../../src/core/bitwise.ts","../../src/css/property-descriptors/content.ts","../../src/css/property-descriptors/counter-increment.ts","../../src/css/property-descriptors/counter-reset.ts","../../src/css/property-descriptors/duration.ts","../../src/css/property-descriptors/quotes.ts","../../src/css/property-descriptors/box-shadow.ts","../../src/css/property-descriptors/paint-order.ts","../../src/css/property-descriptors/webkit-text-stroke-color.ts","../../src/css/property-descriptors/webkit-text-stroke-width.ts","../../src/css/index.ts","../../src/core/debugger.ts","../../src/dom/element-container.ts","../../node_modules/text-segmentation/node_modules/utrie/node_modules/src/index.ts","../../node_modules/text-segmentation/node_modules/src/Trie.ts","../../node_modules/src/GraphemeBreak.ts","../../src/dom/document-cloner.ts","../../node_modules/src/grapheme-break-trie.ts","../../src/core/features.ts","../../src/css/layout/text.ts","../../src/dom/text-container.ts","../../src/dom/replaced-elements/image-element-container.ts","../../src/dom/replaced-elements/canvas-element-container.ts","../../src/dom/replaced-elements/svg-element-container.ts","../../src/dom/elements/li-element-container.ts","../../src/dom/elements/ol-element-container.ts","../../src/dom/replaced-elements/input-element-container.ts","../../src/dom/elements/select-element-container.ts","../../src/dom/elements/textarea-element-container.ts","../../src/dom/replaced-elements/iframe-element-container.ts","../../src/dom/node-parser.ts","../../src/css/types/functions/counter.ts","../../src/render/bound-curves.ts","../../src/core/cache-storage.ts","../../src/render/vector.ts","../../src/render/bezier-curve.ts","../../src/render/effects.ts","../../src/render/path.ts","../../src/render/stacking-context.ts","../../src/render/border.ts","../../src/render/box-sizing.ts","../../src/render/background.ts","../../src/render/font-metrics.ts","../../src/core/util.ts","../../src/render/renderer.ts","../../src/render/canvas/canvas-renderer.ts","../../src/render/canvas/foreignobject-renderer.ts","../../src/core/logger.ts","../../src/core/context.ts","webpack:///../../src/index.ts?0e3e","../node_modules/lodash/every.js","../node_modules/lodash/isEqual.js","../node_modules/react-smooth/node_modules/react-transition-group/index.js","../../src/logger/Logger.ts","../node_modules/primereact/messages.js","../node_modules/primereact/inputnumber.js","../node_modules/primereact/inputtextarea.js","../node_modules/d3-scale/src/identity.js","../node_modules/d3-scale/src/nice.js","../node_modules/d3-scale/src/log.js","../node_modules/d3-scale/src/symlog.js","../node_modules/d3-scale/src/pow.js","../node_modules/d3-scale/src/radial.js","../node_modules/d3-array/src/max.js","../node_modules/d3-array/src/min.js","../node_modules/d3-array/src/quickselect.js","../node_modules/d3-array/src/quantile.js","../node_modules/d3-scale/src/quantile.js","../node_modules/d3-scale/src/quantize.js","../node_modules/d3-scale/src/threshold.js","../node_modules/d3-time/src/interval.js","../node_modules/d3-time/src/millisecond.js","../node_modules/d3-time/src/second.js","../node_modules/d3-time/src/duration.js","../node_modules/d3-time/src/minute.js","../node_modules/d3-time/src/hour.js","../node_modules/d3-time/src/day.js","../node_modules/d3-time/src/week.js","../node_modules/d3-time/src/month.js","../node_modules/d3-time/src/year.js","../node_modules/d3-time/src/utcMinute.js","../node_modules/d3-time/src/utcHour.js","../node_modules/d3-time/src/utcDay.js","../node_modules/d3-time/src/utcWeek.js","../node_modules/d3-time/src/utcMonth.js","../node_modules/d3-time/src/utcYear.js","../node_modules/d3-time/src/ticks.js","../node_modules/d3-time-format/src/locale.js","../node_modules/d3-time-format/src/defaultLocale.js","../node_modules/d3-scale/src/time.js","../node_modules/d3-scale/src/utcTime.js","../node_modules/d3-scale/src/sequential.js","../node_modules/d3-scale/src/sequentialQuantile.js","../node_modules/d3-interpolate/src/piecewise.js","../node_modules/d3-scale/src/diverging.js","../node_modules/i18next-http-backend/esm/getFetch.cjs","../node_modules/reduce-css-calc/dist/index.js","../node_modules/primereact/autocomplete.js","../node_modules/react-detect-offline/dist/index.js","../node_modules/recharts/es6/util/CssPrefixUtils.js","../node_modules/recharts/es6/cartesian/Brush.js","../node_modules/recharts/es6/cartesian/ReferenceArea.js","../node_modules/recharts/es6/util/DetectReferenceElementsDomain.js","../node_modules/process/browser.js","../node_modules/object-assign/index.js","../node_modules/primereact/components/utils/FilterUtils.js","../node_modules/buffer/index.js","../node_modules/lodash/_baseEach.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/isLength.js","../node_modules/lodash/eq.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/_arrayMap.js","../node_modules/react-draggable/build/cjs/utils/domFns.js","../node_modules/d3-array/src/range.js","../node_modules/d3-scale/src/band.js","../node_modules/lodash/debounce.js","../node_modules/lodash/isNumber.js","../node_modules/jquery/dist/jquery.js","../node_modules/path-to-regexp/index.js","../node_modules/d3-format/src/formatSpecifier.js","../node_modules/d3-array/src/bisector.js","../node_modules/primereact/components/dropdown/Dropdown.js","../node_modules/primereact/components/datatable/RowCheckbox.js","../node_modules/primereact/components/messages/Messages.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/defaults.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/xlsx/dist/cpexcel.js","../node_modules/timers-browserify/main.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/isBuffer.js","../node_modules/webpack/buildin/module.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/toString.js","../node_modules/lodash/_baseFindIndex.js","../node_modules/lodash/toFinite.js","../node_modules/lodash/toNumber.js","../node_modules/lodash/_baseFlatten.js","../node_modules/lodash/_baseMap.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_hasUnicode.js","../node_modules/lodash/_baseExtremum.js","../node_modules/reduce-css-calc/dist/lib/reducer.js","../node_modules/react-smooth/node_modules/react-transition-group/Transition.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-smooth/node_modules/react-transition-group/utils/PropTypes.js","../node_modules/react-smooth/node_modules/react-transition-group/TransitionGroup.js","../node_modules/react-draggable/build/cjs/utils/positionFns.js","../node_modules/react-draggable/build/cjs/utils/log.js","../node_modules/primereact/components/checkbox/Checkbox.js","../../src/web.ts","../node_modules/jquery-ui-bundle/jquery-ui.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","../node_modules/i18next-http-backend/esm/index.js","../node_modules/i18next-http-backend/esm/request.js","../node_modules/react-cookie-consent/build/index.js","../../src/FileSaver.js","../node_modules/axios/index.js","../node_modules/react-dom/server.browser.js","../node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/recharts/es6/chart/generateCategoricalChart.js","../node_modules/lodash/find.js","../node_modules/lodash/throttle.js","../node_modules/lodash/isBoolean.js","../node_modules/lodash/flatMap.js","../node_modules/recharts/es6/cartesian/ReferenceLine.js","../node_modules/lodash/some.js","../node_modules/lodash/mapValues.js","../node_modules/recharts/es6/cartesian/ReferenceDot.js","../../src/utils.ts","../../src/comparator.ts","../../src/index.ts","../node_modules/recharts/es6/shape/Cross.js","../node_modules/recharts/es6/shape/Sector.js","../node_modules/eventemitter3/index.js","../node_modules/lodash/last.js","../node_modules/recharts/es6/cartesian/XAxis.js","../node_modules/recharts/es6/cartesian/YAxis.js","../../node_modules/lodash/isObject.js","../../node_modules/lodash/_root.js","../../node_modules/lodash/_freeGlobal.js","../../node_modules/lodash/now.js","../../node_modules/lodash/_trimmedEndIndex.js","../../node_modules/lodash/_baseTrim.js","../../node_modules/lodash/_Symbol.js","../../node_modules/lodash/_getRawTag.js","../../node_modules/lodash/_objectToString.js","../../node_modules/lodash/_baseGetTag.js","../../node_modules/lodash/isObjectLike.js","../../node_modules/lodash/isSymbol.js","../../node_modules/lodash/toNumber.js","../../node_modules/lodash/debounce.js","../../node_modules/lodash/throttle.js","../../src/ResizeDetector.tsx","../../src/useResizeDetector.ts","../node_modules/react-draggable/build/cjs/cjs.js","../node_modules/primereact/tabmenu.js","../node_modules/primereact/menu.js","../node_modules/primereact/tristatecheckbox.js","../node_modules/primereact/message.js","../node_modules/primereact/togglebutton.js","../node_modules/primereact/chips.js","../node_modules/primereact/organizationchart.js","../node_modules/d3-color/src/define.js","../node_modules/d3-color/src/color.js","../node_modules/d3-interpolate/src/basis.js","../node_modules/d3-interpolate/src/constant.js","../node_modules/d3-interpolate/src/color.js","../node_modules/d3-interpolate/src/rgb.js","../node_modules/d3-interpolate/src/basisClosed.js","../node_modules/d3-interpolate/src/numberArray.js","../node_modules/d3-interpolate/src/array.js","../node_modules/d3-interpolate/src/date.js","../node_modules/d3-interpolate/src/object.js","../node_modules/d3-interpolate/src/string.js","../node_modules/d3-interpolate/src/value.js","../../src/app/IPublicClientApplication.ts","../../src/event/EventMessage.ts","../../src/MsalContext.ts","../../src/utils/utilities.ts","../../src/packageMetadata.ts","../../src/MsalProvider.tsx","../../src/error/ReactAuthError.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/recharts/es6/component/LabelList.js","../node_modules/recharts/es6/cartesian/ErrorBar.js","../node_modules/recharts/es6/cartesian/Line.js","../node_modules/d3-array/src/ticks.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/primereact/components/utils/PrimeReact.js","../node_modules/primereact/components/card/Card.js","../node_modules/primereact/components/paginator/Paginator.js","../node_modules/primereact/components/paginator/FirstPageLink.js","../node_modules/primereact/components/paginator/NextPageLink.js","../node_modules/primereact/components/paginator/PrevPageLink.js","../node_modules/primereact/components/paginator/LastPageLink.js","../node_modules/primereact/components/paginator/PageLinks.js","../node_modules/primereact/components/paginator/RowsPerPageDropdown.js","../node_modules/primereact/components/dropdown/DropdownPanel.js","../node_modules/primereact/components/dropdown/DropdownItem.js","../node_modules/primereact/components/paginator/CurrentPageReport.js","../node_modules/primereact/components/datatable/ScrollableView.js","../node_modules/primereact/components/datatable/TableBody.js","../node_modules/primereact/components/datatable/BodyRow.js","../node_modules/primereact/components/datatable/BodyCell.js","../node_modules/primereact/components/datatable/RowRadioButton.js","../node_modules/primereact/components/datatable/RowTogglerButton.js","../node_modules/primereact/components/datatable/TableFooter.js","../node_modules/primereact/components/datatable/FooterCell.js","../node_modules/primereact/components/datatable/TableHeader.js","../node_modules/primereact/components/datatable/HeaderCell.js","../node_modules/primereact/components/keyfilter/KeyFilter.js","../node_modules/primereact/components/datatable/TableLoadingBody.js","../node_modules/primereact/components/dialog/Dialog.js","../node_modules/primereact/components/fileupload/FileUpload.js","../node_modules/primereact/components/messages/UIMessage.js","../node_modules/primereact/components/progressbar/ProgressBar.js","../node_modules/primereact/components/toast/Toast.js","../node_modules/primereact/components/toast/ToastMessage.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/path-to-regexp/node_modules/isarray/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/isarray/index.js","../node_modules/xlsx/jszip.js","../node_modules/setimmediate/setImmediate.js","../node_modules/lodash/_arrayEvery.js","../node_modules/lodash/_baseEvery.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_createBaseEach.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/memoize.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/property.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_createFind.js","../node_modules/lodash/findIndex.js","../node_modules/lodash/toInteger.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/now.js","../node_modules/lodash/_isFlattenable.js","../node_modules/lodash/_baseOrderBy.js","../node_modules/lodash/_baseSortBy.js","../node_modules/lodash/_compareMultiple.js","../node_modules/lodash/_compareAscending.js","../node_modules/lodash/_baseRest.js","../node_modules/lodash/_overRest.js","../node_modules/lodash/_apply.js","../node_modules/lodash/_setToString.js","../node_modules/lodash/_baseSetToString.js","../node_modules/lodash/constant.js","../node_modules/lodash/_shortOut.js","../node_modules/lodash/_createRange.js","../node_modules/lodash/_baseRange.js","../node_modules/lodash/_createCaseFirst.js","../node_modules/lodash/_castSlice.js","../node_modules/lodash/_baseSlice.js","../node_modules/lodash/_stringToArray.js","../node_modules/lodash/_asciiToArray.js","../node_modules/lodash/_unicodeToArray.js","../node_modules/lodash/_baseGt.js","../node_modules/lodash/_baseLt.js","../node_modules/lodash/map.js","../node_modules/lodash/_baseUniq.js","../node_modules/lodash/_arrayIncludes.js","../node_modules/lodash/_baseIndexOf.js","../node_modules/lodash/_baseIsNaN.js","../node_modules/lodash/_strictIndexOf.js","../node_modules/lodash/_arrayIncludesWith.js","../node_modules/lodash/_createSet.js","../node_modules/lodash/noop.js","../node_modules/lodash/_baseSome.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/postcss-value-parser/lib/index.js","../node_modules/postcss-value-parser/lib/parse.js","../node_modules/postcss-value-parser/lib/walk.js","../node_modules/postcss-value-parser/lib/stringify.js","../node_modules/postcss-value-parser/lib/unit.js","../node_modules/reduce-css-calc/dist/parser.js","../node_modules/reduce-css-calc/dist/lib/convert.js","../node_modules/css-unit-converter/index.js","../node_modules/reduce-css-calc/dist/lib/stringifier.js","../node_modules/react-smooth/node_modules/react-transition-group/CSSTransition.js","../node_modules/react-smooth/node_modules/dom-helpers/class/addClass.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/react-smooth/node_modules/dom-helpers/class/hasClass.js","../node_modules/react-smooth/node_modules/dom-helpers/class/removeClass.js","../node_modules/react-smooth/node_modules/react-transition-group/ReplaceTransition.js","../node_modules/react-smooth/node_modules/react-transition-group/utils/ChildMapping.js","../node_modules/react-draggable/build/cjs/Draggable.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/react-draggable/build/cjs/utils/getPrefix.js","../node_modules/react-draggable/build/cjs/DraggableCore.js","../node_modules/primereact/components/multiselect/MultiSelect.js","../node_modules/primereact/components/multiselect/MultiSelectHeader.js","../node_modules/primereact/components/multiselect/MultiSelectItem.js","../node_modules/primereact/components/multiselect/MultiSelectPanel.js","../node_modules/primereact/components/tabmenu/TabMenu.js","../node_modules/primereact/components/toolbar/Toolbar.js","../node_modules/primereact/components/menu/Menu.js","../node_modules/primereact/components/radiobutton/RadioButton.js","../node_modules/primereact/components/tristatecheckbox/TriStateCheckbox.js","../node_modules/primereact/components/inputnumber/InputNumber.js","../node_modules/primereact/components/message/Message.js","../node_modules/primereact/components/togglebutton/ToggleButton.js","../node_modules/primereact/components/autocomplete/AutoComplete.js","../node_modules/primereact/components/autocomplete/AutoCompletePanel.js","../node_modules/primereact/components/chips/Chips.js","../node_modules/primereact/components/fieldset/Fieldset.js","../node_modules/primereact/components/organizationchart/OrganizationChart.js","../node_modules/primereact/components/tabview/TabView.js","../node_modules/primereact/components/inputtextarea/InputTextarea.js","../node_modules/react-feather/dist/icons/x.js","../node_modules/react-feather/dist/icons/upload-cloud.js","../node_modules/react-feather/dist/icons/message-circle.js","../node_modules/recharts/es6/chart/LineChart.js","../node_modules/d3-path/src/path.js","../node_modules/d3-array/src/bisect.js","../node_modules/d3-interpolate/src/round.js","../node_modules/recharts/es6/component/ResponsiveContainer.js","../node_modules/react-feather/dist/icons/chevron-left.js","../node_modules/react-feather/dist/icons/file-text.js","../node_modules/react-feather/dist/icons/send.js","../node_modules/react-feather/dist/icons/fast-forward.js","../node_modules/react-feather/dist/icons/chevron-right.js","../../src/telemetry/performance/PerformanceEvent.ts","../../src/cache/CryptoKeyStore.ts","../../src/error/ServerError.ts","../../src/error/JoseHeaderError.ts","../../src/crypto/JoseHeader.ts","../../src/utils/MathUtils.ts","../../src/crypto/GuidGenerator.ts","../../src/utils/BrowserStringUtils.ts","../../src/encode/Base64Encode.ts","../../src/encode/Base64Decode.ts","../../src/error/BrowserAuthError.ts","../../src/crypto/PkceGenerator.ts","../../src/crypto/ModernBrowserCrypto.ts","../../src/crypto/MsrBrowserCrypto.ts","../../src/crypto/MsBrowserCrypto.ts","../../src/crypto/BrowserCrypto.ts","../../src/cache/DatabaseStorage.ts","../../src/cache/MemoryStorage.ts","../../src/cache/AsyncMemoryStorage.ts","../../src/crypto/CryptoOps.ts","../../src/telemetry/performance/PerformanceClient.ts","../../src/telemetry/performance/StubPerformanceClient.ts","../../src/crypto/ICrypto.ts","../../src/cache/entities/CredentialEntity.ts","../../src/error/ClientConfigurationError.ts","../../src/account/CcsCredential.ts","../../src/request/ScopeSet.ts","../../src/account/AuthToken.ts","../../src/cache/CacheManager.ts","../../src/cache/entities/IdTokenEntity.ts","../../src/utils/TimeUtils.ts","../../src/cache/entities/AccessTokenEntity.ts","../../src/cache/entities/RefreshTokenEntity.ts","../../src/cache/entities/AppMetadataEntity.ts","../../src/cache/entities/ServerTelemetryEntity.ts","../../src/cache/entities/AuthorityMetadataEntity.ts","../../src/cache/entities/ThrottlingEntity.ts","../../src/utils/ProtocolUtils.ts","../../src/authority/ProtocolMode.ts","../../src/authority/AuthorityOptions.ts","../../src/cache/BrowserStorage.ts","../../src/url/UrlString.ts","../../src/utils/BrowserProtocolUtils.ts","../../src/cache/BrowserCacheManager.ts","../../src/config/ClientConfiguration.ts","../../src/network/INetworkModule.ts","../../src/network/FetchClient.ts","../../src/network/XhrClient.ts","../../src/utils/BrowserUtils.ts","../../src/navigation/NavigationClient.ts","../../src/crypto/PopTokenGenerator.ts","../../src/event/EventHandler.ts","../../src/network/ThrottlingUtils.ts","../../src/network/NetworkManager.ts","../../src/request/RequestValidator.ts","../../src/request/RequestParameterBuilder.ts","../../src/client/BaseClient.ts","../../src/cache/entities/CacheRecord.ts","../../src/cache/persistence/TokenCacheContext.ts","../../src/response/ResponseHandler.ts","../../src/client/AuthorizationCodeClient.ts","../../src/authority/OpenIdConfigResponse.ts","../../src/authority/AuthorityMetadata.ts","../../src/authority/RegionDiscovery.ts","../../src/error/NativeAuthError.ts","../../src/authority/Authority.ts","../../src/authority/CloudInstanceDiscoveryResponse.ts","../../src/authority/CloudInstanceDiscoveryErrorResponse.ts","../../src/authority/AuthorityFactory.ts","../../src/telemetry/server/ServerTelemetryManager.ts","../../src/interaction_client/BaseInteractionClient.ts","../../src/interaction_client/StandardInteractionClient.ts","../../src/client/RefreshTokenClient.ts","../../src/client/SilentFlowClient.ts","../../src/interaction_client/SilentCacheClient.ts","../../src/interaction_client/NativeInteractionClient.ts","../../src/broker/nativeBroker/NativeMessageHandler.ts","../../src/interaction_handler/InteractionHandler.ts","../../src/interaction_client/PopupClient.ts","../../src/interaction_handler/RedirectHandler.ts","../../src/interaction_client/RedirectClient.ts","../../src/interaction_handler/SilentHandler.ts","../../src/config/Configuration.ts","../../src/interaction_client/SilentIframeClient.ts","../../src/interaction_client/SilentRefreshClient.ts","../../src/cache/TokenCache.ts","../../src/interaction_client/HybridSpaAuthorizationCodeClient.ts","../../src/interaction_client/SilentAuthCodeClient.ts","../../src/telemetry/BrowserPerformanceMeasurement.ts","../../src/telemetry/BrowserPerformanceClient.ts","../../src/app/PublicClientApplication.ts","../../src/app/ClientApplication.ts","../node_modules/d3-format/src/formatPrefixAuto.js","../node_modules/d3-format/src/defaultLocale.js","../node_modules/d3-format/src/formatRounded.js","../node_modules/d3-format/src/formatTypes.js","../node_modules/d3-format/src/identity.js","../node_modules/d3-format/src/locale.js","../node_modules/d3-format/src/formatGroup.js","../node_modules/d3-format/src/formatNumerals.js","../node_modules/d3-format/src/formatTrim.js","../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-i18next/dist/es/useTranslation.js","../node_modules/react-i18next/dist/es/withTranslation.js"],"names":["module","exports","require","HeaderNames","PersistentCacheKeys","AADAuthorityConstants","AADServerParamKeys","ClaimsRequestKeys","Constants","LIBRARY_NAME","SKU","CACHE_PREFIX","DEFAULT_AUTHORITY","DEFAULT_AUTHORITY_HOST","DEFAULT_COMMON_TENANT","ADFS","DSTS","AAD_INSTANCE_DISCOVERY_ENDPT","RESOURCE_DELIM","NO_ACCOUNT","CLAIMS","CONSUMER_UTID","OPENID_SCOPE","PROFILE_SCOPE","OFFLINE_ACCESS_SCOPE","EMAIL_SCOPE","CODE_RESPONSE_TYPE","CODE_GRANT_TYPE","RT_GRANT_TYPE","FRAGMENT_RESPONSE_MODE","S256_CODE_CHALLENGE_METHOD","URL_FORM_CONTENT_TYPE","AUTHORIZATION_PENDING","NOT_DEFINED","EMPTY_STRING","NOT_APPLICABLE","FORWARD_SLASH","IMDS_ENDPOINT","IMDS_VERSION","IMDS_TIMEOUT","AZURE_REGION_AUTO_DISCOVER_FLAG","REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX","REGIONAL_AUTH_NON_MSI_QUERY_STRING","KNOWN_PUBLIC_CLOUDS","TOKEN_RESPONSE_TYPE","ID_TOKEN_RESPONSE_TYPE","SHR_NONCE_VALIDITY","INVALID_INSTANCE","OIDC_DEFAULT_SCOPES","OIDC_SCOPES","SSOTypes","PromptValue","LOGIN","SELECT_ACCOUNT","CONSENT","NONE","CREATE","NO_SESSION","ResponseMode","GrantType","CacheAccountType","Separators","CredentialType","CacheSchemaType","CacheType","CodeChallengeMethodValues","PLAIN","S256","AuthorityMetadataSource","APP_METADATA","CLIENT_INFO","THE_FAMILY_ID","AUTHORITY_METADATA_CONSTANTS","CACHE_KEY","REFRESH_TIME_SECONDS","AuthenticationScheme","SERVER_TELEM_CONSTANTS","SCHEMA_VERSION","MAX_CUR_HEADER_BYTES","MAX_LAST_HEADER_BYTES","MAX_CACHED_ERRORS","CATEGORY_SEPARATOR","VALUE_SEPARATOR","OVERFLOW_TRUE","OVERFLOW_FALSE","UNKNOWN_ERROR","PasswordGrantConstants","ResponseCodes","RegionDiscoverySources","RegionDiscoveryOutcomes","CacheOutcome","JsonTypes","ThrottlingConstants","DEFAULT_THROTTLE_TIME_SECONDS","DEFAULT_MAX_THROTTLE_TIME_SECONDS","THROTTLING_PREFIX","X_MS_LIB_CAPABILITY_VALUE","Errors","INVALID_GRANT_ERROR","CLIENT_MISMATCH_ERROR","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","protoProps","staticProps","prototype","NativeExtensionMethod","BrowserCacheLocation","HTTP_REQUEST_TYPE","TemporaryCacheKeys","InMemoryCacheKeys","ApiId","InteractionType","InteractionStatus","BrowserConstants","INTERACTION_IN_PROGRESS_VALUE","POPUP_WIDTH","POPUP_HEIGHT","POPUP_NAME_PREFIX","DEFAULT_POLL_INTERVAL_MS","MSAL_SKU","NativeConstants","CHANNEL_ID","PREFERRED_EXTENSION_ID","MATS_TELEMETRY","WrapperSKU","DEFAULT_REQUEST","scopes","KEY_FORMAT_JWK","CacheLookupPolicy","DB_NAME","DB_VERSION","DB_TABLE_NAME","_inherits","subClass","superClass","create","constructor","value","_createSuper","Derived","result","Super","NewTarget","this","Reflect","construct","arguments","apply","_createForOfIteratorHelper","o","Symbol","iterator","Array","isArray","F","s","n","done","e","_e","f","it","err","normalCompletion","didErr","step","next","_e2","factory","window","modules","installedModules","__webpack_require__","moduleId","l","call","m","c","d","name","getter","get","r","toStringTag","t","mode","__esModule","ns","bind","object","property","hasOwnProperty","p","RGBColor","stackblur","canvg","opts","document","getElementById","svg","stop","matchesSelector","Element","matches","node","selector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","jQuery","Zepto","$","is","Sizzle","getMatchesSelector","CanvasRenderingContext2D","drawSvg","dx","dy","dw","dh","cOpts","ignoreMouse","ignoreAnimation","ignoreDimensions","ignoreClear","offsetX","offsetY","scaleWidth","scaleHeight","prop","canvas","FRAMERATE","MAX_VIRTUAL_PIXELS","log","msg","console","init","ctx","uniqueId","UniqueId","Definitions","Styles","StylesSpecificity","Animations","Images","ViewPort","viewPorts","Clear","SetCurrent","width","height","push","RemoveCurrent","pop","Current","ComputeSize","Math","sqrt","pow","ImagesLoaded","loaded","trim","replace","compressSpaces","ajax","url","AJAX","XMLHttpRequest","ActiveXObject","open","send","responseText","parseXml","xml","Windows","Data","Xml","xmlDoc","Dom","XmlDocument","settings","XmlLoadSettings","prohibitDtd","loadXml","DOMParser","parseFromString","async","loadXML","Property","getValue","hasValue","numValue","parseFloat","match","valueOrDefault","def","numValueOrDefault","addOpacity","opacityProp","newValue","color","ok","g","b","getDefinition","isUrlDefinition","indexOf","getFillStyleDefinition","createGradient","createPattern","getHrefAttribute","pt","attribute","getDPI","viewPort","getEM","em","fontSize","Font","Parse","font","toPixels","getUnits","processPercent","toMilliseconds","toRadians","PI","textBaselineMapping","toTextBaseline","Variants","Weights","CreateFont","fontStyle","fontVariant","fontWeight","fontFamily","inherit","toString","join","that","split","set","ff","ToNumberArray","a","Point","x","y","angleTo","atan2","applyTransform","v","xp","yp","CreatePoint","CreatePath","path","BoundingBox","x1","y1","x2","y2","Number","NaN","addPoint","isNaN","addX","addY","addBoundingBox","bb","addQuadraticCurve","p0x","p0y","p1x","p1y","p2x","p2y","cp1x","cp1y","cp2x","cp2y","addBezierCurve","p3x","p3y","p0","p1","p2","p3","b2ac","t1","t2","isPointInBox","Transform","Type","translate","unapply","applyToPoint","rotate","angle","cx","cy","cos","sin","scale","matrix","transform","det","SkewBase","base","skewX","tan","skewY","transforms","data","type","transformType","AspectRatio","aspectRatio","desiredWidth","desiredHeight","minX","minY","refX","refY","align","meetOrSlice","scaleX","scaleY","scaleMin","min","scaleMax","max","EmptyProperty","ElementBase","attributes","styles","stylesSpecificity","children","createIfNotExists","style","skipAncestors","parent","ps","render","save","mask","filter","setContext","renderChildren","clearContext","restore","addChild","childNode","child","CreateElement","addStylesFromStyleDefinition","specificity","existingSpecificity","nodeType","nodeName","childNodes","captureTextNodes","text","textContent","tspan","RenderedElementBase","fs","fillStyle","strokeStyle","newLineWidth","lineWidth","lineCap","lineJoin","miterLimit","gaps","setLineDash","webkitLineDash","mozDash","offset","lineDashOffset","webkitLineDashOffset","mozDashOffset","clip","globalAlpha","PathElementBase","beginPath","Mouse","checkPath","fill","stroke","markers","getMarkers","marker","getBoundingBox","baseClearContext","baseSetContext","getComputedStyle","getPropertyValue","root","moveTo","lineTo","closePath","viewBox","rect","rx","ry","quadraticCurveTo","circle","arc","ellipse","KAPPA","bezierCurveTo","line","getPoints","points","polyline","polygon","basePath","PathParser","tokens","reset","command","previousCommand","start","control","current","angles","isEnd","isCommandOrEnd","isRelativeCommand","getToken","getScalar","nextCommand","getPoint","makeAbsolute","getAsControlPoint","getAsCurrentPoint","getReflectedControlPoint","toLowerCase","addMarker","from","priorTo","addMarkerAngle","getMarkerPoints","getMarkerAngles","j","pp","newP","curr","cntrl","cp","xAxisRotation","largeArcFlag","sweepFlag","currp","cpp","centp","u","acos","a1","ad","dir","ah","halfWay","sx","sy","pattern","element","tempSvg","createElement","cctx","getContext","baseRender","point","defs","GradientBase","stops","getGradient","gradientUnits","attributesToInherit","inheritStopContainer","stopsContainer","attributeToInherit","parentOpacityProp","addParentOpacity","addColorStop","rootView","group","tempCtx","linearGradient","createLinearGradient","radialGradient","fx","fy","createRadialGradient","stopColor","AnimateBase","duration","begin","maxDuration","getProperty","attributeType","attributeName","initialValue","initialUnits","removed","calcValue","update","delta","frozen","animationFrozen","animationFrozenValue","updated","to","values","progress","ret","lb","floor","ub","ceil","animate","animateColor","parseInt","animateTransform","horizAdvX","isRTL","isArabic","fontFace","missingGlyph","glyphs","arabicForm","unicode","fontface","ascent","descent","unitsPerEm","missingglyph","glyph","textBaseline","getText","getAnchorDelta","renderChild","startI","textAnchor","measureTextRecursive","textParent","measureText","TextElementBase","getGlyph","customFont","fillText","strokeText","reverse","lw","measure","textToMeasure","tref","hasText","baseRenderChildren","checkBoundingBox","onclick","onmousemove","cursor","image","href","isSvg","img","crossOrigin","self","onload","onerror","src","drawImage","symbol","css","cssDefs","cssDef","cssClasses","cssProps","cssClass","k","substr","getSelectorSpecificity","srcs","urlStart","urlEnd","fonts","getElementsByTagName","use","oldParent","cMask","maskCtx","globalCompositeOperation","fillRect","clipPath","oldBeginPath","oldClosePath","px","py","efd","extraFilterDistance","feMorphology","feComposite","feColorMatrix","m1","m2","m3","imGet","rgba","imSet","val","mi","srcData","getImageData","clearRect","putImageData","feGaussianBlur","blurRadius","canvasRGBA","id","display","body","appendChild","removeChild","title","desc","MISSING","className","load","loadXmlDoc","dom","mapXY","offsetLeft","offsetTop","offsetParent","scrollX","scrollY","clientX","event","clientY","documentElement","isFirstRender","draw","parentNode","clientWidth","clientHeight","cWidth","cHeight","xRatio","yRatio","waitingForImages","intervalID","setInterval","needUpdate","hasEvents","runEvents","clearInterval","events","run","eventElements","isPointInPath","build","svgTags","querySelectorAll","svgTag","insertBefore","div","innerHTML","typeCount","findMatch","regex","useSourceMap","list","map","item","content","sourceMap","cssMapping","btoa","sourceMapping","unescape","encodeURIComponent","JSON","stringify","sourceURLs","sources","source","sourceRoot","concat","cssWithMappingToString","mediaQuery","alreadyImportedModules","color_string","alpha","charAt","simple_colors","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","feldspar","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslateblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","violetred","wheat","white","whitesmoke","yellow","yellowgreen","color_defs","re","example","process","bits","processor","exec","channels","toRGB","toRGBA","toHex","getHelpXML","examples","sc","setAttribute","list_item","list_color","example_div","cssText","createTextNode","list_item_value","error","execScript","attachEvent","addEventListener","eval","default","Tweenable","composeEasingObject","tweenProps","clone","each","tween","tweenable","h","cancelAnimationFrame","webkitCancelAnimationFrame","oCancelAnimationFrame","msCancelAnimationFrame","mozCancelRequestAnimationFrame","clearTimeout","_","requestAnimationFrame","webkitRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","mozRequestAnimationFrame","setTimeout","keys","forEach","w","O","M","_currentState","_configured","_scheduleFunction","setConfig","filters","_filterArgs","_delay","_duration","_step","_targetState","_timestamp","now","isPlaying","_attachment","_scheduleId","_timeoutHandler","_applyFilter","_originalState","_easing","_isTweening","_start","resume","attachment","_pausedAtTime","delay","easing","promise","Promise","_promise","_resolve","_reject","catch","_isPaused","pause","formulas","token","Date","getOwnPropertySymbols","propertyIsEnumerable","assign","String","getOwnPropertyNames","fromCharCode","unsetBezierFunction","setBezierFunction","displayName","interpolate","Function","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeOutBounce","easeInBack","easeOutBack","easeInOutBack","elastic","swingFromTo","swingFrom","swingTo","bounce","bouncePast","easeFromTo","easeFrom","easeTo","tweenCreated","_tokenData","beforeTween","P","afterTween","S","RegExp","unshift","formatString","chunkNames","toFixed","mul_table","shg_table","BlurStack","pixels","radius","yi","yw","r_sum","g_sum","b_sum","a_sum","r_out_sum","g_out_sum","b_out_sum","a_out_sum","r_in_sum","g_in_sum","b_in_sum","a_in_sum","pr","pg","pb","pa","rbs","widthMinus1","heightMinus1","radiusPlus1","sumFactor","stackStart","stack","stackEnd","stackIn","stackOut","mul_sum","shg_sum","stylesInDom","isOldIE","fn","memo","memoize","all","atob","getTarget","querySelector","getElement","styleTarget","HTMLIFrameElement","contentDocument","head","singleton","singletonCounter","stylesInsertedAtTop","fixUrls","addStylesToDom","options","domStyle","refs","parts","addStyle","listToStyles","newStyles","part","media","insertStyleElement","insertInto","Error","lastStyleElementInsertedAtTop","insertAt","nextSibling","firstChild","before","removeStyleElement","idx","splice","createStyleElement","undefined","attrs","addAttrs","el","obj","remove","styleIndex","applyToSingletonTag","URL","createObjectURL","revokeObjectURL","Blob","link","rel","createLinkElement","updateLink","applyToTag","newObj","DEBUG","newList","mayRemove","replaceText","textStore","index","replacement","Boolean","styleSheet","cssNode","autoFixUrls","convertToAbsoluteUrls","blob","oldSrc","location","baseUrl","protocol","host","currentDir","pathname","fullMatch","origUrl","newUrl","unquotedOrigUrl","$1","test","locator","DOMHandler","cdata","position","lineNumber","columnNumber","_locator","systemId","_toString","chars","java","lang","appendElement","hander","currentElement","doc","mimeType","sax","XMLReader","domBuilder","errorHandler","defaultNSMap","xmlns","entityMap","setDocumentLocator","errorImpl","isCallback","buildErrorHandler","nbsp","copy","parse","startDocument","DOMImplementation","createDocument","documentURI","startElement","namespaceURI","localName","qName","createElementNS","len","getURI","attr","getQName","createAttributeNS","getLocator","nodeValue","setAttributeNode","endElement","tagName","startPrefixMapping","prefix","uri","endPrefixMapping","processingInstruction","ins","createProcessingInstruction","ignorableWhitespace","ch","characters","charNode","createCDATASection","skippedEntity","endDocument","normalize","comment","comm","createComment","startCDATA","endCDATA","startDTD","publicId","impl","implementation","createDocumentType","dt","warning","warn","fatalError","XMLSerializer","dest","_extends","Class","ppt","__proto__","NodeType","ELEMENT_NODE","ATTRIBUTE_NODE","TEXT_NODE","CDATA_SECTION_NODE","ENTITY_REFERENCE_NODE","ENTITY_NODE","PROCESSING_INSTRUCTION_NODE","COMMENT_NODE","DOCUMENT_NODE","DOCUMENT_TYPE_NODE","DOCUMENT_FRAGMENT_NODE","NOTATION_NODE","ExceptionCode","ExceptionMessage","HIERARCHY_REQUEST_ERR","INDEX_SIZE_ERR","DOMSTRING_SIZE_ERR","NOT_FOUND_ERR","WRONG_DOCUMENT_ERR","INVALID_CHARACTER_ERR","NO_DATA_ALLOWED_ERR","NO_MODIFICATION_ALLOWED_ERR","INUSE_ATTRIBUTE_ERR","NOT_SUPPORTED_ERR","DOMException","code","message","captureStackTrace","NodeList","LiveNodeList","refresh","_node","_refresh","_updateLiveList","inc","_inc","ownerDocument","ls","__set__","NamedNodeMap","_findNodeIndex","_addNamedNode","newAttr","oldAttr","ownerElement","_onRemoveAttribute","_nsMap","_onAddAttribute","_removeNamedNode","lastIndex","features","_features","feature","Node","_xmlEncoder","charCodeAt","_visitNode","callback","Document","_onUpdateChild","newChild","cs","_removeChild","previous","previousSibling","lastChild","_insertBefore","nextChild","newFirst","newLast","pre","Attr","CharacterData","Text","Comment","CDATASection","DocumentType","Notation","Entity","EntityReference","DocumentFragment","ProcessingInstruction","nodeSerializeToString","isHtml","nodeFilter","buf","refNode","lookupPrefix","visibleNamespaces","namespace","serializeToString","needNamespaceDefine","isHTML","pubid","sysid","sub","internalSubset","INVALID_STATE_ERR","SYNTAX_ERR","INVALID_MODIFICATION_ERR","NAMESPACE_ERR","INVALID_ACCESS_ERR","getNamedItem","setNamedItem","_ownerElement","setNamedItemNS","getNamedItemNS","removeNamedItem","removeNamedItemNS","hasFeature","version","versions","qualifiedName","doctype","refChild","replaceChild","oldChild","hasChildNodes","cloneNode","deep","node2","attrs2","appendData","isSupported","hasAttributes","lookupNamespaceURI","isDefaultNamespace","importNode","importedNode","rtv","getAttribute","createDocumentFragment","createAttribute","specified","createEntityReference","pl","hasAttribute","getAttributeNode","removeAttribute","removeAttributeNode","_appendSingleChild","setAttributeNodeNS","removeAttributeNS","old","getAttributeNodeNS","hasAttributeNS","getAttributeNS","setAttributeNS","getElementsByTagNameNS","substringData","count","substring","insertData","replaceData","deleteData","splitText","newText","newNode","$$length","getTextContent","nameStartChar","nameChar","slice","tagNamePattern","copyLocator","parseElementStartPart","currentNSMap","entityReplacer","attrName","add","setTagName","closed","localNSMap","nsp","nsPrefix","_copy","parseHtmlSpecialContent","elStartEnd","elEndStart","fixSelfClosed","closeMap","pos","lastIndexOf","parseDCC","end","matchs","reg","lastMatch","endDTD","parseInstruction","ElementAttributes","_set_proto_","thiz","defaultNSMapCopy","surrogate1","surrogate2","fixedFromCharCode","appendText","xt","lineEnd","linePattern","lineStart","parseStack","tagStart","config","endMatch","locator2","getLocalName","_packages","_packages2","_toConsumableArray","arr","arr2","Canvas","extend","NAME","canvasId","_this","setScrollArea","html","initialWidth","getWidth","initialHeight","getHeight","droppable","accept","over","ui","onDragEnter","draggable","out","onDragLeave","drop","_getEvent","helperPos","helper","fromDocumentToCanvasCoordinate","onDrop","getX","left","getY","top","shiftKey","ctrlKey","appendTo","zIndex","drag","onDrag","addClass","paper","Raphael","zoomPolicy","zoomFactor","selection","Selection","currentDropTarget","currentHoverFigure","regionDragDropConstraint","policy","figure","RegionEditPolicy","eventSubscriptions","editPolicy","util","ArrayList","figures","lines","commonPorts","resizeHandles","commandStack","CommandStack","linesToRepaintAfterDragDrop","lineIntersections","installEditPolicy","WheelZoomPolicy","DefaultKeyboardPolicy","BoundingboxSelectionPolicy","DropInterceptorPolicy","connection","ComposedConnectionCreatePolicy","DragConnectionCreatePolicy","ClickConnectionCreatePolicy","isPostChangeEvent","calculateConnectionIntersection","svgPathString","repaint","mouseDown","mouseDownX","mouseDownY","mouseDragDiffX","mouseDragDiffY","onMouseUp","hover","getBestFigure","onMouseLeave","fireEvent","onMouseEnter","exc","onMouseMove","hoverFigure","diffXAbs","diffYAbs","onMouseDrag","which","preventDefault","onMouseDown","stopPropagation","onRightMouseDown","on","onDoubleClick","onClick","originalEvent","wheelDelta","detail","onMouseWheel","keyupCallback","KeyboardPolicy","onKeyUp","keyCode","keydownCallback","onKeyDown","destroy","clear","unbind","markSaveLocation","hideDecoration","showDecoration","_this2","getLines","_loop","l1","removeElementAt","ii","l2","partInter","intersection","getSize","other","_this3","SelectionPolicy","getSelection","getAll","unselect","grep","stay","onUninstall","ZoomPolicy","ConnectionCreatePolicy","uninstallEditPolicy","onInstall","getDropInterceptorPolicies","setZoom","animated","getZoom","getDimension","geo","Rectangle","setDimension","dim","widths","getFigures","getAbsoluteX","heights","getAbsoluteY","asArray","setSize","getScrollLeft","getScrollTop","fromCanvasToDocumentCoordinate","getHtmlContainer","touches","changedTouches","elementSelector","scrollArea","getScrollArea","scrollLeft","scrollTop","setScrollLeft","setScrollTop","scrollTo","getCanvas","shape","basic","Line","setPosition","setCanvas","getShapeElement","PolyLine","_this4","contains","Connection","disconnect","getLine","getId","getFigure","getIntersection","entry","justTouching","snapToHelper","_this5","orig","SnapToEditPolicy","snap","registerPort","port","unregisterPort","getAllPorts","getCommandStack","getPrimarySelection","getPrimary","setCurrentSelection","_this6","addSelection","_this7","select","blacklist","whitelist","testFigure","isInList","considering","isInBlacklist","isInWhitelist","checkRecursive","isVisible","hitTest","_i","_len","_i2","figureResult","childResult","lineResult","getBestLine","_i3","array","sort","lineToIgnore","Figure","inArray","draggedDomNode","droppedDomNode","relX","relY","onContextMenu","returnValue","args","subscribers","off","eventOrFunction","Configuration","i18n","move","assignShape","groupShapes","ungroupShapes","deleteShape","moveShape","moveLine","addShape","moveVertex","moveVertices","deleteVertex","resizeShape","rotateShape","collection","addVertex","changeAttributes","connectPorts","menu","deleteSegment","addSegment","dialog","filenamePrompt","createResizeHandle","owner","ResizeHandle","createConnection","sourcePort","targetPort","dropTarget","createInputPort","relatedFigure","InputPort","createOutputPort","OutputPort","createHybridPort","HybridPort","_interopRequireDefault","_extend","_extend2","setter","oldPoint","sourceDecorator","targetDecorator","sourceDecoratorNode","targetDecoratorNode","isMoving","moveListener","setStartPoint","setEndPoint","_super","setSourceDecorator","setTargetDecorator","setSource","setTarget","getSourceDecorator","getTargetDecorator","getSource","connections","onDisconnect","fireSourcePortRouteEvent","fireTargetPortRouteEvent","reconnect","onConnect","routingRequired","isResizeable","isDraggable","layout","ConnectionLocator","decorator","setParent","calculatePath","routingHints","getZOrder","toBack","repaintBlocked","paint","getVertices","first","getStartAngle","opacity","getColor","lineColor","hex","last","getEndAngle","postProcess","postProcessCache","router","dx2","dy2","updateVertices","DragDropEditPolicy","moved","toFront","insertAfter","getStartPoint","refPoint","getStartPosition","getConnectionAnchorLocation","getConnectionAnchorReferencePoint","getEndPoint","getEndPosition","sharingPorts","notiCanvas","lineSegments","SplineConnectionRouter","asin","abs","getConnections","conn","createCommand","request","getPolicy","CommandType","MOVE","CommandMoveVertices","MOVE_BASEPOINT","CommandReconnect","getPersistentAttributes","memento","getParent","getName","decoration","setPersistentAttributes","_JSONUtil","_JSONUtil2","_UUID","_UUID2","_defineProperty","MIN_TIMER_INTERVAL","setterWhitelist","setId","setX","setY","setWidth","setHeight","boundingBox","setBoundingBox","minWidth","setMinWidth","minHeight","setMinHeight","setCssClass","userData","setUserData","setDraggable","resizeable","setResizeable","selectable","setSelectable","setRotationAngle","setAlpha","glow","setGlow","visible","setVisible","keepAspectRatio","setKeepAspectRatio","getterWhitelist","getRotationAngle","getUserData","isSelectable","getAlpha","isResizeHandle","deleteable","canSnapToHelper","snapToGridAnchor","timerId","timerInterval","composite","rotationAngle","getMinWidth","getMinHeight","isInDragDrop","ox","oy","lastAppliedAttributes","selectionHandles","panningDelegate","relocateChildrenEventCallback","relocate","defaultSelectionAdapter","selectionAdapter","RectangleSelectionFeedbackPolicy","isPlainObject","func","param","_key","pick","var_keys","asPrimarySelection","onSelect","onUnselect","setSelectionAdapter","adapter","getSelectionAdapter","isSelected","newId","getCssClass","hasCssClass","addCssClass","removeCssClass","newClass","toggleCssClass","stopTimer","startTimer","milliSeconds","onTimer","StrongComposite","getTopLevelShapeElement","_figures","_lines","insertElementAt","handle","SelectionFeedbackPolicy","removedPolicy","debug","getChildren","resetChildren","createShapeElement","hide","visibleDuration","fadeOut","show","fadeIn","flatDiff","applyTransformation","flag","getHandleBBox","onDragStart","bbox","getAbsolutePosition","getBestChild","canStartDrag","_newPos","adjustPosition","newPos","getCanSnapToHelper","onPanning","onPanningEnd","onDragEnd","execute","delegateTarget","draggedFigure","_this8","delegate","onCatch","droppedFigure","percent","_this9","getKeepAspectRatio","setCanSnapToHelper","getSnapToGridAnchor","setSnapToGridAnchor","getAbsoluteBounds","_this10","oldPos","getPosition","_this11","newDim","adjustDimension","getOuterBoundingBox","parentBB","childBB","merge","iX","iY","corona","isMemberDraggable","isMemberSelectable","isStrechable","isDeleteable","setDeleteable","containedFigure","getRoot","setComposite","getComposite","_inEvent","context","___originalCallback","figureToIgnore","CommandMove","DELETE","CommandDelete","RESIZE","CommandResize","cloneMetaData","excludeChildren","initialId","HeadlessCanvas","Port","InputPortLocator","CONNECT","CommandConnect","OutputPortLocator","Circle","DEFAULT_BORDER_COLOR","Color","lighterBgColor","coronaWidth","bgColor","diameter","setCoronaWidth","semanticGroup","setSemanticGroup","getCoronaWidth","getSemanticGroup","useGradient","preferredConnectionDirection","emitter","connectionAnchor","anchor","ConnectionAnchor","maxFanOut","MAX_SAFE_INTEGER","IntrusivePortsFeedbackPolicy","portSelectionAdapter","setMaxFanOut","getMaxFanOut","setConnectionAnchor","setOwner","referencePoint","inquiringConnection","getLocation","getReferencePoint","getConnectionDirection","peerPort","getDirection","setConnectionDirection","direction","setLocator","setBackgroundColor","lighter","setValue","onPortValueChanged","hash","_oldstroke","getStroke","setStroke","setName","iX2","iY2","Corona","setDiameter","CommandMovePort","ports","setColor","zoomCallback","origWidth","origHeight","origRadius","origStroke","blockEvent","setType","getOwner","getType","commandMove","commandResize","getSnapToDirection","SnapToHelper","NORTH_WEST","NORTH","NORTH_EAST","EAST","SOUTH_EAST","SOUTH","SOUTH_WEST","WEST","NSEW","updateCursor","oldX","oldY","diffX","diffY","objPosX","objPosY","objWidth","objHeight","newX","newY","corrPos","isTouchDevice","offset2","bgGradient","darker","supportsSnapToHelper","ctrl","SVGFigure","SetFigure","setSVG","getSVG","createSet","importSVG","svgNodes","newSVGNodes","oldSVG","rawSVG","svgDOM","_dimensionReadFromJSON","findStyle","$2","subShape","subAttr","getBBox","alert","primary","setPrimary","checkDescendant","figureToCheck","expand","addRecursive","addAll","getAssignedFigures","originalWidth","originalHeight","strokeScale","applyAlpha","rs","getPorts","VectorFigure","dasharray","strokeBeforeGlow","glowIsActive","setDashArray","setRadius","getDashArray","getRadius","getBackgroundColor","dashPattern","ensureDefault","Command","label","getLabel","canExecute","cancel","undo","redo","CommandAdd","CommandAddVertex","newPoint","removeVertexAt","insertVertexAt","CommandAssignFigure","assignedConnections","isNode","oldBoundingBox","assignFigure","oldComposite","unassignFigure","stickFigures","CommandAttr","newAttributes","oldAttributes","CommandBoundingBox","newBoundingBox","equals","CommandCollection","commandLabel","commands","labels","unique","canExec","cmd","setConnection","getConnection","optionalCallback","removedParentEntry","indexOfChild","CommandDeleteGroup","batchDelete","CommandUngroup","CommandGroup","Group","isEmpty","setStartPosition","CommandMoveConnection","setTranslation","CommandMoveLine","CommandMoveVertex","setIndex","origPoint","updatePosition","setVertex","oldVertices","newVertices","setVertices","con","oldSourcePort","oldTargetPort","setNewPorts","newSourcePort","newTargetPort","CommandRemoveVertex","CommandReplaceVertices","originalVertices","oldWidth","oldHeight","newWidth","newHeight","CommandRotate","oldAngle","newAngle","portRelayoutRequired","undostack","redostack","maxundo","transactionCommand","eventListeners","setUndoLimit","notifyListeners","POST_EXECUTE","PRE_EXECUTE","startTransaction","isInTransaction","commitTransaction","PRE_UNDO","POST_UNDO","PRE_REDO","POST_REDO","getRedoLabel","getUndoLabel","canRedo","canUndo","listener","CommandStackEventListener","stackChanged","removeEventListener","state","action","CommandStackEvent","size","POST_INIT","POST_MASK","PRE_MASK","details","getStack","getCommand","getDetails","isPreChangeEvent","MOVE_VERTEX","MOVE_VERTICES","MOVE_GHOST_VERTEX","RESET","ROTATE","locals","ArrowDecorator","Decorator","st","backgroundColor","BarDecorator","CircleDecorator","_Color2","DiamondDecorator","inverseLerp","X1","Y1","X2","Y2","nenner","zaehler","pointProjection","minx","maxx","miny","maxy","U","distance","dotprod","projlenSq","lenSq","bx","by","bw","bh","setBoundary","adjustBoundary","PositionConstants","getDistance","translated","factor","scaled","getScaled","subtract","dot","cross","lerp","Ray","isHorizontal","similarity","otherRay","getAveraged","resize","setBounds","getLeft","getRight","getTop","getBottom","getTopLeft","getTopCenter","getTopRight","getCenterLeft","getCenterRight","getBottomLeft","getBottomCenter","getCenter","getBottomRight","moveInside","newRect","pointOrRectangle","cw","ow","oh","oct","determineOctant","r2","HISTERESE","DIRECTION_UP","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_DOWN","isInside","intersects","x11","y11","x12","y12","x21","y21","x22","y22","intersectionWithLine","toJSON","Util","insetPoint","distanceFromStart","vx","vy","localDistance","io","Reader","unmarshal","Writer","marshal","resultCallback","formatXml","formatted","pad","indent","padding","json","createFigureFromElement","createFigureFromType","getPort","base64Content","Base64","encode","png","cropBoundingBox","canvasState","origPos","outerHTML","zoom","find","canvasDomNode","append","fullSizeCanvas","renderCallback","sourceX","sourceY","sourceWidth","sourceHeight","croppedCanvas","dataUrl","toDataURL","base64Image","CenterEdgeConnectionAnchor","ref","center","getBox","ChopboxConnectionAnchor","reference","FanConnectionAnchor","separation","ray","xSeparation","ySeparation","intersections","reduce","ShortesPathConnectionAnchor","Oval","CircuitConnectionRouter","ManhattanConnectionRouter","setBridgeRadius","setVertexRadius","abortRoutingOnFirstVertexNode","LineSelectionFeedbackPolicy","vertexNodes","vertexRadius","setJunctionRadius","bridgeRadius","bridge_LR","bridge_RL","route","fromPt","fromDir","toPt","toDir","_route","intersectionsASC","intersectionsDESC","intersectionForCalc","oldP","bridgeWidth","bridgeCode","lastVertexNode","interP","hit","otherZ","vertexNode","exclude","ConnectionRouter","_paint","inset","lastP","canRemoveVertexAt","canRemoveSegmentAt","verticesSet","DirectRouter","invalidate","FanConnectionRouter","routeCollision","midPoint","bendPoint","InteractiveManhattanConnectionRouter","OrthogonalSelectionFeedbackPolicy","_routingMetaData","routedByUserInteraction","halfRoute","MINDIST","vertexCount","vertex","startMoved","endMoved","_p","_p2","segmentCount","tmpConn","vertices","draggedSegment","getSegments","lp0","lp1","getVertex","routingMetaData","ManhattanBridgedConnectionRouter","BRIDGE_HORIZONTAL_LR","BRIDGE_HORIZONTAL_RL","TOL","TOLxTOL","TOGGLE_DIST","UP","RIGHT","DOWN","LEFT","xDiff","yDiff","_typeof","ROUTER_RECTS","MazeConnectionRouter","useSpline","useSimplify","useSimplifyValue","useDebug","useShift","portOutletOffset","finder","PF","JumpPointFinder","allowDiagonal","dontCrossCorners","shift","oldToPt","oldFromPt","getAdjustedPoint","grid","generateNoGoGrid","findPath","isWalkableAt","svgPathBefore","adjustPath","_svgPathBefore","spline","CubicSpline","splinePoints","generate","simplify","_svgPathBefore2","oneShift2","canvasWidth","canvasHeight","Grid","box","r_orig","b_orig","_i4","setWalkableAt","_j","_i5","_y","_b_orig","_i6","_j2","_x","_r_orig","_j3","_i7","adjustment","getSquareDistance","getSquareSegmentDistance","simplifyRadialDistance","sqTolerance","prevPoint","newPoints","simplifyDouglasPeucker","Uint8Array","maxSqDist","sqDist","firstStack","lastStack","tolerance","highestQuality","MuteableManhattanConnectionRouter","rowsUsed","colsUsed","constraints","reservedInfo","startPoint","endPoint","average","startNormal","getStartDirection","endNormal","getEndDirection","positions","horizontal","isCycle","trial","findFirstFigureAtStraightLine","EMPTY_LIST","_figure","getExcludingFigures","adjust","processPositions","getColumnNear","proximity","reserveColumn","getRowNear","reserveRow","removeReservedLines","prev","rInfo","reservedRows","reservedCols","column","info","row","getConstraint","setConstraint","constraint","excluding","col","getMidpoint","RubberbandRouter","thickness","uv","uv2","strength","second","third","start90","start270","first90","first270","second90","second270","third90","third270","end90","end270","SketchConnectionRouter","VertexRouter","VertexSelectionFeedbackPolicy","startAnchor","endAnchor","BottomLocator","Locator","targetBoundingBox","CenterLocator","DraggableLocator","PortLocator","dividerFactor","thisNAME","portIndex","applyConsiderRotation","LeftLocator","margin","ManhattanMidpointLocator","segmentIndex","ParallelMidpointLocator","setDistance","nx","ny","radian","rotAnchor","rotCenterOfLabel","xm","ym","PolylineMidpointLocator","halfW","halfH","rotAngle","ratio","RightLocator","SmartDraggableLocator","boundedCorners","dist","xOffset","yOffset","calcBoundingCorner","parentVertices","childVertices","i_parent","i_child","TopLocator","XYAbsPortLocator","XYRelPortLocator","mesh","ExplodeLayouter","MeshLayouter","MIN_MARGIN","figureToAdd","changes","dis","currentOctChanges","ProposedMeshChange","r1","uid","autoResize","resizableFilterSelector","AutoResizer","defaults","previousScrollTop","maxWidth","maxHeight","overflowY","complete","onAfterResize","onResize","onBeforeResize","extraSpace","cloneCSSProperties","cloneCSSValues","overflow","check","proxy","createClone","removeAttr","whiteSpace","immediate","injectClone","prevValue","cloneWidth","currentWidth","removeData","cloneContainer","support","htmlMenuitem","htmlCommand","eventSelectstart","widget","_cleanData","cleanData","elems","elem","triggerHandler","$currentTrigger","initialized","$win","counter","namespaces","menus","types","trigger","autoHide","reposition","determinePosition","$menu","my","at","of","collision","outerHeight","outerWidth","opt","bottom","right","positionSubmenu","animation","noop","items","hoveract","timer","pageX","pageY","abortevent","stopImmediatePropagation","contextmenu","$this","hasClass","built","isEmptyObject","$trigger","op","click","Event","mousedown","button","mouseup","mouseenter","$related","relatedTarget","$document","closest","mousemove","mouseleave","layerClick","$window","triggerAction","elementFromPoint","$layer","has","one","contextMenu","keyStop","isInput","$selected","blur","$parent","itemdata","toUpperCase","accesskeys","$node","prevItem","$s","$children","$prev","$round","itemMouseleave","itemMouseenter","$input","focus","nextItem","$next","focusInput","contextMenuRoot","blurInput","menuMouseenter","hovering","menuMouseleave","itemClick","contextMenuKey","isFunction","callbacks","inputClick","hideMenu","force","focusItem","siblings","blurItem","removeClass","$t","zin","$tt","zindex","layer","$label","accesskey","ak","aks","splitAccesskey","_name","hasTypes","inputs","selected","prependTo","radio","icon","nested","andSelf","$item","disabled","fixedPosition","inputLabel","operation","$context","_hasContext","$visibleMenu","fromMenu","setInputValues","getInputValues","menuChildren","dimetric","arrow","note","diagram","flowchart","analog","pert","navigator","platform","EditPolicy","SingleSelectionPolicy","isInsideMode","rect1","rect2","intersectsMode","decision","boundingBoxFigure1","boundingBoxFigure2","canDrawBoundingBox","oldSelection","setDecisionMode","useIntersectionMode","currentSelection","mouseMovedDuringMouseDown","canDragStart","delegated","mouseDraggingElement","mouseDownElement","draggingLineCommand","draggingLine","fakeDragX","fakeDragY","handleRect","dash","LineResizeHandle","selectionRect","CanvasPolicy","mouseX","mouseY","createMonochromGif","gif","bit","byte_","writeBit","chunklen","CoronaDecorationPolicy","DecorationPolicy","startDragX","startDragY","diameterToBeFullVisible","diameterToBeVisible","sumDiameter","setDiameterToBeVisible","setDiameterToBeFullVisible","getDiameterToBeVisible","getDiameterToBeFullVisible","__origAlpha","updatePorts","connectInquirer","connectIntent","Hub","getHybridPort","ExtendedKeyboardPolicy","FadeoutDecorationPolicy","DEFAULT_FADEOUT_DURATION","DEFAULT_ALPHA_DECREMENT","alphaDec","hidePortsCounter","portDragging","duringHide","GhostMoveSelectionPolicy","ghostRectangle1","ghostRectangle2","sel","resetPorts","draggingElement","redrawConnection","inter","PanningSelectionPolicy","area","ReadOnlySelectionPolicy","ShowChessboardEditPolicy","GRID_COLOR","GRID_WIDTH","oldBg","setGrid","onZoomCallback","emitterFigure","zoomData","gridColor","background","backgroundSize","backgroundPosition","ShowDimetricGridEditPolicy","shapes","setGridColor","angle26","atan","angle153","cos30","sin30","cos150","sin150","setStart","setFinish","ShowDotEditPolicy","DOT_COLOR","DOT_RADIUS","DOT_DISTANCE","dotDistance","dotRadius","dotColor","ShowGridEditPolicy","GRID_STOKE","gridDistance","gridStroke","gridWidth","SnapToCenterEditPolicy","SNAP_THRESHOLD","FADEOUT_DURATION","centers","horizontalGuideLines","verticalGuideLines","hideHorizontalGuides","hideVerticalGuides","modifiedPos","originalPos","allowXChanges","allowYChanges","inputCenter","snapHorizontal","snapped","showHorizontalGuides","diff","vertical","snapVertical","showVerticalGuides","populateCenters","candidates","snappedPoint","causedFigure","fast","SnapToDimetricGridEditPolicy","snapPoint","CENTER_H","CENTER_V","NORTH_SOUTH","EAST_WEST","setLineColor","getLineColor","SnapToGeometryEditPolicy","rows","cols","vline","hline","hideVerticalLine","hideHorizontalLine","snapDirections","edge","showVerticalLine","showHorizontalLine","inputBounds","snapRectangle","bounds","resultBounds","topLeft","bottomRight","snapOrientation","inputPoint","resultPoint","populateRowsAndCols","rightCorrection","getCorrectionFor","leftCorrection","bottomCorrection","topCorrection","entries","side","resultMag","magnitude","removeAll","causedBox","causedCenter","fromY","maxLength","yLength","snappedBox","fromX","xLength","SnapToGridEditPolicy","showGrid","renderer","SnapToInBetweenEditPolicy","populateBounds","intersectionPoint","leftIntersections","leftInputPoint","causedBBox","rightIntersections","rightInputPoint","snappedRect","leftSide","rightSide","topIntersections","topInputPoint","bottomIntersections","bottomInputPoint","topSide","bottomSide","snapTopLeft","snapTopRight","snapBottomRight","SnapToVerticesEditPolicy","VertexResizeHandle","correction","vertexResizeHandle","diffx","diffy","SNAP","snappedPos","_shifty","debouncedZoomedCallback","_debounce","__wheelZoom","newZoom","client","_zoom","scrollWidth","centerY","centerX","params","finish","setViewBox","coordsAfter","wait","_arguments","timeout","callNow","z","viewBoxWidth","viewBoxHeight","port1","beeline","pulse","tempConnection","ripple","setEndPosition","setRouter","policies","_arg","anim","circle1","circle2","anim1","repeat","Infinity","anim2","currentTarget","de","ct","PortFeedbackPolicy","onHoverLeave","onHoverEnter","OrthogonalConnectionCreatePolicy","getRouter","beforeVertex","lastVertex","portPos","lastSegmentDir","orthogonal","xDist","AntSelectionFeedbackPolicy","isPrimarySelection","_updateBeeLine","projection","center1","center2","BigRectangleSelectionFeedbackPolicy","BusSelectionFeedbackPolicy","r4","r6","r8","xPos","yPos","FigureEditPolicy","moveCallback","originalAlpha","GlowSelectionFeedbackPolicy","HBusSelectionFeedbackPolicy","HorizontalEditPolicy","dashArray","r3","r5","r7","constRect","diffW","diffH","ResizeSelectionFeedbackPolicy","RoundRectangleSelectionFeedbackPolicy","SlimSelectionFeedbackPolicy","VBusSelectionFeedbackPolicy","_handle","GhostVertexResizeHandle","VerticalEditPolicy","WidthSelectionFeedbackPolicy","LineStartResizeHandle","LineEndResizeHandle","_p3","p_m1","_p4","_p5","_p6","resizeWidthHalf","resizeHeightHalf","removeSegment","_newX","splitSegment","newSegLength","np1","np2","np3","np4","_np","_np2","_newSegLength","_np3","_np4","_np5","_np6","_np7","_np8","segment","hitSegment","_originalVertices","_newVertices","startHandle","endHandle","ElasticStrapFeedbackPolicy","connectionLine","hoverFiger","growFactor","allPorts","__beforeInflate","dispose","OpAmp","MyInputPortLocator","calcY","inputLocator","createPort","ResistorBridge","MyOutputPortLocator","outputLocator","ResistorVertical","VoltageSupplyHorizontal","VoltageSupplyVertical","CalligrapherArrowDownLeft","CalligrapherArrowLeft","Arc","startAngle","endAngle","a2","w2","h2","getDiameter","setCenter","Diamond","Polygon","resetVertices","precursorIndex","maxOpacity","Image","setPath","getPath","Label","FONT_FALLBACK","cachedWidth","cachedHeight","cachedMinWidth","cachedMinHeight","fontColor","outlineStroke","outlineColor","bold","editor","setText","installEditor","setOutlineStroke","setOutlineColor","setFontFamily","setFontSize","setFontColor","setPadding","setBold","getOutlineStroke","getOutlineColor","getFontFamily","getFontSize","getFontColor","getPadding","isBold","lastAppliedLabelRotation","lastAppliedTextAttributes","clearCache","lattr","calculateTextAttr","attrDiff","ts","polySides","oddNodes","pi","pj","DEFAULT_COLOR","isGlowing","outlineVisible","startX","setStartX","startY","setStartY","endX","setEndX","endY","setEndY","setCorona","getCorona","isFaked","_lineColor","_stroke","getStartX","getStartY","getEndX","getEndY","getLength","getAngle","percentage","segments1","segments2","s1","s2","b1","b2","ua_t","ub_t","u_b","ua","getRelatedPort","getOppositePort","objPos","getIndex","origin","mDir","mDiff","t_a","t_b","removedPoint","lastDist","_segment","lastValidLength","maxX","maxY","_length","modStart","modEnd","updateBoundingBox","fracWidth","fracHeight","thisX","thisY","rot","cachedWrappedAttr","wrappedTextAttr","longestWord","arg1","arg2","svgText","words","abc","letterWidth","LINE_COLOR","isDead","getEnclosingAngle","trans","Composite","assignedFigures","Jailhouse","Raft","WeakComposite","aboardFigures","getAboardFigures","dontApplyToChildren","aboardedFigures","recalculate","raftBoundingBox","getNextComposite","figureToTest","nextComposite","Diagram","cache","setData","getData","Pie","COLORS","TWO_PI","d2","sum","_sum","pie","offsetAngle","seg","drawSegment","polarPath","theta","rotation","resolution","Sparkline","pathString","prev_pt","toCoords","amplitude","calcPath","w4","Acw","Icon","Alarm","Anonymous","Apple","Apps","ArrowDown","ArrowLeft","ArrowLeft2","ArrowRight","ArrowRight2","ArrowUp","Aumade","BarChart","BioHazard","Book","Bookmark","Books","Bubble","Bug","Calendar","Cart","Ccw","Chat","Check","Chrome","Clip","Clock","Cloud","Cloud2","CloudDown","CloudUp","Cloudy","Code","CodeTalk","CommandLine","Connect","Contract","Crop","Cross","Cube","Customer","Db","Detour","Disconnect","DockBottom","DockLeft","DockRight","DockTop","Download","Dry","Employee","End","Ethernet","Exchange","Expand","Export","Fave","Feed","Ff","Firefox","Flag","Flickr","Folder","Fork","ForkAlt","FullCube","Future","GRaphael","Gear","Gear2","GitHub","GitHubAlt","Glasses","Globe","GlobeAlt","GlobeAlt2","Hail","Hammer","HammerAndScrewDriver","HangUp","Help","History","Home","IMac","Icons","Ie","Ie9","Import","InkScape","Ipad","Iphone","JQuery","Jigsaw","Key","Lab","Lamp","Lamp_alt","Landing","Landscape1","Landscape2","LineChart","Link","LinkedIn","Linux","List","Location","Lock","Locked","Magic","Magnet","Mail","Man","Merge","Mic","MicMute","Minus","NewWindow","No","NoMagnet","NodeJs","Notebook","Noview","Opera","Package","Page","Page2","Pallete","Palm","Paper","Parent","Pc","Pen","Pensil","People","Phone","Photo","Picker","Picture","PieChart","Plane","Plugin","Plus","Power","Ppt","Printer","Quote","Rain","ReflectH","ReflectV","Refresh","Resize2","Rotate","Ruler","Run","Rw","Safari","ScrewDriver","Search","Sencha","Settings","SettingsAlt","Shuffle","Skull","Skype","SlideShare","Smile","Smile2","Snow","Split","Star","Star2","Star2Off","Star3","Star3Off","StarOff","Start","Sticker","Stop","StopWatch","Sun","Svg","TShirt","Tag","TakeOff","Talke","Talkq","Thunder","Trash","Twitter","TwitterBird","Umbrella","Undo","Unlock","Usb","User","Users","Video","View","Vim","Volume0","Volume1","Volume2","Volume3","Warning","WheelChair","Woman","Wrench","Wrench2","Wrench3","ZoomIn","ZoomOut","FlexGridLayout","Layout","cellLocator","gridDef","layoutRequired","_layout","cell","__cellConstraint","valign","debugLines","def_cols","def_rows","min_height","min_width","minGridWidth","minGridHeight","hResizeable","vResizeable","resizeListener","columns","cellWidthFromDef","cellConstraint","rowspan","colspan","paintDebugGrid","eHeight","cellHeight","_getGridWidth","_getGridHeight","gridHeight","_cell","cellWidth","cellX","cellY","posX","posY","newLine","_newLine","HorizontalLayout","gap","setGap","getGap","markup","StackLayout","visibleLayer","setVisibleLayer","getVisibleLayer","_recursiveWidth","_recursiveHeight","TableLayout","DUMMY_CELL","__cell","getCellLayout","widthOffset","layoutInfos","setCellPadding","calculateLayout","getCellPadding","removeRow","removedRow","addRow","figuresToAdd","columnCount","missingColumns","setCellVerticalAlign","getCellVerticalAlign","setCellAlign","getCellAlign","layouts","rowCount","newLayoutInfos","layoutWidths","layoutHeights","_column","_row","_column2","VerticalLayout","Between","Fulcrum","_orig_hitTest","setConnectionDirStrategy","HorizontalBus","BACKGROUND_COLOR","setLabel","_port","CONNECTION_DIR_STRATEGY","strategy","dirStrategy","inputPorts","outputPorts","hybridPorts","persistPorts","cachedPorts","setPersistPorts","getPersistPorts","__initialVisibilityState","recursive","getInputPorts","getOutputPorts","excludePorts","clonePort","addPort","portName","getInputPort","portNameOrIndex","getOutputPort","removePort","newPort","c_size","oldCanvas","layoutPorts","relatedPort","locatorAttr","VerticalBus","labelString","mustAdjustTheAngel","PostIt","Activity","mementoValues","darkerBgColor","earlyStartLabel","createLabel","durationLabel","LabelEditor","onCommit","setDuration","earlyEndLabel","activityLabel","LabelInplaceEditor","inputPort","getActivity","anyValue","outputPort","lateStartLabel","stackLabel","lateEndLabel","getEarlyStart","lateFinish","setLateFinish","getEarlyEnd","latestEarlyEnd","parentActivity","lateStart","txt","innerCircle","State","Slider","Widget","DEFAULT_COLOR_THUMB","DEFAULT_COLOR_BG","currentValue","slideBoundingBox","panning","thumbGrow","thumb","onValueChange","panningX","panningY","grow","sliderWidth","figurePos","sliderPos","thumbX","configuration","onCancel","onStart","prompt","commitCallback","commit","_data","avoidDuplicates","elements","newVector","overwriteElementAt","byteToCharMap_","charToByteMap_","byteToCharMapWebSafe_","charToByteMapWebSafe_","ENCODED_VALS_BASE","ENCODED_VALS","ENCODED_VALS_WEBSAFE","encodeByteArray","input","opt_webSafe","byteToCharMap","output","byte1","haveByte2","byte2","haveByte3","byte3","outByte1","outByte2","outByte3","outByte4","stringToByteArray","decode","charToByteMap","byte4","str","hashString","hex2rgb","getHTMLStyle","getRed","getGreen","getBlue","getIdealTextColor","temp_elem","int2hex","round","fraction","fadeTo","pc","callback_func","callback_force","aps","log_level","log_methods","pass_methods","logs","method","level","log_arr","exec_callback","is_level","firebug","setLevel","setCallback","pathList","parentKey","grandParent","grandParentKey","addObj","paths","obj1","obj2","v1","v2","ontouchmove","pointString","poly","UUID","random","global","extended","BezierSpline","Spline","controlPoints","blend","CatmullRomSpline","mathSign","isPercent","_isString","isNumber","_isNumber","_isNaN","isNumOrStr","idCounter","getPercentValue","totalValue","defaultValue","validate","getAnyElementOfObject","hasDuplicate","ary","_isArray","interpolateNumber","numberA","numberB","findEntryInArray","specifiedKey","specifiedValue","_get","for","q","$$typeof","A","require$$0","propIsEnumerable","toObject","test1","test2","test3","letter","shouldUseNative","checkPropTypes","typeSpecs","componentName","resetWarningCache","emptyFunction","emptyFunctionWithReset","shim","propName","propFullName","secret","ReactPropTypesSecret","getShim","isRequired","ReactPropTypes","bool","number","string","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","exact","PropTypes","require$$2","styleInject","BoxContext","createContext","useBoxContext","useContext","Box","activeStyles","useAccent","Button","variant","block","classNames","useState","useEffect","CardImage","useCardContext","backgroundImage","CardContext","Card","setClassNames","Checkbox","checkbox","useRef","indeterminate","checked","onChange","ContentContext","useContentContext","Content","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","ChevronDown","_ref","_ref$color","_ref$size","rest","strokeWidth","strokeLinecap","strokeLinejoin","propTypes","Info","XSquare","X","InputNumeric","setTimer","nativeInputValueSetter","increment","bubbles","decrement","startAction","interval","stopAction","onBlur","autoComplete","tabIndex","required","InputPassword","main","legend","placeholder","InputText","InputTextArea","Input","Portal","container","createPortal","Overlay","overlay","ModalHeader","onHide","useModalContext","header","closeButton","ModalBody","spacer","ModalContext","Modal","footer","PanelContext","usePanelContext","Panel","noPadding","QuestionImage","useQuestionContext","QuestionContext","Question","React","question","Radio","Select","description","valueProperty","displayProperty","isMulti","isClearable","selectedItems","setSelectedItems","coords","setCoords","expanded","setExpanded","controlRef","optionsRef","isMultiSelect","canClear","handleClickOutsideSelect","handleEscapeKey","handleWindowEvents","renderItem","onClickSelectBox","multiselect_items","multiselect_item","onRemoveSelectedItem","controls","onClickSelectItem","renderOptions","SelectGroupContext","useSelectGroupContext","initialSelection","active","setActive","onItemClicked","SelectGroup","SelectGroupItem","alt","StepsContext","activeStep","steps","isCompleted","trySetActive","Steps","Subheader","subheader","Table","ClientAuthErrorMessage","clientInfoDecodingError","clientInfoEmptyError","tokenParsingError","nullOrEmptyToken","endpointResolutionError","networkError","unableToGetOpenidConfigError","hashNotDeserialized","blankGuidGenerated","invalidStateError","stateMismatchError","stateNotFoundError","nonceMismatchError","nonceNotFoundError","authTimeNotFoundError","maxAgeTranspiredError","noTokensFoundError","multipleMatchingTokens","multipleMatchingAccounts","multipleMatchingAppMetadata","tokenRequestCannotBeMade","appendEmptyScopeError","removeEmptyScopeError","appendScopeSetError","emptyInputScopeSetError","DeviceCodePollingCancelled","DeviceCodeExpired","DeviceCodeUnknownError","NoAccountInSilentRequest","invalidCacheRecord","invalidCacheEnvironment","noAccountFound","CachePluginError","noCryptoObj","invalidCacheType","unexpectedAccountType","unexpectedCredentialType","invalidAssertion","invalidClientCredential","tokenRefreshRequired","userTimeoutReached","tokenClaimsRequired","noAuthorizationCodeFromServer","noAzureRegionDetected","accessTokenEntityNullError","bindingKeyNotRemovedError","logoutNotSupported","keyIdMissing","errorCode","errorMessage","setPrototypeOf","ClientAuthError","caughtError","createClientInfoEmptyError","caughtExtractionError","invalidRawTokenString","errDetail","createNetworkError","endpoint","hashParamObj","createInvalidStateError","invalidState","errorString","createStateMismatchError","missingState","createNonceMismatchError","createAuthTimeNotFoundError","createMaxAgeTranspiredError","missingNonce","createMultipleMatchingTokensInCacheError","createMultipleMatchingAccountsInCacheError","createMultipleMatchingAppMetadataInCacheError","createTokenRequestCannotBeMadeError","givenScope","appendError","createEmptyInputScopeSetError","createDeviceCodeCancelledError","createDeviceCodeExpiredError","createDeviceCodeUnknownError","createNoAccountInSilentRequestError","createNullOrUndefinedCacheRecord","createInvalidCacheEnvironmentError","createNoAccountFoundError","createCachePluginError","operationName","createInvalidCacheTypeError","createUnexpectedAccountTypeError","createUnexpectedCredentialTypeError","createInvalidAssertionError","createInvalidCredentialError","createRefreshRequiredError","createUserTimeoutReachedError","createTokenClaimsRequiredError","createNoAuthCodeInServerResponseError","createBindingKeyNotRemovedError","createLogoutNotSupportedError","createKeyIdMissingError","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","then","_asyncToGenerator","authToken","StringUtils","createTokenNullOrEmptyError","createTokenParsingError","JWSPayload","JWSSig","strObj","startsWith","search","endsWith","query","decodeURIComponent","pair","matchPattern","ownKeys","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","getOwnPropertyDescriptors","defineProperties","_react","_getRequireWildcardCache","hasPropertyDescriptor","_interopRequireWildcard","_propTypes","_ClassNames","_Tooltip","_ObjectUtils","_Ripple","WeakMap","_setPrototypeOf","hasNativeReflectConstruct","sham","Proxy","_isNativeReflectConstruct","_getPrototypeOf","_possibleConstructorReturn","ReferenceError","_assertThisInitialized","getPrototypeOf","_Component","tooltip","renderTooltip","prevProps","updateContent","tip","tooltipOptions","iconPos","dangerouslySetInnerHTML","__html","badge","badgeClassName","renderIcon","renderLabel","renderBadge","buttonProps","findDiffKeys","defaultProps","Ripple","Component","__WEBPACK_EXTERNAL_MODULE_react__","link_type","_linkType","linkType","some","includes","PRIORITIES","NODE_TYPES","heading1","heading2","heading3","heading4","heading5","heading6","paragraph","preformatted","strong","listItem","oListItem","oList","embed","hyperlink","span","isParentOf","elected","others","lower","upper","TextNode","inner","outer","SpanNode","setChildren","boundaries","RichTextBlock","isEmbedBlock","isImageBlock","BlockNode","spans","isListItem","ListBlockNode","ListItemBlockNode","isOrderedListItem","OrderedListBlockNode","OrderedListItemBlockNode","emptyList","emptyOrderedList","getTime","asText","asTree","fromRichText","serialize","Elements","printWarning","loggedTypeFailures","typeSpecName","ex","ReactIs","emptyFunctionThatReturnsNull","isValidElement","throwOnDirectAccess","ITERATOR_SYMBOL","createPrimitiveTypeChecker","createChainableTypeChecker","typeChecker","PropTypeError","propValue","getPropType","isValidElementType","expectedClass","expectedClassName","propType","expectedValues","valuesString","getPreciseType","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","shapeTypes","allKeys","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","cacheKey","chainedCheckType","expectedType","every","iteratorFn","maybeIterable","getIteratorFn","isSymbol","isElement","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","format","argIndex","lowPriorityWarning$1","condition","_len2","_key2","typeOf","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","ForwardRef","Fragment","Lazy","Memo","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isConcurrentMode","isAsyncMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","__webpack_exports__","prop_types__WEBPACK_IMPORTED_MODULE_1__","prismic_richtext__WEBPACK_IMPORTED_MODULE_2__","_richtext__WEBPACK_IMPORTED_MODULE_3__","RichText","_ref2","htmlSerializer","linkResolver","serializeHyperlink","renderAsText","maybeSerializer","serializers","processors","acc","createHtmlSerializer","createScript","js","fjs","ready","embeds","twttr","widgets","Facebook","FB","XFBML","Instagram","instgrm","Embeds","PrismicHelpers","PrismicRichText","renderRichText","react__WEBPACK_IMPORTED_MODULE_0__","prismic_richtext__WEBPACK_IMPORTED_MODULE_1__","prismic_richtext__WEBPACK_IMPORTED_MODULE_1___default","prismic_helpers__WEBPACK_IMPORTED_MODULE_2__","_embeds__WEBPACK_IMPORTED_MODULE_3__","_objectSpread","serializeElement","serializeStandardTag","linkUrl","linkTo","linkTarget","relAttr","propsWithUniqueKey","serializeImage","oembed","provider_name","embed_url","embedHtml","serializeEmbed","targetAttr","serializeLabel","brIndex","br","serializeSpan","tag","structuredText","richText","serializedChildren","0","EventType","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","minLen","_unsupportedIterableToArray","_nonIterableSpread","identity","PLACE_HOLDER","isPlaceHolder","curry0","_curried","curry","curryN","argsLength","restArgs","newArgs","range","compose","_len3","_key3","fns","firstFn","tailsFn","res","lastArgs","lastResult","_len4","_key4","rangeStep","num","Decimal","lt","toNumber","getDigitCount","newA","uninterpolateNumber","uninterpolateTruncation","_slicedToArray","_arrayWithHoles","_arr","_n","_d","_s","_iterableToArrayLimit","_nonIterableRest","getValidInterval","validMin","validMax","getFormatStep","roughStep","allowDecimals","correctionFactor","lte","digitCount","Arithmetic","digitCountValue","stepRatio","stepRatioScale","formatStep","mul","getTickOfSingleValue","tickCount","middle","isint","absVal","middleIndex","calculateStep","isFinite","tickMin","tickMax","mod","belowCount","upCount","scaleCount","getNiceTickValues","_ref3","_ref4","_getValidInterval","_getValidInterval2","cormin","cormax","_values","_calculateStep","getTickValuesFixedDomain","_ref5","_ref6","_getValidInterval3","_getValidInterval4","_ref7","_ref8","_getValidInterval5","_getValidInterval6","series","order","s0","stackValue","stackSeries","getValueByDataKey","dataKey","_isNil","_isFunction","getDomainOfDataByKey","filterNil","flattenData","_flatMap","domain","_min","_max","calculateActiveTickIndex","coordinate","_ticks$length","ticks","unsortedTicks","axis","axisType","cur","after","sameDirectionCoord","diffInterval","curInRange","afterInRange","sameInterval","getMainColorOfGraphicItem","_item$props","getLegendProps","legendData","formattedGraphicalItems","legendWidth","legendContent","legendItem","findChildByType","Legend","payload","sectors","iconType","legendType","_item$props2","inactive","getWithHeight","getBarSizeList","globalSize","barSize","_ref5$stackGroups","stackGroups","numericAxisIds","sgs","stackIds","sLen","_sgs$stackIds$j","cateAxisId","barItems","getDisplayName","selfSize","cateId","stackList","getBarPosition","barGap","barCategoryGap","bandSize","_ref6$sizeList","sizeList","maxBarSize","realBarGap","useFull","fullBarSize","newRes","_offset","originalSize","appendOffsetOfLegend","legendBox","legendProps","newOffset","verticalAlign","getDomainOfErrorBars","errorBars","findAllByType","errorBarChild","isErrorBarRelevantForAxis","entryValue","mainValue","errorDomain","prevErrorArr","errorValue","lowerValue","upperValue","parseErrorBarsOfAxis","domains","getDomainOfItemsWithSameAxis","isCategoricalAxis","getCoordinatesOfGrid","hasMin","hasMax","getTicksOfAxis","isGrid","isAll","duplicateDomain","offsetForBand","realScaleType","bandwidth","niceTicks","scaleContent","isCategorical","categoricalDomain","combineEventHandlers","defaultHandler","parentHandler","childHandler","customizedHandler","arg3","arg4","parseScale","chartType","hasBar","d3Scales","_upperFirst","checkDomainOfScale","STACK_OFFSET_MAP","sign","positive","negative","none","stackOffsetNone","silhouette","wiggle","si","sij0","s3","sk","getStackedData","stackItems","offsetType","dataKeys","constant","orderNone","offsetNone","oz","sz","shapeStack","stackOrderNone","getStackGroupsByAxisId","_items","numericAxisId","reverseStackOrder","_item$props3","stackId","axisId","parentGroup","hasStack","childGroup","stackedData","getTicksOfScale","originalDomain","scaleType","tickValues","calculateDomainOfTicks","_domain","getCateCoordinateOfLine","allowDuplicatedCategory","matchedTick","getStackedDataOfItem","itemIndex","getDomainOfStackGroups","startIndex","endIndex","MIN_VALUE_REG","MAX_VALUE_REG","parseSpecifiedDomain","specifiedDomain","dataDomain","allowDataOverflow","_value","getBandSizeOfAxis","isBar","bandWidth","orderedTicks","_sortBy","parseDomainOfCategoryAxis","calculatedDomain","axisChild","_isEqual","getTooltipItem","graphicalItem","_graphicalItem$props","unit","formatter","tooltipType","filterProps","SVGContainerPropKeys","SVGElementPropKeys","EventKeys","includeEvents","inputProps","_isObject","adaptEventHandlers","newHandler","adaptEventsOfChild","originalHandler","getEventHandlerOfChild","baseGetTag","isObject","AuthErrorMessage","suberror","AuthError","subError","correlationId","errDesc","hasOwn","classes","argType","_classes","unsupportedIterableToArray","REACT_BROWSER_EVENT_MAP","mouseover","mouseout","touchcancel","touchend","touchmove","touchstart","Comp","lastChildren","toArray","Children","childType","validateWidthHeight","_el$props","SVG_TAGS","isSvgElement","isChildrenEqual","nextChildren","prevChildren","isSingleChildEqual","prevChild","nextProps","shallowEqual","renderByOrder","renderMap","record","handler","once","results","getReactEventByType","parseChildIndex","initRange","initInterpolator","interpolator","globalScope","ONE","precision","rounding","toExpNeg","toExpPos","LN10","external","decimalError","invalidArgument","exponentOutOfRange","mathfloor","mathpow","isDecimal","BASE","MAX_E","carry","xd","yd","Ctor","checkInt32","digitsToString","ws","indexOfLastWord","getZeroString","absoluteValue","comparedTo","cmp","xdL","ydL","decimalPlaces","dp","dividedBy","divide","dividedToIntegerBy","idiv","eq","exponent","getBase10Exponent","greaterThan","gt","greaterThanOrEqualTo","gte","isInteger","isNegative","isneg","isPositive","ispos","isZero","lessThan","lessThanOrEqualTo","logarithm","wpr","ln","minus","modulo","times","naturalExponential","exp","naturalLogarithm","negated","neg","plus","sd","squareRoot","toExponential","rL","toDecimalPlaces","todp","rm","toInteger","toint","toPower","yIsInt","yn","truncate","toPrecision","toSignificantDigits","tosd","valueOf","multiplyInteger","temp","compare","aL","bL","prod","prodL","qd","rem","remL","rem0","xi","xL","yd0","yL","yz","denominator","getLn10","zs","c0","numerator","parseDecimal","rd","doRound","xdi","xe","xLTy","isExp","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","define","arrayLikeToArray","bimap","d0","d1","r0","polymap","bisect","clamp","unknown","transformer","untransform","piecewise","interpolateValue","rescale","clamper","invert","rangeRound","interpolateRound","continuous","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","createNamedContext","historyContext","Router","computeRootMatch","isExact","componentDidMount","history","listen","_pendingLocation","componentWillUnmount","RouterContext","staticContext","HistoryContext","Lifecycle","onMount","componentDidUpdate","onUpdate","onUnmount","cacheCount","generatePath","generator","pathToRegexp","compilePath","pretty","Redirect","computedMatch","createLocation","prevLocation","locationsAreEqual","matchPath","strict","sensitive","matched","pathCache","regexp","Route","component","isEmptyChildren","addLeadingSlash","stripBasename","basename","createURL","createPath","staticHandler","methodName","invariant","Switch","withRouter","C","wrappedComponentRef","remainingProps","hoistStatics","useHistory","useLocation","RADIAN","radianToDegree","angleInRadian","polarToCartesian","getAngleOfPoint","anotherPoint","distanceBetweenPoints","reverseFormatAngleOfSetor","startCnt","endCnt","inRangeOfSector","sector","_getAngleOfPoint","innerRadius","outerRadius","inRange","_formatAngleOfSector","formatAngleOfSector","formatAngle","Layer","forwardRef","layerClass","_inheritsLoose","BrowserConfigurationAuthErrorMessage","BrowserConfigurationAuthError","createRedirectUriEmptyError","createPostLogoutRedirectUriEmptyError","createStorageNotSupportedError","givenStorageLocation","createRedirectCallbacksNotSetError","createStubPcaInstanceCalledError","createInMemoryRedirectUnavailableError","createEntropyNotProvided","allowArrayLike","return","DomHandler","offsetWidth","paddingLeft","paddingRight","pageYOffset","clientTop","pageXOffset","clientLeft","marginLeft","marginRight","offsetHeight","marginTop","marginBottom","win","innerWidth","innerHeight","getBoundingClientRect","classList","_styles","paddingTop","paddingBottom","borderTopWidth","borderBottomWidth","borderLeftWidth","borderRightWidth","elementDimensions","getHiddenElementDimensions","elementOuterHeight","elementOuterWidth","targetOuterHeight","targetOuterWidth","targetOffset","windowScrollTop","getWindowScrollTop","windowScrollLeft","getWindowScrollLeft","viewport","getViewport","transformOrigin","targetHeight","myArr","atArr","getPositionValue","isOffset","myOffset","getOuterWidth","getOuterHeight","alignWithAt","myXPosition","parents","getParents","scrollableParents","overflowRegex","overflowCheck","styleDeclaration","_iterator","scrollSelectors","dataset","_step2","_iterator2","findSingle","visibility","elementHeight","elementWidth","dimensions","tick","ms","fading","userAgent","nativeElement","HTMLElement","borderTopValue","borderTop","paddingTopValue","containerRect","scroll","itemHeight","empty","removeAllRanges","rangeCount","getRangeAt","getClientRects","calculatedScrollbarWidth","scrollDiv","scrollbarWidth","browser","resolveUserAgent","_step3","visibleFocusableElements","_iterator3","focusableElement","_DomHandler","_PrimeReact","ink","parentElement","getOffset","bindEvents","unbindEvents","onAnimationEnd","ObjectUtils","field","resolveFieldData","deepEquals","arrA","arrB","dateA","dateB","regexpA","regexpB","fields","baseGet","_excluded","OutboundLink","_this$props","eventLabel","trackerNames","eventMeta","sameTarget","normalClick","metaKey","trackLink","_this$props2","handleClick","redactEmail","smallWords","toTitleCase","isLoaded","gaCalls","calls","ga","resetCalls","_isNotBrowser","_debug","_titleCase","_testMode","_alwaysSendToDefaultTracker","_redactEmail","internalGa","_window","TestModeAPI","_format","titleCase","redactingEmail","_str","_gaCommand","_initialize","gaTrackingID","useExistingGa","gaOptions","addTrackers","configsOrTrackingId","trackingId","initialize","testMode","standardImplementation","gaAddress","loadGA","alwaysSendToDefaultTracker","fieldsObject","fieldObject","pageview","rawPath","extraFields","hitType","page","extraLog","modalview","rawModalName","modalName","timing","category","variable","timingCategory","timingVar","timingValue","timingLabel","nonInteraction","transport","eventCategory","eventAction","eventValue","exception","fatal","exDescription","exFatal","plugin","rawName","trackerName","requireString","pluginName","actionType","outboundLink","hitCallback","safetyCallbackCalled","testModeAPI","UnboundOutboundLink","origTrackLink","Defaults","linearish","tickFormat","specifier","nice","prestep","i0","i1","maxIter","tickIncrement","CapacitorPlatforms","defaultPlatformMap","Map","capPlatforms","currentPlatform","platforms","addPlatform","setPlatform","createCapacitorPlatforms","initPlatforms","globalThis","CapacitorException","Capacitor","_a","_b","_c","capCustomPlatform","CapacitorCustomPlatform","cap","Plugins","getPlatform","androidBridge","webkit","messageHandlers","bridge","getPlatformId","isNativePlatform","isPluginAvailable","registeredPlugins","getPluginHeader","PluginHeaders","registerPlugin","jsImplementations","registeredPlugin","jsImplementation","pluginHeader","loadPluginImplementation","createPluginMethod","Unimplemented","methodHeader","methods","rtype","nativePromise","nativeCallback","createPluginMethodWrapper","wrapper","addListener","removeListener","addListenerNative","eventName","callbackId","Set","convertFileSrc","filePath","handleError","pluginMethodNoop","_target","Exception","isLoggingEnabled","isNative","createCapacitor","initCapacitorGlobal","WebPlugin","listeners","windowListeners","listenerFunc","windowListener","registered","addWindowListener","removeWindowListener","windowEventName","pluginEventName","Unavailable","Column","columnKey","sortField","filterField","loadingBody","sortable","sortFunction","filterMatchMode","filterPlaceholder","filterType","filterMaxLength","filterElement","filterFunction","filterHeaderStyle","filterHeaderClassName","headerStyle","headerClassName","bodyStyle","bodyClassName","footerStyle","footerClassName","expander","selectionMode","colSpan","rowSpan","editorValidator","editorValidatorEvent","onEditorInit","onEditorSubmit","onEditorCancel","excludeGlobalFilter","rowReorder","rowReorderIcon","rowEditor","exportable","reorderable","receiver","buildClientInfo","rawClientInfo","crypto","decodedClientInfo","base64Decode","createClientInfoDecodingError","buildClientInfoFromHomeAccountId","homeAccountId","clientInfoParts","CLIENT_INFO_SEPARATOR","utid","eventCenter","EventEmitter","setMaxListeners","SYNC_EVENT","ifOverflowMatches","alwaysShow","ifOverflow","isAbsolute","spliceOne","resolvePathname","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","up","valueEqual","aValue","bValue","stripLeadingSlash","hasBasename","stripTrailingSlash","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","createTransitionManager","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","isActive","canUseDOM","getConfirmation","confirm","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","getDOMLocation","historyState","_window$location","createKey","transitionManager","setState","nextState","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","fromLocation","toLocation","toIndex","fromIndex","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","unblock","unlisten","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","allPaths","baseTag","pushHashPath","nextPaths","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","nextIndex","nextEntries","canGo","isUndefined","isArrayBuffer","isBuffer","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","product","assignValue","thisArg","stripBOM","DataTable","_Paginator","_FilterUtils","_ScrollableView","_TableBody","_TableFooter","_TableHeader","_TableLoadingBody","onPage","onSort","sortOrder","multiSortMeta","onFilter","isStateful","restoreState","onPageChange","onColumnResizeStart","onHeaderCheckboxClick","onColumnDragStart","onColumnDragOver","onColumnDragLeave","onColumnDrop","onVirtualScroll","frozenSelectionMode","stateStorage","localStorage","sessionStorage","stateKey","isCustomStateStorage","paginator","getFirst","getRows","getSortField","getSortOrder","getMultiSortMeta","hasFilter","getFilters","resizableColumns","saveColumnWidths","reorderableColumns","columnOrder","expandedRows","onSelectionChange","customSaveState","storage","getStorage","setItem","onStateSave","removeItem","restoredState","customRestoreState","stateString","getItem","columnWidthsState","columnWidths","tableWidthState","tableWidth","onRowToggle","onStateRestore","columnResizeMode","scrollable","table","setScrollableItemsWidthOnExpandResize","headerCols","bodyCols","totalRecords","Paginator","pageLinkSize","template","paginatorTemplate","rowsPerPageOptions","currentPageReportTemplate","leftContent","paginatorLeft","rightContent","paginatorRight","alwaysShowPaginator","dropdownAppendTo","paginatorDropdownAppendTo","defaultSortOrder","columnSortable","columnSortFunction","columnField","sortMode","sortMeta","getCalculatedSortOrder","newMetaData","addSortMeta","removableSort","removeSortMeta","processData","currentOrder","meta","data1","data2","value1","value2","localeCompare","numeric","multisortField","matchMode","currentFilters","newFilters","isFilterBlank","globalFilter","footerColumnGroup","hasChildrenFooter","hasFooter","containerLeft","resizeColumn","columnEl","resizeColumnProps","columnProps","columnResizing","lastResizerHelperX","bindColumnResizeEvents","resizerHelper","columnWidth","newColumnWidth","nextColumn","nextElementSibling","nextColumnWidth","scrollableView","findParentScrollableView","scrollableBodyTable","scrollableHeaderTable","scrollableFooterTable","resizeColumnIndex","resizeColGroup","onColumnResizeEnd","saveState","unbindColumnResizeEvents","scrollableBody","scrollableHeader","scrollableFooter","scrollableBodyTableWidth","scrollableHeaderTableWidth","isContainerInViewport","calculateScrollbarWidth","colGroup","nextCol","documentColumnResizeListener","onColumnResize","documentColumnResizeEndListener","iconWidth","getHiddenElementOuterWidth","reorderIndicatorUp","iconHeight","getHiddenElementOuterHeight","draggedColumn","findParentHeader","dataTransfer","dropHeader","containerOffset","dropHeaderOffset","targetLeft","columnCenter","reorderIndicatorDown","dropPosition","dragIndex","dropIndex","allowDrop","getColumns","reorderArray","onColReorder","virtualScrollTimer","virtualScroll","virtualScrollDelay","csv","csvSeparator","cellData","exportFunction","msSaveOrOpenBlob","exportFilename","download","encodeURI","editMode","localFilters","filteredValue","localMatch","globalMatch","filterMeta","filterValue","dataFieldValue","filterLocale","localState","lazy","sortSingle","sortMultiple","filterLocal","visibleData","frozenColumns","scrollableColumns","_step4","_iterator4","columnGroup","TableHeader","headerCheckboxSelected","isAllSelected","TableBody","compareSelectionBy","metaKeySelection","onRowClick","onRowDoubleClick","onRowSelect","onRowUnselect","contextMenuSelection","onContextMenuSelectionChange","rowExpansionTemplate","onRowExpand","onRowCollapse","emptyMessage","virtualRowHeight","loading","groupField","rowGroupMode","rowGroupHeaderTemplate","rowGroupFooterTemplate","rowClassName","onRowReorder","rowEditorValidator","onRowEditInit","onRowEditSave","onRowEditCancel","expandableRowGroups","showRowReorderElement","showSelectionElement","TableLoadingBody","TableFooter","headerColumnGroup","ScrollableView","createTableHeader","createTableBody","createTableLoadingBody","frozenBody","frozenValue","createTableFooter","tableStyle","tableClassName","scrollHeight","frozenWidth","_step5","orderedColumns","_iterator5","findColumnByKey","resetColumnOrder","_step6","_iterator6","iconClassName","loadingIcon","restoreColumnWidths","loader","getTotalRecords","autoLayout","rowHover","paginatorTop","paginatorPosition","createPaginator","paginatorBottom","headerFacet","footerFacet","resizeHelper","tableContent","resizeIndicatorUp","resizeIndicatorDown","renderLoader","getFrozenSelectionModeInColumn","frozenView","getFrozenColumns","getScrollableColumns","createScrollableView","frozenHeaderColumnGroup","frozenFooterColumnGroup","tableHeader","tableBody","tableFooter","role","tooltipWrapper","tooltipEl","Tooltip","_reactDom","unmountComponentAtNode","cloneElement","_ConnectedOverlayScrollHandler","showEvent","hideEvent","mouseTrack","tooltipTextEl","updateTooltipState","updateText","autoZIndex","containerEl","baseZIndex","generateZIndex","applyDelay","sendCallback","onBeforeShow","onShow","bindDocumentResizeListener","bindScrollListener","clearTimeouts","onBeforeHide","unbindDocumentResizeListener","unbindScrollListener","scrollHandler","mouseTrackLeft","mouseTrackTop","findCollisionPosition","flipfitCollision","currentPosition","_currentPosition$at","documentResizeListener","_this$getEvents","getEvents","_this$getEvents2","delayProp","showDelayTimeout","updateDelayTimeout","hideDelayTimeout","bindTargetEvent","setEvent","loadTargetEvents","prevState","unbindTargetEvent","tooltipClass","renderElement","showDelay","updateDelay","hideDelay","stringCache","widthCache","SPAN_STYLE","border","STYLE_LIST","getStyleString","getStringSize","Global","isSsr","styleString","measurementSpan","measurementSpanStyle","styleKey","calculateChartCoordinate","chartX","chartY","AuthorityType","renderRadialLabel","labelProps","labelAngle","clockWise","deltaAngle","getDeltaAngle","dominantBaseline","xlinkHref","_props$className","textBreakAll","isPolarLabel","isPolar","positionAttrs","midAngle","_polarToCartesian","verticalAnchor","_polarToCartesian2","getAttrsOfPolarLabel","parentViewBox","verticalSign","verticalOffset","verticalEnd","verticalStart","horizontalSign","horizontalOffset","horizontalEnd","horizontalStart","_attrs2","_attrs3","sizeAttrs","getAttrsOfCartesianLabel","breakAll","parseViewBox","labelViewBox","parseLabel","renderCallByParent","parentProps","checkPropsLabel","explicitChildren","implicitLabel","freeGlobal","freeSelf","formatDecimalParts","formatAxisMap","axisMap","chartName","ids","leftMirror","rightMirror","topMirror","bottomMirror","calculatedPadding","needSpace","orientation","_axis$padding","mirror","reversed","offsetKey","smallestDistanceBetweenValues","sortedValues","smallestDistanceInPercent","rangeWidth","halfBand","_parseScale","finalAxis","rectWithPoints","rectWithCoords","ScaleHelper","bandAware","_offset2","EPS","createLabeledScales","scales","coord","_mapValues","isInRange","_every","BrowserRouter","createHistory","resolveToLocation","normalizeToLocation","forwardRefShim","LinkAnchor","innerRef","navigate","isModifiedEvent","forwardedRef","isDuplicateNavigation","ariaCurrent","activeClassName","activeStyle","classNameProp","isActiveProp","locationProp","styleProp","escapedPath","classnames","joinClassnames","responseType","response","status","dispatchEvent","MouseEvent","createEvent","initMouseEvent","saveAs","HTMLAnchorElement","webkitURL","autoBom","innerText","safari","FileReader","onloadend","readAsDataURL","N","L","print","modify","I","perm","processOwnerPassword","encryptionKey","lsbFirstWord","hexToBytes","subscribe","unsubscribe","publish","getTopics","objectNumber","gState","B","colors","xStep","yStep","stream","cloneIndex","E","compress","compressPdf","encryption","userPassword","ownerPassword","userPermissions","userUnit","floatPrecision","defaultPathOperation","putOnlyUsedFonts","internal","__private__","PubSub","getPdfVersion","setPdfVersion","a0","a3","a4","a5","a6","a7","a8","a9","a10","b0","b3","b4","b5","b6","b7","b8","b9","b10","c1","c2","c3","c4","c5","c6","c7","c8","c9","c10","dl","legal","ledger","tabloid","getPageFormats","getPageFormat","COMPAT","ADVANCED","saveGraphicsState","Vt","_t","Rr","restoreGraphicsState","combineFontStyleAndFontWeight","advancedAPI","compatAPI","isAdvancedAPI","D","roundToPrecision","hpf","R","f2","T","f3","H","setPrecision","W","V","G","getFileId","Y","setFileId","Ye","J","convertDateToPDFDate","getTimezoneOffset","Q","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","convertPDFDateToDate","K","setCreationDate","Z","getCreationDate","padd2","tt","padd2Hex","et","rt","nt","ot","ut","Qt","Kt","te","setCustomOutputDestination","ht","resetCustomOutputDestination","ft","write","getArrayBuffer","getStandardFonts","mt","vt","bt","R2L","setR2L","getR2L","yt","wt","setZoomMode","getZoomMode","Nt","Lt","setPageMode","getPageMode","At","setLayoutMode","getLayoutMode","setDisplayMode","subject","author","keywords","creator","getDocumentProperty","getDocumentProperties","setDocumentProperties","setProperties","setDocumentProperty","St","Pt","kt","It","Ft","Ct","jt","Ot","Bt","Mt","Et","qt","Dt","Rt","Tt","Ut","hotfixes","zt","Ht","Wt","_matrix","shx","decompose","shy","tx","ty","multiply","skew","inversed","Cr","applyToRectangle","jr","Matrix","Gt","matrixMult","Yt","unitMatrix","identityMatrix","Jt","ShadingPattern","TilingPattern","addShadingPattern","beginTilingPattern","Br","endTilingPattern","Xt","newObject","Zt","newObjectDeferred","newAdditionalObject","objId","ee","decodeColorString","encodeColorString","ch1","ch2","ch3","ch4","pdfColorType","ne","ie","putStream","alreadyAppliedFilters","addLength1","objectId","encryptor","additionalKeyValues","API","processDataByFilters","reverseChain","ae","putPage","contentsObjId","rootDictionaryObjId","resourceDictionaryObjId","mediaBox","bottomLeftX","bottomLeftY","topRightX","topRightY","cropBox","bleedBox","trimBox","artBox","pageContext","pageNumber","oe","putPages","se","isAlreadyPutted","postScriptName","encoding","ce","ue","pages","he","le","fe","resourcesOid","objectOid","pe","ge","me","ve","be","oid","toHexString","ye","we","Ne","Le","Ae","Se","fontName","Pe","isStandardFont","metadata","ke","dictionary","foo","bar","Fe","sourceEncoding","outputEncoding","autoencode","codePages","noBOM","Ce","pdfEscape","je","beginPage","Me","Oe","fr","Lr","kr","Ir","Be","setPage","Ee","getNumberOfPages","qe","disableWarning","noFallback","normal","De","putInfo","Re","putCatalog","Te","putTrailer","Ue","putHeader","ze","putXRef","He","buildDocument","We","getBlob","Ve","filename","pdfObjectUrl","pdfJsUrl","contentWindow","PDFViewerApplication","Ge","Je","Xe","getPageInfo","Ke","getPageInfoByObjId","Ze","getCurrentPageInfo","addPage","insertPage","movePage","deletePage","scope","flags","lineHeightFactor","lr","scaleFactor","TabLen","baseline","splitTextToSize","mutex","activeFontKey","activeFontSize","rotationDirection","charSpace","_r","setCharSpace","getCharSpace","horizontalScale","renderingMode","usedRenderingMode","pageSize","getStringUnitWidth","doKerning","yr","isHex","xr","$e","clipEvenOdd","discardPath","Qe","isValidStyle","setDefaultPathOperation","tr","getStyle","er","close","rr","fillEvenOdd","fillStroke","fillStrokeEvenOdd","ar","nr","ir","or","setGState","sr","cr","ur","curveTo","triangle","roundedRect","SQRT2","setFont","hr","getFont","getFontList","addFont","dr","getLineWidth","setLineWidth","setLineDashPattern","gr","getLineHeight","mr","setLineHeightFactor","vr","getLineHeightFactor","lineHeight","getHorizontalCoordinate","getVerticalCoordinate","wr","getHorizontalCoordinateString","Nr","getVerticalCoordinateString","strokeColor","getStrokeColor","getDrawColor","setStrokeColor","setDrawColor","Ar","fillColor","getFillColor","setFillColor","textColor","Sr","getTextColor","setTextColor","Pr","CapJoinStyles","butt","but","miter","1","rounded","2","projecting","project","square","bevel","setLineCap","setLineJoin","setLineMiterLimit","setMiterLimit","GState","Fr","addGState","setCurrentTransformationMatrix","Or","currentPage","pagesContext","qr","outputDestination","Dr","Tr","Mr","Er","beginFormObject","endFormObject","doFormObject","getFormObject","returnPromise","unload","getPageWidth","setPageWidth","getPageHeight","setPageHeight","getCoordinateString","collections","newObjectDeferredBegin","encryptionOptions","getEncryptor","getPDFVersion","hasHotfix","__acroform__","BBox","setBit","clearBit","getBit","getBitForPdf","setBitForPdf","clearBitForPdf","calculateCoordinates","lowerLeft_X","lowerLeft_Y","upperRight_X","upperRight_Y","appearanceStreamContent","DV","_V","maxFontSize","multiline","textAlign","xForms","acroFormDictionaryRoot","printedOut","isInitialized","annotations","acroformPlugin","FieldNum","_eventID","Fields","hasAnnotation","Kids","Rect","DA","createDefaultAppearanceStream","getKeyValueListForStream","hasAppearanceStream","arrayToPdfArray","_objId","_scope","FT","getOptions","setOptions","addOption","removeOption","combo","edit","CA","pushButton","caption","appearanceState","_AppearanceType","RadioButton","createAppearanceStream","optionName","setAppearance","getCA","createOption","CheckBox","password","On","YesNormal","YesPushDown","Off","OffPushDown","Bezier_C","calculateCross","x4","x3","addField","AcroFormChoiceField","AcroFormListBox","AcroFormComboBox","AcroFormEditBox","AcroFormButton","AcroFormPushButton","AcroFormRadioButton","AcroFormCheckBox","AcroFormTextField","AcroFormPasswordField","AcroFormAppearance","AcroForm","ChoiceField","ListBox","ComboBox","EditBox","PushButton","TextField","PasswordField","Appearance","__addimage__","PNG","TIFF","JPEG","JPEG2000","GIF87a","GIF89a","WEBP","BMP","getImageFileTypeByImageData","Uint8ClampedArray","colorSpace","INDEXED","palette","sMask","DEVICE_CMYK","bitsPerComponent","decodeParameters","transparency","predictor","addImage_images","loadFile","alias","color_spaces","DEVICE_RGB","DEVICE_GRAY","CAL_GREY","CAL_RGB","LAB","ICC_BASED","PATTERN","SEPARATION","DEVICE_N","DCT_DECODE","FLATE_DECODE","LZW_DECODE","JPX_DECODE","JBIG2_DECODE","ASCII85_DECODE","ASCII_HEX_DECODE","RUN_LENGTH_DECODE","CCITT_FAX_DECODE","image_compression","FAST","MEDIUM","SLOW","sHashCode","byteLength","validateStringAsBase64","extractImageFromDataUrl","charset","supportsArrayBuffer","Uint32Array","Int8Array","Int16Array","Uint16Array","Int32Array","Float32Array","Float64Array","binaryStringToUint8Array","arrayBufferToBinaryString","subarray","addImage","imageData","compression","convertBase64ToBinaryString","getImageProperties","fileType","contents","_nameMap","finalBounds","magFactor","createAnnotation","textWithLink","getTextWidth","1569","1570","1571","1572","1573","1574","1575","1576","1577","1578","1579","1580","1581","1582","1583","1584","1585","1586","1587","1588","1589","1590","1591","1592","1593","1594","1601","1602","1603","1604","1605","1606","1607","1608","1609","1610","1649","1655","1657","1658","1659","1662","1663","1664","1667","1668","1670","1671","1672","1676","1677","1678","1681","1688","1700","1702","1705","1709","1711","1713","1715","1722","1723","1726","1728","1729","1733","1734","1735","1736","1737","1739","1740","1744","1746","1747","65247","65154","65156","65160","65166","65248","65165","65258","1617","1612","1613","1614","1615","1616","__arabicParser__","isInArabicSubstitutionA","isArabicLetter","isArabicEndLetter","isArabicAlfLetter","arabicLetterHasIsolatedForm","arabicLetterHasFinalForm","arabicLetterHasInitialForm","arabicLetterHasMedialForm","resolveLigatures","isArabicDiacritic","getCorrectForm","processArabic","autoPrint","addJS","pageWrapXEnabled","pageWrapX","pageWrapYEnabled","pageWrapY","pdf","context2d","_canvas","__cell__","headerFunction","margins","lastCell","setHeaderFunction","getTextDimensions","cellAddPage","tableHeaderRow","printHeaders","printHeaderRow","autoSize","headerBackgroundColor","headerTextColor","table_font_size","setTableHeaderRow","rowStart","cellStart","table_x","table_y","italic","oblique","family","weight","stretch","fixed","monospace","terminal","cursive","fantasy","serif","trimLeft","isStrokeTransparent","strokeOpacity","isFillTransparent","fillOpacity","clip_path","currentPoint","lastPoint","lineDash","prevPageLastElemOffset","ignoreClearRect","fontFaces","defaultFontFamily","genericFontFamilies","arial","Arial","verdana","Verdana","helvetica","Helvetica","getLineDash","isIdentity","counterclockwise","arcTo","strokeRect","ctxStack","isCanvasGradient","setTransform","autoPaging","deltas","colorStops","y3","y4","prevLineDash","overrideMimeType","loadImageFile","html2canvas","DOMPurify","dompurify","sanitize","convert","setProgress","enableLinks","jsPDF","toContainer","toCanvas","toImg","toPdf","thenList","setPageSize","windowWidth","javascriptEnabled","float","onrendered","toContext2d","allowTaint","imageTimeout","logging","removeContainer","foreignObjectRendering","useCORS","windowHeight","quality","outputImg","outputPdf","doCallback","setMargin","getPageSize","updateProgress","thenCore","thenExternal","catchExternal","using","export","worker","outline","createNamedDestinations","makeRef","genIds_r","renderRoot","renderItems","objStart","count_r","objEnd","makeString","processJPEG","numcomponents","imgData","readUInt32","colorType","compressionMethod","filterMethod","interlaceMethod","numFrames","numPlays","frames","read","readUInt16","disposeOp","blendOp","indexed","grayscale","rgb","hasAlphaChannel","pixelBitlength","decodePixels","decodePalette","copyToImageData","_decodedPalette","decodeFrames","createImageData","renderFrame","_timeout","stopAnimation","_png","has_local_palette","palette_offset","palette_size","data_offset","data_length","transparent_index","interlaced","disposal","loopCount","frameInfo","decodeAndBlitFrameBGRA","decodeAndBlitFrameRGBA","datav","DataView","is_with_alpha","bottom_up","parseHeader","parseBGR","jc","Qb","qb","nd","pd","Ca","Ka","oa","Jd","Yc","Zc","Sb","Ra","Ur","zr","Hr","Mb","Xa","ud","hd","jd","Ea","Hn","Wn","Vn","Gn","eb","fb","ea","Tc","Ed","Cd","Fd","Ab","fa","Rd","RGBA","kb","Pd","Qd","Id","fd","Md","hb","ib","da","bd","cd","Da","Sd","ob","ba","ka","vi","cc","dc","Mc","Nc","ec","fc","Rc","Tn","Kb","Sn","An","ma","qn","Rn","Un","memory","Ib","Jb","Nd","Oa","Ci","ji","Si","Mi","Bi","Oi","Pi","ki","Ei","qi","Dc","$n","xc","vc","md","Wb","Ya","ab","Ta","Ua","gc","nc","hc","Gr","Wr","Vr","Zr","$r","Yr","Ba","va","ca","Ma","En","Qr","tn","Dn","nn","en","xn","zn","rn","tb","Xr","Pb","Wa","wc","wd","vb","ti","yc","xb","gi","VP8LMapColor32b","Jr","VP8LMapColor8b","Kr","Oc","Qn","Xn","Zn","Jn","Yn","Kn","td","Rb","Kd","Ld","Ud","Td","Fb","Bb","Cb","Zb","Lb","Yb","jb","Wc","Xc","wb","Tb","zd","vd","od","ld","La","dd","tc","Na","la","Sc","Eb","Qc","ia","lc","Za","Ob","$b","Ad","Gc","Hc","Dd","uc","Nb","wa","ya","aa","cb","Od","Kc","ed","Qa","Ic","$c","Aa","Xb","Va","Hb","zb","yb","Ub","za","Jc","Pa","Bd","kc","Ac","Bc","zc","Gd","Hd","rb","sb","oc","sa","ta","qa","ra","Ha","Ia","Ec","ja","Vb","Fc","gd","Fa","Cc","qc","Gb","Uc","mb","nb","rc","Ga","Vc","put","ac","bc","ha","ni","ei","ri","hi","ai","Ri","Ui","Vd","Cn","Pn","kn","In","Fn","an","cn","un","hn","sn","dn","pn","gn","mn","vn","bn","wn","Nn","Ln","fi","li","di","ci","oi","Bn","jn","Mn","kd","na","xa","gb","Ja","Sa","Lc","$a","ic","mc","bi","wi","Ni","Li","Ai","Fi","Ii","Di","zi","Predictor0","Predictor1","Predictor2","Predictor3","Predictor4","Predictor5","Predictor6","Predictor7","Predictor8","Predictor9","Predictor10","Predictor11","Predictor12","Predictor13","PredictorAdd0","PredictorAdd1","PredictorAdd2","ColorIndexInverseTransform","MapARGB","VP8LColorIndexInverseTransformAlpha","MapAlpha","VP8LPredictorsAdd","VP8LPredictors","VP8LPredictorsAdd_C","VP8LPredictors_C","UpsampleRgbLinePair","UpsampleBgrLinePair","UpsampleRgbaLinePair","UpsampleBgraLinePair","UpsampleArgbLinePair","UpsampleRgba4444LinePair","UpsampleRgb565LinePair","Ti","WebPDecodeRGBA","src_off","src_size","feature_flags","canvas_width","canvas_height","bgcolor","loop_count","offset_x","offset_y","rgbaoutput","dataurl","loop_counter","imgwidth","imgheight","processPNG","processGIF89A","processGIF87A","fileSize","getUint32","reserved","headerSize","getInt32","planes","getUint16","bitPP","rawSize","importantColors","getUint8","quad","bit1","bit4","bit8","bit15","bit16","bit24","bit32","processBMP","processWEBP","processRGBA","setLanguage","languageSettings","isSubscribed","af","sq","hy","as","ast","az","eu","bs","bg","zh","cv","co","nl","eo","fo","fj","fur","gl","gu","hu","iu","ks","kk","km","ky","tlh","ko","lv","mk","ml","mo","nv","ng","no","om","qu","ro","ru","sg","sl","so","es","sw","sv","th","tig","tk","uk","hsb","vo","xh","zu","languageCode","getCharWidthsArray","Unicode","fof","kerning","widthOfString","widthOfGlyph","characterToGlyph","textIndent","lineIndent","__fontmetrics__","uncompress","WinAnsiEncoding","Courier","ZapfDingbats","existsFileInVFS","getFileFromVFS","TTFFont","glyIdsUsed","addSvgAsImage","fromString","putTotalPages","pdfEscape16","viewerPreferences","HideToolbar","explicitSet","valueSet","pdfVersion","HideMenubar","HideWindowUI","FitWindow","CenterWindow","DisplayDocTitle","NonFullScreenPageMode","Direction","ViewArea","ViewClip","PrintArea","PrintClip","PrintScaling","Duplex","PickTrayByPDFSize","PrintPageRange","NumCopies","viewerpreferences","__metadata__","namespaceuri","metadata_object_number","addMetadata","toUnicode","subset","PDFObject","stemV","italicAngle","ascender","decender","capHeight","rawData","hmtx","cmap","codeMap","vFS","addFileToVFS","__bidiEngine__","EN","AN","5","6","7","32","251","254","255","hiLevel","doBidiReorder","isInputVisual","isOutputVisual","isInputRtl","isOutputRtl","isSymmetricSwapping","readString","registerTTF","directory","hhea","maxp","post","os2","loca","glyf","exists","lineGap","xMin","yMin","xMax","yMax","italic_angle","xHeight","familyClass","isSerif","isScript","isFixedPitch","forGlyph","advance","readByte","writeByte","writeUInt32","readInt32","writeInt32","writeUInt16","readInt16","writeInt16","writeString","readShort","writeShort","readLongLong","writeLongLong","readInt","writeInt","scalarType","tableCount","searchRange","entrySelector","rangeShift","tables","checksum","__super__","file","raw","revision","checkSumAdjustment","magicNumber","created","modified","macStyle","lowestRecPPEM","fontDirectionHint","indexToLocFormat","glyphDataFormat","platformID","encodingID","language","isUnicode","new","charMap","subtable","maxGlyphID","LN2","advanceWidthMax","minLeftSideBearing","minRightSideBearing","xMaxExtent","caretSlopeRise","caretSlopeRun","caretOffset","metricDataFormat","numberOfMetrics","averageCharWidth","weightClass","widthClass","ySubscriptXSize","ySubscriptYSize","ySubscriptXOffset","ySubscriptYOffset","ySuperscriptXSize","ySuperscriptYSize","ySuperscriptXOffset","ySuperscriptYOffset","yStrikeoutSize","yStrikeoutPosition","panose","charRange","vendorID","firstCharIndex","lastCharIndex","winAscent","winDescent","codePageRange","defaultChar","breakChar","maxContext","underlinePosition","underlineThickness","minMemType42","maxMemType42","minMemType1","maxMemType1","glyphNameIndex","names","offsets","numGlyphs","languageID","nameID","strings","copyright","fontSubfamily","uniqueSubfamily","postscriptName","trademark","manufacturer","designer","vendorUrl","designerUrl","license","licenseUrl","preferredFamily","preferredSubfamily","compatibleFull","sampleText","maxPoints","maxContours","maxCompositePoints","maxComponentContours","maxZones","maxTwilightPoints","maxStorage","maxFunctionDefs","maxInstructionDefs","maxStackElements","maxSizeOfInstructions","maxComponentElements","maxComponentDepth","metrics","lsb","leftSideBearings","glyphFor","lengthOf","numberOfContours","compound","glyphIDs","glyphOffsets","unicodes","generateCmap","glyphsFor","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","coefficient","toLocaleString","InteractionRequiredServerErrorMessage","InteractionRequiredAuthSubErrorMessage","InteractionRequiredAuthErrorMessage","native_account_unavailable","timestamp","traceId","claims","InteractionRequiredAuthError","isInteractionRequiredError","isInteractionRequiredErrorCode","isInteractionRequiredSubError","isInteractionRequiredErrorDesc","irErrorCode","createNoTokensFoundError","createNativeAccountUnavailableError","XLSX","current_codepage","current_ansi","cptable","VALID_ANSI","CS2CP","77","128","129","130","134","136","161","162","163","177","178","186","204","222","238","69","set_ansi","set_cp","reset_cp","char_codes","debom","utf16leread","utf16beread","_getchar","_getansi","utils","e1","e2","e3","e4","has_buf","Buffer","Buffer_from","nbfs","enc","alloc","allocUnsafe","new_raw_buf","new_unsafe_buf","s2a","s2ab","view","a2s","ab2a","bconcat","bufs","chr0","chr1","SSF","make_ssf","_strrev","pad0","pad_","rpad_","p2_32","pad0r","pad0r1","pad0r2","isgeneral","days","months","init_table","table_fmt","default_map","defi","default_str","frac","mixed","sgn","P_2","P_1","Q_2","Q_1","parse_date_code","date","time","dow","dout","date1904","setDate","getDay","fix_hijri","basedate","dnthresh","base1904","datenum_local","epoch","_general_int","general_fmt_num","trailing_zeroes_and_decimal","strip_decimal","mantissa_zeroes_and_decimal","exp_with_single_digit","LOG10E","small_exp","large_exp","normalize_exp","general_fmt","write_date","fmt","ss0","ss","outl","commaify","_general_num","_general","write_num","pct1","frac1","dec1","closeparen","phone","hashq","rnd","dec","_frac","write_num_flt","ffmt","write_num_cm","sfmt","write_num_pct","write_num_exp","period","fakee","$$","$3","aval","den","myn","myd","write_num_f1","lres","rres","flr","write_num_int","write_num_cm2","write_num_pct2","write_num_exp2","write_num_f2","split_fmt","in_str","_split","abstime","fmt_is_date","eval_fmt","flen","lst","ssm","jj","nstr","myv","ostr","vv","decpt","lasti","retval","is_date","_eval","cfregex","cfregex2","chkcond","thresh","dateNF","lat","choose_fmt","load_entry","_table","get_table","load_table","tbl","CRC32","XLMLFormatMap","SSFImplicit","dateNFregex","signed_crc_table","bstr","seed","crc32_buf_8","_fs","CFB","dirname","write_dos_date","hms","write_shift","ymd","parse_extra_field","prep_blob","read_shift","tgt","mtime","atime","ctime","get_fs","parse_zip","mver","nmfs","difat_sec_cnt","dir_start","minifat_start","difat_start","ssz","fat_addrs","mv","chk","HEADER_SIGNATURE","check_get_mver","check_shifts","dir_cnt","nsectors","sectorify","sleuth_fat","cnt","ENDOFCHAIN","__readInt32LE","sector_list","chkd","buf_chain","modulus","seen","addr","nodes","__toBuffer","make_sector_list","Paths","FileIndex","FullPaths","files","mini","minifat_store","namelen","__utf16le","clsid","read_date","get_sector_list","get_mfat_entry","read_directory","FI","FP","dad","build_full_paths","MSSZ","new_buf","__readUInt32LE","init_cfb","cfb","CLSID","nm","rebuild_cfb","seed_cfb","_file","HEADER_CLSID","namecmp","elt","_write","_opts","cdirs","start_cd","fcnt","fp","crcs","sz_cd","namebuf","outbuf","_zlib","deflateRawSync","_deflate","write_zip","mini_size","fat_size","mfat_cnt","fat_base","fat_cnt","difat_cnt","HEADER_SIG","chainit","consts","DIFSECT","FATSECT","_nm","MAXREGSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","CLEN_ORDER","LEN_LN","DST_LN","bit_swap_8","use_typed_arrays","bitswap8","bit_swap_n","rev","read_bits_2","bl","read_bits_3","read_bits_5","read_bits_7","read_bits_n","realloc","zero_fill_array","_deflateRaw","boff","build_tree","clens","MAX","maxlen","ccode","bl_count","ctree","cleni","fix_lmap","fix_dmap","dlens","dyn_lmap","dyn_dmap","dyn_cmap","dyn_len_1","dyn_len_2","dyn","_HLIT","_HDIST","_HCLEN","read_bits_4","next_code","hcodes","h1","_inflate","usz","woff","OL","max_len_1","max_len_2","len_eb","dst_eb","dst","inflate","warn_or_throw","wrn","csz","efsz","fcsz","EF","parse_local_file","meth","setMilliseconds","setFullYear","setMonth","setHours","setMinutes","setSeconds","parse_dos_date","crc32","_csz","_usz","ef","InflRaw","InflateRaw","_processChunk","_finishFlushFlag","bytesRead","_inflateRawSync","_crc32","cfb_add","unsafe","fpath","cfb_gc","UCFullPaths","UCPaths","UCPath","readFileSync","read_file","writeFileSync","writeFile","cfb_new","cfb_del","cfb_mov","old_name","new_name","ReadShift","CheckField","use_zlib","zlib","_inflateRaw","blobify","a2u","write_dl","fname","utf8write","IE_SaveFile","msSaveBlob","chrome","downloads","File","o2","evert_key","evert","evert_num","datenum","refdate","refoffset","numdate","setTime","parse_isodur","sec","good_pd_date","good_pd","parseDate","fixdate","cc2str","dup","fuzzynum","fuzzydate","getYear","jszip","safe_split_regex","getdatastr","asNodeBuffer","asBinary","getContent","getdata","getdatabin","safegetzipfile","zip","getzipfile","getzipdata","safe","getzipstr","zip_add_file","zip_new","resolve_path","JSZipSync","XML_HEADER","attregexg","tagregex","nsregex","nsregex2","parsexmltag","skip_root","skip_LC","quot","strip_ns","encodings","rencoding","unescapexml","encregex","coderegex","decregex","charegex","escapexml","escapexmltag","htmlcharegex","escapehtml","xlml_fixstr","entregex","entrepl","xlml_unfixstr","parsexmlbool","utf8read","utf8readb","ww","corpus","utf8readc","matchtag","mtcache","htmldecode","entities","vtregex","vt_cache","vtvregex","vtmregex","parseVector","baseType","WTF","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","__lpp4","___lpp4","XMLNS","XLMLNS","___toBuffer","__readUInt16LE","___utf16le","__hexlify","___hexlify","__utf8","__readUInt8","___utf8","__lpstr","___lpstr","__cpstr","___cpstr","__lpwstr","___lpwstr","__double","___double","__8lpp4","___8lpp4","read_double_le","is_buf","readUInt32LE","readDoubleLE","__readInt16LE","__readInt32BE","oI","oR","loc","oo","lens","__writeUInt16LE","WriteShift","cppayload","__writeUInt32LE","av","write_double_le","__writeInt32LE","hexstr","fld","parsenoop","recordhopper","tmpbyte","cntbyte","RT","XLSBRecordEnum","buf_array","blksz","newblk","curbuf","endbuf","_bufs","write_record","XLSBRE","shift_cell_xls","cRel","rRel","biff","shift_range_xls","encode_cell_xls","encode_cell","cstr","fix_row","encode_range_xls","encode_row","encode_col","decode_row","rowstr","decode_col","colstr","decode_cell","decode_range","encode_range","safe_decode_range","safe_format_cell","XF","numFmtId","format_cell","sheet_to_workbook","sheet","sheets","SheetNames","Sheets","sheet_add_aoa","_ws","dense","_R","_C","_origin","_range","__R","__C","sheetStubs","cellDates","cell_ref","aoa_to_sheet","write_UInt32LE","parse_XLWideString","cchCharacters","write_XLWideString","_null","parse_StrRun","ich","ifnt","parse_RichStr","rgsStrRun","dwSizeStrRun","_crypto","rc4","md5","createHash","digest","make_offcrypto","parse_BrtCommentText","write_BrtCommentText","write_StrRun","parse_XLSBCell","iStyleRef","write_XLSBCell","parse_XLSBCodeName","write_XLSBCodeName","parse_XLNullableWideString","write_XLNullableWideString","parse_XLNameWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","parse_RfX","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","write_BrtColor","auto","theme","nTS","tint","parse_ClipboardFormatOrString","3","8","14","VT_CUSTOM","DocSummaryPIDDSI","VT_VECTOR","SummaryPIDSI","SpecialProperties","DocSummaryRE","SummaryRE","CountryEnum","XLSFillPattern","XLSIcv","BErr","RBErr","ct2type","CT_LIST","workbooks","xlsx","xlsm","xlsb","xlam","xltx","strs","comments","charts","dialogs","macros","type2ct","evert_arr","CT","CTYPE_XML_ROOT","xsd","xsi","CTYPE_DEFAULTS","rels","RELS","WB","SHEET","HLINK","VML","XPATH","XMISS","XLINK","CXML","CXMLP","VBA","get_rels_path","parse_rels","currentFilePath","Target","TargetMode","canonictarget","RELS_ROOT","write_rels","rid","RELS_EXTERN","add_rels","rId","relobj","targetmode","write_rdf_type","write_meta_ods","CORE_PROPS","CORE_PROPS_REGEX","parse_core_props","CORE_PROPS_XML_ROOT","dcterms","dcmitype","cp_doit","EXT_PROPS","load_props_pairs","HP","TOP","hp","Worksheets","NamedRanges","DefinedNames","Chartsheets","ChartNames","EXT_PROPS_XML_ROOT","CUST_PROPS","custregex","CUST_PROPS_XML_ROOT","write_cust_props","pid","write_vt","XLMLDocPropsMap","Title","Subject","Author","Keywords","Comments","LastAuthor","RevNumber","Application","LastPrinted","CreatedDate","ModifiedDate","Category","Manager","Company","AppVersion","ContentStatus","Identifier","Language","evert_XLMLDPM","xlml_set_prop","Props","parse_FILETIME","dwLowDateTime","dwHighDateTime","parse_lpstr","parse_lpwstr","parse_VtStringBase","stringType","parse_VtString","parse_VtVecUnalignedLpstr","parse_VtVecUnalignedLpstrValue","parse_VtHeadingPair","parse_TypedPropertyValue","parse_VtVecHeadingPair","cElements","parse_VtVecHeadingPairValue","parse_dictionary","CodePage","dict","parse_BLOB","bytes","Size","parse_ClipboardData","parse_VtUnalignedString","write_TypedPropertyValue","write_FILETIME","parse_PropertySet","PIDSI","start_addr","NumProps","Dictionary","DictObj","PropID","Offset","PropH","fail","piddsi","oldpos","parsebool","XLSPSSkip","guess_property_type","write_PropertySet","RE","hdr","piao","pio","pinfo","parse_PropertySetStream","NumSets","FMTID0","FMTID1","Offset0","Offset1","SystemIdentifier","PSet1","PSet0","rval","FMTID","write_PropertySetStream","entries2","clsid2","ps0","ps1","parsenoop2","writebool","parseuint16","writeuint16","parseuint16a","parslurp","parse_ShortXLUnicodeString","cch","parse_XLUnicodeRichExtendedString","cbExtRst","fExtSt","fRichSt","cRun","write_XLUnicodeRichExtendedString","xlstr","otext","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","write_XLUnicodeString","parse_HyperlinkMoniker","extra","parse_URLMoniker","ansiPath","parse_FileMoniker","parse_HyperlinkString","write_Hyperlink","hl","parse_LongRGBA","parse_LongRGB","parse_XLSCell","ixfe","write_XLSCell","parse_XTI","parse_RkRec","parse_Ref8U","rwFirst","rwLast","write_Ref8U","parse_RefU","parse_Ref","parse_FtCmo","parse_FtSkip","FtTab","cf","fSharedNote","parse_BOF","BIFFVer","write_BOF","bookType","write_BoundSheet8","hs","parse_DefaultRowHeight","miyRw","Unsynced","DyZero","ExAsc","ExDsc","write_Format","parse_BIFF2Format","parse_Dimensions","write_XF","ixfeP","parse_BoolErr","parse_Bes","write_BoolErr","os","write_Bes","parse_XLHeaderFooter","parse_ExternName","fBuiltIn","fWantAdvise","fWantPict","fOle","fOleLink","fIcon","sbcch","udfName","parse_AddinUdf","Name","XLSLblBuiltIn","parse_Lbl","chKey","cce","itab","npflen","rgce","rgcb","parse_Rgce","parse_RgbExtra","parse_NameParsedFormula","parse_ExternSheet","parse_BIFF5ExternSheet","parse_Array","parse_ArrayParsedFormula","parse_BIFF5OT","write_HLink","write_HLinkTooltip","TT","parse_ColInfo","cellStyles","colFirst","colLast","coldx","cchName","parse_Blank","parse_Scl","parse_String","DBF","dbf_codepage_map","dbf_reverse_map","dbf_to_sheet","vfp","l7","nrow","fpos","rlen","current_cp","hend","sheetRows","dbf_to_aoa","_RLEN","to_workbook","to_sheet","from_sheet","codepage","aoa","sheet_to_json","headers","hcnt","coltypes","guess","_guess","hf","_f","rout","SYLK","sylk_escapes","AA","BA","HA","JA","AE","BE","CE","HE","AI","BI","CI","HI","AO","BO","CO","DO","HO","AU","BU","CU","HU","Hi","Ao","Bo","Co","Do","Ho","Au","Bu","Cu","Hu","KC","DN","Hy","sylk_char_regex","sylk_char_fn","decode_sylk_char","newcc","sylk_to_aoa_str","records","rj","formats","next_cell_format","sht","rowinfo","colinfo","Mval","rstr","C_seen_K","C_seen_X","formula","rc_to_a1","F_seen","hidden","wch","process_col","hpt","hpx","pt2px","sylk_to_sheet","aoasht","sylk_to_aoa","write_ws_cell_sylk","a1_to_rc","preamble","RS","rec","wpx","width2px","px2char","px2pt","write_ws_rows_sylk","DIF","dif_to_aoa_str","dif_to_sheet","dif_to_aoa","push_field","topic","push_value","ETH","eth_to_sheet","eth_to_aoa","sep","sheet_to_eth_data","PRN","set_text_arr","guess_seps","guess_sep_weights","dsv_to_sheet_str","instr","guess_sep","sepcc","_re","dateNF_regex","finish_cell","datestr","timestr","dateNF_fix","cellText","cellNF","prn_to_sheet_str","prn_to_aoa_str","prn_to_sheet","firstbyte","WK_","lotus_to_workbook_buf","sidx","snames","refguess","Enum","WK1Enum","WK3Enum","qpro","lotushopper","vers","parse_cell","parse_LABEL","parse_cell_3","parse_NUMBER_17","parse_NUMBER_27","parse_rs","tregex","rpregex","parse_r","rpr","pass","shadow","strike","uval","parse_rpr","rregex","rend","rs_to_html","nlregex","r_to_html","terms","intro","outro","parse_rpr2","sitregex","sirregex","sirphregex","parse_si","cellHTML","sstr0","sstr1","sstr2","SST","straywsregex","write_sst_xml","sst","bookSST","Count","uniqueCount","Unique","sitag","write_BrtSSTItem","write_sst_bin","write_BrtBeginSst","_JS2ANSI","parse_CRYPTOVersion","Major","Minor","parse_DataSpaceMapEntry","comps","parse_Primary","parse_TransformInfoHeader","ename","cmode","parse_EncryptionHeader","Flags","AlgID","valid","AlgIDHash","KeySize","ProviderType","CSPName","parse_EncryptionVerifier","Salt","Verifier","VerifierHash","parse_EncInfoStd","parse_EncInfoExt","parse_EncInfoAgl","KeyData","encryptedHmacKey","encryptedHmacValue","encs","crypto_CreatePasswordVerifier_Method1","Password","PasswordArray","PasswordDecoded","crypto_CreateXorArray_Method1","PadArray","InitialCode","XorMatrix","XorRor","Byte","Temp","PasswordLastChar","PadIndex","XorKey","CurrentElement","Char","CreateXorKey_Method1","Index","ObfuscationArray","crypto_MakeXorDecryptor","XorArrayIndex","XorArray","Value","crypto_DecryptData_Method1","parse_FilePassHeader","EncryptionVersionInfo","EncryptedVerifier","EncryptedVerifierHash","parse_RC4Header","EncryptionHeader","EncryptionVerifier","parse_RC4CryptoHeader","RTF","rtf_to_sheet","rtf_to_sheet_str","rgb2Hex","rgb_tint","hsl","H6","L2","rgb2HSL","hex2RGB","h6","hsl2RGB","MDW","char2width","chr","cycle_width","collw","find_mdw_colw","_MDW","coll","customWidth","XLMLPatternTypeMap","cellXF_uint","cellXF_bool","parse_sty_xml","numFmtRegex","cellXfRegex","fillsRegex","fontsRegex","bordersRegex","themes","NumberFmt","formatCode","parse_numFmts","Fonts","underline","condense","vertAlign","scheme","icv","themeElements","clrScheme","parse_fonts","Fills","patternType","fgColor","parse_fills","Borders","diagonalUp","diagonalDown","parse_borders","xf","CellXf","alignment","textRotation","wrapText","parse_cellXfs","STYLES_XML_ROOT","write_sty_xml","NF","write_numFmts","cellXfs","write_cellXfs","write_BrtFmt","write_BrtFont","grbit","write_FontFlags","sss","STY","rev_XLSBFillPTNames","parse_BrtFill","write_BrtFill","fls","write_BrtXF","write_Blxf","parse_BrtBorder","write_BORDERS_bin","write_STYLES_bin","xfId","builtinId","write_TABLESTYLES_bin","defTableStyle","defPivotStyle","write_BrtBeginTableStyles","write_sty_bin","write_FMTS_bin","write_FONTS_bin","write_FILLS_bin","fontId","fillId","borderId","write_CELLSTYLEXFS_bin","write_CELLXFS_bin","write_DXFS_bin","THEME","XLSXThemeClrScheme","parse_clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","clrsregex","fntsregex","fmtsregex","themeltregex","parse_theme_xml","write_theme","parse_themeElements","Themes","themeXLSX","parse_FullColorExt","xclrType","nTintShade","xclrValue","parse_IcvXF","parse_ColorTheme","parse_ExtProp","extType","parse_XFExtGradient","IMG","DRAW","_shapeid","write_comments_vml","csize","joinstyle","gradientshapeok","coordsize","fillopts","fillparm","fillxml","fillcolor","strokecolor","CMNT","CMNT_XML_ROOT","write_comments_xml","iauthor","parse_BrtCommentAuthor","write_comments_bin","write_BrtCommentAuthor","write_BrtBeginComment","VBAFMTS","DS","MS","rcregex","rcbase","rcfunc","fstr","crefregex","$0","$4","$5","shift_formula_xlsx","shift_formula_str","_xlfn","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceArea_BIFF2","parse_RgceLoc","parse_RgceLoc_BIFF2","parse_RgceElfLoc","fQuoted","parse_PtgAttrSpaceType","parse_SerAr","parse_PtgExtraMem","parse_PtgExtraArray","parse_PtgElfLoc","parse_PtgElfNoop","parse_PtgElfCol","parse_PtgElfColS","parse_PtgElfColSV","parse_PtgElfColV","parse_PtgElfLel","parse_PtgElfRadical","parse_PtgElfRadicalLel","parse_PtgElfRadicalS","parse_PtgElfRw","parse_PtgElfRwV","PtgListRT","PtgTypes","iftab","FtabArgc","Ftab","cparams","tab","parsetab","Cetab","nameindex","rl","parse_RgceLocRel_BIFF2","cl","parse_RgceLocRel","parse_RgceAreaRel","ixti","parse_PtgNameX_BIFF5","PtgDupes","Ptg18","coltype","Ptg19","bitSemi","bitIf","bitGoto","ptgs","stringify_array","PtgBinOp","PtgAdd","PtgConcat","PtgDiv","PtgEq","PtgGe","PtgGt","PtgLe","PtgLt","PtgMul","PtgNe","PtgPower","PtgSub","quoteCharacters","get_ixti_raw","supbooks","XTI","SID","get_ixti","sname","formula_quote_sheet_name","stringify_formula","nameidx","last_sp","sp","fflen","argc","lbl","XLSXFutureFunctions","externbook","bookidx","ixtidata","lp","rp","sharedf","parsedf","fnd","arrayf","_left","parse_SharedParsedFormula","parse_Formula","parse_FormulaValue","cbf","parse_XLSCellParsedFormula","shared","write_Formula","o1","write_FormulaValue","o3","bf","parse_XLSBParsedFormula","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","ods_to_csf_formula","ods_to_csf_3D","_ssfopts","WS","browser_has_Map","get_sst_id","revarr","col_obj_w","default_margins","get_cell_style","revssf","ssf","applyNumberFormat","safe_format","fmtid","fillid","raw_rgb","check_ws","mergecregex","sheetdataregex","hlinkregex","dimregex","colregex","afregex","marginregex","sheetprregex","svsregex","parse_ws_xml","mtch","sheetPr","parse_ws_xml_sheetpr","ridx","parse_ws_xml_dim","svs","Views","sviewregex","rightToLeft","RTL","parse_ws_xml_sheetviews","seencol","coli","colm","colM","parse_ws_xml_cols","parse_ws_xml_data","afilter","parse_ws_xml_autofilter","merges","_merge","hlink","Rel","rng","parse_ws_xml_hlinks","parse_ws_xml_margins","tmpref","codeName","CodeName","sheetprot_deffalse","sheetprot_deftrue","write_ws_xml_cell","oldt","oldv","Strings","revStrings","cellregex","rowregex","isregex","refregex","match_v","match_f","sdata","sstr","ftag","cells","cref","tagr","tagc","do_format","rowobj","rowrite","marr","marrlen","xlen","outlineLevel","rslice","cellFormula","xlfn","___f","_tag","WS_XML_ROOT","write_ws_xml","rdata","_drawing","needed","vbaraw","cname","Workbook","outlineprops","summaryBelow","summaryRight","above","write_ws_xml_sheetpr","sview","workbookViewId","write_ws_xml_sheetviews","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","write_ws_xml_cols","customHeight","write_ws_xml_data","write_ws_xml_protection","Names","Sheet","Ref","write_ws_xml_autofilter","write_ws_xml_merges","relc","ignoreEC","numberStoredAsText","sqref","write_row_header","ncolspan","lcs","caddr","write_BrtRowHdr","parse_BrtWsDim","write_BrtWsDim","write_BrtCellRk","ncell","d100","write_RkNumber","parse_BrtMergeCell","write_BrtMergeCell","BrtMarginKeys","write_ws_bin_cell","write_BrtCellIsst","write_BrtCellSt","write_BrtCellReal","write_BrtCellBool","write_BrtCellBlank","write_MERGECELLS","write_COLINFOS","write_BrtColInfo","write_IGNOREECS","write_BrtCellIgnoreEC","write_HLINKS","locidx","write_BrtHLink","write_WSVIEWS2","write_BrtBeginWsView","write_SHEETPROTECT","write_ws_bin","write_BrtWsProp","write_CELLTABLE","write_AUTOFILTER","write_LEGACYDRAWING","parse_chart","csheet","nf","parse_Cache","CHART","CHARTEX","CS","WBPropsDef","WBViewDef","SheetDef","CalcPrDef","push_defaults_array","push_defaults","parse_wb_defaults","WBProps","CalcPr","WBView","badchars","check_ws_name","_good","check_wb","codes","wbnsregex","WB_XML_ROOT","write_wb_xml","write_names","workbookPr","Hidden","sheetId","localSheetId","write_BOOKVIEWS","vistab","write_wb_bin","write_BrtFileVersion","filterPrivacy","write_BrtWbProp","iTabID","strRelID","write_BrtBundleSh","write_BUNDLESHS","parse_wb","R_n","Ptg","parse_wb_bin","dname","dnstart","parse_wb_xml","parse_ws","aii","relId","rfx","parse_ws_bin","parse_cs","parse_cs_bin","parse_cs_xml","parse_sty","parse_sty_bin","parse_sst","parse_sst_bin","parse_sst_xml","parse_cmnt","authors","parse_comments_bin","commentList","authtag","cmnttag","cm","authorId","guid","textMatch","parse_comments_xml","parse_cc","parse_cc_bin","parse_cc_xml","parse_xlink","parse_xlink_bin","write_wb","write_ws","write_sst","write_cmnt","attregexg2","attregex2","xlml_parsexmltag","xlml_parsexmltagobj","xlml_set_custprop","Custprops","oval","safe_format_xlml","xlml_format","process_style_xlml","stag","Interior","Pattern","ID","parse_xlml_data","csty","sid","StyleID","interiors","UTC","Formula","ArrayRange","xlml_clean_comment","xlml_normalize","xlmlregex","parse_xlml_xml","opening","ishtml","HTML_","tmp","sheetnames","cursheet","sheetname","dtag","didx","fidx","pidx","cstys","wsprops","raw_Rn3","HRef","HRefScreenTip","MergeAcross","MergeDown","cma","AutoFitHeight","Height","Format","ssfidx","Width","_col","Span","_NamedRange","_DefinedName","RefersTo","AutoFilter","Range","parse_fods","Margin","pagemargins","Top","Left","Right","Bottom","bookSheets","bookProps","parse_xlml","fix_read_opts","write_props_xlml","xlml_write_docprops","BLACKLIST","xlml_write_custprops","write_name_xlml","write_ws_xlml_cell","_v","write_ws_xlml_row","write_ws_xlml","write_ws_xlml_names","skip","write_ws_xlml_table","objects","scenarios","selectLockedCells","selectUnlockedCells","write_ws_xlml_wsopts","write_xlml","write_sty_xlml","write_names_xlml","parse_compobj","AnsiUserType","AnsiClipboardFormat","parse_ClipboardFormatOrAnsiString","Reserved1","UnicodeClipboardFormat","parse_ClipboardFormatOrUnicodeString","Reserved2","slurp","insitu","XLSRecordEnum","ll","safe_format_xf","make_cell","parse_workbook","lastcell","cmnt","rngC","rngR","temp_val","country","Directory","last_formula","cur_sheet","Preamble","last_cell","cell_valid","XFs","get_rgb","addcell","file_depth","xfd","icvFore","icvBack","process_cell_style","afi","rrtabid","lastuser","winlocked","wtf","last_lbl","last_Rn","BIFF2Fmt","BIFF2FmtTable","FilterDatabases","seen_codepage","RecordType","Date1904","WriteProtect","cpval","CalcRefMode","FullCalc","fDialog","ExternCount","tmpri","fakebs8","rknum","rkrec","_fr","_fc","_fe","_arraystart","isst","_ixfe","b4idx","b2idx","cmo","lastobj","TxO","ImData","noteobj","ext","xfe","Encryption","Metadata","Country","PSCLSID","parse_xlscfb","CompObj","WorkbookP","bookVBA","newcfb","newpath","make_vba_xls","DSI","DocSummary","SI","Summary","HeadingPairs","TitlesOfParts","parse_xls_props","bookFiles","write_xlscfb","wbpath","write_biff_buf","Keys","DSEntries","SEntries","CEntries","CEntries2","write_xls_props","vba","fill_vba_xls","ArchID","fBold","fItalic","fUnderline","fStrikeout","fOutline","fShadow","fCondense","fExtend","parse_FontFlags","bCharSet","xColorType","bR","bG","bB","parse_BrtColor","ixfeParent","ifmt","defaultThemeVersion","strName","autoCompressPictures","backupFile","checkCompatibility","hidePivotFieldList","promptedSolutions","publishItems","refreshAllConnections","saveExternalLinkValues","showBorderUnselectedTables","showInkAnnotation","showObjects","showPivotChartFilter","updateLinks","fAlwaysCalc","idObj","stAuthor","parse_NoteSh","verificationBytes","verifier","parse_XORObfuscation","dyHeight","fl","Pos","Dim","CurTab","FirstTab","Selected","TabRatio","UserName","fts","parse_BIFF5Obj","parse_FtArray","ccv","rw","rkrecs","lastcol","ixfes","fStyle","alc","fWrap","alcV","fJustLast","trot","cIndent","fShrinkToFit","iReadOrder","fAtrNum","fAtrFnt","fAtrAlc","fAtrBdr","fAtrPat","fAtrProt","dgLeft","dgRight","dgTop","dgBottom","icvLeft","icvRight","grbitDiag","icvTop","icvBottom","icvDiag","dgDiag","fsxButton","parse_CellStyleXF","cmcs","ucnt","extsst","dsst","ctab","virtPath","rgst","texts","accel","parse_ControlInfo","cchText","sVer","targetFrameName","moniker","oleMoniker","fileTime","Loc","parse_Hyperlink","xnum","cUse","wzTooltip","cxfs","crc","cexts","cchComment","themeXML","parse_frtHeader","env","lcb","XLSRE","write_biff_rec","write_BIFF2Cell","write_ws_biff2_cell","write_BIFF2INT","write_BIFF2NUM","write_BIFF2BERR","write_BIFF2LABEL","write_biff2_buf","write_ws_biff2","write_FONTS_biff8","write_Font","write_ws_biff8_cell","write_Number","write_LabelSst","write_Label","write_ws_biff8","_WB","_sheet","MAX_ROWS","guts","write_Guts","write_Dimensions","write_Window2","write_MergeCells","HL","write_ws_biff8_hlinks","write_FEAT","write_biff8_global","_sheets","_wb","writezeroes","write_WriteAccess","write_RRTabId","write_Window1","safe1904","write_FMTS_biff8","write_CELLXFS_biff8","write_biff_continue","write_SST","blen","fix_write_opts","write_biff8_buf","html_to_sheet","mtch2","split_regex","midx","make_html_row","editable","make_html_preamble","_BEGIN","_END","BEGIN","END","_preamble","sheet_add_dom","or_R","or_C","is_dom_element_hidden","elts","parse_dom_table","get_computed_style","defaultView","get_get_computed_style_function","parse_content_xml","parse_text_p","number_formats","day","month","year","hours","minutes","seconds","era","quarter","sheetag","rowtag","NFtag","ctag","textp","textpidx","textR","row_ol","number_format_map","mrange","rowpeat","colpeat","atag","_Ref","creatoridx","isstub","intable","rptR","rpt","nrange","ptp","parse_ods","ods","FEtag","parse_manifest","write_styles_ods","write_content_ods","null_cell_xml","_Fref","text_p","_tgt","fods","write_automatic_styles_ods","write_ods","manifest","rdf","write_rdf","write_manifest","write_obj_str","write_sheet_index","write_htm_str","write_csv_str","sheet_to_csv","write_slk_str","write_dif_str","write_prn_str","write_rtf_str","write_txt_str","sheet_to_txt","write_dbf_buf","write_eth_str","fix_opts_func","safe_parse_sheet","relsPath","sheetRels","stype","dfile","drelsp","chartp","parse_drawing","crelsp","parse_ds","encoded","sheet_insert_comments","strip_front_slash","binname","zipentries","links","coreprops","extprops","custprops","calcchains","drawings","TODO","ctext","Extension","ContentType","PartName","calcchain","parse_ct","parse_theme","propdata","parse_ext_props","toks","parse_cust_props","deps","bookDeps","wbsheets","wbext","wbrelsi","wbrelsfile","wbrels","safe_parse_wbrels","nmode","wsloop","snjseen","snj","Deps","bin","parse_xlsxcfb","parse_DataSpaceVersionInfo","dsm","parse_DataSpaceMap","seds","parse_DataSpaceDefinition","einfo","parse_EncryptionInfo","decrypt_agile","decrypt_std76","vbafmt","write_core_props","_sn","write_ext_props","wsrels","need_vml","rId1","write_sty","f1","write_ct","read_zip","base64","zip_read","read_plaintext","read_prn","readSync","infile","read_binary","bstrify","vu","read_cfb","OLD_WTF","read_wb_ID","read_utf16","read_plaintext_raw","write_cfb_ctr","write_string_type","bom","write_binary_type","writeSync","write_stxt_type","write_cfb_type","oopts","encrypt_agile","write_zip_type","resolve_book_type","make_json_row","defval","isempty","__rowNum__","rawNumbers","outi","CC","blankrows","qreg","make_csv_row","FS","forceQuotes","endregex","skipHidden","strip","sheet_to_formulae","cmds","sheet_add_json","skipHeader","JS","sheet_get_cell","split_cell","get_formulae","make_csv","make_json","make_formulae","json_to_sheet","table_to_sheet","table_to_book","sheet_to_html","sheet_to_row_object_array","get_default","ws_get_cell_stub","RC","book_new","book_append_sheet","book_set_sheet_visibility","sh","vis","wb_sheet_idx","cell_set_number_format","cell_set_hyperlink","cell_set_internal_link","cell_add_comment","sheet_set_array_formula","rngstr","Readable","to_json","objectMode","_read","to_html","to_csv","BOM","readFile","writeFileAsync","_cb","make_xlsx_lib","getRawTag","objectToString","symToStringTag","baseMatches","baseMatchesProperty","replaceClassName","origClass","classToRemove","ENTERING","ENTERED","Transition","_React$Component","initialStatus","appear","isMounting","enter","appearStatus","in","unmountOnExit","mountOnEnter","nextCallback","getDerivedStateFromProps","_proto","updateStatus","nextStatus","cancelNextCallback","getTimeouts","exit","mounting","performEnter","performExit","appearing","nodeRef","ReactDOM","findDOMNode","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","onExit","onExiting","onExited","setNextCallback","doesNotHaveTimeoutOrListener","addEndListener","maybeNextCallback","childProps","TransitionGroupContext","Provider","only","contextType","UNMOUNTED","EXITED","EXITING","baseVal","CSSTransition","appliedClasses","_this$resolveArgument","resolveArguments","removeClasses","_this$resolveArgument2","_this$resolveArgument3","getClassNames","isStringClassNames","baseClassName","doneClassName","phase","_addClass","_this$appliedClasses$","getChildMapping","mapFn","mapper","getProp","getNextChildMapping","prevChildMapping","nextChildMapping","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","mergeChildMappings","hasPrev","hasNext","isLeaving","TransitionGroup","handleExited","contextValue","firstRender","mounted","currentChildMapping","childFactory","ReplaceTransition","_args","handleEnter","handleLifecycle","handleEntering","handleEntered","handleExit","_len5","_key5","handleExiting","_len6","_key6","_len7","_key7","originalArgs","_child$props","inProp","_React$Children$toArr","_leaveRenders","_enterRenders","modes","callHook","_element$props","leaveRenders","changeState","enterRenders","SwitchTransition","appeared","oldChildren","newChildren","_this$state","reduceRight","curried","nextArgs","errorMessages","initialIsRequired","initialType","initialContent","handlerType","handlersType","selectorType","changeType","changeField","validators","initial","_handler","extractChanges","causedChanges","updateState","didStateUpdate","_handler$field","didUpdate","getChanges","getState","vs","configIsRequired","configType","deprecation","urls","monacoBase","CANCELATION_MESSAGE","makeCancelable","hasCanceled_","wrappedPromise","_state$create","config$1","monaco","_state$create2","injectScripts","script","getMonacoLoaderScript","configureLoader","loaderScript","storeMonacoInstance","wrapperPromise","globalConfig","_validators$config","__getMonacoInstance","loadingStyles","justifyContent","alignItems","Loading","fullWidth","MonacoContainer","isEditorReady","wrapperProps","MonacoContainer$1","useMount","effect","useUpdate","applyChanges","isInitialMount","getOrCreateModel","getModel","createModelUri","createModel","Uri","DiffEditor","original","originalLanguage","modifiedLanguage","originalModelPath","modifiedModelPath","keepCurrentOriginalModel","keepCurrentModifiedModel","beforeMount","setIsEditorReady","isMonacoMounting","setIsMonacoMounting","editorRef","monacoRef","containerRef","onMountRef","beforeMountRef","cancelable","_models$original","_models$modified","models","disposeEditor","modifiedEditor","getModifiedEditor","getOption","EditorOption","readOnly","executeEdits","getFullModelRange","forceMoveMarkers","pushUndoStop","setModelLanguage","setTheme","updateOptions","setModels","useCallback","originalModel","modifiedModel","setModel","createEditor","createDiffEditor","automaticLayout","usePrevious","viewStates","Editor","defaultLanguage","defaultPath","overrideServices","saveViewState","keepCurrentModel","onValidate","subscriptionRef","valueRef","previousPath","_subscriptionRef$curr2","_editorRef$current$ge2","model","restoreViewState","revealLine","autoCreatedModelPath","defaultModel","_subscriptionRef$curr","_editorRef$current","onDidChangeModelContent","editorValue","changeMarkersListener","onDidChangeMarkers","uris","_editorRef$current$ge","editorUri","getModelMarkers","resource","isObjectLike","setRafTimeout","currTime","shouldUpdate","_toArray","createAnimateManager","handleChange","shouldStop","setStyle","_style","restStyles","_handleChange","PREFIX_LIST","IN_LINE_PREFIX_LIST","IN_COMPATIBLE_PROPERTY","mapObject","translateStyle","isTransition","camelName","styleVal","generatePrefixStyle","getTransitionVal","cubicBezierFactor","multyTime","cubicBezier","derivativeCubicBezier","newParams","configBezier","_easing$1$split$0$spl","_easing$1$split$0$spl2","curveX","curveY","derCurveX","rangeValue","bezier","evalT","derVal","isStepper","configSpring","_config$stiff","stiff","_config$damping","damping","_config$dt","stepper","currX","destX","currV","newV","needContinue","preObj","nextObj","preTime","beginTime","interKeys","timingStyle","stepperStyle","velocity","cafId","calStepperVals","preVals","nextStepVals","_easing2","currStyle","finalStyle","Animate","_PureComponent","handleStyleChange","changeStyle","canBegin","runAnimation","_this$props3","shouldReAnimate","deepEqual","isTriggered","manager","stopJSAnimation","_newState","newState","unSubscribe","onAnimationStart","startAnimation","configUpdate","configEasing","_steps$","initialStyle","_steps$$duration","initialTime","sequence","_nextItem$easing","nextProperties","properties","preItem","runJSAnimation","transition","newStyle","propsTo","runStepAnimation","_this$props4","onAnimationReStart","stateStyle","_container$props","_container$props$styl","PureComponent","parseDurationOfSingleTransition","AnimateGroupChild","isAppearing","appearOptions","enterOptions","handleStyleActive","leaveOptions","parseTimeout","AnimateGroup","leave","hasXMLHttpRequest","makePromise","maybePromise","isPromise","generateAccountId","environment","CACHE_KEY_SEPARATOR","generateAccountKey","AccountEntity","generateAccountCacheKey","tenantId","realm","username","localAccountId","generateType","authorityType","ADFS_ACCOUNT_TYPE","MSAV1_ACCOUNT_TYPE","MSA","MSSTS_ACCOUNT_TYPE","MSSTS","GENERIC_ACCOUNT_TYPE","GENERIC","getAccountInfo","idTokenClaims","nativeAccountId","accountInterface","createAccount","clientInfo","idToken","authority","cloudGraphHostName","msGraphHost","account","getPreferredCache","tid","preferredUsername","preferred_username","email","emails","createGenericAccount","Adfs","upn","serverClientInfo","authType","logger","cryptoObj","accountId","Dsts","verbose","entity","accountInfoIsEqual","accountA","accountB","compareClaims","claimsMatch","accountAClaims","accountBClaims","iat","nonce","lastId","baseIsNative","upperFirst","createCaseFirst","BREAKING_SPACES","calculateWordWidths","wordsWithComputedWidth","word","spaceWidth","getWordsWithoutCalculate","getWordsByLines","needCalculate","scaleToFit","wordWidths","initialWordsWithComputedWith","shouldLimitLines","maxLines","calculate","currentLine","originalResult","trimmedResult","checkOverflow","tempText","findLongestLine","iterations","_checkOverflow2","doesPrevOverflow","doesMiddleOverflow","calculateWordsByLines","prevWidth","prevScaleToFit","prevStyle","prevBreakAll","wordsByLines","textProps","startDy","reduceCSSCalc","baseFlatten","baseOrderBy","baseRest","isIterateeCall","sortBy","iteratees","Dot","createRange","baseIteratee","baseUniq","iteratee","CartesianAxis","layerReference","letterSpacing","minTickGap","tickFormatter","getNumberIntervalTicks","getTicksStart","getTicksEnd","preserveEnd","sizeKey","unitSize","tail","tailContent","tailSize","tailGap","tickCoord","isShow","option","restProps","viewBoxOld","restPropsOld","htmlLayer","getElementsByClassName","tickSize","tickMargin","finalTickSize","_this$props5","axisLine","needHeight","needWidth","_this$props6","tickLine","finalTicks","getTicks","getTickTextAnchor","getTickVerticalAnchor","axisProps","customTickProps","tickLineProps","_this2$getTickLineCoo","getTickLineCoord","lineCoord","tickProps","visibleTicksCount","renderTickItem","_this$props7","ticksGenerator","_this$props8","noTicksProps","renderAxisLine","renderTicks","ConnectedOverlayScrollHandler","getScrollableParents","_KeyFilter","onInput","onKeyPress","keyfilter","validateOnly","validatePattern","isLength","implicit","ordinal","__WEBPACK_EXTERNAL_MODULE__84__","__webpack_modules__","662","__unused_webpack_module","__extends","extendStatics","__","CellHookData","HookData","pageCount","getDocument","section","790","htmlParser_1","autoTableText_1","documentHandler_1","inputParser_1","tableDrawer_1","tableCalculator_1","autoTable","parseInput","createTable","drawTable","lastAutoTable","previousAutoTable","autoTableText","autoTableSetDefaults","DocHandler","setDefaults","autoTableHtmlToJson","tableElem","includeHiddenElements","parseHtml","autoTableEndPosY","finalY","autoTableAddPageContent","hook","globalDefaults","addPageContent","autoTableAddPage","938","lineCount","halign","alignSize","iLine","200","getFillStyle","drawLine","drawBackground","parseSpacing","addTableBorder","getStringWidth","applyStyles","startPos","tableLineWidth","tableLineColor","913","getTheme","defaultStyles","HtmlRowInput","FONT_ROW_RATIO","_element","cellPadding","minCellHeight","minCellWidth","striped","foot","alternateRow","plain","259","parseCss","common_1","parseColor","styleGetter","cssColor","realColor","supportedFonts","borderColor","pxScaleFactor","linePadding","inputPadding","parsePadding","accepted","parseFontStyle","323","jsPDFDocument","userStyles","__autoTableDocumentDefaults","unifyColor","fontOnly","setFontStyle","availableFontStyles","getLastAutoTable","getGlobalOptions","getDocumentOptions","pageInfo","148","cssParser_1","config_1","parseRowContent","includeHidden","useCss","resultRow","style_1","parseCellContent","orgCell","includeHiddenHtml","tableElement","587","polyfills_1","inputValidator_1","parseColumns","firstRow","rowResult","gInput","dInput","cInput","styleOptions","headStyles","bodyStyles","footStyles","alternateRowStyles","columnStyles","_loop_1","global_1","document_1","parseStyles","hooks","didParseCell","willDrawCell","didDrawCell","didDrawPage","allOptions_1","parseHooks","_g","_h","_k","_l","showFoot","showHead","userStartY","sf","isSamePageAsPreviousTable","startPageNumber","endingPage","horizontalPageBreak","horizontalPageBreakRepeat","pageBreak","rowPageBreak","parseSettings","htmlContent","parseContent","tableId","291","checkStyles","rowHeight","extendWidth","afterPageContent","beforePageContent","afterPageAdd","deprecated","deprecatedOption","287","Cell","Row","HookData_1","getHeadHeight","getMaxCellHeight","getFootHeight","allRows","callCellHooks","handlers","handlers_1","callEndPageHooks","pageWidth","total","wrappedWidth","spansMultiplePages","hasRowSpan","canEntireRowFit","getMinimumRowHeight","fontHeight","oneRowHeight","contentHeight","contentWidth","minReadableWidth","getTextPos","netHeight","netWidth","getContentHeight","getMaxCustomCellWidth","360","nextSource","858","models_1","widthCalculator_1","parseSection","sectionName","sectionRows","styleProps","rowSpansLeftForColumn","rawRow","rowIndex","skippedRowForRowSpans","colSpansAdded","columnSpansLeft","columns_1","rawCell","cellInputStyles","generateSectionRow","sectionRow","getSectionTitle","themeName","sectionStyles","otherStyles","colStyles","rowStyles","defaultStyle","themeStyles","jsPDFDoc","createColumns","calculateWidths","49","tablePrinter_1","getRemainingLineCount","remainingPageSpace","vPadding","remainingLines","printFullRow","isLastRow","remainingSpace","bottomContentHeight","getRemainingPageSpace","printRow","pageHeight","maxRowHeight","minRowHeight","minRowFits","rowHasRowSpanCell","shouldPrintOnCurrentPage","remainderRow","remainderCell","remainingLineCount","modifyRowToFit","drawCellBorders","textPos","sides","lineWidth_1","drawBorderForSide","nextPage","sectionsHeight","minTableBottomPos","calculateAllColumnsCanFitInPage","colsAndIndexes","printHead","printBody","printFoot","printTableWithHorizontalPageBreak","435","getPageAvailableWidth","getColumnsCanFitInPage","remainingWidth","repeatColumn","colWidth","colIndexes","allResults","189","ellipsize","resizeColumns","resizeWidth","initialResizeWidth","sumWrappedWidth","suggestedChange","suggestedWidth","ellipsizeStr","availablePageWidth","longestWordWidth","defaultMinWidth","initialTableWidth","colSpanCell","combinedColSpanWidth","colSpansLeft","columnIndex","applyColSpans","rowSpanHeight","textSpace","realContentHeight","fitContent","rowSpanCells","colRowSpansLeft","remaining","applyRowSpans","84","__webpack_module_cache__","cachedModule","__drawTable","__createTable","applyPlugin","applyPlugin_1","models_2","Surface","svgView","numbers","valueof","getRectanglePath","maxRadius","ySign","xSign","newRadius","_newRadius","isInRectangle","totalLength","getTotalLength","animationEasing","animationDuration","animationBegin","isAnimationActive","isUpdateAnimationActive","currWidth","currHeight","currY","_context","_x0","_x1","_y0","_y1","Basis","areaStart","_line","areaEnd","_point","BasisClosed","_x2","_x3","_x4","_y2","_y3","_y4","BasisOpen","x0","y0","LinearClosed","Linear","slope3","h0","slope2","t0","MonotoneX","MonotoneY","ReflectContext","Natural","_t0","Step","defined","curve","curveLinear","defined0","pointX","pointY","x0z","y0z","arealine","lineX0","lineY0","lineY1","lineX1","CURVE_FACTORIES","curveBasisClosed","curveBasisOpen","curveBasis","curveLinearClosed","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","Curve","lineFunction","baseLine","connectNulls","curveFactory","getCurveFactory","formatPoints","formatBaseLine","areaPoints","shapeArea","shapeLine","pathRef","realPath","tau","tan30","tan30_2","kx","sqrt3","symbolFactories","symbolCircle","symbolCross","symbolDiamond","symbolSquare","symbolStar","symbolTriangle","symbolWye","Symbols","sizeType","symbolFactory","getSymbolFactory","shapeSymbol","calculateAreaSize","registerSymbol","DefaultLegendContent","inactiveColor","strokeDasharray","SIZE","legendIcon","iconProps","iconSize","itemStyle","svgStyle","_classNames","finalFormatter","defaultUniqBy","getUniqPayload","_uniqBy","wrapperNode","boxWidth","boxHeight","chartWidth","updateBBox","hPos","vPos","chartHeight","getBBoxSnapshot","_this$state2","onBBoxUpdate","_box3","wrapperStyle","payloadUniqBy","outerStyle","getDefaultPosition","otherProps","renderContent","assertThisInitialized","consoleLogger","baseLogger","Logger","concreteLogger","forward","lvl","debugOnly","moduleName","observers","cloned","observer","_cloned","defer","rej","getLastOfPath","Empty","cleanKey","canNotTraverseDeeper","_getLastOfPath","_getLastOfPath3","getPathWithDefaults","defaultData","deepExtend","overwrite","regexEscape","_entityMap","escape","isIE10","ResourceStore","_EventEmitter","defaultNS","keySeparator","lng","silent","addNamespaces","emit","resources","addResource","pack","hasResourceBundle","removeNamespaces","getResource","compatibilityAPI","postProcessor","addPostProcessor","translator","checkedLoadedFor","Translator","services","interpolation","resolved","nsSeparator","nestingRegexp","lastKey","overloadTranslationOptionHandler","_this$extractFromKey","extractFromKey","appendNamespaceToCIMode","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","extendTranslation","usedDefault","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","isValidLookup","updateMissing","fk","lngs","fallbackLngs","languageUtils","getFallbackCodes","fallbackLng","saveMissingTo","toResolveHierarchy","fallbackValue","missingKeyHandler","backendConnector","saveMissing","saveMissingPlurals","getSuffixes","suffix","appendNamespaceToMissingKey","parseMissingKeyHandler","usedLng","usedNS","skipInterpolation","nestBef","skipOnVariables","defaultVariables","nest","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","found","extracted","fallbackNS","needsContextHandling","hasLoadedNamespace","pluralSuffix","possibleKey","finalKey","finalKeys","addLookupKeys","contextSeparator","returnNull","returnEmptyString","resourceStore","capitalize","LanguageUtil","supportedLngs","formatLanguageCode","specialCases","lowerCaseLng","cleanCode","deprecate","isSupportedCode","nonExplicitSupportedLngs","getLanguagePartFromCode","cleanedLng","lngOnly","supportedLng","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","sets","_rulesPluralsTypes","4","9","10","11","12","13","15","16","17","18","19","20","21","22","createRules","rules","plurals","PluralResolver","rule","getRule","noAbs","simplifyPluralSuffix","returnSuffix","prepend","compatibilityJSON","Interpolator","escapeValue","iOpts","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","handleFormat","missingInterpolationHandler","safeValue","todo","clonedOptions","handleHasOptions","inheritedOptions","optionsString","formatters","doReduce","Connector","backend","store","queue","languages","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","errors","addResourceBundle","_getLastOfPath2","pushPath","what","fcName","tried","queueLoad","loadOne","prepareLoading","isUpdate","initImmediate","nonExplicitWhitelist","preload","pluralSeparator","partialBundledLanguages","tDescription","transformOptions","i18next","I18n","isClone","createClassOnDemand","ClassOrObject","lu","languageDetector","detection","storeApi","_this2$store","storeApiChained","_this2$store2","deferred","changeLanguage","usedCallback","isLanguageChangingTo","setLng","getBestMatchFromCodes","cacheUserLanguage","loadResources","detect","fixedT","_this$translator","_this$translator2","lastLng","loadNotPending","loadState","precheck","preResult","preloaded","newLngs","mergedOptions","membersToCopy","u8","u16","u32","fleb","fdeb","clim","freb","revfl","revfd","hMap","rvb","r_1","flt","fdt","flm","flrm","fdm","fdrm","bits16","shft","slc","inflt","dat","noBuf","noSt","cbuf","nbuf","final","lm","dm","lbt","dbt","tbts","hLit","hcLen","tl","ldt","clt","clb","clbmsk","clm","lms","dms","mxa","dsym","wbits","wbits16","hTree","i2","maxSym","mbt","lft","cst","i2_1","i2_2","i2_3","cli","cln","cls","clen","wfblk","wblk","syms","lf","df","dlt","mlb","ddt","mdb","lclt","nlc","lcdt","ndc","lcfreq","lct","mlcb","nlcc","ftlen","dtlen","llm","lcts","clct","deo","dflt","plvl","msk_1","bs1_1","bs2_1","hsh","lc_1","hv","imod","pimod","ch_1","dif","maxn","maxd","mmd","lin","din","adler","dopt","mem","wbytes","zlh","zlv","zlibSync","unzlibSync","baseExtremum","baseGt","baseLt","matchHtmlEntity","htmlEntities","unescapeHtmlEntity","i18nInstance","defaultOptions","bindI18n","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","transKeepBasicHtmlNodesFor","useSuspense","I18nContext","getDefaults","ReportNamespaces","usedNamespaces","getI18n","initReactI18next","react","setI18n","defaultFormatter","DefaultTooltipContent","separator","itemSorter","finalItemStyle","wrapperClassName","contentStyle","labelClassName","labelStyle","labelFormatter","finalLabelStyle","hasLabel","finalLabel","wrapperCN","labelCN","CLS_PREFIX","dismissed","dismissedAtCoordinate","getTranslate","tooltipDimension","viewBoxDimension","allowEscapeViewBox","reverseDirection","preventScroll","translateX","translateY","filterNull","finalPayload","hasPayload","pointerEvents","useTranslate3d","cursorStyle","arrayLikeKeys","baseKeys","isArrayLike","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","nativeCreate","getNative","isKeyable","__data__","isIndex","dontSetMe","findInArray","int","isNum","tickStep","formatSpecifier","precisionPrefix","formatPrefix","precisionRound","precisionFixed","arrayWithHoles","iterableToArrayLimit","nonIterableRest","__awaiter","fulfilled","rejected","__generator","sent","trys","ops","verb","Bounds","fromClientRect","clientRect","windowBounds","fromDOMRectList","domRectList","domRect","EMPTY","parseBounds","toCodePoints","codePoints","fromCodePoint","codeUnits","codePoint","lookup","slice16","highStart","highValueIndex","ix","UTRIE2_DATA_BLOCK_LENGTH","UTRIE2_INDEX_1_OFFSET","UTRIE2_INDEX_2_BLOCK_LENGTH","SP","HY","CL","CP","EX","IN","NS","OP","IS","NU","PO","PR","SY","AL","EB","EM","H2","H3","JL","JV","JT","SA","ea_OP","UnicodeTrie","_byteLength","encoded1","encoded2","encoded3","encoded4","bufferLength","view32","polyUint32Array","view16","polyUint16Array","headerLength","Trie","createTrieFromBase64","ALPHABETICS","HARD_LINE_BREAKS","SPACE","PREFIX_POSTFIX","LINE_BREAKS","KOREAN_SYLLABLE_BLOCK","HYPHEN","isAdjacentWithSpaceIgnored","currentIndex","classTypes","previousNonSpaceClassType","_lineBreakAtIndex","indicies","forbiddenBreaks","beforeIndex","afterIndex","cssFormattedClasses","lineBreak","wordBreak","indices","categories","classType","codePointsToCharacterClasses","isLetterNumber","letterNumber","isDigit","isWhiteSpace","isNameStartCodePoint","isLowerCaseLetter","isUpperCaseLetter","isLetter","isNonASCIICodePoint","isNameCodePoint","isNonPrintableCodePoint","isValidEscape","isIdentifierStart","isNumberStart","stringToNumber","integers","fracd","expsign","LEFT_PARENTHESIS_TOKEN","RIGHT_PARENTHESIS_TOKEN","COMMA_TOKEN","SUFFIX_MATCH_TOKEN","PREFIX_MATCH_TOKEN","COLUMN_TOKEN","DASH_MATCH_TOKEN","INCLUDE_MATCH_TOKEN","LEFT_CURLY_BRACKET_TOKEN","RIGHT_CURLY_BRACKET_TOKEN","SUBSTRING_MATCH_TOKEN","BAD_URL_TOKEN","BAD_STRING_TOKEN","CDO_TOKEN","CDC_TOKEN","COLON_TOKEN","SEMICOLON_TOKEN","LEFT_SQUARE_BRACKET_TOKEN","RIGHT_SQUARE_BRACKET_TOKEN","WHITESPACE_TOKEN","EOF_TOKEN","chunk","consumeToken","consumeCodePoint","consumeStringToken","peekCodePoint","consumeName","reconsumeCodePoint","consumeNumericToken","consumeIdentLikeToken","u1","u2","consumeUnicodeRangeToken","consumeWhiteSpace","digits","questionMarks","digit","endDigits","consumeUrlToken","stringToken","consumeBadUrlRemnants","consumeEscapedCodePoint","consumeStringSlice","amount","endingCodePoint","consumeNumber","repr","hexCodePoint","isSurrogateCodePoint","_tokens","tokenizer","Tokenizer","Parser","parseValue","parseComponentValue","parseValues","parseComponentValues","SyntaxError","reconsumeToken","consumeComponentValue","consumeSimpleBlock","consumeFunction","isEndingTokenFor","functionToken","cssFunction","isDimensionToken","isNumberToken","isIdentToken","isStringToken","isIdentWithValue","nonWhiteSpace","nonFunctionArgSeparator","parseFunctionArgs","isLengthPercentage","parseLengthPercentageTuple","ZERO_LENGTH","FIFTY_PERCENT","HUNDRED_PERCENT","getAbsoluteValueForTuple","tuple","getAbsoluteValue","isAngle","parseNamedSide","ident","deg","colorFunction","SUPPORTED_COLOR_FUNCTIONS","namedColor","TRANSPARENT","isTransparent","asString","getTokenColorValue","hue2rgb","hue","BACKGROUND_SIZE","saturation","lightness","hsla","ALICEBLUE","ANTIQUEWHITE","AQUA","AQUAMARINE","AZURE","BEIGE","BISQUE","BLACK","BLANCHEDALMOND","BLUE","BLUEVIOLET","BROWN","BURLYWOOD","CADETBLUE","CHARTREUSE","CHOCOLATE","CORAL","CORNFLOWERBLUE","CORNSILK","CRIMSON","CYAN","DARKBLUE","DARKCYAN","DARKGOLDENROD","DARKGRAY","DARKGREEN","DARKGREY","DARKKHAKI","DARKMAGENTA","DARKOLIVEGREEN","DARKORANGE","DARKORCHID","DARKRED","DARKSALMON","DARKSEAGREEN","DARKSLATEBLUE","DARKSLATEGRAY","DARKSLATEGREY","DARKTURQUOISE","DARKVIOLET","DEEPPINK","DEEPSKYBLUE","DIMGRAY","DIMGREY","DODGERBLUE","FIREBRICK","FLORALWHITE","FORESTGREEN","FUCHSIA","GAINSBORO","GHOSTWHITE","GOLD","GOLDENROD","GRAY","GREEN","GREENYELLOW","GREY","HONEYDEW","HOTPINK","INDIANRED","INDIGO","IVORY","KHAKI","LAVENDER","LAVENDERBLUSH","LAWNGREEN","LEMONCHIFFON","LIGHTBLUE","LIGHTCORAL","LIGHTCYAN","LIGHTGOLDENRODYELLOW","LIGHTGRAY","LIGHTGREEN","LIGHTGREY","LIGHTPINK","LIGHTSALMON","LIGHTSEAGREEN","LIGHTSKYBLUE","LIGHTSLATEGRAY","LIGHTSLATEGREY","LIGHTSTEELBLUE","LIGHTYELLOW","LIME","LIMEGREEN","LINEN","MAGENTA","MAROON","MEDIUMAQUAMARINE","MEDIUMBLUE","MEDIUMORCHID","MEDIUMPURPLE","MEDIUMSEAGREEN","MEDIUMSLATEBLUE","MEDIUMSPRINGGREEN","MEDIUMTURQUOISE","MEDIUMVIOLETRED","MIDNIGHTBLUE","MINTCREAM","MISTYROSE","MOCCASIN","NAVAJOWHITE","NAVY","OLDLACE","OLIVE","OLIVEDRAB","ORANGE","ORANGERED","ORCHID","PALEGOLDENROD","PALEGREEN","PALETURQUOISE","PALEVIOLETRED","PAPAYAWHIP","PEACHPUFF","PERU","PINK","PLUM","POWDERBLUE","PURPLE","REBECCAPURPLE","RED","ROSYBROWN","ROYALBLUE","SADDLEBROWN","SALMON","SANDYBROWN","SEAGREEN","SEASHELL","SIENNA","SILVER","SKYBLUE","SLATEBLUE","SLATEGRAY","SLATEGREY","SNOW","SPRINGGREEN","STEELBLUE","TAN","TEAL","THISTLE","TOMATO","TURQUOISE","VIOLET","WHEAT","WHITE","WHITESMOKE","YELLOW","YELLOWGREEN","backgroundClip","parseColorStop","processColorStops","lineLength","processStops","gapBegin","gapLength","gapValue","calculateGradientDirection","corner","getAngleFromCorner","halfWidth","halfHeight","halfLineLength","findCorner","stat","optimumDistance","optimumCorner","prefixLinearGradient","firstToken","angleType","colorStop","prefixRadialGradient","isColorStop","imageFunction","SUPPORTED_IMAGE_FUNCTIONS","isSupportedImage","backgroundOrigin","backgroundRepeat","parseBackgroundRepeat","LINE_BREAK","isBackgroundSizeInfoToken","borderColorForSide","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","borderRadiusForSide","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","borderStyleForSide","borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle","borderWidthForSide","parseDisplayValue","WORD_BREAK","STRICT","NORMAL","computeLineHeight","listStyleImage","listStylePosition","listStyleType","marginForSide","overflowWrap","paddingForSide","textShadow","textTransform","transformFunction","SUPPORTED_TRANSFORM_FUNCTIONS","matrix3d","DEFAULT_VALUE","DEFAULT","origins","BREAK_ALL","KEEP_ALL","textDecorationColor","textDecorationLine","accumulator","counterIncrement","increments","filtered","counterReset","resets","quotes","getQuote","depth","quote","boxShadow","spread","paintOrder","layers","webkitTextStrokeColor","webkitTextStrokeWidth","declaration","cssFloat","overflowTuple","overflowX","textDecoration","isTransformed","isPositioned","isPositionedWithZIndex","isFloating","isInlineLevel","parser","isDebugging","getElementDebugType","textNodes","CSSParsedDeclaration","isHTMLElementNode","PseudoElementType","LV","LVT","codePointToClass","_graphemeBreakAtIndex","_codePoints","countRI","GraphemeBreaker","lastEnd","graphemeBreak","isGreenPixel","createForeignObjectSVG","foreignObject","loadSerializedSVG","FEATURES","testElement","TEST_HEIGHT","selectNode","rangeBounds","rangeHeight","testRangeBounds","SUPPORT_RANGE_BOUNDS","wordSpacing","textList","supports","setEnd","boundAhead","testIOSLineBreak","testSVG","fetch","greenImageSrc","testForeignObject","Intl","Segmenter","getWrapperBounds","segmentGraphemes","SUPPORT_NATIVE_TEXT_SEGMENTATION","segmenter","granularity","bk","breaker","graphemes","splitGraphemes","breakText","breakWords","segmentWords","wordSeparators","forbiddenBreakpoints","Break","LineBreaker","textBounds","clientRects","subSegments","subSegment","TextBounds","replacementNode","parseTextBounds","CAPITALIZE","currentSrc","intrinsicWidth","naturalWidth","intrinsicHeight","naturalHeight","ElementContainer","CHECKBOX_BORDER_RADIUS","RADIO_BORDER_RADIUS","PASSWORD","getInputValue","selectedIndex","iframe","tree","parseTree","documentBackgroundColor","bodyBackgroundColor","LIST_OWNERS","createContainer","isImageElement","ImageElementContainer","isCanvasElement","CanvasElementContainer","isSVGElement","SVGElementContainer","isLIElement","LIElementContainer","isOLElement","OLElementContainer","isInputElement","InputElementContainer","isSelectElement","SelectElementContainer","isTextareaElement","TextareaElementContainer","isIFrameElement","IFrameElementContainer","parseNodeTree","nextNode","isTextNode","TextContainer","isElementNode","isSlotElement","assignedNodes","createsRealStackingContext","createsStackingContext","slot","shadowRoot","isBodyElement","isSVGElementNode","isVideoElement","isStyleElement","isCustomElement","counters","getCounterValue","getCounterValues","canReset","counterNames","ROMAN_UPPER","ARMENIAN","HEBREW","GEORGIAN","createAdditiveCounter","fallback","createCounterText","integer","createCounterStyleWithSymbolResolver","codePointRangeLength","isNumeric","resolver","createCounterStyleFromRange","codePointRangeStart","codePointRangeEnd","createCounterStyleFromSymbols","createCJKCounter","multipliers","negativeSign","appendSuffix","defaultSuffix","cjkSuffix","koreanSuffix","spaceSuffix","CJK_TEN_COEFFICIENTS","CJK_ZEROS","scrolledElements","referenceElement","CounterState","quoteDepth","toIFrame","windowSize","createIFrameContainer","cloneWindow","documentClone","iframeLoad","iframeLoader","restoreNodeScroll","onclone","clonedReferenceElement","imagesReady","serializeDoctype","restoreOwnerScroll","adoptNode","createElementClone","createCanvasClone","createVideoClone","createStyleClone","srcset","createCustomElementClone","copyCSSStyles","cssRules","inlineImages","clonedCanvas","clonedCtx","attribs","getContextAttributes","preserveDrawingBuffer","video","blankCanvas","appendChildNode","copyStyles","ignoreElements","cloneChildNodes","assignedNode","transitionProperty","styleBefore","styleAfter","createPseudoHideStyles","CSSParsedCounterDeclaration","resolvePseudoContent","BEFORE","AFTER","pseudoElt","CSSParsedPseudoDeclaration","anonymousReplacedElement","counterStyle","counterState","counterType","delim","counterStates","PSEUDO_HIDE_ELEMENT_CLASS_BEFORE","PSEUDO_HIDE_ELEMENT_CLASS_AFTER","newClassName","baseValue","CORNER","cloneIframeContainer","scrolling","imageReady","images","readyState","ignoredStyleProperties","setProperty","createStyles","getOrigin","CacheStorage","_link","hostname","isSameOrigin","_options","_cache","isBlobImage","isRenderable","loadImage","isInlineImage","SUPPORT_CORS_IMAGES","useProxy","SUPPORT_CORS_XHR","isInlineBase64Image","SUPPORT_RESPONSE_TYPE","xhr","queryString","ontimeout","INLINE_SVG","INLINE_BASE64","INLINE_IMG","SUPPORT_SVG_DRAWING","isSVG","deltaX","deltaY","Vector","startControl","endControl","subdivide","firstHalf","abbc","bccd","BezierCurve","isBezierCurve","tlv","trh","trv","brh","brv","blh","blv","factors","maxFactor","topWidth","rightHeight","bottomWidth","leftHeight","topLeftBorderDoubleOuterBox","getCurvePoints","TOP_LEFT","topRightBorderDoubleOuterBox","TOP_RIGHT","bottomRightBorderDoubleOuterBox","BOTTOM_RIGHT","bottomLeftBorderDoubleOuterBox","BOTTOM_LEFT","topLeftBorderDoubleInnerBox","topRightBorderDoubleInnerBox","bottomRightBorderDoubleInnerBox","bottomLeftBorderDoubleInnerBox","topLeftBorderStroke","topRightBorderStroke","bottomRightBorderStroke","bottomLeftBorderStroke","topLeftBorderBox","topRightBorderBox","bottomRightBorderBox","bottomLeftBorderBox","topLeftPaddingBox","topRightPaddingBox","bottomRightPaddingBox","bottomLeftPaddingBox","topLeftContentBox","topRightContentBox","bottomRightContentBox","bottomLeftContentBox","kappa","calculateBorderBoxPath","curves","calculatePaddingBoxPath","isClipEffect","equalPath","inlineLevel","nonInlineLevel","negativeZIndex","zeroOrAutoZIndexOrTransformedOrOpacity","positiveZIndex","nonPositionedFloats","nonPositionedInlineLevel","effects","BoundCurves","OpacityEffect","TransformEffect","borderBox","paddingBox","ClipEffect","getEffects","inFlow","croplessEffects","processListItems","numbering","listValue","parseStackingContexts","paintContainer","ElementPaint","StackingContext","listItems","parseStackTree","stackingContext","realStackingContext","treatAsRealStackingContext","listOwnerItems","parentStack","parsePathForBorder","borderSide","createPathFromCurves","createStrokePathFromCurves","outer1","outer2","inner1","inner2","contentBox","calculateBackgroundRendering","intrinsicSize","backgroundPositioningArea","calculateBackgroundPositioningArea","getBackgroundValueForIndex","backgroundPaintingArea","calculateBackgroundPaintingArea","backgroundImageSize","calculateBackgroundSize","sizeWidth","sizeHeight","calculateBackgroundRepeatPath","isAuto","AUTO","hasIntrinsicValue","intrinsicProportion","hasIntrinsicProportion","CONTAIN","COVER","hasIntrinsicWidth","hasIntrinsicHeight","hasIntrinsicDimensions","_document","parseMetrics","getMetrics","_activeEffects","fontMetrics","FontMetrics","applyEffects","popEffect","applyEffect","isOpacityEffect","isTransformEffect","renderStack","renderStackContent","renderNode","renderNodeBackgroundAndBorders","renderNodeContent","renderTextWithLetterSpacing","createFontStyle","fixIOSSystemFonts","renderTextNode","paintOrderLayer","textShadows","shadowColor","shadowOffsetX","shadowOffsetY","shadowBlur","renderReplacedElement","CanvasRenderer","isTextInputElement","canvasTextAlign","formatPath","renderRepeat","resizeImage","renderBackgroundImage","isRadialGradient","gradient","calculateRadius","midX","midY","invF","renderSolidBorder","curvePoints","renderDoubleBorder","outerPaths","parsePathForBorderDoubleOuter","innerPaths","parsePathForBorderDoubleInner","hasBackground","borders","calculateBackgroundCurvedPaintingArea","deltaW","deltaH","borderBoxArea","maskOffset","shadowPaintingArea","renderDashedDottedBorder","strokePaths","parsePathForBorderStroke","boxPaths","dashLength","spaceLength","useLineDash","multiplier","numberOfDashes","minSpace","maxSpace","path1","path2","Renderer","calculateContentBoxPath","iOSBrokenFonts","fontFamilies","enabled","instances","instanceName","Context","instanceCount","Cache","arrayEvery","baseEvery","predicate","guard","baseIsEqual","_CSSTransition","_ReplaceTransition","_TransitionGroup","_Transition","LogLevel","loggerOptions","packageName","packageVersion","setLoggerOptions","createDefaultLoggerOptions","localCallback","loggerCallback","piiLoggingEnabled","logLevel","logMessage","containsPii","toUTCString","executeCallback","errorPii","warningPii","infoPii","Verbose","verbosePii","trace","Trace","tracePii","isPiiLoggingEnabled","transformLog","transformExp","transformLogn","transformExpn","pow10","reflect","loggish","pows","log10","log2","logp","powp","transformSymlog","log1p","transformSymexp","expm1","symlogish","symlog","transformPow","transformSqrt","transformSquare","powish","unsquare","radial","squared","swap","quantile","value0","quickselect","ascending","newLeft","newRight","quantileSorted","thresholds","threshold","invertExtent","quantiles","quantize","newInterval","floori","offseti","millisecond","getMilliseconds","minute","durationSecond","hour","durationMinute","durationHour","weekday","durationDay","sunday","monday","tuesday","wednesday","thursday","friday","saturday","utcMinute","setUTCSeconds","utcHour","setUTCMinutes","utcDay","setUTCHours","setUTCDate","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcMonth","setUTCMonth","utcYear","setUTCFullYear","ticker","week","tickIntervals","tickInterval","bisector","utcWeek","utcTicks","utcTickInterval","timeTicks","timeTickInterval","localDate","utcDate","newDate","locale","timeFormat","utcFormat","pads","numberRe","percentRe","requoteRe","requote","formatRe","formatLookup","parseWeekdayNumberSunday","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekNumberMonday","parseFullYear","parseYear","parseZone","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","timeDay","timeYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","timeSunday","dISO","timeThursday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","timeMonday","formatYear","formatYearISO","formatFullYear","formatFullYearISO","formatZone","formatUTCDayOfMonth","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","calendar","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","timeMonth","timeWeek","timeHour","timeMinute","timeSecond","utcTime","utcSecond","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","locale_shortWeekdays","shortDays","locale_months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","utcFormats","parses","parseSpecifier","newFormat","newParse","utcParse","formatLocale","k10","sequential","sequentialLog","sequentialSymlog","sequentialPow","sequentialSqrt","sequentialQuantile","k21","diverging","divergingLog","divergingSymlog","divergingPow","divergingSqrt","_postcssValueParser2","_parser","_reducer2","_stringifier2","MATCH_CALC","walk","reducedAst","Detector","Offline","Online","_propTypes2","inBrowser","ping","isOffline","onreadystatechange","HEADERS_RECEIVED","polling","wrapperType","defaultPollingConfig","Base","online","onLine","goOnline","goOffline","getPollingConfig","startPolling","pollingId","stopPolling","callOnChangeHandler","_getPollingConfig2","_Base","_Base2","_Base3","isTouch","Brush","leaveTimer","travellerDragStartHandlers","handleDrag","isTravellerMoving","handleTravellerMove","isSlideMoving","handleSlideDrag","handleTouchMove","handleDragEnd","detachDragEndListener","handleLeaveWrapper","leaveTimeOut","handleEnterSlideOrTraveller","isTextActive","handleLeaveSlideOrTraveller","handleSlideDragStart","slideMoveStartX","attachDragEndListener","handleTravellerDragStart","lineY","renderDefaultTraveller","travellerWidth","updateId","prevData","prevUpdateId","prevTravellerWidth","prevX","scalePoint","scaleValues","createScale","minIndex","getIndexInRange","maxIndex","newIndex","movingTravellerId","brushMoveStartX","_this$setState","isFullGap","chartElement","compact","travellerX","traveller","travellerProps","onTouchStart","renderTraveller","_this$props9","_this$state3","getTextOfTick","_this$props10","alwaysShowText","_this$state4","isPanoramic","onTouchMove","renderBackground","renderPanorama","renderSlide","renderTravellerLayer","renderText","ReferenceArea","clipPathId","hasX1","hasX2","hasY1","hasY2","xValue1","xValue2","yValue1","yValue2","xAxis","yAxis","rangeMin","rangeMax","getRect","renderRect","isFront","xAxisId","yAxisId","detectReferenceElementsDomain","specifiedTicks","ReferenceLine","dots","ReferenceDot","areas","idKey","valueKey","finalDomain","key1","key2","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","runClearTimeout","Item","nextTick","argv","removeAllListeners","prependListener","prependOnceListener","binding","cwd","chdir","umask","FilterUtils","filteredItems","filterText","removeAccents","toLocaleLowerCase","fieldValue","stringValue","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","RangeError","encodingOrOffset","byteOffset","fromArrayLike","fromArrayBuffer","isEncoding","actual","fromObject","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","hexWrite","strLen","parsed","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","lo","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","bytesPerSequence","decodeCodePointsArray","SlowBuffer","INSPECT_MAX_BYTES","typedArraySupport","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","inspect","thisStart","thisEnd","thisCopy","targetCopy","checkOffset","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","baseForOwn","baseEach","createBaseEach","baseIsArguments","objectProto","isArguments","reIsUint","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","baseIsEqualDeep","bitmask","customizer","castPath","toKey","reIsDeepProp","reIsPlainProp","addClassName","addEvent","inputOptions","capture","addUserSelectStyles","styleEl","createCSSTransform","controlPos","positionOffset","translation","getTranslation","_getPrefix","browserPrefixToKey","createSVGTransform","getTouch","identifier","targetTouches","_shims","getTouchIdentifier","computedStyle","matchesSelectorAndParentsTo","baseNode","offsetXYFromParent","evt","offsetParentRect","removeClassName","removeEvent","detachEvent","removeUserSelectStyles","nodeInterop","cacheBabelInterop","cacheNodeInterop","matchesSelectorFunc","unitSuffix","defaultX","defaultY","band","ordinalRange","paddingInner","paddingOuter","pointish","nativeMax","nativeMin","lastThis","maxWait","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","flush","noGlobal","getProto","flat","class2type","fnToString","ObjectFunctionString","isWindow","preservedScriptAttributes","noModule","DOMEval","toType","jquery","pushStack","prevObject","even","_elem","odd","copyIsArray","expando","isReady","proto","globalEval","makeArray","callbackExpect","Expr","isXML","tokenize","compile","outermostContext","sortInput","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","pushNative","booleans","whitespace","pseudos","rwhitespace","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","nonHex","high","rcssescape","fcssescape","asCodePoint","unloadHandler","inDisabledFieldset","addCombinator","els","nid","groups","newSelector","newContext","qsa","testContext","toSelector","qsaError","cacheLength","markFunction","assert","addHandle","attrHandle","siblingCheck","sourceIndex","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","hasCompare","subWindow","getById","getElementsByName","attrId","disconnectedMatch","compareDocumentPosition","adown","bup","sortDetached","aup","ap","bp","expr","uniqueSort","duplicates","detectDuplicates","sortStable","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","operator","_argument","simple","ofType","uniqueCache","outerCache","nodeIndex","useCache","uniqueID","pseudo","setFilters","matcher","unmatched","elemLang","activeElement","hasFocus","_matchIndexes","submit","combinator","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","compiled","isXMLDoc","escapeSelector","until","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","sibling","targets","prevAll","addBack","parentsUntil","nextAll","nextUntil","prevUntil","rnothtmlwhite","Identity","Thrower","adoptValue","noValue","Callbacks","createOptions","firing","fired","locked","firingIndex","fire","stopOnFalse","disable","lock","fireWith","Deferred","tuples","always","newDefer","returned","notify","onFulfilled","onRejected","onProgress","maxDepth","special","mightThrow","notifyWith","resolveWith","exceptionHook","stackTrace","rejectWith","getStackHook","when","singleValue","resolveContexts","resolveValues","updateFunc","rerrorNames","readyException","readyList","completed","readyWait","doScroll","access","chainable","emptyGet","bulk","rmsPrefix","rdashAlpha","fcamelCase","_all","camelCase","acceptData","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","_removeData","dequeue","startLength","_queueHooks","clearQueue","pnum","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","adjustCSS","valueParts","adjusted","maxIterations","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","toggle","rcheckableType","rtagName","rscriptType","checkClone","noCloneChecked","wrapMap","thead","_default","setGlobalEval","refElements","tbody","tfoot","colgroup","optgroup","buildFragment","scripts","ignored","wrap","attached","fragment","htmlPrefilter","rtypenamespace","returnTrue","returnFalse","expectSync","safeActiveElement","origFn","leverageNative","notAsync","saved","isTrigger","delegateType","handleObjIn","eventHandle","handleObj","origType","elemData","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","nativeEvent","handlerQueue","fix","preDispatch","isPropagationStopped","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","noBubble","beforeunload","isDefaultPrevented","defaultPrevented","timeStamp","isSimulated","altKey","eventPhase","charCode","buttons","pointerId","pointerType","screenX","screenY","toElement","pointerenter","pointerleave","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","udataOld","udataCur","fixInput","domManip","hasScripts","iNoClone","valueIsFunction","_evalUrl","keepData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","replaceWith","replaceAll","insert","rnumnonpx","getStyles","opener","rboxStyle","curCSS","computed","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","reliableTrDimensionsVal","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","trChild","trStyle","cssPrefixes","emptyStyle","vendorProps","finalPropName","capName","vendorPropName","rdisplayswap","rcustomProp","cssShow","cssNormalTransform","setPositiveNumber","boxModelAdjustment","dimension","isBorderBox","computedVal","getWidthOrHeight","valueIsBorderBox","offsetProp","Tween","cssHooks","origName","isCustomProp","scrollboxSizeBuggy","propHooks","eased","swing","fxNow","inProgress","rfxtypes","rrun","schedule","createFxNow","genFx","includeWidth","createTween","Animation","tweeners","stopped","prefilters","currentTime","startTime","tweens","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","prefilter","speed","speeds","optall","doAnimation","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeToggle","slow","checkOn","optSelected","radioValue","boolHook","nType","attrHooks","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","curValue","clazz","finalValue","toggleClass","stateVal","isValidValue","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","attaches","rquery","parseXML","parserErrorElem","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","valueOrFunction","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","lastModified","etag","isLocal","contentType","accepts","responseFields","converters","ajaxSetup","ajaxPrefilter","ajaxTransport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","abort","statusText","finalText","crossDomain","hasContent","ifModified","beforeSend","success","nativeStatusText","responses","isSuccess","finalDataType","firstDataType","ajaxHandleResponses","conv2","conv","dataFilter","throws","ajaxConvert","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","xhrSuccessStatus","1223","xhrSupported","cors","errorCallback","xhrFields","onabort","binary","scriptAttrs","scriptCharset","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","keepScripts","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","parentOffset","defaultExtra","funcName","undelegate","fnOver","fnOut","holdReady","hold","parseJSON","_jQuery","_$","noConflict","isarray","tokensToFunction","tokensToRegExp","PATH_REGEXP","defaultDelimiter","delimiter","escaped","modifier","asterisk","partial","optional","escapeGroup","escapeString","encodeURIComponentPretty","attachKeys","endsWithDelimiter","regexpToRegexp","arrayToRegexp","stringToRegexp","FormatSpecifier","zero","comma","mid","ascendingComparator","Dropdown","_DropdownPanel","_DropdownItem","_reactTransitionGroup","_UniqueComponentId","focused","overlayVisible","onInputFocus","onInputBlur","onInputKeyDown","onEditableInputClick","onEditableInputChange","onEditableInputFocus","onOptionClick","onFilterInputChange","onFilterInputKeyDown","onPanelClick","onOverlayEnter","onOverlayEntered","onOverlayExit","onOverlayExited","isClearClicked","hideOverlay","showOverlay","persist","onFocus","onDownKey","onUpKey","visibleOptions","getVisibleOptions","selectedItemIndex","findOptionIndex","findPrevVisibleItem","selectItem","findNextVisibleItem","searchTimeout","char","previousSearchChar","currentSearchChar","searchValue","newOption","searchOption","selectedOptionUpdated","searchOptionInRange","getOptionLabel","searchFields","filterBy","optionLabel","bindDocumentClickListener","updateEditableLabel","findOption","optionValue","getOptionValue","selectedOptionIndex","panel","alignPanel","scrollInView","bindResizeListener","filterInputAutoFocus","filterInput","unbindDocumentClickListener","unbindResizeListener","resetFilterOnHide","resetFilter","absolutePosition","relativePosition","highlightItem","itemsWrapper","documentClickListener","isOutsideClicked","isSameNode","nativeSelect","checkValidity","selectedOption","autoFocus","updateInputField","hideTimeout","placeHolderOption","inputId","ariaLabel","ariaLabelledBy","_this12","valueTemplate","getJSXElement","showClear","_this13","_this14","optionKey","getOptionKey","DropdownItem","itemTemplate","emptyFilterMessage","_this15","_this16","hiddenSelect","renderHiddenSelect","keyboardHelper","renderKeyboardHelper","labelElement","dropdownIcon","renderDropdownIcon","renderFilter","clearIcon","renderClearIcon","DropdownPanel","panelStyle","panelClassName","RowCheckbox","rowData","defaultChecked","Messages","_UIMessage","messageIdx","messages","onClose","newMessages","onRemove","UIMessage","paramsSerializer","serializedParams","hashmarkIndex","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","getDefaultAdapter","transformRequest","transformResponse","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","auth","Authorization","fullPath","baseURL","responseURL","timeoutErrorMessage","xsrfValue","withCredentials","onDownloadProgress","onUploadProgress","upload","cancelToken","enhanceError","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","mergeDeepProperties","axiosKeys","otherKeys","Cancel","DO_NOT_EXPORT_CODEPAGE","cpt","magic","sbcs_cache","dbcs_cache","magic_cache","magic_decode","magic_encode","cpdcache","cpecache","sfcc","cca","mdl","sbcs_encode","EE","make_EE","ofmt","sbcs_decode","DD","dbcs_encode","dbcs_decode","utf8_d","direct","encache","null_enc","cp_decache","decache","last_enc","last_cp","sbcs","dbcs","BM","o64","isstr","hascp","Timeout","clearFn","_id","_clearFn","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","setImmediate","clearImmediate","baseFor","stubFalse","freeExports","freeModule","webpackPolyfill","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","isTypedArray","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","funcToString","SetCache","arraySome","cacheHas","equalFunc","isPartial","othLength","arrStacked","othStacked","arrValue","othValue","compared","othIndex","setCacheAdd","setCacheHas","srcValue","isKey","stringToPath","baseToString","fromRight","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","arrayPush","isFlattenable","isStrict","reHasUnicode","comparator","flip","_convert","_convert2","isEqual","convertMathExpression","flipValue","isValueType","reduceAddSubExpression","reduceDivisionExpression","reduceMultiplicationExpression","reduceMathExpression","_reactLifecyclesCompat","transitionGroup","getChildContext","contextTypes","childContextTypes","polyfill","componentWillMount","componentWillReceiveProps","componentWillUpdate","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","isReactComponent","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","newApiName","maybeSnapshot","snapshot","__suppressDeprecationWarning","classNamesShape","timeoutsShape","_ChildMapping","getInitialChildMapping","canDragX","canDragY","createCoreData","isStart","lastX","lastY","createDraggableData","coreData","getBoundPosition","cloneBounds","boundNode","ownerWindow","boundNodeEl","nodeStyle","boundNodeStyle","_domFns","getControlPosition","touchIdentifier","draggableCore","touchObj","snapToGrid","pendingX","pendingY","containerClass","boxClass","iconClass","widgetUuid","widgetSlice","existingConstructor","basePrototype","proxiedPrototype","fullName","_createWidget","_childConstructors","_superApply","__super","__superApply","widgetEventPrefix","widgetName","widgetFullName","childPrototype","inputIndex","inputLength","isMethodCall","methodValue","_init","defaultElement","uuid","eventNamespace","bindings","hoverable","focusable","classesElementLookup","_on","_getCreateOptions","_create","_setOptionDisabled","_trigger","_getCreateEventData","_destroy","_removeClass","curOption","_setOptions","_setOption","_setOptionClasses","classKey","currentElements","_toggleClass","enable","full","processClassString","checkOption","_untrackClassesElement","suppressDisabledCheck","delegateElement","handlerProxy","_off","_hoverable","_focusable","focusout","defaultEffect","hasOptions","effectName","cachedScrollbarWidth","rhorizontal","rvertical","roffset","rposition","rpercent","_position","getOffsets","getDimensions","w1","innerDiv","getScrollInfo","within","isDocument","hasOverflowX","getWithinInfo","withinElement","atOffset","targetWidth","basePosition","scrollInfo","collisionPosition","elemWidth","elemHeight","collisionWidth","collisionHeight","feedback","important","fit","newOverRight","withinOffset","collisionPosLeft","overLeft","overRight","newOverBottom","collisionPosTop","overTop","overBottom","newOverLeft","newOverTop","flipfit","dataName","disableSelection","eventType","enableSelection","hasTabindex","mapName","focusableIfVisible","fieldset","form","formResetMixin","_formResetHandler","_bindFormResetHandler","_unbindFormResetHandler","BACKSPACE","COMMA","ENTER","ESCAPE","HOME","PAGE_DOWN","PAGE_UP","PERIOD","TAB","selectorEscape","ancestor","ancestors","scrollParent","excludeStaticParent","tabbable","removeUniqueId","mouseHandled","_mouseInit","_mouseDown","started","_mouseDestroy","_mouseMoveDelegate","_mouseUpDelegate","_mouseMoved","_mouseStarted","_mouseUp","_mouseDownEvent","btnIsLeft","elIsCancel","_mouseCapture","mouseDelayMet","_mouseDelayTimer","_mouseDistanceMet","_mouseDelayMet","_mouseStart","_mouseMove","documentMode","ignoreMissingWhich","_mouseDrag","_mouseStop","plugins","allowDisconnected","safeBlur","mouse","addClasses","connectToSortable","containment","cursorAt","iframeFix","refreshPositions","revert","revertDuration","scrollSensitivity","scrollSpeed","snapMode","snapTolerance","_setPositionRelative","_setHandleClassName","_removeHandleClassName","destroyOnClear","_getHandle","_blurActiveElement","_blockFrames","iframeBlocks","_unblockFrames","_createHelper","_cacheHelperProportions","ddmanager","_cacheMargins","cssPosition","hasFixedAncestor","positionAbs","_refreshOffsets","originalPosition","_generatePosition","originalPageX","originalPageY","_adjustOffsetFromHelper","_setContainment","_clear","dropBehaviour","prepareOffsets","dragStart","_getParentOffset","_getRelativeOffset","noPropagation","_convertPositionTo","_uiHash","dropped","dragStop","handleElement","helperIsFunction","helperProportions","_isRootNode","po","scrollIsRootNode","isUserScrollable","relativeContainer","constrainPosition","cancelHelperRemoval","uiSortable","sortables","isOver","_storedCSS","_helper","innermostIntersecting","_intersectsWith","containerCache","_parent","currentItem","fromOutside","_revert","_cursor","_opacity","scrollParentNotHidden","overflowOffset","scrolled","snapElements","$o","inst","snapping","release","snapItem","_zIndex","greedy","activate","deactivate","proportions","isover","isout","_addToManager","droppables","_splice","_activate","_addActiveClass","_deactivate","_removeActiveClass","_over","_addHoverClass","_out","_removeHoverClass","_drop","custom","childrenIntersection","intersect","isOverAxis","toleranceMode","absolute","droppablesLoop","greedyChild","parentInstance","uiBackCompat","hoverClass","activeClass","alsoResize","animateDuration","animateEasing","ghost","handles","_num","_hasScroll","_aspectRatio","originalElement","_proportionallyResizeElements","resizable","elementIsWrapper","originalResizeStyle","_proportionallyResize","_setupHandles","_handles","resizing","_removeHandles","hname","nw","_renderAxis","padPos","padWrapper","curleft","curtop","_renderProxy","sizeDiff","originalMousePosition","_propagate","smp","_change","_updatePrevProperties","_updateVirtualBoundaries","_updateRatio","_respectSize","_updateCache","_applyChanges","ista","soffseth","soffsetw","prevPosition","prevSize","forceAspectRatio","pMinWidth","pMaxWidth","pMinHeight","pMaxHeight","_vBoundaries","cpos","ismaxw","ismaxh","isminw","isminh","_getPaddingPlusBorderDimensions","paddings","prel","outerDimensions","elementOffset","containerElement","containerPosition","parentData","containerSize","woset","hoset","isParent","isOffsetRelative","pRatio","cop","continueResize","ho","gridX","gridY","isMaxWidth","isMaxHeight","isMinWidth","isMinHeight","autoRefresh","selecting","unselected","unselecting","dragged","elementPos","selectees","selecteeOffset","$element","startselected","opos","selectee","doSelect","connectWith","dropOnEmpty","forcePlaceholderSize","forceHelperSize","beforeStop","change","receive","_isOverAxis","_isFloating","overrideHandle","validHandle","reverting","_refreshItems","_removeCurrentsFromItems","noActivation","currentContainer","domPosition","_createPlaceholder","storedCursor","storedStylesheet","_storedOpacity","_storedZIndex","_preserveHelperProportions","containers","dragging","itemElement","lastPositionAbs","_intersectsWithPointer","_intersectsWithSides","_rearrange","_contactContainers","_noFinalSort","_getItemsAsjQuery","connected","expression","dyClick","dxClick","isOverElementHeight","isOverElementWidth","isOverElement","forcePointerForContainers","floating","verticalDirection","horizontalDirection","_getDragVerticalDirection","_getDragHorizontalDirection","isOverBottomHalf","isOverRightHalf","_connectWith","queries","addItems","targetData","_queries","queriesLength","toleranceElement","refreshContainers","_createTrPlaceholder","sourceTr","targetTr","itemWithLeastDistance","posProperty","sizeProperty","nearBottom","innermostContainer","innermostIndex","hardRefresh","delayedTriggers","delayEvent","_inst","sender","collapsible","heightStyle","icons","activeHeader","beforeActivate","hideProps","showProps","prevShow","prevHide","_processPanels","_createIcons","_destroyIcons","_setupEvents","_keydown","toFocus","_eventHandler","_panelKeyDown","prevHeaders","prevPanels","panels","_findActive","headerId","panelId","keydown","activeChildren","clickedChildren","clicked","clickedIsActive","collapsing","toShow","toHide","eventData","oldHeader","oldPanel","newHeader","newPanel","_toggle","_animate","_toggleComplete","boxSizing","down","submenu","activeMenu","previousFilter","actualTarget","keepActiveItem","collapseAll","_closeOnDocumentClick","submenus","character","previousPage","_move","collapse","filterTimer","_filterMenuItems","newSubmenus","newItems","newWrappers","submenuCaret","_isDivider","_itemRole","listbox","activeParent","_scrollIntoView","_close","_startOpening","fromFocus","_open","currentMenu","startMenu","newItem","isFirstItem","isLastItem","escapedCharacter","minLength","requestIndex","suppressKeyPress","suppressKeyPressRepeat","suppressInput","isTextarea","isMultiLine","_isContentEditable","valueMethod","isNewMenu","_keyEvent","term","_searchTimeout","keypress","selectedItem","cancelBlur","searching","_initSource","_appendTo","menufocus","liveRegion","menuselect","_isEventTargetInWidget","menuElement","_closeOnClickOutside","autocomplete","equalValues","menuVisible","modifierKey","_search","cancelSearch","_response","__response","_normalize","_suggest","ul","_renderMenu","_resizeMenu","_renderItemData","_renderItem","keyEvent","escapeRegex","noResults","datepicker_instActive","controlgroupCornerRegex","Datepicker","_curInst","_disabledInputs","_datepickerShowing","_inDialog","_mainDivId","_inlineClass","_appendClass","_triggerClass","_dialogClass","_disableClass","_unselectableClass","_currentClass","_dayOverClass","regional","closeText","prevText","nextText","currentText","monthNames","monthNamesShort","dayNames","dayNamesShort","dayNamesMin","weekHeader","dateFormat","firstDay","showMonthAfterYear","yearSuffix","_defaults","showOn","showAnim","showOptions","defaultDate","buttonText","buttonImage","buttonImageOnly","hideIfNoPrevNext","navigationAsDateFormat","gotoCurrent","changeMonth","changeYear","yearRange","showOtherMonths","selectOtherMonths","showWeek","calculateWeek","iso8601Week","shortYearCutoff","minDate","maxDate","beforeShowDay","beforeShow","onChangeMonthYear","numberOfMonths","showCurrentAtPos","stepMonths","stepBigMonths","altField","altFormat","constrainInput","showButtonPanel","dpDiv","datepicker_bindHover","datepicker_handleMouseover","datepicker","_isDisabledDatepicker","inline","datepicker_extendRemove","spinnerModifer","onlyVisible","_enhance","_callChildMethod","childWidgets","controlgroupLabel","_initWidgets","instanceOptions","_resolveClassesValues","widgetElement","_updateCornerClass","_buildSimpleOptions","_spinnerOptions","_buttonOptions","_checkboxradioOptions","_selectmenuOptions","_readType","originalLabel","_updateLabel","_updateIcon","_getRadioGroup","nameSelector","_toggleClasses","checkboxradio","iconSpace","toAdd","iconPosition","showLabel","hasTitle","_updateTooltip","displayBlock","_attachIcon","_attachIconSpace","newShowLabel","newIcon","secondary","buttonset","controlgroup","markerClassName","maxRows","_widgetDatepicker","_attachDatepicker","_newInst","_connectDatepicker","_inlineDatepicker","selectedDay","selectedMonth","selectedYear","drawMonth","drawYear","_attachments","_doKeyDown","_doKeyPress","_doKeyUp","_autoSize","_disableDatepicker","_showDatepicker","_lastInput","_hideDatepicker","findMax","maxI","_formatDate","divSpan","_setDate","_getDefaultDate","_updateDatepicker","_updateAlternate","_dialogDatepicker","browserWidth","browserHeight","_dialogInst","_dialogInput","_pos","blockUI","_destroyDatepicker","$target","_enableDatepicker","_getInst","_optionDatepicker","_getDateDatepicker","_getMinMaxDate","_changeDatepicker","_refreshDatepicker","_setDateDatepicker","noDefault","_setDateFromField","_getDate","dateStr","handled","_selectDay","_adjustDate","_clearDate","_gotoToday","_possibleChars","lastVal","_getFormatConfig","beforeShowSettings","isFixed","_findPos","_checkOffset","datepicker_getZindex","_shouldFocusInput","_generateHTML","_attachHandlers","origyearshtml","numMonths","_getNumberOfMonths","activeCell","yearshtml","dpWidth","dpHeight","inputWidth","inputHeight","viewWidth","viewHeight","_tidyDialog","unblockUI","_checkExternalClick","_adjustInstDate","currentDay","currentMonth","currentYear","_notifyChange","_selectMonthYear","_selectDate","formatDate","noWeekends","checkDate","iFormat","iValue","shortYearCutoffTemp","doy","literal","lookAhead","getNumber","isDoubled","shortNames","longNames","checkLiteral","_ticksTo1970","_getDaysInMonth","_daylightSavingAdjust","ATOM","COOKIE","ISO_8601","RFC_822","RFC_850","RFC_1036","RFC_1123","RFC_2822","RSS","TICKS","TIMESTAMP","W3C","formatNumber","formatName","dates","_restrictMinMax","_determineDate","offsetString","offsetNumeric","noChange","origMonth","origYear","today","selectDay","selectMonth","selectYear","maxDraw","gotoDate","buttonPanel","selectedDate","cornerClass","calender","daysInMonth","leadDays","curRows","numRows","printDate","dRow","daySettings","otherMonth","unselectable","tempDate","isMultiMonth","currentDate","_canAdjustMonth","_isInRange","_generateMonthYearHeader","_getFirstDayOfMonth","inMinYear","inMaxYear","years","thisYear","determineYear","endYear","monthHtml","minMax","curYear","curMonth","yearSplit","minYear","maxYear","otherArgs","autoOpen","closeOnEscape","modal","topOffset","beforeClose","resizeStart","resizeStop","sizeRelatedOptions","resizableRelatedOptions","originalCss","originalTitle","_createWrapper","uiDialog","_createTitlebar","_createButtonPane","_makeDraggable","_makeResizable","_isOpen","_trackFocus","_untrackInstance","_destroyOverlay","_focusedElement","_hide","isOpen","moveToTop","_moveToTop","zIndices","zIndexMax","_focusTabbable","_size","_createOverlay","_show","_makeFocusTarget","uiDialogButtonPane","uiDialogTitlebarClose","_keepFocus","checkFocus","tabbables","uiDialogTitle","uiDialogTitlebar","_title","uiButtonSet","_createButtons","buttonOptions","filteredUi","_minHeight","_trackingInstances","resizableOptions","isResizable","nonContentHeight","minContentHeight","maxContentHeight","_allowInteraction","isOpening","overlays","dialogClass","oldValue","_constrainedValue","valueDiv","_refreshValue","_percentage","overlayDiv","selectmenuId","_drawButton","_drawMenu","_rendered","menuItems","_parseOption","buttonItem","_renderButtonItem","_resizeButton","_buttonEvents","_refreshMenu","menuWrap","menuInstance","_setSelection","_select","focusIndex","_getSelectedItem","_parseOptions","_setAria","_toggleAttr","_documentClick","menuWidget","_setText","currentOptgroup","addRange","_selectFocusedItem","oldIndex","slide","numPages","_keySliding","_mouseSliding","_animateOff","_handleIndex","_detectOrientation","_calculateNewMax","_createRange","_createHandles","handleCount","existingHandles","_valueMin","_handleEvents","normValue","closestHandle","mouseOverHandle","elementSize","_normValueFromMouse","_valueMax","thisDistance","_lastChangedValue","_clickOffset","_slide","_stop","pixelTotal","pixelMouse","percentMouse","valueTotal","valueMouse","_trimAlignValue","uiHash","handleIndex","_hasMultipleValues","newVal","otherVal","newValues","vals","valsLength","_refreshRange","valModStep","alignValue","_precision","_precisionOf","decimal","lastValPercent","valPercent","valueMin","valueMax","oRange","_set","curVal","keyup","culture","incremental","numberFormat","spin","_draw","_events","mousewheel","spinning","_spin","mousewheelTimer","_repeat","uiSpinner","_adjustValue","_increment","aboveMin","_parse","Globalize","isValid","allowAny","stepUp","_stepUp","stepDown","_stepDown","pageUp","pageDown","spinner","_uiSpinnerHtml","_buttonHtml","beforeLoad","_isLocal","anchorUrl","locationUrl","running","_processTabs","_initialActive","tabs","anchors","locationHash","_getPanelForTab","_tabKeydown","focusedTab","goingForward","_handlePageNav","activating","_focusNextTab","_panelKeydown","_findNextTab","lastTabIndex","_setupHeightStyle","_sanitizeSelector","lis","tablist","prevTabs","prevAnchors","_getList","anchorId","originalAriaControls","_createPanel","oldTab","newTab","_getIndex","_ajaxSettings","track","_addDescribedBy","describedby","_removeDescribedBy","tooltips","disabledTitles","tooltipData","_updateContent","_disable","_enable","blurEvent","_registerCloseHandlers","contentOption","delayedShow","a11yContent","positionOption","_find","_tooltip","fakeEvent","_removeTooltip","closing","hiding","rplusequals","stringParsers","execResult","space","spaces","supportElem","allowEmpty","stringParse","_rgba","spaceName","transparent","same","localCache","isCache","_space","used","startColor","startValue","endValue","opaque","toRgbaString","toHslaString","includeAlpha","local","vtype","_hsla","colorInit","classAnimationActions","shorthandStyles","borderBottom","borderLeft","borderRight","borderWidth","getElementStyles","currentStyle","setAttr","animateClass","applyClassChange","baseClass","allAnimations","oldStyle","styleDifference","styleInfo","dfd","switchClass","_normalizeArguments","standardAnimationOption","parseClip","setMode","createWrapper","removeWrapper","scaledDimensions","clipToBox","queueLength","saveStyle","restoreStyle","getBaseline","createPlaceholder","dataSpace","removePlaceholder","cleanUp","setTransition","cssUnit","effectMethod","defaultMode","queueName","normalizedMode","cssClip","clipObj","transfer","targetFixed","fixTop","fixLeft","endPosition","startPosition","clipInit","baseEasings","Sine","Circ","Elastic","Back","Bounce","pow2","easeIn","upAnim","downAnim","refValue","anims","motion","queuelen","both","oppositeMotion","mx","pieces","childComplete","horizFirst","animation1","animation2","cProps","vProps","hProps","childOriginal","childFrom","childTo","newOptions","fade","showhide","animateTo","positiveMotion","startClip","startRef","fieldContentRegExp","serializeCookie","maxAge","expires","httpOnly","secure","sameSite","cookie","cookieOptions","nameEQ","cookie$1","lookupCookie","cookieMinutes","cookieDomain","querystring","lookupQuerystring","hasLocalStorageSupport","localStorageAvailable","lookupLocalStorage","hasSessionStorageSupport","sessionStorageAvailable","lookupSessionStorage","navigator$1","userLanguage","htmlTag","lookupFromPathIndex","subdomain","lookupFromSubdomainIndex","Browser","detectors","i18nOptions","caches","excludeCacheFor","lookupFromUrlIndex","addDetector","detector","detectionOrder","detected","detectorName","cacheName","loadPath","addPath","allowMultiLoading","parsePayload","reloadInterval","customHeaders","queryStringParams","requestOptions","credentials","Backend","allOptions","_readAny","loadUrlLanguages","loadUrlNamespaces","resolvedLoadPath","loadUrl","parseErr","finished","dataArray","resArray","_this$services","currentLanguage","fetchApi","XmlHttpRequestApi","ActiveXObjectApi","fetchNode","addQueryString","paramName","requestWithFetch","requestWithXmlHttpRequest","808","withConverter","703","697","414","Cookies","OPTIONS","SAME_SITE_OPTIONS","VISIBLE_OPTIONS","getCookieConsentValue","resetCookieConsentValue","BOTTOM","LAX","HIDDEN","SHOW","BY_COOKIE_VALUE","acceptOnScrollPercentage","acceptOnScroll","handleScroll","flexWrap","buttonStyle","borderRadius","flex","declineButtonStyle","overlayStyle","getCookieValue","passive","removeScrollListener","cookieName","cookieValue","hideOnAccept","onAccept","setCookie","declineCookieValue","hideOnDecline","onDecline","setDeclineCookie","extraCookieOptions","cookieSecurity","disableStyles","declineButtonText","containerClasses","contentClasses","buttonClasses","buttonWrapperClasses","declineButtonClasses","buttonId","declineButtonId","disableButtonStyles","enableDeclineButton","flipButtons","ButtonComponent","overlayClasses","ariaAcceptLabel","ariaDeclineLabel","decline","objectWithoutPropertiesLoose","commonjsGlobal","createEventEmitter","changedBits","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","Consumer","_Component2","observedBits","_proto2","reactIs","REACT_STATICS","getDefaultProps","getDerivedStateFromError","mixins","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","inheritedComponent","targetStatics","sourceStatics","ORIENT_MAP","originCoordinate","isFinit","deferClear","getDisplayedData","graphicalItems","dataStartIndex","dataEndIndex","itemsData","itemData","getTooltipContent","chartData","activeIndex","activeLabel","tooltipAxis","displayedData","getTooltipData","rangeObj","rangeData","calculateTooltipPos","orderedTooltipTicks","tooltipTicks","activeTooltipIndex","activePayload","activeCoordinate","_angle","_radius","getActiveCoordinate","getAxisMap","_ref4$axisType","AxisComp","axisIdKey","axes","stackOffset","duplicate","errorBarsDomain","axisDomain","getAxisMapByAxes","Axis","getAxisMapByItems","createDefaultState","_brushItem$props","_brushItem$props2","defaultShowTooltip","brushItem","isTooltipActive","getAxisNameByLayout","numericAxisName","cateAxisName","generateCategoricalChart","_class","_temp","GraphicalChild","_ref6$defaultTooltipE","defaultTooltipEventType","_ref6$validateTooltip","validateTooltipEventTypes","axisComponents","getFormatItems","currentState","globalMaxBarSize","_getAxisNameByLayout","hasGraphicalBarItem","formattedItems","childMaxBarSize","axisObj","_objectSpread6","cateAxis","cateTicks","itemIsBar","barPosition","_getBandSizeOfAxis","barBandSize","_objectSpread7","composedFn","getComposedData","childIndex","updateStateOfAxisMapsOffsetAndStackGroups","_getAxisNameByLayout2","prevLegendBBox","_ref5$xAxisMap","xAxisMap","_ref5$yAxisMap","yAxisMap","offsetH","offsetV","brushBottom","calculateOffset","legendBBox","ticksObj","tooltipAxisBandSize","tooltipTicksGenerator","CategoricalChartWrapper","uniqueChartId","legendInstance","deferId","clearDeferId","handleLegendBBoxUpdate","handleReceiveSyncEvent","cId","chartId","syncId","applySyncEvent","handleBrushChange","_ref9","triggerSyncEvent","handleMouseEnter","getMouseInfo","_nextState","triggeredAfterMouseMove","handleItemMouseEnter","activeItem","tooltipPayload","tooltipPosition","handleItemMouseLeave","handleMouseMove","handleMouseLeave","cancelThrottledTriggerAfterMouseMove","handleOuterEvent","_nextState2","handleMouseDown","handleMouseUp","handleTouchStart","handleTouchEnd","verticalCoordinatesGenerator","_ref10","horizontalCoordinatesGenerator","_ref11","axesTicksGenerator","renderCursor","tooltipEventType","getTooltipEventType","cursorComp","getCursorRectangle","_this$getCursorPoints","getCursorPoints","Sector","cursorProps","payloadIndex","renderPolarAxis","axisOption","renderXAxis","renderAxis","renderYAxis","renderGrid","renderPolarGrid","radialLines","polarAngles","polarRadius","radiusAxisMap","angleAxisMap","radiusAxis","angleAxis","renderLegend","tooltipItem","_this$state5","renderBrush","_this$state6","renderReferenceElement","_this$state7","_element$props2","renderActivePoints","_ref12","activePoint","basePoint","isRange","_item$item$props","activeDot","dotProps","renderActiveDot","renderGraphicChild","filterFormatItem","_this$state8","_item$item$props2","hasActive","itemEvents","onCLick","renderCustomized","throttleDelay","_throttle","_isBoolean","_this$state9","xScale","yScale","xValue","yValue","toolTipData","_this$state10","halfSize","_this$state11","_cx","_cy","innerPoint","outerPoint","_this$state12","tooltipEvents","onTouchEnd","_maxListeners","syncMethod","_this$state13","validateChartX","validateChartY","axisOptions","_this$state$offset","_ref13","_ref14","_ref15","_ref16","_this$state$xAxisMap","_this$state$xAxisMap$","_this$state$yAxisMap","_this$state$yAxisMap$","chartXY","itemDisplayName","activeBarItem","_activeBarItem","CartesianGrid","XAxis","YAxis","Bar","Area","Radar","RadialBar","Scatter","Funnel","PolarGrid","PolarAngleAxis","PolarRadiusAxis","Customized","renderClipPath","parseEventsOfWrapper","defaultState","prevHeight","prevLayout","prevStackOffset","prevMargin","_defaultState","keepFromPrevState","updatesToState","newUpdateId","createFind","debounce","fixedX","fixedY","endPoints","isFixedX","isFixedY","isSegment","_props$viewBox","yCoord","xCoord","_orientation","_coord","_points","_points2","_some","getEndPoints","_endPoints","_endPoints$","_endPoints$2","lineProps","renderLine","baseSome","baseAssignValue","isX","isY","getCoordinate","renderDot","HAS_MAP_SUPPORT","HAS_SET_SUPPORT","createComparator","createIsEqual","areObjectsEqual","aShape","bShape","areArraysEqual","sameValueZeroEqual","areRegExpsEqual","isPromiseLike","areMapsEqual","areSetsEqual","circularDeepEqual","createCircularEqualCreator","circularShallowEqual","getTangentCircle","isExternal","cornerRadius","cornerIsExternal","centerRadius","centerAngle","lineTangencyAngle","circleTangency","lineTangency","getSectorPath","tempEndAngle","outerStartPoint","outerEndPoint","innerStartPoint","innerEndPoint","forceCornerRadius","deltaRadius","_getTangentCircle","soct","solt","sot","_getTangentCircle2","eoct","eolt","eot","outerArcAngle","_getTangentCircle3","sict","silt","sit","_getTangentCircle4","eict","eilt","eit","innerArcAngle","getSectorWithCorner","Events","_eventsCount","clearEvent","eventNames","prefixed","__rest","reWhitespace","trimmedEndIndex","reTrimStart","nativeObjectToString","isOwn","unmasked","require$$1","patchResizeHandler","resizeCallback","refreshMode","refreshRate","refreshOptions","throttle","isSSR","isDOMElement","HTMLDocument","createNotifier","handleWidth","handleHeight","cancelHandler","resizeHandler","attachObserver","targetRef","observerOptions","observableElement","resizeObserver","observe","targetDomEl","getRenderType","notifyResize","contentRect","skipOnMount","createResizeHandler","ResizeObserver","typedChildren","WrapperTag","nativeProps","_require","Draggable","DraggableCore","definition","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","darkgrey","darkslategrey","dimgrey","grey","lightgray","lightslategrey","rebeccapurple","slategrey","color_formatHex","formatHex","color_formatRgb","formatRgb","rgbn","Rgb","rgbConvert","rgb_formatHex","rgb_formatRgb","Hsl","hslConvert","hsl2rgb","basis","v0","v3","t3","displayable","formatHsl","brighter","gamma","nogamma","exponential","rgbGamma","colorRgb","rgbSpline","isNumberArray","genericArray","reA","reB","am","bm","numberArray","stubbedPublicClientApplication","acquireTokenPopup","acquireTokenRedirect","acquireTokenSilent","acquireTokenByCode","getAllAccounts","getAccountByHomeId","getAccountByUsername","getAccountByLocalId","handleRedirectPromise","loginPopup","loginRedirect","logout","logoutRedirect","logoutPopup","ssoSilent","addEventCallback","removeEventCallback","addPerformanceCallback","removePerformanceCallback","enableAccountStorageEvents","disableAccountStorageEvents","getTokenCache","getLogger","setLogger","setActiveAccount","getActiveAccount","initializeWrapperLibrary","setNavigationClient","getConfiguration","getInteractionStatusFromEvent","currentStatus","LOGIN_START","Login","SSO_SILENT_START","SsoSilent","ACQUIRE_TOKEN_START","interactionType","Popup","AcquireToken","HANDLE_REDIRECT_START","HandleRedirect","LOGOUT_START","Logout","SSO_SILENT_SUCCESS","SSO_SILENT_FAILURE","None","LOGOUT_END","HANDLE_REDIRECT_END","LOGIN_SUCCESS","LOGIN_FAILURE","ACQUIRE_TOKEN_SUCCESS","ACQUIRE_TOKEN_FAILURE","defaultMsalContext","accounts","MsalContext","accountArraysAreEqual","arrayA","arrayB","comparisonArray","elementA","elementB","MsalProviderActionType","reducer","previousState","newInProgress","EventMessageUtils","currentAccounts","MsalProvider","useMemo","useReducer","EVENT","UNBLOCK_INPROGRESS","ReactAuthErrorMessage","isNativeReflectConstruct","Wrapper","valueAccessor","_last","LabelList","idProps","parseLabelList","ErrorBar","dataPointFormatter","svgProps","_dataPointFormatter","errorVal","lowBound","highBound","lineCoordinates","_errorVal","yMid","_scale","xMid","_xMin","_xMax","_yMin","_yMax","coordinates","ckeckPropsLabel","explicitChilren","implicitLabelList","mainCurve","isAnimationFinished","getStrokeDasharray","remainLength","restLength","remainLines","emptyLines","handleAnimationEnd","handleAnimationStart","animationId","prevAnimationId","curPoints","prevPoints","linesUnit","dotItem","curveDom","errorBarItems","dataPoint","needClip","customDotProps","renderDotItem","dotsProps","curveProps","animateNewValues","prevPointsDiffFactor","stepData","prevPointIndex","interpolatorX","interpolatorY","_interpolatorX","_interpolatorY","renderCurveStatically","currentStrokeDasharray","curLength","renderCurveWithAnimation","hasSinglePoint","renderCurve","renderErrorBar","renderDots","xAxisTicks","yAxisTicks","e10","e5","power","step0","step1","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","updater","forceUpdate","isPureReactComponent","__self","__source","_owner","keyPrefix","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","createFactory","createRef","_ctor","_status","_result","useDebugValue","useImperativeHandle","useLayoutEffect","onError","extractEvents","eventTypes","phasedRegistrationNames","registrationName","dependencies","stateNode","acceptsBooleans","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","db","_debugOwner","_debugSource","fileName","_valueTracker","stopTracking","_wrapperState","initialChecked","controlled","defaultSelected","MSApp","execUnsafeLocalFunction","animationend","animationiteration","animationstart","transitionend","alternate","effectTag","memoizedState","dehydrated","_dispatchListeners","_dispatchInstances","isPersistent","srcElement","correspondingUseElement","topLevelType","targetInst","eventSystemFlags","containerInfo","blockedOn","delete","unstable_runWithPriority","priority","hydrate","unstable_scheduleCallback","unstable_NormalPriority","bubbled","captured","eventPriority","unstable_UserBlockingPriority","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","orphans","tabSize","widows","floodOpacity","stopOpacity","strokeDashoffset","strokeMiterlimit","menuitem","keygen","wbr","contentEditable","dispatchConfig","_targetInst","Wd","Xd","Yd","Zd","$d","Interface","eventPool","destructor","getPooled","cancelBubble","isTrusted","beforeInput","compositionEnd","compositionStart","compositionUpdate","datetime","tel","_isInputEventSupported","Alt","Control","Meta","Shift","getModifierState","fromElement","movementX","movementY","pressure","tangentialPressure","tiltX","tiltY","twist","isPrimary","mouseEnter","mouseLeave","pointerEnter","pointerLeave","gf","jf","selectionStart","selectionEnd","anchorNode","anchorOffset","focusNode","focusOffset","kf","animationName","elapsedTime","pseudoElement","mf","clipboardData","pf","Esc","Spacebar","Up","Down","Del","Win","Menu","Scroll","MozPrintableKey","qf","27","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","rf","tf","uf","vf","wheelDeltaX","wheelDeltaY","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","Af","Bf","Cf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Df","Ef","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","og","childExpirationTime","qg","firstContext","expirationTime","rg","responders","tg","ug","updateQueue","baseState","baseQueue","vg","wg","suspenseConfig","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","shouldComponentUpdate","Lg","Mg","Ng","Og","Pg","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","eh","fh","gh","hh","memoizedProps","revealOrder","ih","responder","jh","kh","lh","mh","nh","ph","qh","rh","uh","vh","wh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","yh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","Zh","$h","pendingContext","retryTime","unstable_avoidThisFallback","isBackwards","rendering","renderingStartTime","tailExpiration","tailMode","wasMultiple","multiple","WeakSet","Gi","__reactInternalSnapshotBeforeUpdate","Ji","Ki","Qi","_reactRootContainer","Vi","Wi","Xi","Yi","Zi","$i","componentDidCatch","aj","componentStack","Rj","bj","cj","dj","kj","lj","mj","nj","oj","qj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","Pj","Qj","Sj","firstSuspendedTime","activeElementDetached","focusedElem","selectionRange","Tj","Uj","Vj","Wj","Xj","unstable_observedBits","Zj","pendingChildren","ck","dk","ek","_internalRoot","gk","ik","hk","jk","unmount","Lj","lk","findFiberByHostInstance","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","flushSync","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","performance","port2","onmessage","postMessage","sortIndex","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","bigint","PrimeReact","subTitle","renderHeader","renderBody","_FirstPageLink","_NextPageLink","_PrevPageLink","_LastPageLink","_PageLinks","_RowsPerPageDropdown","_CurrentPageReport","changePageToFirst","changePageToPrev","changePageToNext","changePageToLast","onRowsChange","onPageLinkClick","getPage","getPageCount","numberOfPages","visiblePages","pageLinks","calculatePageLinkBoundaries","newPageState","changePage","paginatorElements","FirstPageLink","isFirstPage","PrevPageLink","NextPageLink","isLastPage","LastPageLink","PageLinks","updatePageLinks","RowsPerPageDropdown","CurrentPageReport","pageLink","pageClassName","_Dropdown","onHeaderScroll","onBodyScroll","setScrollHeight","scrollBody","scrollBarWidth","scrollHeaderBox","scrollFooterBox","virtualScroller","virtualScrollCallback","previousElementSibling","frozenScrollBody","datatableContainer","findDataTableContainer","containerHeight","scrollBodyHeight","scrollHeader","getClientHeight","tableHeight","scrollTable","scrollBodyTop","loadingTable","tableBodyClassName","tableHeaderClassName","tableFooterClassName","tableBodyStyle","renderColGroup","renderLoadingTable","scrollableBodyStyle","onScroll","scrollFooter","totalRcords","_BodyRow","_RowTogglerButton","onRowRightClick","onRowTouchEnd","onRadioClick","onCheckboxClick","onRowDragEnd","onRowDragLeave","onRowDrop","targetNode","isMultipleSelectionMode","anchorRowIndex","clearSelection","rangeRowIndex","selectRange","metaSelection","rowTouched","anchorRowFirst","isSingleSelectionMode","selectionIndex","findIndexInSelection","_selectionIndex","rangeStart","rangeEnd","isLazyAndPaginator","rangeRowData","dataKeyValue","expandedRowIndex","findExpandedRowIndex","rowDragging","draggedRowIndex","droppedRowIndex","rowElement","rowY","rowMidY","prevRowElement","RowTogglerButton","isRowExpanded","rpp","selectionEnabled","isSelectionEnabled","hasSubheaderGrouping","rowSpanGrouping","rowGroupHeaderExpanded","contextMenuSelected","isContextMenuSelected","groupRowSpan","currentRowFieldData","previousRowFieldData","renderRowGroupHeader","rowSpanIndex","_currentRowFieldData","nextRowFieldData","nextRowData","isRowGroupExpanded","bodyRow","BodyRow","onRightClick","onRowDragStart","onDragOver","onRowDragOver","expandedRowContent","expandedRow","_currentRowFieldData2","_nextRowFieldData","renderRowGroupFooter","_BodyCell","editing","nextRow","findNextSelectableRow","prevRow","findPrevSelectableRow","conditionalClassNames","rowClassNameCondition","hasRowSpanGrouping","BodyCell","_RowRadioButton","_RowCheckbox","onExpanderClick","onEditorFocus","switchCellToViewMode","editingCellClick","bindDocumentEditListener","documentEditListener","unbindDocumentEditListener","closeCell","tabindexTimeout","keyHelper","editorKeyHelper","cellClassName","showSelection","RowRadioButton","showReorder","reorderIcon","_FooterCell","FooterCell","createFooterCells","_HeaderCell","HeaderCell","createHeaderCells","filterOnly","renderHeaderCheckbox","hasColumnFilter","_InputText","badgeVisible","onFilterChange","onResizerMouseDown","filterTimeout","filterDelay","columnSortField","sorted","sortIcon","sortIconClassName","sortMetaDataIndex","headerCheckbox","getMultiSortMetaDataIndex","multiSortMetaData","singleSorted","multipleSorted","resizer","sortIconElement","renderSortIcon","ariaSortData","getAriaSort","sortBadge","renderSortBadge","KeyFilter","getBrowser","SAFARI_KEYS","KEYS","RETURN","ESC","opera","DEFAULT_MASKS","getKey","mozilla","isNavKeyPress","getCharCode","isSpecialKey","pint","money","alphanum","63234","63235","63232","63233","63276","63277","63272","63273","63275","renderRow","renderRows","Dialog","maskVisible","onMaximize","maximized","toggleMaximize","onMaskClick","dismissableMask","closable","changeScrollOnMaximizable","focusOnShow","enableDocumentSettings","disableDocumentSettings","bindGlobalListeners","blockScroll","maximizable","unbindGlobalListeners","primeDialogParams","hasBlockScroll","bindDocumentKeyDownListener","unbindDocumentKeyDownListener","documentKeyDownListener","paramLength","dialogId","focusableElements","getFocusableElements","focusedIndex","newParam","ariaCloseIconLabel","showHeader","closeIcon","renderCloseIcon","maximizeIcon","renderMaximizeIcon","renderIcons","headerElement","contentClassName","contentElement","footerElement","rtl","maskClassName","getPositionClass","renderFooter","transitionTimeout","FileUpload","_Button","_Messages","_ProgressBar","msgs","choose","onFileSelect","onSimpleUploaderClick","duplicateIEEvent","fileLimit","uploadedFileCount","hasFiles","clearInputElement","currentFiles","removedFile","fileInput","isIE11","isFileSelected","isImage","objectURL","clearIEInput","sFile","maxFileSize","severity","summary","invalidFileSizeMessageSummary","invalidFileSizeMessageDetail","formatSize","messagesUI","onValidationFail","customUpload","uploadHandler","formData","onBeforeUpload","lengthComputable","onUpload","onBeforeSend","onClear","chooseDisabled","chooseLabel","preview","previewWidth","removeButton","emptyTemplate","uploadButton","cancelButton","filesList","progressBar","chooseButton","renderChooseButton","emptyContent","renderEmptyContent","uploadLabel","uploadDisabled","cancelLabel","cancelDisabled","renderFiles","ProgressBar","showValue","buttonClassName","renderAdvanced","renderBasic","widthCredentials","sticky","life","_this$props$message","renderMessage","displayValueTemplate","renderDeterminate","renderIndeterminate","Toast","_ToastMessage","ToastMessage","Axios","mergeConfig","createInstance","defaultConfig","axios","instanceConfig","CancelToken","isCancel","promises","InterceptorManager","dispatchRequest","interceptors","chain","interceptor","getUri","eject","transformData","throwIfCancellationRequested","throwIfRequested","reason","normalizedName","isAxiosError","toGMTString","isAbsoluteURL","combineURLs","requestedURL","relativeURL","ignoreDuplicateOf","originURL","msie","urlParsingNode","resolveURL","requestURL","executor","resolvePromise","listing","textarea","suppressContentEditableWarning","suppressHydrationWarning","domNamespace","threadID","exhausted","currentSelectValue","previousWasTextNode","makeStaticMarkup","suspenseDepth","contextIndex","contextStack","contextValueStack","clearProviders","pushProvider","popProvider","fallbackFrame","renderDOM","renderToString","renderToStaticMarkup","renderToNodeStream","renderToStaticNodeStream","b64","getLens","validLen","placeHoldersLen","Arr","curByte","revLookup","uint8","extraBytes","len2","encodeChunk","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","DO_NOT_EXPORT_JSZIP","_dereq_","_keyStr","utf8","chr2","chr3","enc1","enc2","enc3","enc4","CompressedObject","compressedSize","uncompressedSize","compressedContent","getCompressedContent","STORE","compressInputType","uncompressInputType","DEFLATE","getTypeOf","iTop","DataReader","checkIndex","byteAt","transformTo","readData","lastIndexOfSignature","sig","readDate","dostime","createFolders","string2binary","string2Uint8Array","uint8Array2String","string2Blob","arrayBuffer2Blob","outputType","checkSupport","MAX_VALUE_16BITS","MAX_VALUE_32BITS","findCompression","isRegExp","USE_TYPEDARRAY","pako","deflateRaw","inflateRaw","compressions","ZipEntries","zipEntries","decompressed","optimizedBinaryString","fileComment","zipComment","Uint8ArrayReader","NodeBufferReader","signature","nodeBuffer","StringWriter","Uint8ArrayWriter","getRawData","getBinaryData","nodebuffer","dataToString","asUTF8","utf8decode","utf8encode","ZipObject","_initialMetadata","asUint8Array","asArrayBuffer","decToHex","fileAdd","prepareFileAttrs","parentFolder","folderAdd","lastSlash","generateCompressedObjectFrom","generateZipParts","compressedObject","dosTime","dosDate","utfEncodedFileName","utfEncodedComment","useUTF8ForFileName","useUTF8ForComment","unicodePathExtraField","unicodeCommentExtraField","fileRecord","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","relativePath","fileClone","folder","newFolder","kids","writer","zipData","localDirLength","centralDirLength","compressionName","zipPart","dirEnd","CENTRAL_DIRECTORY_END","typeName","finalize","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","DATA_DESCRIPTOR","StringReader","arraybuffer","uint8array","builder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","sig0","sig1","sig2","sig3","_utf8len","utf8border","buf2string","c_len","utf16buf","applyFromCharCode","m_pos","str_len","buf_len","string2buf","nextBoundary","stringToArrayLike","arrayLikeToString","canUseApply","resultStr","arrayLikeToArrayLike","arrayFrom","arrayTo","inputType","ZipEntry","jszipProto","loadOptions","checkSignature","expectedSignature","reader","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","versionMadeBy","versionNeeded","zip64ExtensibleData","extraFieldId","extraFieldLength","extraFieldValue","extraDataSize","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","23","isEncrypted","bitFlag","useUTF8","prepareCompressedContent","previousIndex","compressedFileData","prepareContent","uncompressedFileData","localExtraFieldsLength","fileNameLength","checkCRC32","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","extraReader","upath","findExtraFieldUnicodePath","ucomment","findExtraFieldUnicodeComment","upathField","ucommentField","24","25","zlib_deflate","zstream","Deflate","chunkSize","windowBits","memLevel","gzip","ended","chunks","strm","avail_out","deflateInit2","deflateSetHeader","deflate","deflator","_mode","next_in","avail_in","Buf8","next_out","onEnd","onData","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","26","zlib_inflate","gzheader","Inflate","inflateInit2","Z_OK","inflateGetHeader","inflator","next_out_utf8","utf8str","Z_FINISH","Z_NO_FLUSH","binstring2buf","Z_STREAM_END","arraySet","inflateEnd","ungzip","TYPED_OK","fnTyped","src_offs","dest_offs","fnUntyped","setTyped","Buf16","Buf32","28","STR_APPLY_OK","STR_APPLY_UIA_OK","29","30","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","31","crcTable","makeTable","trees","adler32","rank","flush_pending","pending_buf","pending_out","total_out","flush_block_only","_tr_flush_block","block_start","strstart","put_byte","putShortMSB","read_buf","total_in","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","w_size","MAX_MATCH","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","more","_w_size","window_size","hash_size","ins_h","hash_shift","hash_mask","deflate_fast","hash_head","bflush","match_length","_tr_tally","max_lazy_match","MIN_MATCH","last_lit","deflate_slow","max_insert","prev_match","match_available","configuration_table","Config","good_length","max_lazy","nice_length","max_chain","DeflateState","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","HEAP_SIZE","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","MAX_BITS","heap","heap_len","heap_max","l_buf","lit_bufsize","d_buf","opt_len","static_len","bi_buf","bi_valid","deflateResetKeep","data_type","_tr_init","deflateReset","max_block_size","max_start","deflateInit","old_flush","beg","hcrc","bstate","deflate_huff","deflate_rle","_tr_align","_tr_stored_block","deflateInfo","xflags","extra_len","_in","dmax","wsize","whave","wnext","lcode","dcode","lmask","dmask","here","from_source","lencode","distcode","lenbits","distbits","dolen","dodist","sane","inflate_fast","inflate_table","ZSWAP32","InflateState","havedict","ncode","nlen","ndist","have","work","lendyn","distdyn","back","was","inflateResetKeep","inflateReset","inflateReset2","lenfix","distfix","virgin","fixedtables","inflateInit","here_bits","here_op","here_val","last_bits","last_op","last_val","hbuf","inf_leave","updatewindow","inflateInfo","lbase","lext","dbase","dext","lens_index","table_index","incr","low","huff","base_index","MAXBITS","offs","extra_index","extra_lbits","extra_dbits","extra_blbits","bl_order","static_ltree","static_dtree","D_CODES","_dist_code","_length_code","base_length","base_dist","static_l_desc","static_d_desc","static_bl_desc","StaticTreeDesc","static_tree","extra_bits","extra_base","max_length","has_stree","TreeDesc","dyn_tree","stat_desc","max_code","d_code","put_short","send_bits","send_code","bi_reverse","gen_codes","init_block","LITERALS","END_BLOCK","bi_windup","smaller","_n2","_m2","pqdownheap","compress_block","ltree","dtree","lx","stree","xbits","gen_bitlen","scan_tree","curlen","prevlen","nextlen","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","send_tree","static_init_done","stored_len","copy_block","LENGTH_CODES","L_CODES","tr_static_init","opt_lenb","static_lenb","max_blindex","black_mask","detect_data_type","BL_CODES","build_bl_tree","lcodes","dcodes","blcodes","send_all_trees","STATIC_TREES","bi_flush","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","messagePrefix","onGlobalMessage","installPostMessageImplementation","channel","installMessageChannelImplementation","installReadyStateChangeImplementation","task","createBaseFor","keysFunc","iterable","baseTimes","inherited","isArr","isArg","isBuff","isType","skipIndexes","typedArrayTags","freeProcess","isPrototype","nativeKeys","overArg","eachFunc","baseIsMatch","getMatchData","matchesStrictComparable","matchData","noCustomizer","objValue","COMPARE_PARTIAL_FLAG","assocIndexOf","pairs","LARGE_ARRAY_SIZE","isMasked","toSource","reIsHostCtor","funcProto","reIsNative","coreJsData","maskSrcKey","IE_PROTO","Hash","hashClear","hashDelete","hashGet","hashHas","hashSet","getMapData","equalArrays","equalByTag","equalObjects","getTag","objectTag","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","mapToArray","setToArray","symbolProto","symbolValueOf","stacked","getAllKeys","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","baseGetAllKeys","getSymbols","symbolsFunc","arrayFilter","stubArray","nativeGetSymbols","resIndex","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ctorString","isStrictComparable","hasIn","memoizeCapped","rePropName","reEscapeChar","subString","memoized","arrayMap","symbolToString","baseHasIn","hasPath","hasFunc","baseProperty","basePropertyDeep","findIndexFunc","baseFindIndex","toFinite","remainder","spreadableSymbol","isConcatSpreadable","baseMap","baseSortBy","compareMultiple","orders","comparer","compareAscending","objCriteria","criteria","othCriteria","ordersLength","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","overRest","setToString","baseSetToString","shortOut","nativeNow","lastCalled","stamp","baseRange","nativeCeil","castSlice","hasUnicode","stringToArray","strSymbols","baseSlice","asciiToArray","unicodeToArray","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsSeq","rsSymbol","reUnicode","arrayIncludes","arrayIncludesWith","isCommon","seenIndex","baseIndexOf","baseIsNaN","strictIndexOf","ValueParser","bubble","openParentheses","closeParentheses","singleQuote","doubleQuote","backslash","colon","star","escapePos","whitespacePos","balanced","unclosed","stringifyNode","customResult","EXP","dotted","sciPos","containsNumber","JisonParserError","stacktrace","ex2","rv","yy","hasPartialLrUpgradeOnConflict","errorRecoveryTokenDiscardCount","symbols_","terminals_","TERROR","EOF","originalQuoteName","originalParseError","cleanupAfterParse","constructParseErrorInfo","yyMergeLocationInfo","__reentrant_call_depth","__error_infos","__error_recovery_infos","quoteName","id_str","getSymbolName","describeSymbol","terminal_descriptions_","collect_expected_token_set","do_not_describe","tokenset","state_descriptions_","productions_","performAction","yystate","yysp","yyvstack","lexer","goto","defaultActions","bda","parseError","ExceptionClass","recoverable","sstack","vstack","NO_ACTION","__lexer__","sharedState_yy","pre_parse","post_parse","pre_lex","post_lex","fastLex","yyGetSharedState","shallow_copy_noclobber","resultValue","invoke_post_methods","do_not_nuke_errorinfos","cleanupAfterLex","expected","pei","errStr","yytext","token_id","yylineno","new_state","symbol_stack","state_stack","value_stack","stack_pointer","yyrulelen","this_production","lex","yyval","setInput","canIUse","errSymbolDescr","showPosition","ntsymbol","JisonLexerError","ERROR","__currentRuleSet__","__decompressed","_backtrack","_input","_more","_signaled_error_token","conditionStack","yyleng","yylloc","constructLexErrorInfo","show_input_position","prettyPrintRange","pos_str","yyerror","lineno_msg","lexerErrorsAreRecoverable","extra_error_attributes","last_column","first_line","first_column","last_line","rule_re","conditions","spec","rule_ids","rule_regexes","rule_new_ids","__rule_regexes","__rule_count","editRemainingInput","cpsArg","slice_len","unput","pre_lines","backtrack_lexer","less","pastInput","maxSize","past","upcomingInput","maxPrefix","maxPostfix","deriveLocationInfo","preceding","following","context_loc","context_loc2","l0","lineno_display_width","ws_prefix","nonempty_line_indexes","lno","errpfx","clip_start","MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT","clip_end","intermediate_line","describeYYLLOC","display_range_too","test_match","indexed_rule","backup","match_str","match_str_len","tempMatch","_currentRules","trackPosition","topState","regexes","pendingInput","activeCondition","conditionStackDepth","popState","stateStackSize","yyrulenumber","YY_START","simpleCaseActionClusters","inclusive","_cssUnitConverter","_cssUnitConverter2","convertAbsoluteLength","conversions","sourceUnit","targetUnit","converted","calc","prec","_reducer","reflowAndAddClass","appearClassName","enterClassName","_this$getClassNames6","_hasClass","_DraggableCore","_clsx2","_positionFns","_log","uiData","slackX","slackY","_getBoundPosition2","newStateX","newStateY","onStop","_this$props$position","defaultPosition","prevPropsPosition","isElementSVG","SVGElement","_this$props$nodeRef$c","_this$props$nodeRef","_clsx","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","draggableCoreProps","svgTransform","validPosition","transformOpts","onDragStop","clsx","browserPrefixToStyle","getPrefix","prefixes","_window$document","_window$document$docu","shouldCapitalize","kebabToTitleCase","eventsFor","dragEventFor","allowAnyClick","thisNode","coreEvent","enableUserSelectHack","handleDragStop","_snapToGrid2","_snapToGrid4","handleDragStart","_this$props2$nodeRef","MultiSelect","_MultiSelectHeader","_MultiSelectItem","_MultiSelectPanel","onOptionKeyDown","onCloseClick","onToggleAll","findSelectionIndex","updateModel","findNextItem","findPrevItem","isPanelClicked","filterOptions","equalityKey","selectedItemsLabel","fixedPlaceholder","getLabelByValue","maxSelectedLabels","getSelectedItemsLabel","selectedItemTemplate","removeChip","MultiSelectHeader","allChecked","isAllChecked","getLabelContent","selectedOptions","MultiSelectItem","MultiSelectPanel","_Checkbox","renderFilterElement","checkboxClassName","checkboxIcon","TabMenu","onTabChange","getActiveItem","getActiveIndex","tabHeader","inkbar","nav","updateInkBar","renderMenuItem","Toolbar","toolbarClass","popup","currentEvent","bindDocumentListeners","unbindDocumentListeners","renderMenuitem","linkClassName","onItemClick","onItemKeyDown","renderSeparator","renderSubmenu","menuitems","renderMenu","TriStateCheckbox","inputEL","InputNumber","constructParser","onInputKeyPress","onInputClick","onPaste","onUpButtonMouseLeave","onUpButtonMouseDown","onUpButtonMouseUp","onUpButtonKeyDown","onUpButtonKeyUp","onDownButtonMouseLeave","onDownButtonMouseDown","onDownButtonMouseUp","onDownButtonKeyDown","onDownButtonKeyUp","localeMatcher","currency","currencyDisplay","useGrouping","minimumFractionDigits","minFractionDigits","maximumFractionDigits","maxFractionDigits","NumberFormat","numerals","_numeral","_decimal","getDecimalExpression","_group","getGroupingExpression","_minusSign","getMinusSignExpression","_currency","getCurrencyExpression","_suffix","getSuffixExpression","_prefix","getPrefixExpression","_index","groupChar","prefixChar","escapeRegExp","suffixChar","formattedValue","filteredText","parsedValue","clearTimer","inputEl","validateValue","updateInput","handleOnChange","isSpecialChar","lastValue","inputValue","newValueStr","prevChar","isNumeralChar","currentChar","formatValue","deleteChar","decimalCharIndex","setSelectionRange","updateValue","deleteRange","_deleteChar","_decimalCharIndex","isDecimalSign","isMinusSign","filteredData","minusCharIndexOnText","allowMinusSign","minusCharIndex","insertText","resolvedOptions","valueLength","initCursor","resetRegex","valueStr","insertedValueStr","isValueChanged","currentLength","_selectionEnd","newLength","startExpr","sRegex","tExpr","tRegex","nextChar","isGroupChar","updateInputValue","showButtons","buttonLayout","inputMode","isOptionChanged","inputClassName","valueToRender","inputStyle","getInputMode","maxlength","readonly","incrementButtonClassName","incrementButtonIcon","decrementButtonClassName","decrementButtonIcon","upButton","renderUpButton","downButton","renderDownButton","isStacked","isVertical","inputElement","renderInputElement","buttonGroup","renderButtonGroup","Message","ToggleButton","onLabel","offLabel","onIcon","offIcon","hasIcon","AutoComplete","_AutoCompletePanel","onInputChange","onDropdownClick","onMultiContainerClick","onMultiInputFocus","onMultiInputBlur","listId","completeMethod","ariaSelected","resolvedFieldData","_resolvedFieldData","alignOverlay","multiContainer","dropdownMode","removedValue","nextElement","previousElement","suggestions","isInputClicked","dropdown","onDblClick","multiContainerClass","renderChips","renderMultiInput","dropdownButton","renderMultipleAutoComplete","renderSimpleAutoComplete","renderDropdown","AutoCompletePanel","suggestion","itemContent","Chips","onWrapperClick","removedItem","allowDuplicate","onAdd","addItem","isMaxedOut","pastedData","pastedValues","isValueSame","targetContainer","listElement","isFilled","renderList","Fieldset","onToggle","collapsed","toggleable","onExpand","onCollapse","toggleIcon","renderToggleIcon","ariaControls","renderLegendContent","isCollapsed","OrganizationChart","OrganizationChartNode","leaf","onNodeClick","getColspan","nodeClassName","nodeLabel","nodeTemplate","nodeContent","getLeaf","toggleNode","_visibility","linesDown","nodeChildLength","linesMiddle","leftClass","rightClass","_super2","eventTarget","onNodeUnselect","onNodeSelect","TabView","TabPanel","leftIcon","rightIcon","onTabHeaderClick","renderTabHeader","renderTabHeaders","renderActiveOnly","createContent","renderNavigator","InputTextarea","cachedScrollHeight","textareaProps","UploadCloud","MessageCircle","tauEpsilon","Path","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","t01","t21","ccw","ascendingBisect","bisectRight","ResponsiveContainer","aspect","_ref$width","_ref$height","_ref$debounce","_useState2","containerWidth","sizes","setSizes","_useState4","setMounted","getContainerSize","updateDimensionsImmediate","newSize","handleResize","ReactResizeDetector","calculatedWidth","calculatedHeight","renderChart","ChevronLeft","FileText","Send","FastForward","ChevronRight","PerformanceEvents","PerformanceEventStatus","CryptoKeyStoreNames","IntFields","ServerError","JoseHeaderErrorMessage","JoseHeaderError","createMissingKidError","createMissingAlgError","typ","alg","kid","shrHeaderOptions","shrHeader","JoseHeader","Jwt","decimalToHex","generateGuid","getRandomValues","MathUtils","guidHolder","guidResponse","isGuid","stringToUtf8Arr","sDOMStr","nChr","nArrLen","nStrLen","nMapIdx","aBytes","nIdx","nChrIdx","stringToArrayBuffer","dataString","dataView","utf8ArrToString","sView","nPart","nLen","getSortedObjectString","urlEncode","urlEncodeArr","inputArr","base64EncArr","inputUtf8Arr","eqLen","sB64Enc","nMod3","nUint24","uint6ToB64","nUint6","encodedString","base64DecToArr","base64String","nBlockSize","nInLen","nOutLen","nMod4","nOutIdx","nInIdx","b64ToUint6","charNum","BrowserAuthErrorMessage","BrowserAuthError","createPkceNotGeneratedError","createCryptoNotAvailableError","createHttpMethodNotImplementedError","createEmptyNavigationUriError","createEmptyHashError","hashValue","createHashDoesNotContainStateError","createHashDoesNotContainKnownPropertiesError","createUnableToParseStateError","createStateInteractionTypeMismatchError","createInteractionInProgressError","createPopupWindowError","createEmptyWindowCreatedError","createUserCancelledError","createMonitorPopupTimeoutError","createMonitorIframeTimeoutError","createRedirectInIframeError","windowParentCheck","createBlockReloadInHiddenIframeError","createBlockAcquireTokenInPopupsError","createIframeClosedPrematurelyError","createSilentLogoutUnsupportedError","createNoAccountError","createSilentPromptValueError","givenPrompt","createUnableToParseTokenRequestCacheError","createNoTokenRequestCacheError","createAuthRequestNotSetError","createNoCachedAuthorityError","createNonBrowserEnvironmentError","createDatabaseNotOpenError","createNoNetworkConnectivityError","createPostRequestFailedError","errorDesc","createGetRequestFailedError","createFailedToParseNetworkResponseError","createUnableToLoadTokenError","errorDetail","createSigningKeyNotFoundInStorageError","keyId","createAuthCodeRequiredError","createAuthCodeOrNativeAccountIdRequiredError","createDatabaseUnavailableError","createUnableToAcquireTokenFromNativePlatformError","createNativeHandshakeTimeoutError","createNativeExtensionNotInstalledError","createNativeConnectionNotEstablishedError","createNativeBrokerCalledBeforeInitialize","createNativePromptParameterNotSupportedError","base64Encode","generateCodes","codeVerifier","generateCodeVerifier","generateCodeChallengeFromVerifier","codeChallenge","challenge","pkceCodeVerifier","sha256Digest","pkceHashedCodeVerifier","dataBuffer","generateKey","algorithm","extractable","keyUsages","subtle","exportKey","importKey","keyData","initPrng","entropy","msrCrypto","msGenerateKey","msExportKey","resultBuffer","resultString","keyString","keyBuffer","msImportKey","msSign","digestOperation","PUBLIC_EXPONENT","cryptoOptions","hasBrowserCrypto","subtleCrypto","hasIECrypto","hasMsrCrypto","useMsrCrypto","keygenAlgorithmOptions","modulusLength","publicExponent","generateKeyPair","usages","exportJwk","importJwk","dbName","tableName","dbOpen","openDB","indexedDB","createObjectStore","closeConnection","validateDbIsOpen","dbGet","transaction","objectStore","dbPut","dbDelete","getKeys","dbGetKeys","containsKey","dbContainsKey","deleteDatabase","deleteDbRequest","cacheKeys","storeName","inMemoryCache","MemoryStorage","indexedDBCache","handleDatabaseAccessError","clearInMemory","clearPersistent","dbDeleted","asymmetricKeys","symmetricKeys","performanceClient","cryptoConfig","browserCrypto","b64Encode","b64Decode","guidGenerator","pkceGenerator","createNewGuid","generatePkceCodes","getPublicKeyThumbprint","publicKeyThumbMeasurement","startMeasurement","CryptoOptsGetPublicKeyThumbprint","CryptoOps","EXTRACTABLE","POP_KEY_USAGES","keyPair","publicKey","publicKeyJwk","pubKeyThumprintObj","kty","publicJwkString","publicJwkHash","privateKey","privateKeyJwk","unextractablePrivateKey","requestMethod","resourceRequestMethod","requestUri","resourceRequestUri","endMeasurement","removeTokenBindingKey","clearKeystore","signJwt","signJwtMeasurement","CryptoOptsSignJwt","cachedKeyPair","publicKeyJwkString","encodedKeyIdThumbprint","getShrHeaderString","encodedShrHeader","cnf","jwk","encodedPayload","tokenString","tokenBuffer","signatureBuffer","encodedSignature","signedJwt","plainText","hashBuffer","hashBytes","clientId","libraryName","libraryVersion","applicationTelemetry","eventsByCorrelationId","staticFieldsByCorrelationId","measurementsById","queueMeasurements","preQueueTimeByCorrelationId","countersByCorrelationId","startPerformanceMeasurement","measureName","startPerformanceMeasuremeant","getIntFields","getPreQueueTime","preQueueTimesByEvents","calculateQueuedTime","preQueueTime","addQueueMeasurement","queueTime","queueMeasurement","existingMeasurements","measurementArray","validMeasurement","eventCorrelationId","generateId","performanceMeasuremeant","performanceMeasurement","inProgressEvent","eventId","InProgress","startTimeMs","cacheEventByCorrelationId","staticFields","appName","appVersion","addStaticFields","cacheMeasurement","completedEvent","flushMeasurement","flushMeasurements","discardMeasurement","discardMeasurements","measurement","durationMs","Completed","existingStaticFields","existing","existingEvents","queueMeasurementForCorrelationId","totalQueueTime","totalQueueCount","eventsForCorrelationId","discardCache","sortedCompletedEvents","eventA","eventB","topLevelEvents","topLevelEvent","eventToEmit","subMeasurementName","finalEvent","queuedTimeMs","queuedCount","incompleteSubsCount","truncateIntegralFields","emitEvents","intFields","StubPerformanceMeasurement","setPreQueueTime","DEFAULT_CRYPTO_IMPLEMENTATION","createUnexpectedError","_initRegex","CredentialEntity","credentialRegexMap","credKey","credVal","credentialDomainRegex","generateAccountIdForCacheKey","generateCredentialId","generateCredentialIdForCacheKey","credentialType","familyId","generateTarget","generateTargetForCacheKey","generateCredentialKey","generateCredentialCacheKey","tokenType","requestedClaimsHash","ID_TOKEN","ACCESS_TOKEN","ACCESS_TOKEN_WITH_AUTH_SCHEME","REFRESH_TOKEN","generateClaimsHashForCacheKey","generateSchemeForCacheKey","BEARER","CcsCredentialType","ClientConfigurationErrorMessage","ClientConfigurationError","claimsRequestParseError","urlString","urlParseError","createUrlEmptyError","createEmptyScopesArrayError","inputScopes","promptValue","createInvalidClaimsRequestError","createEmptyLogoutRequestError","createEmptyTokenRequestError","createInvalidCodeChallengeMethodError","createInvalidCodeChallengeParamsError","createInvalidCloudDiscoveryMetadataError","createInvalidAuthorityMetadataError","createUntrustedAuthorityError","createInvalidAzureCloudInstanceError","createMissingSshJwkError","createMissingSshKidError","createMissingNonceAuthenticationHeadersError","createInvalidAuthenticationHeaderError","invalidHeaderName","scopeArr","trimArrayEntries","filteredInput","removeEmptyStringsFromArray","validateInputScopes","inputScopeString","ScopeSet","lowerCaseScopesSet","printScopesLowerCase","scopeSet","containsScope","containsOnlyOIDCScopes","defaultScopeCount","defaultScope","newScope","newScopes","appendScope","createAppendScopeSetError","createRemoveEmptyScopeFromSetError","removeOIDCScopes","otherScopes","unionScopes","unionScopeSets","sizeOtherScopes","getScopeCount","sizeThisScopes","printScopes","rawToken","AuthToken","extractTokenClaims","encodedToken","decodedToken","decodeAuthToken","base64TokenPayload","base64Decoded","checkMaxAge","authTime","cryptoImpl","getAccountsFilteredBy","accountValues","accountKey","accountInfo","CacheManager","readIdTokenFromCache","cacheRecord","setAccount","setIdTokenCredential","accessToken","saveAccessToken","refreshToken","setRefreshTokenCredential","appMetadata","setAppMetadata","credential","currentTokenCache","getCredentialsFilteredBy","currentScopes","currentAccessTokens","accessTokens","tokenEntity","intersectingScopeSets","removeCredential","setAccessTokenCredential","accountFilter","getAccountsFilteredByInternal","allCacheKeys","matchingAccounts","getAccount","matchHomeAccountId","matchEnvironment","matchRealm","matchNativeAccountId","getCredentialsFilteredByInternal","userAssertionHash","matchingCredentials","idTokens","refreshTokens","credType","getCredentialType","getSpecificCredential","matchUserAssertionHash","matchCredentialType","matchClientId","matchFamilyId","matchTarget","matchTokenType","SSH","matchKeyId","updatedCacheKey","updateCredentialCacheKey","getAppMetadataFilteredByInternal","matchingAppMetadata","isAppMetadata","getAppMetadata","getAuthorityMetadataKeys","matchedEntity","isAuthorityMetadata","getAuthorityMetadata","aliases","removeAllAccounts","removedAccounts","removeAccount","removeAccountContext","ACCOUNT","removedCredentials","cacheEntity","POP","CREDENTIAL","removeAppMetadata","cachedAccount","readAccountFromCache","cachedIdToken","cachedAccessToken","readAccessTokenFromCache","cachedRefreshToken","readRefreshTokenFromCache","cachedAppMetadata","readAppMetadataFromCache","accountCache","idTokenFilter","credentialCache","numIdTokens","authScheme","authenticationScheme","accessTokenFilter","sshKid","numAccessTokens","familyRT","refreshTokenFilter","appMetadataFilter","getAppMetadataFilteredBy","appMetadataEntries","numAppMetadata","isAppMetadataFOCI","cloudMetadata","getAuthorityMetadataByAlias","entityScopeSet","requestTargetScopeSet","removeScope","containsScopeSet","getIdTokenCredential","getAccessTokenCredential","getRefreshTokenCredential","setServerTelemetry","getServerTelemetry","setAuthorityMetadata","setThrottlingCache","getThrottlingCache","idTokenEntity","IdTokenEntity","nowSeconds","isTokenExpired","expiresOn","expirationSec","TimeUtils","cachedAt","createAccessTokenEntity","extExpiresOn","cryptoUtils","refreshOn","requestedClaims","atEntity","AccessTokenEntity","extendedExpiresOn","tokenClaims","createRefreshTokenEntity","rtEntity","RefreshTokenEntity","generateAppMetadataKey","AppMetadataEntity","generateAppMetadataCacheKey","createAppMetadataEntity","isAppMetadataEntity","failedRequests","cacheHits","isServerTelemetryEntity","validateKey","validateEntity","expiresAt","updateCloudDiscoveryMetadata","fromNetwork","preferred_cache","preferred_network","aliasesFromNetwork","updateEndpointMetadata","authorization_endpoint","token_endpoint","end_session_endpoint","issuer","endpointsFromNetwork","jwks_uri","canonical_authority","resetExpiresAt","isExpired","isAuthorityMetadataEntity","isThrottlingEntity","setRequestState","userState","libraryState","ProtocolUtils","generateLibraryState","createNoCryptoObjectError","stateObj","parseRequestState","splitState","libraryStateString","libraryStateObj","userRequestState","ProtocolMode","AzureCloudInstance","cacheLocation","validateWindowStorage","windowStorage","LocalStorage","SessionStorage","_urlString","getHash","UrlString","canonicalizeUri","lowerCaseUrl","validateAsUri","components","getUrlComponents","createUrlParseError","HostNameAndPort","PathSegments","Protocol","createInsecureAuthorityUriError","appendQueryString","urlObject","pathArray","COMMON","ORGANIZATIONS","constructAuthorityUriFromObject","parseHash","regEx","urlComponents","AbsolutePath","QueryString","pathSegments","getAbsoluteUrl","relativeUrl","baseComponents","hashIndex1","hashIndex2","queryIndex1","queryIndex2","parsedHash","deserializedHash","queryStringToObject","createHashNotDeserializedError","parsedQueryString","parseQueryString","deserializedQueryString","parameters","getDeserializedHash","error_description","extractBrowserRequestState","parseServerResponseFromHash","hashUrlString","cacheConfig","COOKIE_LIFE_MULTIPLIER","internalStorage","browserStorage","setupBrowserStorage","temporaryCacheStorage","setupTemporaryCacheStorage","migrateCacheEntries","idTokenKey","clientInfoKey","errorKey","errorDescKey","ERROR_DESC","migrateCacheEntry","newKey","setTemporaryCache","validateAndParseJson","jsonValue","parsedJson","parsedAccount","isAccountEntity","parsedIdToken","isIdTokenEntity","accessTokenKey","parsedAccessToken","isAccessTokenEntity","refreshTokenKey","parsedRefreshToken","isRefreshTokenEntity","appMetadataKey","parsedMetadata","serverTelemetryKey","serverTelemetry","setWrapperMetadata","wrapperSKU","wrapperVersion","WRAPPER_SKU","WRAPPER_VER","getWrapperMetadata","activeAccountKeyFilters","generateCacheKey","ACTIVE_ACCOUNT_FILTERS","activeAccountValueFilters","activeAccountKeyLocal","ACTIVE_ACCOUNT","activeAccountValueLocal","activeAccount","getAccountInfoByFilter","activeAccountValueObj","activeAccountKey","activeAccountValue","allAccounts","accountObj","getAccountInfoByHints","loginHint","accountSid","throttlingCacheKey","parsedThrottlingCache","throttlingCache","getTemporaryCache","storeAuthStateInCookie","itemCookie","getItemCookie","setItemCookie","clearItemCookie","cookieStr","getCookieExpirationTime","secureCookies","cookieList","clearMsalCookies","cookiePrefix","cookieKey","cookieLifeDays","getCache","setCache","ADAL_ID_TOKEN","generateAuthorityKey","stateId","AUTHORITY","generateNonceKey","NONCE_IDTOKEN","generateStateKey","REQUEST_STATE","getCachedAuthority","cachedState","stateCacheKey","authorityCacheKey","updateCacheEntries","authorityInstance","nonceCacheKey","ccsCredential","HOME_ACCOUNT_ID","CCS_CREDENTIAL","UPN","resetRequestCache","REQUEST_PARAMS","ORIGIN_URI","URL_HASH","CORRELATION_ID","NATIVE_REQUEST","setInteractionInProgress","cleanRequestByState","cleanRequestByInteractionType","stateValue","parsedState","cacheCodeRequest","authCodeRequest","encodedValue","getCachedRequest","encodedTokenRequest","parsedRequest","cachedAuthority","getCachedNativeRequest","cachedRequest","isInteractionInProgress","getInteractionInProgress","INTERACTION_STATUS_KEY","getLegacyLoginHint","adalIdTokenString","msalIdTokenString","cachedIdTokenString","currentCacheKey","cacheItem","getRedirectRequestContext","REDIRECT_CONTEXT","setRedirectRequestContext","DEFAULT_SYSTEM_OPTIONS","tokenRenewalOffsetSeconds","preventCorsPreflight","DEFAULT_LOGGER_IMPLEMENTATION","DEFAULT_NETWORK_IMPLEMENTATION","sendGetRequestAsync","sendPostRequestAsync","DEFAULT_LIBRARY_INFO","sku","cpu","DEFAULT_CLIENT_CREDENTIALS","clientSecret","clientAssertion","DEFAULT_AZURE_CLOUD_OPTIONS","azureCloudInstance","tenant","application","StubbedNetworkModule","GET","getFetchHeaders","getHeaderDict","reqBody","POST","Headers","optionsHeaders","headerDict","sendRequestAsync","setXhrHeaders","jsonResponse","networkResponse","headerArr","headerName","headerVal","clearHash","replaceHash","urlParts","isInIframe","isInPopup","getCurrentUri","getHomepage","getBrowserNetworkClient","blockReloadInHiddenIframes","hashContainsKnownProperties","BrowserUtils","blockRedirectInIframe","allowRedirectInIframe","isIframedApp","blockAcquireTokenInPopups","blockNonBrowserEnvironment","isBrowserEnvironment","blockNativeBrokerCalledBeforeInitialized","allowNativeBroker","detectIEOrEdge","msie11","msedge","navigateInternal","NavigationClient","defaultNavigateWindow","navigateExternal","noHistory","KeyLocation","eventCallbacks","listeningToStorageEvents","handleAccountCacheChange","emitEvent","cacheValue","ACCOUNT_ADDED","ACCOUNT_REMOVED","thumbprint","preProcess","cacheManager","ThrottlingUtils","generateThrottlingStorageKey","throttleTime","THROTTLING","errorCodes","checkResponseStatus","checkResponseForRetryAfter","thumbprintValue","calculateThrottleTime","RETRY_AFTER","error_codes","currentSeconds","homeAccountIdentifier","shrClaims","networkClient","sendPostRequest","tokenEndpoint","redirectUri","promptValues","createInvalidPromptError","validateCodeChallengeParams","codeChallengeMethod","validateCodeChallengeMethod","sanitizeEQParams","eQParams","queryParams","fromEntries","addResponseTypeCode","RESPONSE_TYPE","addResponseTypeForTokenAndIdToken","responseMode","RESPONSE_MODE","QUERY","addNativeBroker","NATIVE_BROKER","addScopes","addOidcScopes","requestScopes","SCOPE","CLIENT_ID","validateRedirectUri","REDIRECT_URI","POST_LOGOUT_URI","idTokenHint","ID_TOKEN_HINT","domainHint","DOMAIN_HINT","LOGIN_HINT","CCS_HEADER","addClaims","clientCapabilities","mergedClaims","addClientCapabilitiesToClaims","validateClaims","CLIENT_REQUEST_ID","libraryInfo","X_CLIENT_SKU","X_CLIENT_VER","X_CLIENT_OS","X_CLIENT_CPU","appTelemetry","X_APP_NAME","X_APP_VER","validatePrompt","PROMPT","STATE","NONCE","addCodeChallengeParams","CODE_CHALLENGE","CODE_CHALLENGE_METHOD","CODE","DEVICE_CODE","CODE_VERIFIER","CLIENT_SECRET","CLIENT_ASSERTION","clientAssertionType","CLIENT_ASSERTION_TYPE","oboAssertion","OBO_ASSERTION","tokenUse","REQUESTED_TOKEN_USE","grantType","GRANT_TYPE","addClientInfo","sanitizedEQParams","XMS_CC","cnfString","TOKEN_TYPE","REQ_CNF","sshJwkString","serverTelemetryManager","X_CLIENT_CURR_TELEM","generateCurrentRequestHeaderValue","X_CLIENT_LAST_TELEM","generateLastRequestHeaderValue","addThrottling","X_MS_LIB_CAPABILITY","logoutHint","LOGOUT_HINT","createQueryString","queryParameterArray","authOptions","userAuthOptions","userSystemOptions","userLoggerOption","storageImplementation","networkImplementation","cryptoImplementation","clientCredentials","telemetry","persistencePlugin","serializableCache","azureCloudOptions","skipAuthorityMetadataCache","systemOptions","storageInterface","networkInterface","cryptoInterface","buildClientConfiguration","networkManager","ccsCred","CONTENT_TYPE","clearTelemetryCache","updatedAuthority","discoveryComplete","createEndpointDiscoveryIncompleteError","parameterBuilder","tokenQueryParameters","addExtraQueryParameters","accountEntity","accessTokenEntity","refreshTokenEntity","appMetadataEntity","PopTokenGenerateCnf","PopTokenGenerateKid","generateKid","reqCnf","reqCnfString","reqCnfHash","xms_ksl","SW","signPopToken","signPayload","shrNonce","resourceUrlString","resourceUrlComponents","client_claims","hasChanged","cacheStorage","validateServerAuthorizationCodeResponse","serverResponseHash","createStateNotFoundError","trace_id","correlation_id","client_info","serverResponse","errString","handleServerTokenResponse","serverTokenResponse","reqTimestamp","authCodePayload","handlingRefreshTokenResponse","forceCacheRefreshTokenResponse","serverRequestId","HandleServerTokenResponse","id_token","idTokenObj","auth_time","generateHomeAccountId","requestStateObj","key_id","generateCacheRecord","cacheContext","TokenCacheContext","beforeCacheAccess","saveCacheRecord","ResponseHandler","generateAuthenticationResult","afterCacheAccess","spa_code","createIdTokenEntity","generateAccountEntity","access_token","responseScopes","expiresIn","expires_in","extExpiresIn","ext_expires_in","refreshIn","refresh_in","tokenExpirationSeconds","extendedTokenExpirationSeconds","refreshOnSeconds","token_type","refresh_token","foci","CacheRecord","cloud_graph_host_name","msGraphhost","msgraph_host","protocolMode","fromTokenCache","requestState","requestId","popTokenGenerator","canonicalAuthority","fromCache","fromNativeBroker","GetAuthCodeUrl","AuthClientCreateQueryString","createAuthCodeUrlQueryString","authorizationEndpoint","acquireToken","AuthClientAcquireToken","atsMeasurement","AuthClientExecuteTokenRequest","executeTokenRequest","X_MS_REQUEST_ID","httpVerAuthority","X_MS_HTTP_VERSION","responseHandler","validateTokenResponse","subErrorCode","handleFragmentResponse","hashFragment","serverParams","logoutRequest","createLogoutUrlQueryString","endSessionEndpoint","AuthClientCreateTokenRequestBody","queryParametersString","createTokenQueryParameters","createTokenRequestBody","requestBody","createTokenRequestHeaders","executePostToTokenEndpoint","addClientId","includeRedirectUri","addRedirectUri","addAuthorizationCode","addLibraryInfo","addApplicationTelemetry","addServerTelemetry","addCodeVerifier","addClientSecret","addClientAssertion","assertion","addClientAssertionType","assertionType","addGrantType","AUTHORIZATION_CODE_GRANT","generateCnf","reqCnfData","addPopToken","sshJwk","addSshJwk","addCorrelationId","isEmptyObj","addCcsOid","addCcsUpn","tokenBodyParameters","enableSpaAuthorizationCode","RETURN_SPA_CODE","extraScopesToConsent","addResponseMode","addPrompt","addDomainHint","addSid","extractAccountSid","accountLoginHintClaim","extractLoginHint","addLoginHint","addNonce","addState","extraQueryParameters","nativeBroker","postLogoutRedirectUri","addPostLogoutRedirectUri","addIdTokenHint","addLogoutHint","login_hint","isOpenIdConfigResponse","EndpointMetadata","InstanceDiscoveryMetadata","NativeStatusCode","detectRegion","environmentRegion","regionDiscoveryMetadata","RegionDiscoveryDetectRegion","autodetectedRegionName","RegionDiscovery","IMDS_OPTIONS","RegionDiscoveryGetRegionFromIMDS","getRegionFromIMDS","localIMDSVersionResponse","httpSuccess","region_source","IMDS","httpBadRequest","RegionDiscoveryGetCurrentVersion","getCurrentVersion","currentIMDSVersion","FAILED_AUTO_DETECTION","currentIMDSVersionResponse","ENVIRONMENT_VARIABLE","authorityOptions","_canonicalAuthority","region_used","region_outcome","regionDiscovery","canonicalAuthorityUrlComponents","Default","_canonicalAuthorityUrlComponents","replacePath","replaceTenant","cachedAuthorityParts","currentPart","cachedPart","OIDC","resolveEndpointsAsync","AuthorityResolveEndpointsAsync","metadataEntity","hostnameAndPort","updateCanonicalAuthority","AuthorityUpdateCloudDiscoveryMetadata","cloudDiscoverySource","AuthorityUpdateEndpointMetadata","endpointSource","CACHE","generateAuthorityMetadataCacheKey","getEndpointMetadataFromConfig","CONFIG","isAuthoritySameType","harcodedMetadata","getEndpointMetadataFromHardcodedValues","AuthorityGetEndpointMetadataFromNetwork","getEndpointMetadataFromNetwork","azureRegionConfiguration","azureRegion","AuthorityUpdateMetadataWithRegionalInformation","updateMetadataWithRegionalInformation","NETWORK","HARDCODED_VALUES","createUnableToGetOpenidConfigError","defaultOpenIdConfigurationEndpoint","authorityMetadata","AUTO_DETECTION_REQUESTED_SUCCESSFUL","AUTO_DETECTION_REQUESTED_FAILED","CONFIGURED_MATCHES_DETECTED","CONFIGURED_NOT_DETECTED","CONFIGURED_NO_AUTO_DETECTION","Authority","replaceWithRegionalInformation","knownAuthorities","getCloudDiscoveryMetadataFromConfig","metadataEntityExpired","AuthorityGetCloudDiscoveryMetadataFromNetwork","getCloudDiscoveryMetadataFromNetwork","getCloudDiscoveryMetadataFromHarcodedValues","cloudDiscoveryMetadata","parsedResponse","getCloudDiscoveryMetadataFromNetworkResponse","isInKnownAuthorities","createCloudDiscoveryMetadataFromHost","instanceDiscoveryEndpoint","typedResponseBody","isCloudInstanceDiscoveryResponse","tenant_discovery_endpoint","isCloudInstanceDiscoveryErrorResponse","typedError","getDomainFromUrl","generateAuthority","authorityString","authorityAzureCloudInstance","buildRegionalAuthorityString","region","authorityUrlInstance","authorityUrlParts","hostNameAndPort","isPublicCloudAuthority","createDiscoveredInstance","authorityUri","AuthorityFactoryCreateDiscoveredInstance","acquireTokenAuthority","AuthorityFactory","authorityUrl","telemetryRequest","cacheOutcome","NO_CACHE_HIT","apiId","wrapperVer","telemetryCacheKey","platformFields","requestWithRegionDiscoveryFields","getRegionDiscoveryFields","lastRequests","getLastRequests","maxErrors","ServerTelemetryManager","maxErrorsToSend","errorCount","incrementCacheHits","numErrorsFlushed","serverTelemEntity","serverTelemetryEntity","dataSize","regionDiscoveryFields","regionUsed","regionSource","regionOutcome","storageImpl","eventHandler","navigationClient","nativeMessageHandler","system","clearCacheOnLogout","initializeBaseRequest","InitializeBaseRequest","validatedRequest","getRedirectUri","requestRedirectUri","initializeServerTelemetryManager","telemetryPayload","getDiscoveredAuthority","requestAuthority","initializeAuthorizationCodeRequest","StandardInteractionClientInitializeAuthorizationCodeRequest","generatedPkceParams","initializeLogoutRequest","validLogoutRequest","getLogoutHintFromIdTokenClaims","createAuthCodeClient","requestAzureCloudOptions","StandardInteractionClientCreateAuthCodeClient","StandardInteractionClientGetClientConfiguration","getClientConfiguration","clientConfig","StandardInteractionClientGetDiscoveredAuthority","discoveredAuthority","validateAndExtractStateFromHash","requestCorrelationId","platformStateObj","getAuthorityMeasurement","userAuthority","builtAuthority","initializeAuthorizationRequest","StandardInteractionClientInitializeAuthorizationRequest","browserState","FRAGMENT","legacyLoginHint","NativeAuthErrorMessage","NativeAuthError","isFatal","PERSISTENT_ERROR","DISABLED","ACCOUNT_UNAVAILABLE","USER_INTERACTION_REQUIRED","USER_CANCEL","NO_NETWORK","createUserSwitchError","createTokensNotFoundInCacheError","RefreshTokenClientAcquireToken","RefreshTokenClientExecuteTokenRequest","httpVerToken","refreshTokenSize","forceCache","RefreshTokenClientAcquireTokenByRefreshToken","RefreshTokenClientAcquireTokenWithCachedRefreshToken","acquireTokenWithCachedRefreshToken","noFamilyRTInCache","clientMismatchErrorWithFamilyRT","refreshTokenRequest","acquireTokenMeasurement","RefreshTokenClientCreateTokenRequestBody","BaseClientCreateTokenRequestHeaders","REFRESH_TOKEN_GRANT","addRefreshToken","acquireCachedToken","acquireTokenByRefreshToken","setCacheOutcome","FORCE_REFRESH","readCacheRecord","NO_CACHED_ACCESS_TOKEN","wasClockTurnedBack","CACHED_ACCESS_TOKEN_EXPIRED","REFRESH_CACHED_ACCESS_TOKEN","generateResultFromCacheRecord","silentRequest","SilentCacheClientAcquireToken","acquireTokenSilent_silentFlow","createSilentFlowClient","silentAuthClient","cachedToken","initializeSilentRequest","InitializeSilentRequest","provider","nativeStorageImpl","nativeStorageManager","silentCacheClient","nativeATMeasurement","NativeInteractionClientAcquireToken","initializeNativeRequest","nativeRequest","acquireTokensFromCache","isNativeBroker","messageBody","GetToken","sendMessage","validatedResponse","validateNativeResponse","handleNativeResponse","createSilentCacheRequest","readAccountFromCacheWithNativeAccountId","navigationOptions","redirectNavigationTimeout","navigateToLoginRequestUrl","mats","getMATSFromResponse","extensionId","getExtensionId","extensionVersion","getExtensionVersion","matsBrokerVersion","broker_version","matsAccountJoinOnStart","account_join_on_start","matsAccountJoinOnEnd","account_join_on_end","matsDeviceJoin","device_join","matsPromptBehavior","prompt_behavior","matsApiErrorCode","api_error_code","matsUiVisible","ui_visible","matsSilentCode","silent_code","matsSilentBiSubCode","silent_bi_sub_code","matsSilentMessage","silent_message","matsSilentStatus","silent_status","matsHttpStatus","http_status","matsHttpEventCount","http_event_count","authorityPreferredCache","accountProperties","responseTokenType","shr","responseAccessToken","shrParameters","isResponseFromCache","MATS","is_cached","remainingProperties","appendScopes","getPrompt","windowTitleSubstring","extraParameters","extendedExpiryToken","handshakeTimeoutMs","resolvers","handshakeResolvers","responseId","messageChannel","onWindowMessage","req","createProvider","preferredProvider","NativeMessageHandler","sendHandshakeRequest","backupProvider","HandshakeRequest","onChannelMessage","timeoutId","handshakeResolver","Response","HandshakeResponse","isNativeAvailable","nativeExtensionProvider","authCodeModule","authModule","handleCodeResponseFromHash","networkModule","HandleCodeResponseFromHash","authCodeResponse","HandleCodeResponseFromServer","handleCodeResponseFromServer","validateNonce","nonceKey","cachedNonce","cloud_instance_host_name","UpdateTokenEndpointAuthority","updateTokenEndpointAuthority","cachedCcsCred","checkCcsCredentials","tokenResponse","cloudInstanceHostname","cloudInstanceAuthorityUri","cloudInstanceAuthority","updateAuthority","unloadWindow","nativeStorage","popupName","generatePopupName","popupWindowAttributes","asyncPopups","acquireTokenPopupAsync","openSizedPopup","generateLogoutPopupName","mainWindowRedirectUri","logoutPopupAsync","validRequest","authClient","fetchNativeAccountIdMeasurement","FetchAccountIdWithNativeBroker","getAuthCodeUrl","navigateUrl","interactionHandler","popupParameters","popupWindow","initiateAuthRequest","POPUP_OPENED","monitorPopupForHash","removeThrottle","nativeInteractionClient","finally","setCorrelationId","cacheFailedRequest","logoutUri","getLogoutUri","LOGOUT_SUCCESS","openPopup","waitForLogoutPopup","absoluteUrl","LOGOUT_FAILURE","requestUrl","maxTicks","windowHashTimeout","pollIntervalMilliseconds","intervalId","cleanPopup","urlNavigate","popupParams","currentWindow","winLeft","screenLeft","winTop","screenTop","winWidth","winHeight","popupSize","popupPosition","redirectStartPage","redirectTimeout","onRedirectNavigate","handleBackButton","persisted","getRedirectStartPage","responseHash","getRedirectResponseHash","loginRequestUrl","loginRequestUrlNormalized","removeHashFromUrl","currentUrlNormalized","handleHash","handleHashResult","processHashOnRedirect","homepage","cachedHash","currentAuthority","requestStartPage","navigateFrameWait","SilentHandlerInitiateAuthRequest","SilentHandlerLoadFrame","loadFrame","loadFrameSync","monitorIframeForHash","SilentHandlerMonitorIframeForHash","timeoutMark","removeHiddenIframe","contentHash","frameHandle","createHiddenIframe","authFrame","SilentIframeClientAcquireToken","Silent","SilentIframeClientTokenHelper","silentTokenHelper","silentHandler","msalFrame","iframeHashTimeout","SilentRefreshClientAcquireToken","createRefreshTokenClient","refreshTokenClient","loadExternalTokens","cacheRecordAccount","loadAccount","loadIdToken","loadAccessToken","loadRefreshToken","requestHomeAccountId","cloudInstanceHostName","startMark","endMark","supportsBrowserPerformance","mark","clearMarks","clearMeasures","getEntriesByName","BrowserPerformanceMeasurement","entriesForMeasurement","getPageVisibility","visibilityState","supportsBrowserPerformanceNow","startPageVisibility","endPageVisibility","preQueueTimes","astsAsyncMeasurement","activeSilentTokenRequests","trackPageVisibility","getRequestCorrelationId","AcquireTokenSilent","cacheLookupPolicy","preflightBrowserEnvironmentCheck","silentRequestKey","cachedResponse","AcquireTokenSilentAsync","acquireTokenSilentAsync","accessTokenSize","idTokenSize","visibilityChangeCount","acquireTokenNative","createSilentIframeClient","createSilentCacheClient","AcquireTokenFromCache","acquireTokenFromCache","cacheError","AccessToken","ACQUIRE_TOKEN_NETWORK_START","AcquireTokenByRefreshToken","refreshTokenError","isServerError","isInvalidGrantError","AccessTokenAndRefreshToken","RefreshToken","Skip","AcquireTokenBySilentIframe","acquireTokenBySilentIframe","tokenRenewalError","userInputAuth","userInputCache","userInputSystem","userInputTelemetry","DEFAULT_AUTH_OPTIONS","AAD","DEFAULT_CACHE_OPTIONS","DEFAULT_LOGGER_OPTIONS","DEFAULT_BROWSER_SYSTEM_OPTIONS","loadFrameTimeout","nativeBrokerHandshakeTimeout","providedSystemOptions","DEFAULT_TELEMETRY_OPTIONS","buildConfiguration","redirectResponse","hybridAuthCodeResponses","cacheOptions","nativeCacheOptions","nativeInternalStorage","trackPageVisibilityWithMeasurement","INITIALIZE_START","INITIALIZE_END","loggedInAccounts","redirectResponseKey","nativeClient","redirectClient","createRedirectClient","isLoggedIn","canUseNative","getNativeAccountId","atPopupMeasurement","AcquireTokenPopup","createPopupClient","ssoSilentMeasurement","acquireTokenByCodeAsyncMeasurement","silentIframeClient","ACQUIRE_TOKEN_BY_CODE_START","atbcMeasurement","AcquireTokenByCode","acquireTokenByCodeAsync","ACQUIRE_TOKEN_BY_CODE_SUCCESS","ACQUIRE_TOKEN_BY_CODE_FAILURE","AcquireTokenByCodeAsync","createSilentAuthCodeClient","commonRequest","RefreshTokenAndNetwork","silentRefreshClient","createSilentRefreshClient","userName","preflightInteractiveRequest","prefixExponent","formatDecimal","formatRounded","grouping","thousands","currencyPrefix","currencySuffix","formatNumerals","nan","formatTypes","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","formatTrim","_console","alreadyWarned","warnOnce","loadNamespaces","oldI18nextHasLoadedNamespace","isNewerI18next","ignoreJSONStructure","ignore","useTranslation","i18nFromProps","i18nFromContext","defaultNSFromContext","reportNamespaces","notReadyT","retNotReady","addUsedNamespaces","initializedStoreOnce","getT","getFixedT","nsMode","_useState","setT","joinedNS","previousJoinedNS","boundReset","isInitial","withTranslation","WrappedComponent","I18nextWithTranslation","_useTranslation","_useTranslation2","passDownProps","tReady","withRef","forwardRefReact"],"mappings":"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,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAC5D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAG5DC,EAAY,CACV,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC/D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAA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AM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,OAAOC,KAAK,CAAC,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,OAAOC,KAAK,CAAC,MAAM,OAAOC,KAAK,CAAC,MAAM,OAAOC,KAAK,CAAC,MAAM,OAAOC,KAAK,CAAC,MAAM,OAAOC,KAAK,CAAC,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,OAAOC,KAAK,CAAC,MAAM,MAAM,MAAM,OAAOC,KAAK,CAAC,MAAM,OAAOC,KAAK,CAAC,MAAM,OAAOC,KAAK,CAAC,MAAM,OAAOC,KAAK,CAAC,MAAM,OAAOC,KAAK,CAAC,MAAM,OAAOC,KAAK,CAAC,MAA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AAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK7Y,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAGsmK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,IAAIvnL,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAKirJ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,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KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAMT,GAAG,EAAE+G,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKF,GAAG,KAAKvyK,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI2yK,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI2B,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAGx4E,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,QAAQu4E,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,KAAK,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM96K,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAA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AK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,MAAM,IAAI,MAAM,MAAM,IAAI,MAAM,MAAM,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,IAAI,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IA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,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ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AG,EAAG,EAAG,EAAG,EAAG,GAEpD75U,OAAQ,CACJ,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,eACA,eACA,eACA,eACA,eACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,WAIFm3V,GAA2B,CAC7Btd,SAAU,CACN,IAAO,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAC1G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAE5D75U,OAAQ,CACJ,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,WAIFo3V,GAAwB,SAC1Bn1W,EACAsS,EACAE,EACA6oH,EACA+5O,EACAx6B,GAEA,OAAI56U,EAAQsS,GAAOtS,EAAQwS,EAChB6iW,GAAkBr1W,EAAOo1W,EAAUx6B,EAAOx9U,OAAS,GAI1Di+H,EAAQu8N,SAASvoR,QAAO,SAACi7C,EAAQgrP,EAAS7zU,GACtC,KAAOzhC,GAASs1W,GACZt1W,GAASs1W,EACThrP,GAAU+Q,EAAQt9G,OAAO0jB,GAE7B,OAAO6oF,IACR,IAAMswN,GAIX26B,GAAuC,SACzCv1W,EACAw1W,EACAC,EACAC,GAEA,IAAIprP,EAAS,GAEb,GACSmrP,GACDz1W,IAEJsqH,EAASorP,EAAS11W,GAASsqH,EAC3BtqH,GAASw1W,QACJx1W,EAAQw1W,GAAwBA,GAEzC,OAAOlrP,GAGLqrP,GAA8B,SAChC31W,EACA41W,EACAC,EACAJ,EACA76B,GAEA,IAAM46B,EAAuBK,EAAoBD,EAAsB,EAEvE,OACK51W,EAAQ,EAAI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,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,SAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,SAAY,WACpC,WAAY,WAAY,SAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WA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","file":"static/js/2.dddfbc16.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport const Constants = {\n LIBRARY_NAME: \"MSAL.JS\",\n SKU: \"msal.js.common\",\n // Prefix for all library cache entries\n CACHE_PREFIX: \"msal\",\n // default authority\n DEFAULT_AUTHORITY: \"https://login.microsoftonline.com/common/\",\n DEFAULT_AUTHORITY_HOST: \"login.microsoftonline.com\",\n DEFAULT_COMMON_TENANT: \"common\",\n // ADFS String\n ADFS: \"adfs\",\n DSTS: \"dstsv2\",\n // Default AAD Instance Discovery Endpoint\n AAD_INSTANCE_DISCOVERY_ENDPT: \"https://login.microsoftonline.com/common/discovery/instance?api-version=1.1&authorization_endpoint=\",\n // Resource delimiter - used for certain cache entries\n RESOURCE_DELIM: \"|\",\n // Placeholder for non-existent account ids/objects\n NO_ACCOUNT: \"NO_ACCOUNT\",\n // Claims\n CLAIMS: \"claims\",\n // Consumer UTID\n CONSUMER_UTID: \"9188040d-6c67-4c5b-b112-36a304b66dad\",\n // Default scopes\n OPENID_SCOPE: \"openid\",\n PROFILE_SCOPE: \"profile\",\n OFFLINE_ACCESS_SCOPE: \"offline_access\",\n EMAIL_SCOPE: \"email\",\n // Default response type for authorization code flow\n CODE_RESPONSE_TYPE: \"code\",\n CODE_GRANT_TYPE: \"authorization_code\",\n RT_GRANT_TYPE: \"refresh_token\",\n FRAGMENT_RESPONSE_MODE: \"fragment\",\n S256_CODE_CHALLENGE_METHOD: \"S256\",\n URL_FORM_CONTENT_TYPE: \"application/x-www-form-urlencoded;charset=utf-8\",\n AUTHORIZATION_PENDING: \"authorization_pending\",\n NOT_DEFINED: \"not_defined\",\n EMPTY_STRING: \"\",\n NOT_APPLICABLE: \"N/A\",\n FORWARD_SLASH: \"/\",\n IMDS_ENDPOINT: \"http://169.254.169.254/metadata/instance/compute/location\",\n IMDS_VERSION: \"2020-06-01\",\n IMDS_TIMEOUT: 2000,\n AZURE_REGION_AUTO_DISCOVER_FLAG: \"TryAutoDetect\",\n REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX: \"login.microsoft.com\",\n REGIONAL_AUTH_NON_MSI_QUERY_STRING: \"allowestsrnonmsi=true\",\n KNOWN_PUBLIC_CLOUDS: [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"],\n TOKEN_RESPONSE_TYPE: \"token\",\n ID_TOKEN_RESPONSE_TYPE: \"id_token\",\n SHR_NONCE_VALIDITY: 240,\n INVALID_INSTANCE: \"invalid_instance\",\n};\n\nexport const OIDC_DEFAULT_SCOPES = [\n Constants.OPENID_SCOPE,\n Constants.PROFILE_SCOPE,\n Constants.OFFLINE_ACCESS_SCOPE\n];\n\nexport const OIDC_SCOPES = [\n ...OIDC_DEFAULT_SCOPES,\n Constants.EMAIL_SCOPE\n];\n\n/**\n * Request header names\n */\nexport enum HeaderNames {\n CONTENT_TYPE = \"Content-Type\",\n RETRY_AFTER = \"Retry-After\",\n CCS_HEADER = \"X-AnchorMailbox\",\n WWWAuthenticate = \"WWW-Authenticate\",\n AuthenticationInfo = \"Authentication-Info\",\n X_MS_REQUEST_ID = \"x-ms-request-id\",\n X_MS_HTTP_VERSION= \"x-ms-httpver\"\n}\n\n/**\n * Persistent cache keys MSAL which stay while user is logged in.\n */\nexport enum PersistentCacheKeys {\n ID_TOKEN = \"idtoken\",\n CLIENT_INFO = \"client.info\",\n ADAL_ID_TOKEN = \"adal.idtoken\",\n ERROR = \"error\",\n ERROR_DESC = \"error.description\",\n ACTIVE_ACCOUNT = \"active-account\", // Legacy active-account cache key, use new key instead\n ACTIVE_ACCOUNT_FILTERS = \"active-account-filters\" // new cache entry for active_account for a more robust version for browser\n}\n\n/**\n * String constants related to AAD Authority\n */\nexport enum AADAuthorityConstants {\n COMMON = \"common\",\n ORGANIZATIONS = \"organizations\",\n CONSUMERS = \"consumers\"\n}\n\n/**\n * Keys in the hashParams sent by AAD Server\n */\nexport enum AADServerParamKeys {\n CLIENT_ID = \"client_id\",\n REDIRECT_URI = \"redirect_uri\",\n RESPONSE_TYPE = \"response_type\",\n RESPONSE_MODE = \"response_mode\",\n GRANT_TYPE = \"grant_type\",\n CLAIMS = \"claims\",\n SCOPE = \"scope\",\n ERROR = \"error\",\n ERROR_DESCRIPTION = \"error_description\",\n ACCESS_TOKEN = \"access_token\",\n ID_TOKEN = \"id_token\",\n REFRESH_TOKEN = \"refresh_token\",\n EXPIRES_IN = \"expires_in\",\n STATE = \"state\",\n NONCE = \"nonce\",\n PROMPT = \"prompt\",\n SESSION_STATE = \"session_state\",\n CLIENT_INFO = \"client_info\",\n CODE = \"code\",\n CODE_CHALLENGE = \"code_challenge\",\n CODE_CHALLENGE_METHOD = \"code_challenge_method\",\n CODE_VERIFIER = \"code_verifier\",\n CLIENT_REQUEST_ID = \"client-request-id\",\n X_CLIENT_SKU = \"x-client-SKU\",\n X_CLIENT_VER = \"x-client-VER\",\n X_CLIENT_OS = \"x-client-OS\",\n X_CLIENT_CPU = \"x-client-CPU\",\n X_CLIENT_CURR_TELEM = \"x-client-current-telemetry\",\n X_CLIENT_LAST_TELEM = \"x-client-last-telemetry\",\n X_MS_LIB_CAPABILITY = \"x-ms-lib-capability\",\n X_APP_NAME = \"x-app-name\",\n X_APP_VER = \"x-app-ver\",\n POST_LOGOUT_URI = \"post_logout_redirect_uri\",\n ID_TOKEN_HINT = \"id_token_hint\",\n DEVICE_CODE = \"device_code\",\n CLIENT_SECRET = \"client_secret\",\n CLIENT_ASSERTION = \"client_assertion\",\n CLIENT_ASSERTION_TYPE = \"client_assertion_type\",\n TOKEN_TYPE = \"token_type\",\n REQ_CNF = \"req_cnf\",\n OBO_ASSERTION = \"assertion\",\n REQUESTED_TOKEN_USE = \"requested_token_use\",\n ON_BEHALF_OF = \"on_behalf_of\",\n FOCI = \"foci\",\n CCS_HEADER = \"X-AnchorMailbox\",\n RETURN_SPA_CODE = \"return_spa_code\",\n NATIVE_BROKER = \"nativebroker\",\n LOGOUT_HINT = \"logout_hint\"\n}\n\n/**\n * Claims request keys\n */\nexport enum ClaimsRequestKeys {\n ACCESS_TOKEN = \"access_token\",\n XMS_CC = \"xms_cc\"\n}\n\n/**\n * we considered making this \"enum\" in the request instead of string, however it looks like the allowed list of\n * prompt values kept changing over past couple of years. There are some undocumented prompt values for some\n * internal partners too, hence the choice of generic \"string\" type instead of the \"enum\"\n */\nexport const PromptValue = {\n LOGIN: \"login\",\n SELECT_ACCOUNT: \"select_account\",\n CONSENT: \"consent\",\n NONE: \"none\",\n CREATE: \"create\",\n NO_SESSION: \"no_session\"\n};\n\n/**\n * SSO Types - generated to populate hints\n */\nexport enum SSOTypes {\n ACCOUNT = \"account\",\n SID = \"sid\",\n LOGIN_HINT = \"login_hint\",\n ID_TOKEN = \"id_token\",\n DOMAIN_HINT = \"domain_hint\",\n ORGANIZATIONS = \"organizations\",\n CONSUMERS = \"consumers\",\n ACCOUNT_ID = \"accountIdentifier\",\n HOMEACCOUNT_ID = \"homeAccountIdentifier\"\n}\n\n/**\n * Disallowed extra query parameters.\n */\nexport const BlacklistedEQParams = [\n SSOTypes.SID,\n SSOTypes.LOGIN_HINT\n];\n\n/**\n * allowed values for codeVerifier\n */\nexport const CodeChallengeMethodValues = {\n PLAIN: \"plain\",\n S256: \"S256\"\n};\n\n/**\n * The method used to encode the code verifier for the code challenge parameter. can be one\n * of plain or s256. if excluded, code challenge is assumed to be plaintext. for more\n * information, see the pkce rcf: https://tools.ietf.org/html/rfc7636\n */\nexport const CodeChallengeMethodValuesArray: string[] = [\n CodeChallengeMethodValues.PLAIN,\n CodeChallengeMethodValues.S256\n];\n\n/**\n * allowed values for response_mode\n */\nexport enum ResponseMode {\n QUERY = \"query\",\n FRAGMENT = \"fragment\",\n FORM_POST = \"form_post\"\n}\n\n/**\n * allowed grant_type\n */\nexport enum GrantType {\n IMPLICIT_GRANT = \"implicit\",\n AUTHORIZATION_CODE_GRANT = \"authorization_code\",\n CLIENT_CREDENTIALS_GRANT = \"client_credentials\",\n RESOURCE_OWNER_PASSWORD_GRANT = \"password\",\n REFRESH_TOKEN_GRANT = \"refresh_token\",\n DEVICE_CODE_GRANT = \"device_code\",\n JWT_BEARER = \"urn:ietf:params:oauth:grant-type:jwt-bearer\"\n}\n\n/**\n * Account types in Cache\n */\nexport enum CacheAccountType {\n MSSTS_ACCOUNT_TYPE = \"MSSTS\",\n ADFS_ACCOUNT_TYPE = \"ADFS\",\n MSAV1_ACCOUNT_TYPE = \"MSA\",\n GENERIC_ACCOUNT_TYPE = \"Generic\" // NTLM, Kerberos, FBA, Basic etc\n}\n\n/**\n * Separators used in cache\n */\nexport enum Separators {\n CACHE_KEY_SEPARATOR = \"-\",\n CLIENT_INFO_SEPARATOR = \".\"\n}\n\n/**\n * Credential Type stored in the cache\n */\nexport enum CredentialType {\n ID_TOKEN = \"IdToken\",\n ACCESS_TOKEN = \"AccessToken\",\n ACCESS_TOKEN_WITH_AUTH_SCHEME = \"AccessToken_With_AuthScheme\",\n REFRESH_TOKEN = \"RefreshToken\",\n}\n\n/**\n * Credential Type stored in the cache\n */\nexport enum CacheSchemaType {\n ACCOUNT = \"Account\",\n CREDENTIAL = \"Credential\",\n ID_TOKEN = \"IdToken\",\n ACCESS_TOKEN = \"AccessToken\",\n REFRESH_TOKEN = \"RefreshToken\",\n APP_METADATA = \"AppMetadata\",\n TEMPORARY = \"TempCache\",\n TELEMETRY = \"Telemetry\",\n UNDEFINED = \"Undefined\",\n THROTTLING = \"Throttling\"\n}\n\n/**\n * Combine all cache types\n */\nexport enum CacheType {\n ADFS = 1001,\n MSA = 1002,\n MSSTS = 1003,\n GENERIC = 1004,\n ACCESS_TOKEN = 2001,\n REFRESH_TOKEN = 2002,\n ID_TOKEN = 2003,\n APP_METADATA = 3001,\n UNDEFINED = 9999\n}\n\n/**\n * More Cache related constants\n */\nexport const APP_METADATA = \"appmetadata\";\nexport const CLIENT_INFO = \"client_info\";\nexport const THE_FAMILY_ID = \"1\";\n\nexport const AUTHORITY_METADATA_CONSTANTS = {\n CACHE_KEY: \"authority-metadata\",\n REFRESH_TIME_SECONDS: 3600 * 24 // 24 Hours\n};\n\nexport enum AuthorityMetadataSource {\n CONFIG = \"config\",\n CACHE = \"cache\",\n NETWORK = \"network\",\n HARDCODED_VALUES= \"hardcoded_values\",\n}\n\nexport const SERVER_TELEM_CONSTANTS = {\n SCHEMA_VERSION: 5,\n MAX_CUR_HEADER_BYTES: 80, // ESTS limit is 100B, set to 80 to provide a 20B buffer\n MAX_LAST_HEADER_BYTES: 330, // ESTS limit is 350B, set to 330 to provide a 20B buffer,\n MAX_CACHED_ERRORS: 50, // Limit the number of errors that can be stored to prevent uncontrolled size gains\n CACHE_KEY: \"server-telemetry\",\n CATEGORY_SEPARATOR: \"|\",\n VALUE_SEPARATOR: \",\",\n OVERFLOW_TRUE: \"1\",\n OVERFLOW_FALSE: \"0\",\n UNKNOWN_ERROR: \"unknown_error\"\n};\n\n/**\n * Type of the authentication request\n */\nexport enum AuthenticationScheme {\n BEARER = \"Bearer\",\n POP = \"pop\",\n SSH = \"ssh-cert\"\n}\n\n/**\n * Constants related to throttling\n */\nexport const ThrottlingConstants = {\n // Default time to throttle RequestThumbprint in seconds\n DEFAULT_THROTTLE_TIME_SECONDS: 60,\n // Default maximum time to throttle in seconds, overrides what the server sends back\n DEFAULT_MAX_THROTTLE_TIME_SECONDS: 3600,\n // Prefix for storing throttling entries\n THROTTLING_PREFIX: \"throttling\",\n // Value assigned to the x-ms-lib-capability header to indicate to the server the library supports throttling\n X_MS_LIB_CAPABILITY_VALUE: \"retry-after, h429\"\n};\n\nexport const Errors = {\n INVALID_GRANT_ERROR: \"invalid_grant\",\n CLIENT_MISMATCH_ERROR: \"client_mismatch\",\n};\n\n/**\n * Password grant parameters\n */\nexport enum PasswordGrantConstants {\n username = \"username\",\n password = \"password\"\n}\n\n/**\n * Response codes\n */\nexport enum ResponseCodes {\n httpSuccess = 200,\n httpBadRequest = 400\n}\n\n/**\n * Region Discovery Sources\n */\nexport enum RegionDiscoverySources {\n FAILED_AUTO_DETECTION = \"1\",\n INTERNAL_CACHE = \"2\",\n ENVIRONMENT_VARIABLE = \"3\",\n IMDS = \"4\",\n}\n\n/**\n * Region Discovery Outcomes\n */\nexport enum RegionDiscoveryOutcomes {\n CONFIGURED_MATCHES_DETECTED = \"1\",\n CONFIGURED_NO_AUTO_DETECTION = \"2\",\n CONFIGURED_NOT_DETECTED = \"3\",\n AUTO_DETECTION_REQUESTED_SUCCESSFUL = \"4\",\n AUTO_DETECTION_REQUESTED_FAILED = \"5\"\n}\n\nexport enum CacheOutcome {\n NO_CACHE_HIT = \"0\",\n FORCE_REFRESH = \"1\",\n NO_CACHED_ACCESS_TOKEN = \"2\",\n CACHED_ACCESS_TOKEN_EXPIRED = \"3\",\n REFRESH_CACHED_ACCESS_TOKEN = \"4\"\n}\n\nexport enum JsonTypes {\n Jwt = \"JWT\",\n Jwk = \"JWK\"\n}\n\nexport const ONE_DAY_IN_MS = 86400000;\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { OIDC_DEFAULT_SCOPES } from \"@azure/msal-common\";\nimport { PopupRequest } from \"../request/PopupRequest\";\nimport { RedirectRequest } from \"../request/RedirectRequest\";\n\n/**\n * Constants\n */\nexport const BrowserConstants = {\n /**\n * Interaction in progress cache value\n */\n INTERACTION_IN_PROGRESS_VALUE: \"interaction_in_progress\",\n /**\n * Invalid grant error code\n */\n INVALID_GRANT_ERROR: \"invalid_grant\",\n /**\n * Default popup window width\n */\n POPUP_WIDTH: 483,\n /**\n * Default popup window height\n */\n POPUP_HEIGHT: 600,\n /**\n * Name of the popup window starts with\n */\n POPUP_NAME_PREFIX: \"msal\",\n /**\n * Default popup monitor poll interval in milliseconds\n */\n DEFAULT_POLL_INTERVAL_MS: 30,\n /**\n * Msal-browser SKU\n */\n MSAL_SKU: \"msal.js.browser\",\n};\n\nexport const NativeConstants = {\n CHANNEL_ID: \"53ee284d-920a-4b59-9d30-a60315b26836\",\n PREFERRED_EXTENSION_ID: \"ppnbnpeolgkicgegkbkbjmhlideopiji\",\n MATS_TELEMETRY: \"MATS\"\n};\n\nexport enum NativeExtensionMethod {\n HandshakeRequest = \"Handshake\",\n HandshakeResponse = \"HandshakeResponse\",\n GetToken = \"GetToken\",\n Response = \"Response\"\n}\n\nexport enum BrowserCacheLocation {\n LocalStorage = \"localStorage\",\n SessionStorage = \"sessionStorage\",\n MemoryStorage = \"memoryStorage\"\n}\n\n/**\n * HTTP Request types supported by MSAL.\n */\nexport enum HTTP_REQUEST_TYPE {\n GET = \"GET\",\n POST = \"POST\"\n}\n\n/**\n * Temporary cache keys for MSAL, deleted after any request.\n */\nexport enum TemporaryCacheKeys {\n AUTHORITY = \"authority\",\n ACQUIRE_TOKEN_ACCOUNT = \"acquireToken.account\",\n SESSION_STATE = \"session.state\",\n REQUEST_STATE = \"request.state\",\n NONCE_IDTOKEN = \"nonce.id_token\",\n ORIGIN_URI = \"request.origin\",\n RENEW_STATUS = \"token.renew.status\",\n URL_HASH = \"urlHash\",\n REQUEST_PARAMS = \"request.params\",\n SCOPES = \"scopes\",\n INTERACTION_STATUS_KEY = \"interaction.status\",\n CCS_CREDENTIAL = \"ccs.credential\",\n CORRELATION_ID = \"request.correlationId\",\n NATIVE_REQUEST = \"request.native\",\n REDIRECT_CONTEXT = \"request.redirect.context\"\n}\n\n/**\n * Cache keys stored in-memory\n */\nexport enum InMemoryCacheKeys {\n WRAPPER_SKU = \"wrapper.sku\",\n WRAPPER_VER = \"wrapper.version\"\n}\n\n/**\n * API Codes for Telemetry purposes. \n * Before adding a new code you must claim it in the MSAL Telemetry tracker as these number spaces are shared across all MSALs\n * 0-99 Silent Flow\n * 800-899 Auth Code Flow\n */\nexport enum ApiId {\n acquireTokenRedirect = 861,\n acquireTokenPopup = 862,\n ssoSilent = 863,\n acquireTokenSilent_authCode = 864,\n handleRedirectPromise = 865,\n acquireTokenByCode = 866,\n acquireTokenSilent_silentFlow = 61,\n logout = 961,\n logoutPopup = 962\n}\n\n/*\n * Interaction type of the API - used for state and telemetry\n */\nexport enum InteractionType {\n Redirect = \"redirect\",\n Popup = \"popup\",\n Silent = \"silent\",\n None = \"none\"\n}\n\n/**\n * Types of interaction currently in progress.\n * Used in events in wrapper libraries to invoke functions when certain interaction is in progress or all interactions are complete.\n */\nexport enum InteractionStatus {\n /**\n * Initial status before interaction occurs\n */\n Startup = \"startup\",\n /**\n * Status set when all login calls occuring\n */\n Login = \"login\",\n /**\n * Status set when logout call occuring\n */ \n Logout = \"logout\",\n /**\n * Status set for acquireToken calls\n */\n AcquireToken = \"acquireToken\",\n /**\n * Status set for ssoSilent calls\n */\n SsoSilent = \"ssoSilent\",\n /**\n * Status set when handleRedirect in progress\n */\n HandleRedirect = \"handleRedirect\",\n /**\n * Status set when interaction is complete\n */\n None = \"none\"\n}\n\nexport const DEFAULT_REQUEST: RedirectRequest|PopupRequest = {\n scopes: OIDC_DEFAULT_SCOPES\n};\n\n/**\n * JWK Key Format string (Type MUST be defined for window crypto APIs)\n */\nexport const KEY_FORMAT_JWK = \"jwk\";\n\n// Supported wrapper SKUs\nexport enum WrapperSKU {\n React = \"@azure/msal-react\",\n Angular = \"@azure/msal-angular\"\n}\n\n// DatabaseStorage Constants\nexport const DB_NAME = \"msal.db\";\nexport const DB_VERSION = 1;\nexport const DB_TABLE_NAME = `${DB_NAME}.keys`;\n\nexport enum CacheLookupPolicy {\n /*\n * acquireTokenSilent will attempt to retrieve an access token from the cache. If the access token is expired\n * or cannot be found the refresh token will be used to acquire a new one. Finally, if the refresh token\n * is expired acquireTokenSilent will attempt to acquire new access and refresh tokens.\n */\n Default = 0, // 0 is falsy, is equivalent to not passing in a CacheLookupPolicy\n /*\n * acquireTokenSilent will only look for access tokens in the cache. It will not attempt to renew access or\n * refresh tokens.\n */\n AccessToken = 1,\n /*\n * acquireTokenSilent will attempt to retrieve an access token from the cache. If the access token is expired or\n * cannot be found, the refresh token will be used to acquire a new one. If the refresh token is expired, it\n * will not be renewed and acquireTokenSilent will fail.\n */\n AccessTokenAndRefreshToken = 2,\n /*\n * acquireTokenSilent will not attempt to retrieve access tokens from the cache and will instead attempt to\n * exchange the cached refresh token for a new access token. If the refresh token is expired, it will not be\n * renewed and acquireTokenSilent will fail.\n */\n RefreshToken = 3,\n /*\n * acquireTokenSilent will not look in the cache for the access token. It will go directly to network with the\n * cached refresh token. If the refresh token is expired an attempt will be made to renew it. This is equivalent to\n * setting \"forceRefresh: true\".\n */\n RefreshTokenAndNetwork = 4,\n /*\n * acquireTokenSilent will attempt to renew both access and refresh tokens. It will not look in the cache. This will\n * always fail if 3rd party cookies are blocked by the browser.\n */\n Skip = 5,\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n return function () {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (isNativeReflectConstruct()) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nexport default function _createForOfIteratorHelper(o) {\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (o = unsupportedIterableToArray(o))) {\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var it,\n normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"draw2d\"] = factory();\n\telse\n\t\troot[\"draw2d\"] = factory();\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"./src/index.js\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./node_modules/canvg-browser/index.js\":\n/*!*********************************************!*\\\n !*** ./node_modules/canvg-browser/index.js ***!\n \\*********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\n\r\n var RGBColor = __webpack_require__(/*! rgbcolor */ \"./node_modules/rgbcolor/index.js\");\r\n var stackblur = __webpack_require__(/*! stackblur */ \"./node_modules/stackblur/index.js\");\r\n var xmldom = __webpack_require__(/*! xmldom */ \"./node_modules/xmldom/dom-parser.js\");\r\n\r\n/*\r\n * canvg.js - Javascript SVG parser and renderer on Canvas\r\n * MIT Licensed\r\n * Gabe Lerner (gabelerner@gmail.com)\r\n * http://code.google.com/p/canvg/\r\n *\r\n * Requires: rgbcolor.js - http://www.phpied.com/rgb-color-parser-in-javascript/\r\n */\r\n\r\n/*\r\ncanvg(target, s)\r\n empty parameters: replace all 'svg' elements on page with 'canvas' elements\r\n target: canvas element or the id of a canvas element\r\n s: svg string, url to svg file, or xml document\r\n opts: optional hash of options\r\n ignoreMouse: true => ignore mouse events\r\n ignoreAnimation: true => ignore animations\r\n ignoreDimensions: true => does not try to resize canvas\r\n ignoreClear: true => does not clear canvas\r\n offsetX: int => draws at a x offset\r\n offsetY: int => draws at a y offset\r\n scaleWidth: int => scales horizontally to width\r\n scaleHeight: int => scales vertically to height\r\n renderCallback: function => will call the function after the first render is completed\r\n forceRedraw: function => will call the function on every frame, if it returns true, will redraw\r\n*/\r\nfunction canvg(target, s, opts) {\r\n\r\n\t// no parameters\r\n\tif (target == null && s == null && opts == null) {\r\n\t\tvar svgTags = document.querySelectorAll('svg');\r\n\t\tfor (var i=0; i~\\.\\[:]+)/g;\r\n var classRegex = /(\\.[^\\s\\+>~\\.\\[:]+)/g;\r\n var pseudoElementRegex = /(::[^\\s\\+>~\\.\\[:]+|:first-line|:first-letter|:before|:after)/gi;\r\n var pseudoClassWithBracketsRegex = /(:[\\w-]+\\([^\\)]*\\))/gi;\r\n var pseudoClassRegex = /(:[^\\s\\+>~\\.\\[:]+)/g;\r\n var elementRegex = /([^\\s\\+>~\\.\\[:]+)/g;\r\n\r\n\tvar findMatch = function(regex, type) {\r\n\t\tvar matches = selector.match(regex);\r\n\t\tif (matches == null) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\ttypeCount[type] += matches.length;\r\n\t\tselector = selector.replace(regex, ' ');\r\n\t};\r\n\r\n\tselector = selector.replace(/:not\\(([^\\)]*)\\)/g, ' $1 ');\r\n\tselector = selector.replace(/{[^]*/gm, ' ');\r\n\tfindMatch(attributeRegex, 1);\r\n\tfindMatch(idRegex, 0);\r\n\tfindMatch(classRegex, 1);\r\n\tfindMatch(pseudoElementRegex, 2);\r\n\tfindMatch(pseudoClassWithBracketsRegex, 1);\r\n\tfindMatch(pseudoClassRegex, 1);\r\n\tselector = selector.replace(/[\\*\\s\\+>~]/g, ' ');\r\n\tselector = selector.replace(/[#\\.]/g, ' ');\r\n\tfindMatch(elementRegex, 2);\r\n\treturn typeCount.join('');\r\n}\r\n\r\nfunction build(opts) {\r\n\tvar svg = { opts: opts };\r\n\r\n var matchesSelector = getMatchesSelector();\r\n\r\n if (typeof CanvasRenderingContext2D != 'undefined') {\r\n CanvasRenderingContext2D.prototype.drawSvg = function(s, dx, dy, dw, dh, opts) {\r\n var cOpts = {\r\n ignoreMouse: true,\r\n ignoreAnimation: true,\r\n ignoreDimensions: true,\r\n ignoreClear: true,\r\n offsetX: dx,\r\n offsetY: dy,\r\n scaleWidth: dw,\r\n scaleHeight: dh\r\n };\r\n\r\n for(var prop in opts) {\r\n if(opts.hasOwnProperty(prop)){\r\n cOpts[prop] = opts[prop];\r\n }\r\n }\r\n canvg(this.canvas, s, cOpts);\r\n };\r\n }\r\n\r\n\tsvg.FRAMERATE = 30;\r\n\tsvg.MAX_VIRTUAL_PIXELS = 30000;\r\n\r\n\tsvg.log = function(msg) {};\r\n\tif (svg.opts.log == true && typeof console != 'undefined') {\r\n\t\tsvg.log = function(msg) { console.log(msg); };\r\n\t}\r\n\r\n\t// globals\r\n\tsvg.init = function(ctx) {\r\n\t\tvar uniqueId = 0;\r\n\t\tsvg.UniqueId = function () { uniqueId++; return 'canvg' + uniqueId;\t};\r\n\t\tsvg.Definitions = {};\r\n\t\tsvg.Styles = {};\r\n\t\tsvg.StylesSpecificity = {};\r\n\t\tsvg.Animations = [];\r\n\t\tsvg.Images = [];\r\n\t\tsvg.ctx = ctx;\r\n\t\tsvg.ViewPort = new (function () {\r\n\t\t\tthis.viewPorts = [];\r\n\t\t\tthis.Clear = function() { this.viewPorts = []; };\r\n\t\t\tthis.SetCurrent = function(width, height) { this.viewPorts.push({ width: width, height: height }); };\r\n\t\t\tthis.RemoveCurrent = function() { this.viewPorts.pop(); };\r\n\t\t\tthis.Current = function() { return this.viewPorts[this.viewPorts.length - 1]; };\r\n\t\t\tthis.width = function() { return this.Current().width; };\r\n\t\t\tthis.height = function() { return this.Current().height; };\r\n\t\t\tthis.ComputeSize = function(d) {\r\n\t\t\t\tif (d != null && typeof d == 'number') return d;\r\n\t\t\t\tif (d == 'x') return this.width();\r\n\t\t\t\tif (d == 'y') return this.height();\r\n\t\t\t\treturn Math.sqrt(Math.pow(this.width(), 2) + Math.pow(this.height(), 2)) / Math.sqrt(2);\r\n\t\t\t};\r\n\t\t});\r\n\t}\r\n\tsvg.init();\r\n\r\n\t// images loaded\r\n\tsvg.ImagesLoaded = function() {\r\n\t\tfor (var i=0; i]*>/, '');\r\n\t\t\tvar xmlDoc = new ActiveXObject('Microsoft.XMLDOM');\r\n\t\t\txmlDoc.async = 'false';\r\n\t\t\txmlDoc.loadXML(xml);\r\n\t\t\treturn xmlDoc;\r\n\t\t}\r\n\t}\r\n\r\n\tsvg.Property = function(name, value) {\r\n\t\tthis.name = name;\r\n\t\tthis.value = value;\r\n\t}\r\n\t\tsvg.Property.prototype.getValue = function() {\r\n\t\t\treturn this.value;\r\n\t\t}\r\n\r\n\t\tsvg.Property.prototype.hasValue = function() {\r\n\t\t\treturn (this.value != null && this.value != '');\r\n\t\t}\r\n\r\n\t\t// return the numerical value of the property\r\n\t\tsvg.Property.prototype.numValue = function() {\r\n\t\t\tif (!this.hasValue()) return 0;\r\n\r\n\t\t\tvar n = parseFloat(this.value);\r\n\t\t\tif ((this.value + '').match(/%$/)) {\r\n\t\t\t\tn = n / 100.0;\r\n\t\t\t}\r\n\t\t\treturn n;\r\n\t\t}\r\n\r\n\t\tsvg.Property.prototype.valueOrDefault = function(def) {\r\n\t\t\tif (this.hasValue()) return this.value;\r\n\t\t\treturn def;\r\n\t\t}\r\n\r\n\t\tsvg.Property.prototype.numValueOrDefault = function(def) {\r\n\t\t\tif (this.hasValue()) return this.numValue();\r\n\t\t\treturn def;\r\n\t\t}\r\n\r\n\t\t// color extensions\r\n\t\t\t// augment the current color value with the opacity\r\n\t\t\tsvg.Property.prototype.addOpacity = function(opacityProp) {\r\n\t\t\t\tvar newValue = this.value;\r\n\t\t\t\tif (opacityProp.value != null && opacityProp.value != '' && typeof this.value == 'string') { // can only add opacity to colors, not patterns\r\n\t\t\t\t\tvar color = new RGBColor(this.value);\r\n\t\t\t\t\tif (color.ok) {\r\n\t\t\t\t\t\tnewValue = 'rgba(' + color.r + ', ' + color.g + ', ' + color.b + ', ' + opacityProp.numValue() + ')';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn new svg.Property(this.name, newValue);\r\n\t\t\t}\r\n\r\n\t\t// definition extensions\r\n\t\t\t// get the definition from the definitions table\r\n\t\t\tsvg.Property.prototype.getDefinition = function() {\r\n\t\t\t\tvar name = this.value.match(/#([^\\)'\"]+)/);\r\n\t\t\t\tif (name) { name = name[1]; }\r\n\t\t\t\tif (!name) { name = this.value; }\r\n\t\t\t\treturn svg.Definitions[name];\r\n\t\t\t}\r\n\r\n\t\t\tsvg.Property.prototype.isUrlDefinition = function() {\r\n\t\t\t\treturn this.value.indexOf('url(') == 0\r\n\t\t\t}\r\n\r\n\t\t\tsvg.Property.prototype.getFillStyleDefinition = function(e, opacityProp) {\r\n\t\t\t\tvar def = this.getDefinition();\r\n\r\n\t\t\t\t// gradient\r\n\t\t\t\tif (def != null && def.createGradient) {\r\n\t\t\t\t\treturn def.createGradient(svg.ctx, e, opacityProp);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// pattern\r\n\t\t\t\tif (def != null && def.createPattern) {\r\n\t\t\t\t\tif (def.getHrefAttribute().hasValue()) {\r\n\t\t\t\t\t\tvar pt = def.attribute('patternTransform');\r\n\t\t\t\t\t\tdef = def.getHrefAttribute().getDefinition();\r\n\t\t\t\t\t\tif (pt.hasValue()) { def.attribute('patternTransform', true).value = pt.value; }\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn def.createPattern(svg.ctx, e);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t// length extensions\r\n\t\t\tsvg.Property.prototype.getDPI = function(viewPort) {\r\n\t\t\t\treturn 96.0; // TODO: compute?\r\n\t\t\t}\r\n\r\n\t\t\tsvg.Property.prototype.getEM = function(viewPort) {\r\n\t\t\t\tvar em = 12;\r\n\r\n\t\t\t\tvar fontSize = new svg.Property('fontSize', svg.Font.Parse(svg.ctx.font).fontSize);\r\n\t\t\t\tif (fontSize.hasValue()) em = fontSize.toPixels(viewPort);\r\n\r\n\t\t\t\treturn em;\r\n\t\t\t}\r\n\r\n\t\t\tsvg.Property.prototype.getUnits = function() {\r\n\t\t\t\tvar s = this.value+'';\r\n\t\t\t\treturn s.replace(/[0-9\\.\\-]/g,'');\r\n\t\t\t}\r\n\r\n\t\t\t// get the length as pixels\r\n\t\t\tsvg.Property.prototype.toPixels = function(viewPort, processPercent) {\r\n\t\t\t\tif (!this.hasValue()) return 0;\r\n\t\t\t\tvar s = this.value+'';\r\n\t\t\t\tif (s.match(/em$/)) return this.numValue() * this.getEM(viewPort);\r\n\t\t\t\tif (s.match(/ex$/)) return this.numValue() * this.getEM(viewPort) / 2.0;\r\n\t\t\t\tif (s.match(/px$/)) return this.numValue();\r\n\t\t\t\tif (s.match(/pt$/)) return this.numValue() * this.getDPI(viewPort) * (1.0 / 72.0);\r\n\t\t\t\tif (s.match(/pc$/)) return this.numValue() * 15;\r\n\t\t\t\tif (s.match(/cm$/)) return this.numValue() * this.getDPI(viewPort) / 2.54;\r\n\t\t\t\tif (s.match(/mm$/)) return this.numValue() * this.getDPI(viewPort) / 25.4;\r\n\t\t\t\tif (s.match(/in$/)) return this.numValue() * this.getDPI(viewPort);\r\n\t\t\t\tif (s.match(/%$/)) return this.numValue() * svg.ViewPort.ComputeSize(viewPort);\r\n\t\t\t\tvar n = this.numValue();\r\n\t\t\t\tif (processPercent && n < 1.0) return n * svg.ViewPort.ComputeSize(viewPort);\r\n\t\t\t\treturn n;\r\n\t\t\t}\r\n\r\n\t\t// time extensions\r\n\t\t\t// get the time as milliseconds\r\n\t\t\tsvg.Property.prototype.toMilliseconds = function() {\r\n\t\t\t\tif (!this.hasValue()) return 0;\r\n\t\t\t\tvar s = this.value+'';\r\n\t\t\t\tif (s.match(/s$/)) return this.numValue() * 1000;\r\n\t\t\t\tif (s.match(/ms$/)) return this.numValue();\r\n\t\t\t\treturn this.numValue();\r\n\t\t\t}\r\n\r\n\t\t// angle extensions\r\n\t\t\t// get the angle as radians\r\n\t\t\tsvg.Property.prototype.toRadians = function() {\r\n\t\t\t\tif (!this.hasValue()) return 0;\r\n\t\t\t\tvar s = this.value+'';\r\n\t\t\t\tif (s.match(/deg$/)) return this.numValue() * (Math.PI / 180.0);\r\n\t\t\t\tif (s.match(/grad$/)) return this.numValue() * (Math.PI / 200.0);\r\n\t\t\t\tif (s.match(/rad$/)) return this.numValue();\r\n\t\t\t\treturn this.numValue() * (Math.PI / 180.0);\r\n\t\t\t}\r\n\r\n\t\t// text extensions\r\n\t\t\t// get the text baseline\r\n\t\t\tvar textBaselineMapping = {\r\n\t\t\t\t'baseline': 'alphabetic',\r\n\t\t\t\t'before-edge': 'top',\r\n\t\t\t\t'text-before-edge': 'top',\r\n\t\t\t\t'middle': 'middle',\r\n\t\t\t\t'central': 'middle',\r\n\t\t\t\t'after-edge': 'bottom',\r\n\t\t\t\t'text-after-edge': 'bottom',\r\n\t\t\t\t'ideographic': 'ideographic',\r\n\t\t\t\t'alphabetic': 'alphabetic',\r\n\t\t\t\t'hanging': 'hanging',\r\n\t\t\t\t'mathematical': 'alphabetic'\r\n\t\t\t};\r\n\t\t\tsvg.Property.prototype.toTextBaseline = function () {\r\n\t\t\t\tif (!this.hasValue()) return null;\r\n\t\t\t\treturn textBaselineMapping[this.value];\r\n\t\t\t}\r\n\r\n\t// fonts\r\n\tsvg.Font = new (function() {\r\n\t\tthis.Styles = 'normal|italic|oblique|inherit';\r\n\t\tthis.Variants = 'normal|small-caps|inherit';\r\n\t\tthis.Weights = 'normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit';\r\n\r\n\t\tthis.CreateFont = function(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit) {\r\n\t\t\tvar f = inherit != null ? this.Parse(inherit) : this.CreateFont('', '', '', '', '', svg.ctx.font);\r\n\t\t\treturn {\r\n\t\t\t\tfontFamily: fontFamily || f.fontFamily,\r\n\t\t\t\tfontSize: fontSize || f.fontSize,\r\n\t\t\t\tfontStyle: fontStyle || f.fontStyle,\r\n\t\t\t\tfontWeight: fontWeight || f.fontWeight,\r\n\t\t\t\tfontVariant: fontVariant || f.fontVariant,\r\n\t\t\t\ttoString: function () { return [this.fontStyle, this.fontVariant, this.fontWeight, this.fontSize, this.fontFamily].join(' ') }\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar that = this;\r\n\t\tthis.Parse = function(s) {\r\n\t\t\tvar f = {};\r\n\t\t\tvar d = svg.trim(svg.compressSpaces(s || '')).split(' ');\r\n\t\t\tvar set = { fontSize: false, fontStyle: false, fontWeight: false, fontVariant: false }\r\n\t\t\tvar ff = '';\r\n\t\t\tfor (var i=0; i this.x2) this.x2 = x;\r\n\t\t\t}\r\n\r\n\t\t\tif (y != null) {\r\n\t\t\t\tif (isNaN(this.y1) || isNaN(this.y2)) {\r\n\t\t\t\t\tthis.y1 = y;\r\n\t\t\t\t\tthis.y2 = y;\r\n\t\t\t\t}\r\n\t\t\t\tif (y < this.y1) this.y1 = y;\r\n\t\t\t\tif (y > this.y2) this.y2 = y;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.addX = function(x) { this.addPoint(x, null); }\r\n\t\tthis.addY = function(y) { this.addPoint(null, y); }\r\n\r\n\t\tthis.addBoundingBox = function(bb) {\r\n\t\t\tthis.addPoint(bb.x1, bb.y1);\r\n\t\t\tthis.addPoint(bb.x2, bb.y2);\r\n\t\t}\r\n\r\n\t\tthis.addQuadraticCurve = function(p0x, p0y, p1x, p1y, p2x, p2y) {\r\n\t\t\tvar cp1x = p0x + 2/3 * (p1x - p0x); // CP1 = QP0 + 2/3 *(QP1-QP0)\r\n\t\t\tvar cp1y = p0y + 2/3 * (p1y - p0y); // CP1 = QP0 + 2/3 *(QP1-QP0)\r\n\t\t\tvar cp2x = cp1x + 1/3 * (p2x - p0x); // CP2 = CP1 + 1/3 *(QP2-QP0)\r\n\t\t\tvar cp2y = cp1y + 1/3 * (p2y - p0y); // CP2 = CP1 + 1/3 *(QP2-QP0)\r\n\t\t\tthis.addBezierCurve(p0x, p0y, cp1x, cp2x, cp1y,\tcp2y, p2x, p2y);\r\n\t\t}\r\n\r\n\t\tthis.addBezierCurve = function(p0x, p0y, p1x, p1y, p2x, p2y, p3x, p3y) {\r\n\t\t\t// from http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html\r\n\t\t\tvar p0 = [p0x, p0y], p1 = [p1x, p1y], p2 = [p2x, p2y], p3 = [p3x, p3y];\r\n\t\t\tthis.addPoint(p0[0], p0[1]);\r\n\t\t\tthis.addPoint(p3[0], p3[1]);\r\n\r\n\t\t\tfor (var i=0; i<=1; i++) {\r\n\t\t\t\tvar f = function(t) {\r\n\t\t\t\t\treturn Math.pow(1-t, 3) * p0[i]\r\n\t\t\t\t\t+ 3 * Math.pow(1-t, 2) * t * p1[i]\r\n\t\t\t\t\t+ 3 * (1-t) * Math.pow(t, 2) * p2[i]\r\n\t\t\t\t\t+ Math.pow(t, 3) * p3[i];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\r\n\t\t\t\tvar a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\r\n\t\t\t\tvar c = 3 * p1[i] - 3 * p0[i];\r\n\r\n\t\t\t\tif (a == 0) {\r\n\t\t\t\t\tif (b == 0) continue;\r\n\t\t\t\t\tvar t = -c / b;\r\n\t\t\t\t\tif (0 < t && t < 1) {\r\n\t\t\t\t\t\tif (i == 0) this.addX(f(t));\r\n\t\t\t\t\t\tif (i == 1) this.addY(f(t));\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar b2ac = Math.pow(b, 2) - 4 * c * a;\r\n\t\t\t\tif (b2ac < 0) continue;\r\n\t\t\t\tvar t1 = (-b + Math.sqrt(b2ac)) / (2 * a);\r\n\t\t\t\tif (0 < t1 && t1 < 1) {\r\n\t\t\t\t\tif (i == 0) this.addX(f(t1));\r\n\t\t\t\t\tif (i == 1) this.addY(f(t1));\r\n\t\t\t\t}\r\n\t\t\t\tvar t2 = (-b - Math.sqrt(b2ac)) / (2 * a);\r\n\t\t\t\tif (0 < t2 && t2 < 1) {\r\n\t\t\t\t\tif (i == 0) this.addX(f(t2));\r\n\t\t\t\t\tif (i == 1) this.addY(f(t2));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.isPointInBox = function(x, y) {\r\n\t\t\treturn (this.x1 <= x && x <= this.x2 && this.y1 <= y && y <= this.y2);\r\n\t\t}\r\n\r\n\t\tthis.addPoint(x1, y1);\r\n\t\tthis.addPoint(x2, y2);\r\n\t}\r\n\r\n\t// transforms\r\n\tsvg.Transform = function(v) {\r\n\t\tvar that = this;\r\n\t\tthis.Type = {}\r\n\r\n\t\t// translate\r\n\t\tthis.Type.translate = function(s) {\r\n\t\t\tthis.p = svg.CreatePoint(s);\r\n\t\t\tthis.apply = function(ctx) {\r\n\t\t\t\tctx.translate(this.p.x || 0.0, this.p.y || 0.0);\r\n\t\t\t}\r\n\t\t\tthis.unapply = function(ctx) {\r\n\t\t\t\tctx.translate(-1.0 * this.p.x || 0.0, -1.0 * this.p.y || 0.0);\r\n\t\t\t}\r\n\t\t\tthis.applyToPoint = function(p) {\r\n\t\t\t\tp.applyTransform([1, 0, 0, 1, this.p.x || 0.0, this.p.y || 0.0]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// rotate\r\n\t\tthis.Type.rotate = function(s) {\r\n\t\t\tvar a = svg.ToNumberArray(s);\r\n\t\t\tthis.angle = new svg.Property('angle', a[0]);\r\n\t\t\tthis.cx = a[1] || 0;\r\n\t\t\tthis.cy = a[2] || 0;\r\n\t\t\tthis.apply = function(ctx) {\r\n\t\t\t\tctx.translate(this.cx, this.cy);\r\n\t\t\t\tctx.rotate(this.angle.toRadians());\r\n\t\t\t\tctx.translate(-this.cx, -this.cy);\r\n\t\t\t}\r\n\t\t\tthis.unapply = function(ctx) {\r\n\t\t\t\tctx.translate(this.cx, this.cy);\r\n\t\t\t\tctx.rotate(-1.0 * this.angle.toRadians());\r\n\t\t\t\tctx.translate(-this.cx, -this.cy);\r\n\t\t\t}\r\n\t\t\tthis.applyToPoint = function(p) {\r\n\t\t\t\tvar a = this.angle.toRadians();\r\n\t\t\t\tp.applyTransform([1, 0, 0, 1, this.p.x || 0.0, this.p.y || 0.0]);\r\n\t\t\t\tp.applyTransform([Math.cos(a), Math.sin(a), -Math.sin(a), Math.cos(a), 0, 0]);\r\n\t\t\t\tp.applyTransform([1, 0, 0, 1, -this.p.x || 0.0, -this.p.y || 0.0]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.Type.scale = function(s) {\r\n\t\t\tthis.p = svg.CreatePoint(s);\r\n\t\t\tthis.apply = function(ctx) {\r\n\t\t\t\tctx.scale(this.p.x || 1.0, this.p.y || this.p.x || 1.0);\r\n\t\t\t}\r\n\t\t\tthis.unapply = function(ctx) {\r\n\t\t\t\tctx.scale(1.0 / this.p.x || 1.0, 1.0 / this.p.y || this.p.x || 1.0);\r\n\t\t\t}\r\n\t\t\tthis.applyToPoint = function(p) {\r\n\t\t\t\tp.applyTransform([this.p.x || 0.0, 0, 0, this.p.y || 0.0, 0, 0]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.Type.matrix = function(s) {\r\n\t\t\tthis.m = svg.ToNumberArray(s);\r\n\t\t\tthis.apply = function(ctx) {\r\n\t\t\t\tctx.transform(this.m[0], this.m[1], this.m[2], this.m[3], this.m[4], this.m[5]);\r\n\t\t\t}\r\n\t\t\tthis.unapply = function(ctx) {\r\n\t\t\t\tvar a = this.m[0];\r\n\t\t\t\tvar b = this.m[2];\r\n\t\t\t\tvar c = this.m[4];\r\n\t\t\t\tvar d = this.m[1];\r\n\t\t\t\tvar e = this.m[3];\r\n\t\t\t\tvar f = this.m[5];\r\n\t\t\t\tvar g = 0.0;\r\n\t\t\t\tvar h = 0.0;\r\n\t\t\t\tvar i = 1.0;\r\n\t\t\t\tvar det = 1 / (a*(e*i-f*h)-b*(d*i-f*g)+c*(d*h-e*g));\r\n\t\t\t\tctx.transform(\r\n\t\t\t\t\tdet*(e*i-f*h),\r\n\t\t\t\t\tdet*(f*g-d*i),\r\n\t\t\t\t\tdet*(c*h-b*i),\r\n\t\t\t\t\tdet*(a*i-c*g),\r\n\t\t\t\t\tdet*(b*f-c*e),\r\n\t\t\t\t\tdet*(c*d-a*f)\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\tthis.applyToPoint = function(p) {\r\n\t\t\t\tp.applyTransform(this.m);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.Type.SkewBase = function(s) {\r\n\t\t\tthis.base = that.Type.matrix;\r\n\t\t\tthis.base(s);\r\n\t\t\tthis.angle = new svg.Property('angle', s);\r\n\t\t}\r\n\t\tthis.Type.SkewBase.prototype = new this.Type.matrix;\r\n\r\n\t\tthis.Type.skewX = function(s) {\r\n\t\t\tthis.base = that.Type.SkewBase;\r\n\t\t\tthis.base(s);\r\n\t\t\tthis.m = [1, 0, Math.tan(this.angle.toRadians()), 1, 0, 0];\r\n\t\t}\r\n\t\tthis.Type.skewX.prototype = new this.Type.SkewBase;\r\n\r\n\t\tthis.Type.skewY = function(s) {\r\n\t\t\tthis.base = that.Type.SkewBase;\r\n\t\t\tthis.base(s);\r\n\t\t\tthis.m = [1, Math.tan(this.angle.toRadians()), 0, 1, 0, 0];\r\n\t\t}\r\n\t\tthis.Type.skewY.prototype = new this.Type.SkewBase;\r\n\r\n\t\tthis.transforms = [];\r\n\r\n\t\tthis.apply = function(ctx) {\r\n\t\t\tfor (var i=0; i=0; i--) {\r\n\t\t\t\tthis.transforms[i].unapply(ctx);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.applyToPoint = function(p) {\r\n\t\t\tfor (var i=0; i existingSpecificity) {\r\n\t\t\t\t\t\t\t\tthis.styles[name] = styles[name];\r\n\t\t\t\t\t\t\t\tthis.stylesSpecificity[name] = specificity;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tif (node != null && node.nodeType == 1) { //ELEMENT_NODE\r\n\t\t\t// add attributes\r\n\t\t\tfor (var i=0; i 0) {\r\n\t\t\t\tmarkers.push([this.points[this.points.length-1], markers[markers.length-1][1]]);\r\n\t\t\t}\r\n\t\t\treturn markers;\r\n\t\t}\r\n\t}\r\n\tsvg.Element.polyline.prototype = new svg.Element.PathElementBase;\r\n\r\n\t// polygon element\r\n\tsvg.Element.polygon = function(node) {\r\n\t\tthis.base = svg.Element.polyline;\r\n\t\tthis.base(node);\r\n\r\n\t\tthis.basePath = this.path;\r\n\t\tthis.path = function(ctx) {\r\n\t\t\tvar bb = this.basePath(ctx);\r\n\t\t\tif (ctx != null) {\r\n\t\t\t\tctx.lineTo(this.points[0].x, this.points[0].y);\r\n\t\t\t\tctx.closePath();\r\n\t\t\t}\r\n\t\t\treturn bb;\r\n\t\t}\r\n\t}\r\n\tsvg.Element.polygon.prototype = new svg.Element.polyline;\r\n\r\n\t// path element\r\n\tsvg.Element.path = function(node) {\r\n\t\tthis.base = svg.Element.PathElementBase;\r\n\t\tthis.base(node);\r\n\r\n\t\tvar d = this.attribute('d').value;\r\n\t\t// TODO: convert to real lexer based on http://www.w3.org/TR/SVG11/paths.html#PathDataBNF\r\n\t\td = d.replace(/,/gm,' '); // get rid of all commas\r\n\t\t// As the end of a match can also be the start of the next match, we need to run this replace twice.\r\n\t\tfor(var i=0; i<2; i++)\r\n\t\t\td = d.replace(/([MmZzLlHhVvCcSsQqTtAa])([^\\s])/gm,'$1 $2'); // suffix commands with spaces\r\n\t\td = d.replace(/([^\\s])([MmZzLlHhVvCcSsQqTtAa])/gm,'$1 $2'); // prefix commands with spaces\r\n\t\td = d.replace(/([0-9])([+\\-])/gm,'$1 $2'); // separate digits on +- signs\r\n\t\t// Again, we need to run this twice to find all occurances\r\n\t\tfor(var i=0; i<2; i++)\r\n\t\t\td = d.replace(/(\\.[0-9]*)(\\.)/gm,'$1 $2'); // separate digits when they start with a comma\r\n\t\td = d.replace(/([Aa](\\s+[0-9]+){3})\\s+([01])\\s*([01])/gm,'$1 $3 $4 '); // shorthand elliptical arc path syntax\r\n\t\td = svg.compressSpaces(d); // compress multiple spaces\r\n\t\td = svg.trim(d);\r\n\t\tthis.PathParser = new (function(d) {\r\n\t\t\tthis.tokens = d.split(' ');\r\n\r\n\t\t\tthis.reset = function() {\r\n\t\t\t\tthis.i = -1;\r\n\t\t\t\tthis.command = '';\r\n\t\t\t\tthis.previousCommand = '';\r\n\t\t\t\tthis.start = new svg.Point(0, 0);\r\n\t\t\t\tthis.control = new svg.Point(0, 0);\r\n\t\t\t\tthis.current = new svg.Point(0, 0);\r\n\t\t\t\tthis.points = [];\r\n\t\t\t\tthis.angles = [];\r\n\t\t\t}\r\n\r\n\t\t\tthis.isEnd = function() {\r\n\t\t\t\treturn this.i >= this.tokens.length - 1;\r\n\t\t\t}\r\n\r\n\t\t\tthis.isCommandOrEnd = function() {\r\n\t\t\t\tif (this.isEnd()) return true;\r\n\t\t\t\treturn this.tokens[this.i + 1].match(/^[A-Za-z]$/) != null;\r\n\t\t\t}\r\n\r\n\t\t\tthis.isRelativeCommand = function() {\r\n\t\t\t\tswitch(this.command)\r\n\t\t\t\t{\r\n\t\t\t\t\tcase 'm':\r\n\t\t\t\t\tcase 'l':\r\n\t\t\t\t\tcase 'h':\r\n\t\t\t\t\tcase 'v':\r\n\t\t\t\t\tcase 'c':\r\n\t\t\t\t\tcase 's':\r\n\t\t\t\t\tcase 'q':\r\n\t\t\t\t\tcase 't':\r\n\t\t\t\t\tcase 'a':\r\n\t\t\t\t\tcase 'z':\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tthis.getToken = function() {\r\n\t\t\t\tthis.i++;\r\n\t\t\t\treturn this.tokens[this.i];\r\n\t\t\t}\r\n\r\n\t\t\tthis.getScalar = function() {\r\n\t\t\t\treturn parseFloat(this.getToken());\r\n\t\t\t}\r\n\r\n\t\t\tthis.nextCommand = function() {\r\n\t\t\t\tthis.previousCommand = this.command;\r\n\t\t\t\tthis.command = this.getToken();\r\n\t\t\t}\r\n\r\n\t\t\tthis.getPoint = function() {\r\n\t\t\t\tvar p = new svg.Point(this.getScalar(), this.getScalar());\r\n\t\t\t\treturn this.makeAbsolute(p);\r\n\t\t\t}\r\n\r\n\t\t\tthis.getAsControlPoint = function() {\r\n\t\t\t\tvar p = this.getPoint();\r\n\t\t\t\tthis.control = p;\r\n\t\t\t\treturn p;\r\n\t\t\t}\r\n\r\n\t\t\tthis.getAsCurrentPoint = function() {\r\n\t\t\t\tvar p = this.getPoint();\r\n\t\t\t\tthis.current = p;\r\n\t\t\t\treturn p;\r\n\t\t\t}\r\n\r\n\t\t\tthis.getReflectedControlPoint = function() {\r\n\t\t\t\tif (this.previousCommand.toLowerCase() != 'c' &&\r\n\t\t\t\t this.previousCommand.toLowerCase() != 's' &&\r\n\t\t\t\t\tthis.previousCommand.toLowerCase() != 'q' &&\r\n\t\t\t\t\tthis.previousCommand.toLowerCase() != 't' ){\r\n\t\t\t\t\treturn this.current;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// reflect point\r\n\t\t\t\tvar p = new svg.Point(2 * this.current.x - this.control.x, 2 * this.current.y - this.control.y);\r\n\t\t\t\treturn p;\r\n\t\t\t}\r\n\r\n\t\t\tthis.makeAbsolute = function(p) {\r\n\t\t\t\tif (this.isRelativeCommand()) {\r\n\t\t\t\t\tp.x += this.current.x;\r\n\t\t\t\t\tp.y += this.current.y;\r\n\t\t\t\t}\r\n\t\t\t\treturn p;\r\n\t\t\t}\r\n\r\n\t\t\tthis.addMarker = function(p, from, priorTo) {\r\n\t\t\t\t// if the last angle isn't filled in because we didn't have this point yet ...\r\n\t\t\t\tif (priorTo != null && this.angles.length > 0 && this.angles[this.angles.length-1] == null) {\r\n\t\t\t\t\tthis.angles[this.angles.length-1] = this.points[this.points.length-1].angleTo(priorTo);\r\n\t\t\t\t}\r\n\t\t\t\tthis.addMarkerAngle(p, from == null ? null : from.angleTo(p));\r\n\t\t\t}\r\n\r\n\t\t\tthis.addMarkerAngle = function(p, a) {\r\n\t\t\t\tthis.points.push(p);\r\n\t\t\t\tthis.angles.push(a);\r\n\t\t\t}\r\n\r\n\t\t\tthis.getMarkerPoints = function() { return this.points; }\r\n\t\t\tthis.getMarkerAngles = function() {\r\n\t\t\t\tfor (var i=0; i 1) {\r\n\t\t\t\t\t\t\trx *= Math.sqrt(l);\r\n\t\t\t\t\t\t\try *= Math.sqrt(l);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// cx', cy'\r\n\t\t\t\t\t\tvar s = (largeArcFlag == sweepFlag ? -1 : 1) * Math.sqrt(\r\n\t\t\t\t\t\t\t((Math.pow(rx,2)*Math.pow(ry,2))-(Math.pow(rx,2)*Math.pow(currp.y,2))-(Math.pow(ry,2)*Math.pow(currp.x,2))) /\r\n\t\t\t\t\t\t\t(Math.pow(rx,2)*Math.pow(currp.y,2)+Math.pow(ry,2)*Math.pow(currp.x,2))\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tif (isNaN(s)) s = 0;\r\n\t\t\t\t\t\tvar cpp = new svg.Point(s * rx * currp.y / ry, s * -ry * currp.x / rx);\r\n\t\t\t\t\t\t// cx, cy\r\n\t\t\t\t\t\tvar centp = new svg.Point(\r\n\t\t\t\t\t\t\t(curr.x + cp.x) / 2.0 + Math.cos(xAxisRotation) * cpp.x - Math.sin(xAxisRotation) * cpp.y,\r\n\t\t\t\t\t\t\t(curr.y + cp.y) / 2.0 + Math.sin(xAxisRotation) * cpp.x + Math.cos(xAxisRotation) * cpp.y\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\t// vector magnitude\r\n\t\t\t\t\t\tvar m = function(v) { return Math.sqrt(Math.pow(v[0],2) + Math.pow(v[1],2)); }\r\n\t\t\t\t\t\t// ratio between two vectors\r\n\t\t\t\t\t\tvar r = function(u, v) { return (u[0]*v[0]+u[1]*v[1]) / (m(u)*m(v)) }\r\n\t\t\t\t\t\t// angle between two vectors\r\n\t\t\t\t\t\tvar a = function(u, v) { return (u[0]*v[1] < u[1]*v[0] ? -1 : 1) * Math.acos(r(u,v)); }\r\n\t\t\t\t\t\t// initial angle\r\n\t\t\t\t\t\tvar a1 = a([1,0], [(currp.x-cpp.x)/rx,(currp.y-cpp.y)/ry]);\r\n\t\t\t\t\t\t// angle delta\r\n\t\t\t\t\t\tvar u = [(currp.x-cpp.x)/rx,(currp.y-cpp.y)/ry];\r\n\t\t\t\t\t\tvar v = [(-currp.x-cpp.x)/rx,(-currp.y-cpp.y)/ry];\r\n\t\t\t\t\t\tvar ad = a(u, v);\r\n\t\t\t\t\t\tif (r(u,v) <= -1) ad = Math.PI;\r\n\t\t\t\t\t\tif (r(u,v) >= 1) ad = 0;\r\n\r\n\t\t\t\t\t\t// for markers\r\n\t\t\t\t\t\tvar dir = 1 - sweepFlag ? 1.0 : -1.0;\r\n\t\t\t\t\t\tvar ah = a1 + dir * (ad / 2.0);\r\n\t\t\t\t\t\tvar halfWay = new svg.Point(\r\n\t\t\t\t\t\t\tcentp.x + rx * Math.cos(ah),\r\n\t\t\t\t\t\t\tcentp.y + ry * Math.sin(ah)\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tpp.addMarkerAngle(halfWay, ah - dir * Math.PI / 2);\r\n\t\t\t\t\t\tpp.addMarkerAngle(cp, ah - dir * Math.PI);\r\n\r\n\t\t\t\t\t\tbb.addPoint(cp.x, cp.y); // TODO: this is too naive, make it better\r\n\t\t\t\t\t\tif (ctx != null) {\r\n\t\t\t\t\t\t\tvar r = rx > ry ? rx : ry;\r\n\t\t\t\t\t\t\tvar sx = rx > ry ? 1 : rx / ry;\r\n\t\t\t\t\t\t\tvar sy = rx > ry ? ry / rx : 1;\r\n\r\n\t\t\t\t\t\t\tctx.translate(centp.x, centp.y);\r\n\t\t\t\t\t\t\tctx.rotate(xAxisRotation);\r\n\t\t\t\t\t\t\tctx.scale(sx, sy);\r\n\t\t\t\t\t\t\tctx.arc(0, 0, r, a1, a1 + ad, 1 - sweepFlag);\r\n\t\t\t\t\t\t\tctx.scale(1/sx, 1/sy);\r\n\t\t\t\t\t\t\tctx.rotate(-xAxisRotation);\r\n\t\t\t\t\t\t\tctx.translate(-centp.x, -centp.y);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'Z':\r\n\t\t\t\tcase 'z':\r\n\t\t\t\t\tif (ctx != null) ctx.closePath();\r\n\t\t\t\t\tpp.current = pp.start;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn bb;\r\n\t\t}\r\n\r\n\t\tthis.getMarkers = function() {\r\n\t\t\tvar points = this.PathParser.getMarkerPoints();\r\n\t\t\tvar angles = this.PathParser.getMarkerAngles();\r\n\r\n\t\t\tvar markers = [];\r\n\t\t\tfor (var i=0; i 1) this.offset = 1;\r\n\r\n\t\tvar stopColor = this.style('stop-color', true);\r\n\t\tif (stopColor.value == '') stopColor.value = '#000';\r\n\t\tif (this.style('stop-opacity').hasValue()) stopColor = stopColor.addOpacity(this.style('stop-opacity'));\r\n\t\tthis.color = stopColor.value;\r\n\t}\r\n\tsvg.Element.stop.prototype = new svg.Element.ElementBase;\r\n\r\n\t// animation base element\r\n\tsvg.Element.AnimateBase = function(node) {\r\n\t\tthis.base = svg.Element.ElementBase;\r\n\t\tthis.base(node);\r\n\r\n\t\tsvg.Animations.push(this);\r\n\r\n\t\tthis.duration = 0.0;\r\n\t\tthis.begin = this.attribute('begin').toMilliseconds();\r\n\t\tthis.maxDuration = this.begin + this.attribute('dur').toMilliseconds();\r\n\r\n\t\tthis.getProperty = function() {\r\n\t\t\tvar attributeType = this.attribute('attributeType').value;\r\n\t\t\tvar attributeName = this.attribute('attributeName').value;\r\n\r\n\t\t\tif (attributeType == 'CSS') {\r\n\t\t\t\treturn this.parent.style(attributeName, true);\r\n\t\t\t}\r\n\t\t\treturn this.parent.attribute(attributeName, true);\r\n\t\t};\r\n\r\n\t\tthis.initialValue = null;\r\n\t\tthis.initialUnits = '';\r\n\t\tthis.removed = false;\r\n\r\n\t\tthis.calcValue = function() {\r\n\t\t\t// OVERRIDE ME!\r\n\t\t\treturn '';\r\n\t\t}\r\n\r\n\t\tthis.update = function(delta) {\r\n\t\t\t// set initial value\r\n\t\t\tif (this.initialValue == null) {\r\n\t\t\t\tthis.initialValue = this.getProperty().value;\r\n\t\t\t\tthis.initialUnits = this.getProperty().getUnits();\r\n\t\t\t}\r\n\r\n\t\t\t// if we're past the end time\r\n\t\t\tif (this.duration > this.maxDuration) {\r\n\t\t\t\t// loop for indefinitely repeating animations\r\n\t\t\t\tif (this.attribute('repeatCount').value == 'indefinite'\r\n\t\t\t\t || this.attribute('repeatDur').value == 'indefinite') {\r\n\t\t\t\t\tthis.duration = 0.0\r\n\t\t\t\t}\r\n\t\t\t\telse if (this.attribute('fill').valueOrDefault('remove') == 'freeze' && !this.frozen) {\r\n\t\t\t\t\tthis.frozen = true;\r\n\t\t\t\t\tthis.parent.animationFrozen = true;\r\n\t\t\t\t\tthis.parent.animationFrozenValue = this.getProperty().value;\r\n\t\t\t\t}\r\n\t\t\t\telse if (this.attribute('fill').valueOrDefault('remove') == 'remove' && !this.removed) {\r\n\t\t\t\t\tthis.removed = true;\r\n\t\t\t\t\tthis.getProperty().value = this.parent.animationFrozen ? this.parent.animationFrozenValue : this.initialValue;\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tthis.duration = this.duration + delta;\r\n\r\n\t\t\t// if we're past the begin time\r\n\t\t\tvar updated = false;\r\n\t\t\tif (this.begin < this.duration) {\r\n\t\t\t\tvar newValue = this.calcValue(); // tween\r\n\r\n\t\t\t\tif (this.attribute('type').hasValue()) {\r\n\t\t\t\t\t// for transform, etc.\r\n\t\t\t\t\tvar type = this.attribute('type').value;\r\n\t\t\t\t\tnewValue = type + '(' + newValue + ')';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.getProperty().value = newValue;\r\n\t\t\t\tupdated = true;\r\n\t\t\t}\r\n\r\n\t\t\treturn updated;\r\n\t\t}\r\n\r\n\t\tthis.from = this.attribute('from');\r\n\t\tthis.to = this.attribute('to');\r\n\t\tthis.values = this.attribute('values');\r\n\t\tif (this.values.hasValue()) this.values.value = this.values.value.split(';');\r\n\r\n\t\t// fraction of duration we've covered\r\n\t\tthis.progress = function() {\r\n\t\t\tvar ret = { progress: (this.duration - this.begin) / (this.maxDuration - this.begin) };\r\n\t\t\tif (this.values.hasValue()) {\r\n\t\t\t\tvar p = ret.progress * (this.values.value.length - 1);\r\n\t\t\t\tvar lb = Math.floor(p), ub = Math.ceil(p);\r\n\t\t\t\tret.from = new svg.Property('from', parseFloat(this.values.value[lb]));\r\n\t\t\t\tret.to = new svg.Property('to', parseFloat(this.values.value[ub]));\r\n\t\t\t\tret.progress = (p - lb) / (ub - lb);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tret.from = this.from;\r\n\t\t\t\tret.to = this.to;\r\n\t\t\t}\r\n\t\t\treturn ret;\r\n\t\t}\r\n\t}\r\n\tsvg.Element.AnimateBase.prototype = new svg.Element.ElementBase;\r\n\r\n\t// animate element\r\n\tsvg.Element.animate = function(node) {\r\n\t\tthis.base = svg.Element.AnimateBase;\r\n\t\tthis.base(node);\r\n\r\n\t\tthis.calcValue = function() {\r\n\t\t\tvar p = this.progress();\r\n\r\n\t\t\t// tween value linearly\r\n\t\t\tvar newValue = p.from.numValue() + (p.to.numValue() - p.from.numValue()) * p.progress;\r\n\t\t\treturn newValue + this.initialUnits;\r\n\t\t};\r\n\t}\r\n\tsvg.Element.animate.prototype = new svg.Element.AnimateBase;\r\n\r\n\t// animate color element\r\n\tsvg.Element.animateColor = function(node) {\r\n\t\tthis.base = svg.Element.AnimateBase;\r\n\t\tthis.base(node);\r\n\r\n\t\tthis.calcValue = function() {\r\n\t\t\tvar p = this.progress();\r\n\t\t\tvar from = new RGBColor(p.from.value);\r\n\t\t\tvar to = new RGBColor(p.to.value);\r\n\r\n\t\t\tif (from.ok && to.ok) {\r\n\t\t\t\t// tween color linearly\r\n\t\t\t\tvar r = from.r + (to.r - from.r) * p.progress;\r\n\t\t\t\tvar g = from.g + (to.g - from.g) * p.progress;\r\n\t\t\t\tvar b = from.b + (to.b - from.b) * p.progress;\r\n\t\t\t\treturn 'rgb('+parseInt(r,10)+','+parseInt(g,10)+','+parseInt(b,10)+')';\r\n\t\t\t}\r\n\t\t\treturn this.attribute('from').value;\r\n\t\t};\r\n\t}\r\n\tsvg.Element.animateColor.prototype = new svg.Element.AnimateBase;\r\n\r\n\t// animate transform element\r\n\tsvg.Element.animateTransform = function(node) {\r\n\t\tthis.base = svg.Element.AnimateBase;\r\n\t\tthis.base(node);\r\n\r\n\t\tthis.calcValue = function() {\r\n\t\t\tvar p = this.progress();\r\n\r\n\t\t\t// tween value linearly\r\n\t\t\tvar from = svg.ToNumberArray(p.from.value);\r\n\t\t\tvar to = svg.ToNumberArray(p.to.value);\r\n\t\t\tvar newValue = '';\r\n\t\t\tfor (var i=0; i startI && child.attribute('x').hasValue()) break; // new group\r\n\t\t\t\t\twidth += child.measureTextRecursive(ctx);\r\n\t\t\t\t}\r\n\t\t\t\treturn -1 * (textAnchor == 'end' ? width : width / 2.0);\r\n\t\t\t}\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\tthis.renderChild = function(ctx, textParent, parent, i) {\r\n\t\t\tvar child = parent.children[i];\r\n\t\t\tif (child.attribute('x').hasValue()) {\r\n\t\t\t\tchild.x = child.attribute('x').toPixels('x') + textParent.getAnchorDelta(ctx, parent, i);\r\n\t\t\t\tif (child.attribute('dx').hasValue()) child.x += child.attribute('dx').toPixels('x');\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (child.attribute('dx').hasValue()) textParent.x += child.attribute('dx').toPixels('x');\r\n\t\t\t\tchild.x = textParent.x;\r\n\t\t\t}\r\n\t\t\ttextParent.x = child.x + child.measureText(ctx);\r\n\r\n\t\t\tif (child.attribute('y').hasValue()) {\r\n\t\t\t\tchild.y = child.attribute('y').toPixels('y');\r\n\t\t\t\tif (child.attribute('dy').hasValue()) child.y += child.attribute('dy').toPixels('y');\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (child.attribute('dy').hasValue()) textParent.y += child.attribute('dy').toPixels('y');\r\n\t\t\t\tchild.y = textParent.y;\r\n\t\t\t}\r\n\t\t\ttextParent.y = child.y;\r\n\r\n\t\t\tchild.render(ctx);\r\n\r\n\t\t\tfor (var i=0; i0 && text[i-1]!=' ' && i0 && text[i-1]!=' ' && (i == text.length-1 || text[i+1]==' ')) arabicForm = 'initial';\r\n\t\t\t\tif (typeof font.glyphs[c] != 'undefined') {\r\n\t\t\t\t\tglyph = font.glyphs[c][arabicForm];\r\n\t\t\t\t\tif (glyph == null && font.glyphs[c].type == 'glyph') glyph = font.glyphs[c];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tglyph = font.glyphs[c];\r\n\t\t\t}\r\n\t\t\tif (glyph == null) glyph = font.missingGlyph;\r\n\t\t\treturn glyph;\r\n\t\t}\r\n\r\n\t\tthis.renderChildren = function(ctx) {\r\n\t\t\tvar customFont = this.parent.style('font-family').getDefinition();\r\n\t\t\tif (customFont != null) {\r\n\t\t\t\tvar fontSize = this.parent.style('font-size').numValueOrDefault(svg.Font.Parse(svg.ctx.font).fontSize);\r\n\t\t\t\tvar fontStyle = this.parent.style('font-style').valueOrDefault(svg.Font.Parse(svg.ctx.font).fontStyle);\r\n\t\t\t\tvar text = this.getText();\r\n\t\t\t\tif (customFont.isRTL) text = text.split(\"\").reverse().join(\"\");\r\n\r\n\t\t\t\tvar dx = svg.ToNumberArray(this.parent.attribute('dx').value);\r\n\t\t\t\tfor (var i=0; i 0) { return ''; }\r\n\t\t\treturn this.text;\r\n\t\t}\r\n\t}\r\n\tsvg.Element.tspan.prototype = new svg.Element.TextElementBase;\r\n\r\n\t// tref\r\n\tsvg.Element.tref = function(node) {\r\n\t\tthis.base = svg.Element.TextElementBase;\r\n\t\tthis.base(node);\r\n\r\n\t\tthis.getText = function() {\r\n\t\t\tvar element = this.getHrefAttribute().getDefinition();\r\n\t\t\tif (element != null) return element.children[0].getText();\r\n\t\t}\r\n\t}\r\n\tsvg.Element.tref.prototype = new svg.Element.TextElementBase;\r\n\r\n\t// a element\r\n\tsvg.Element.a = function(node) {\r\n\t\tthis.base = svg.Element.TextElementBase;\r\n\t\tthis.base(node);\r\n\r\n\t\tthis.hasText = node.childNodes.length > 0;\r\n\t\tfor (var i=0; i 0) {\r\n\t\t\t\t// render as temporary group\r\n\t\t\t\tvar g = new svg.Element.g();\r\n\t\t\t\tg.children = this.children;\r\n\t\t\t\tg.parent = this;\r\n\t\t\t\tg.render(ctx);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.onclick = function() {\r\n\t\t\twindow.open(this.getHrefAttribute().value);\r\n\t\t}\r\n\r\n\t\tthis.onmousemove = function() {\r\n\t\t\tsvg.ctx.canvas.style.cursor = 'pointer';\r\n\t\t}\r\n\t}\r\n\tsvg.Element.a.prototype = new svg.Element.TextElementBase;\r\n\r\n\t// image element\r\n\tsvg.Element.image = function(node) {\r\n\t\tthis.base = svg.Element.RenderedElementBase;\r\n\t\tthis.base(node);\r\n\r\n\t\tvar href = this.getHrefAttribute().value;\r\n\t\tif (href == '') { return; }\r\n\t\tvar isSvg = href.match(/\\.svg$/)\r\n\r\n\t\tsvg.Images.push(this);\r\n\t\tthis.loaded = false;\r\n\t\tif (!isSvg) {\r\n\t\t\tthis.img = document.createElement('img');\r\n\t\t\tif (svg.opts['useCORS'] == true) { this.img.crossOrigin = 'Anonymous'; }\r\n\t\t\tvar self = this;\r\n\t\t\tthis.img.onload = function() { self.loaded = true; }\r\n\t\t\tthis.img.onerror = function() { svg.log('ERROR: image \"' + href + '\" not found'); self.loaded = true; }\r\n\t\t\tthis.img.src = href;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.img = svg.ajax(href);\r\n\t\t\tthis.loaded = true;\r\n\t\t}\r\n\r\n\t\tthis.renderChildren = function(ctx) {\r\n\t\t\tvar x = this.attribute('x').toPixels('x');\r\n\t\t\tvar y = this.attribute('y').toPixels('y');\r\n\r\n\t\t\tvar width = this.attribute('width').toPixels('x');\r\n\t\t\tvar height = this.attribute('height').toPixels('y');\r\n\t\t\tif (width == 0 || height == 0) return;\r\n\r\n\t\t\tctx.save();\r\n\t\t\tif (isSvg) {\r\n\t\t\t\tctx.drawSvg(this.img, x, y, width, height);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tctx.translate(x, y);\r\n\t\t\t\tsvg.AspectRatio(ctx,\r\n\t\t\t\t\t\t\t\tthis.attribute('preserveAspectRatio').value,\r\n\t\t\t\t\t\t\t\twidth,\r\n\t\t\t\t\t\t\t\tthis.img.width,\r\n\t\t\t\t\t\t\t\theight,\r\n\t\t\t\t\t\t\t\tthis.img.height,\r\n\t\t\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t\t\t0);\r\n\t\t\t\tctx.drawImage(this.img, 0, 0);\r\n\t\t\t}\r\n\t\t\tctx.restore();\r\n\t\t}\r\n\r\n\t\tthis.getBoundingBox = function() {\r\n\t\t\tvar x = this.attribute('x').toPixels('x');\r\n\t\t\tvar y = this.attribute('y').toPixels('y');\r\n\t\t\tvar width = this.attribute('width').toPixels('x');\r\n\t\t\tvar height = this.attribute('height').toPixels('y');\r\n\t\t\treturn new svg.BoundingBox(x, y, x + width, y + height);\r\n\t\t}\r\n\t}\r\n\tsvg.Element.image.prototype = new svg.Element.RenderedElementBase;\r\n\r\n\t// group element\r\n\tsvg.Element.g = function(node) {\r\n\t\tthis.base = svg.Element.RenderedElementBase;\r\n\t\tthis.base(node);\r\n\r\n\t\tthis.getBoundingBox = function() {\r\n\t\t\tvar bb = new svg.BoundingBox();\r\n\t\t\tfor (var i=0; i 0) {\r\n\t\t\t\t\t\t\t\t\tvar urlStart = srcs[s].indexOf('url');\r\n\t\t\t\t\t\t\t\t\tvar urlEnd = srcs[s].indexOf(')', urlStart);\r\n\t\t\t\t\t\t\t\t\tvar url = srcs[s].substr(urlStart + 5, urlEnd - urlStart - 6);\r\n\t\t\t\t\t\t\t\t\tvar doc = svg.parseXml(svg.ajax(url));\r\n\t\t\t\t\t\t\t\t\tvar fonts = doc.getElementsByTagName('font');\r\n\t\t\t\t\t\t\t\t\tfor (var f=0; f label > input,\\n.context-menu-item > label > textarea {\\n -webkit-user-select: text;\\n -moz-user-select: text;\\n -ms-user-select: text;\\n user-select: text;\\n}\\n\\n.context-menu-item.hover {\\n cursor: pointer;\\n background-color: #39F;\\n}\\n\\n.context-menu-item.disabled {\\n color: #666;\\n}\\n\\n.context-menu-input.hover,\\n.context-menu-item.disabled.hover {\\n cursor: default;\\n background-color: #EEE;\\n}\\n\\n.context-menu-submenu:after {\\n content: \\\">\\\";\\n color: #666;\\n position: absolute;\\n top: 0;\\n right: 3px;\\n z-index: 1;\\n}\\n\\n/* icons\\n #protip:\\n In case you want to use sprites for icons (which I would suggest you do) have a look at\\n http://css-tricks.com/13224-pseudo-spriting/ to get an idea of how to implement\\n .context-menu-item.icon:before {}\\n */\\n.context-menu-item.icon { min-height: 18px; background-repeat: no-repeat; background-position: 4px 2px; }\\n\\n/* vertically align inside labels */\\n.context-menu-input > label > * { vertical-align: top; }\\n\\n/* position checkboxes and radios as icons */\\n.context-menu-input > label > input[type=\\\"checkbox\\\"],\\n.context-menu-input > label > input[type=\\\"radio\\\"] {\\n margin-left: -17px;\\n}\\n.context-menu-input > label > span {\\n margin-left: 5px;\\n}\\n\\n.context-menu-input > label,\\n.context-menu-input > label > input[type=\\\"text\\\"],\\n.context-menu-input > label > textarea,\\n.context-menu-input > label > select {\\n display: block;\\n width: 100%;\\n\\n -webkit-box-sizing: border-box;\\n -moz-box-sizing: border-box;\\n -ms-box-sizing: border-box;\\n -o-box-sizing: border-box;\\n box-sizing: border-box;\\n}\\n\\n.context-menu-input > label > textarea {\\n height: 100px;\\n}\\n.context-menu-item > .context-menu-list {\\n display: none;\\n /* re-positioned by js */\\n right: -5px;\\n top: 5px;\\n}\\n\\n.context-menu-item.hover > .context-menu-list {\\n display: block;\\n}\\n\\n.context-menu-accesskey {\\n text-decoration: underline;\\n}\\n\", \"\"]);\n\n// exports\n\n\n/***/ }),\n\n/***/ \"./node_modules/css-loader/lib/css-base.js\":\n/*!*************************************************!*\\\n !*** ./node_modules/css-loader/lib/css-base.js ***!\n \\*************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/raw-loader/index.js!./src/lib/Class.exec.js\":\n/*!*********************************************************!*\\\n !*** ./node_modules/raw-loader!./src/lib/Class.exec.js ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"/* \\n * Simple JavaScript Inheritance \\n * By John Resig http://ejohn.org/ \\n * MIT Licensed. \\n * \\n ****************************************************** \\n * Example Usage \\n ****************************************************** \\n var Person = Class.extend({ \\n init: function(isDancing){ \\n this.dancing = isDancing; \\n }, \\n dance: function(){ \\n return this.dancing; \\n } \\n}); \\n\\nvar Ninja = Person.extend({ \\n init: function(){ \\n this._super( false ); \\n }, \\n dance: function(){ \\n // Call the inherited version of dance() \\n return this._super(); \\n }, \\n swingSword: function(){ \\n return true; \\n } \\n}); \\n\\nvar p = new Person(true); \\np.dance(); // => true \\n\\nvar n = new Ninja(); \\nn.dance(); // => false \\nn.swingSword(); // => true \\n\\n// Should all be true \\np instanceof Person && p instanceof Class && \\nn instanceof Ninja && n instanceof Person && n instanceof Class \\n\\n ****************************************************** \\n */ \\n \\n// Inspired by base2 and Prototype \\n(function(){ \\n var fnTest = /xyz/.test(function(){xyz;}) ? /\\\\b_super\\\\b/ : /.*/; \\n\\n // The base Class implementation (does nothing) \\n this.Class = function(){}; \\n \\n\\n // Create a new Class that inherits from this class \\n Class.extend = function(prop) { \\n var _super = this.prototype; \\n \\n // Instantiate a base class (but only create the instance, \\n // don't run the init constructor) \\n initializing = true; \\n var prototype = new this(); \\n initializing = false; \\n \\n \\n // Copy the properties over onto the new prototype \\n for (var name in prop) { \\n // Check if we're overwriting an existing function \\n prototype[name] = typeof prop[name] == \\\"function\\\" && \\n typeof _super[name] == \\\"function\\\" && fnTest.test(prop[name]) ? \\n (function(name, fn){ \\n return function() { \\n var tmp = this._super; \\n \\n // Add a new ._super() method that is the same method \\n // but on the super-class \\n this._super = _super[name]; \\n \\n // The method only need to be bound temporarily, so we \\n // remove it when we're done executing \\n var ret = fn.apply(this, arguments); \\n this._super = tmp; \\n \\n return ret; \\n }; \\n })(name, prop[name]) : \\n prop[name]; \\n } \\n \\n // The dummy class constructor \\n function Class() { \\n // All construction is actually done in the init method \\n if ( !initializing && this.init ) \\n this.init.apply(this, arguments); \\n } \\n \\n // Populate our constructed prototype object \\n Class.prototype = prototype; \\n \\n // Enforce the constructor to be what we expect \\n Class.prototype.constructor = Class; \\n\\n // And make this class extendable \\n Class.extend = arguments.callee; \\n \\n // EXTENSION BY Draw2D.org to inject methods into an existing class to provide plugins or \\n // bugfixes for further releases \\n // \\n Class.inject = function (prop) { \\n var proto = this.prototype; \\n var parent = {}; \\n for (var name in prop) { \\n if (typeof (prop[name]) == \\\"function\\\" && typeof (proto[name]) == \\\"function\\\" && fnTest.test(prop[name])) { \\n parent[name] = proto[name]; \\n proto[name] = (function (name, fn) { \\n return function () { \\n var tmp = this.parent; \\n this.parent = parent[name]; \\n var ret = fn.apply(this, arguments); \\n this.parent = tmp; \\n return ret; \\n }; \\n })(name, prop[name]); \\n } else { \\n proto[name] = prop[name]; \\n } \\n } \\n }; \\n \\n return Class; \\n }; \\n})();\\n \\n\"\n\n/***/ }),\n\n/***/ \"./node_modules/raw-loader/index.js!./src/lib/pathfinding.exec.js\":\n/*!***************************************************************!*\\\n !*** ./node_modules/raw-loader!./src/lib/pathfinding.exec.js ***!\n \\***************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = \"var PF=function(){var e=function(t,n){var r=e.resolve(t,n||\\\"/\\\"),i=e.modules[r];if(!i)throw new Error(\\\"Failed to resolve module \\\"+t+\\\", tried \\\"+r);var s=i._cached?i._cached:i();return s};return e.paths=[],e.modules={},e.extensions=[\\\".js\\\",\\\".coffee\\\"],e._core={assert:!0,events:!0,fs:!0,path:!0,vm:!0},e.resolve=function(){return function(t,n){function u(t){if(e.modules[t])return t;for(var n=0;n=0;i--){if(t[i]===\\\"node_modules\\\")continue;var s=t.slice(0,i+1).join(\\\"/\\\")+\\\"/node_modules\\\";n.push(s)}return n}n||(n=\\\"/\\\");if(e._core[t])return t;var r=e.modules.path();n=r.resolve(\\\"/\\\",n);var i=n||\\\"/\\\";if(t.match(/^(?:\\\\.\\\\.?\\\\/|\\\\/)/)){var s=u(r.resolve(i,t))||a(r.resolve(i,t));if(s)return s}var o=f(t,i);if(o)return o;throw new Error(\\\"Cannot find module '\\\"+t+\\\"'\\\")}}(),e.alias=function(t,n){var r=e.modules.path(),i=null;try{i=e.resolve(t+\\\"/package.json\\\",\\\"/\\\")}catch(s){i=e.resolve(t,\\\"/\\\")}var o=r.dirname(i),u=(Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t})(e.modules);for(var a=0;a0){var n=e.shift();n()}}},!0),function(n){t?(e.push(n),window.postMessage(\\\"browserify-tick\\\",\\\"*\\\")):setTimeout(n,0)}}()),process.title||(process.title=\\\"browser\\\"),process.binding||(process.binding=function(t){if(t===\\\"evals\\\")return e(\\\"vm\\\");throw new Error(\\\"No such module\\\")}),process.cwd||(process.cwd=function(){return\\\".\\\"}),process.env||(process.env={}),process.argv||(process.argv=[]),e.define(\\\"path\\\",function(e,t,n,r,i){function s(e,t){var n=[];for(var r=0;r=0;r--){var i=e[r];i==\\\".\\\"?e.splice(r,1):i===\\\"..\\\"?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift(\\\"..\\\");return e}var u=/^(.+\\\\/(?!$)|\\\\/)?((?:.+?)?(\\\\.[^.]*)?)$/;n.resolve=function(){var e=\\\"\\\",t=!1;for(var n=arguments.length;n>=-1&&!t;n--){var r=n>=0?arguments[n]:process.cwd();if(typeof r!=\\\"string\\\"||!r)continue;e=r+\\\"/\\\"+e,t=r.charAt(0)===\\\"/\\\"}return e=o(s(e.split(\\\"/\\\"),function(e){return!!e}),!t).join(\\\"/\\\"),(t?\\\"/\\\":\\\"\\\")+e||\\\".\\\"},n.normalize=function(e){var t=e.charAt(0)===\\\"/\\\",n=e.slice(-1)===\\\"/\\\";return e=o(s(e.split(\\\"/\\\"),function(e){return!!e}),!t).join(\\\"/\\\"),!e&&!t&&(e=\\\".\\\"),e&&n&&(e+=\\\"/\\\"),(t?\\\"/\\\":\\\"\\\")+e},n.join=function(){var e=Array.prototype.slice.call(arguments,0);return n.normalize(s(e,function(e,t){return e&&typeof e==\\\"string\\\"}).join(\\\"/\\\"))},n.dirname=function(e){var t=u.exec(e)[1]||\\\"\\\",n=!1;return t?t.length===1||n&&t.length<=3&&t.charAt(1)===\\\":\\\"?t:t.substring(0,t.length-1):\\\".\\\"},n.basename=function(e,t){var n=u.exec(e)[2]||\\\"\\\";return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},n.extname=function(e){return u.exec(e)[3]||\\\"\\\"}}),e.define(\\\"/core/Node.js\\\",function(e,t,n,r,i){function s(e,t,n){this.x=e,this.y=t,this.walkable=n===undefined?!0:n}t.exports=s}),e.define(\\\"/core/Grid.js\\\",function(e,t,n,r,i){function o(e,t,n){this.width=e,this.height=t,this.nodes=this._buildNodes(e,t,n)}var s=e(\\\"./Node\\\");o.prototype._buildNodes=function(e,t,n){var r,i,o=new Array(t),u;for(r=0;r=0&&e=0&&tt?1:0},f=function(e,t,i,s,o){var u;i==null&&(i=0),o==null&&(o=n);if(i<0)throw new Error(\\\"lo must be non-negative\\\");s==null&&(s=e.length);while(o(i,s)<0)u=r((i+s)/2),o(t,e[u])<0?s=u:i=u+1;return[].splice.apply(e,[i,i-i].concat(t)),t},o=function(e,t,r){return r==null&&(r=n),e.push(t),d(e,0,e.length-1,r)},s=function(e,t){var r,i;return t==null&&(t=n),r=e.pop(),e.length?(i=e[0],e[0]=r,v(e,0,t)):i=r,i},a=function(e,t,r){var i;return r==null&&(r=n),i=e[0],e[0]=t,v(e,0,r),i},u=function(e,t,r){var i;return r==null&&(r=n),e.length&&r(e[0],t)<0&&(i=[e[0],t],t=i[0],e[0]=i[1],v(e,0,r)),t},i=function(e,t){var i,s,o,u,a,f,l,c;t==null&&(t=n),f=function(){c=[];for(var t=0,n=r(e.length/2);0<=n?tn;0<=n?t++:t--)c.push(t);return c}.apply(this).reverse(),l=[];for(s=0,u=f.length;sm;u=0<=m?++p:--p)g.push(s(e,r));return g},d=function(e,t,r,i){var s,o,u;i==null&&(i=n),s=e[r];while(r>t){u=r-1>>1,o=e[u];if(i(s,o)<0){e[r]=o,r=u;continue}break}return e[r]=s},v=function(e,t,r){var i,s,o,u,a;r==null&&(r=n),s=e.length,a=t,o=e[t],i=2*t+1;while(i-f&&(l-=f,e+=o),c Arguments\\n\\n - name (string) name of the *event*, dot (`.`) or slash (`/`) separated\\n - scope (object) context for the event handlers\\n - varargs (...) the rest of arguments will be sent to event handlers\\n\\n = (object) array of returned values from the listeners\\n \\\\*/\\n eve = function (name, scope) {\\n name = String(name);\\n var e = events,\\n oldstop = stop,\\n args = Array.prototype.slice.call(arguments, 2),\\n listeners = eve.listeners(name),\\n z = 0,\\n f = false,\\n l,\\n indexed = [],\\n queue = {},\\n out = [],\\n ce = current_event,\\n errors = [];\\n current_event = name;\\n stop = 0;\\n for (var i = 0, ii = listeners.length; i < ii; i++) if (\\\"zIndex\\\" in listeners[i]) {\\n indexed.push(listeners[i].zIndex);\\n if (listeners[i].zIndex < 0) {\\n queue[listeners[i].zIndex] = listeners[i];\\n }\\n }\\n indexed.sort(numsort);\\n while (indexed[z] < 0) {\\n l = queue[indexed[z++]];\\n out.push(l.apply(scope, args));\\n if (stop) {\\n stop = oldstop;\\n return out;\\n }\\n }\\n for (i = 0; i < ii; i++) {\\n l = listeners[i];\\n if (\\\"zIndex\\\" in l) {\\n if (l.zIndex == indexed[z]) {\\n out.push(l.apply(scope, args));\\n if (stop) {\\n break;\\n }\\n do {\\n z++;\\n l = queue[indexed[z]];\\n l && out.push(l.apply(scope, args));\\n if (stop) {\\n break;\\n }\\n } while (l)\\n } else {\\n queue[l.zIndex] = l;\\n }\\n } else {\\n out.push(l.apply(scope, args));\\n if (stop) {\\n break;\\n }\\n }\\n }\\n stop = oldstop;\\n current_event = ce;\\n return out.length ? out : null;\\n };\\n // Undocumented. Debug only.\\n eve._events = events;\\n /*\\\\\\n * eve.listeners\\n [ method ]\\n\\n * Internal method which gives you array of all event handlers that will be triggered by the given `name`.\\n\\n > Arguments\\n\\n - name (string) name of the event, dot (`.`) or slash (`/`) separated\\n\\n = (array) array of event handlers\\n \\\\*/\\n eve.listeners = function (name) {\\n var names = name.split(separator),\\n e = events,\\n item,\\n items,\\n k,\\n i,\\n ii,\\n j,\\n jj,\\n nes,\\n es = [e],\\n out = [];\\n for (i = 0, ii = names.length; i < ii; i++) {\\n nes = [];\\n for (j = 0, jj = es.length; j < jj; j++) {\\n e = es[j].n;\\n items = [e[names[i]], e[wildcard]];\\n k = 2;\\n while (k--) {\\n item = items[k];\\n if (item) {\\n nes.push(item);\\n out = out.concat(item.f || []);\\n }\\n }\\n }\\n es = nes;\\n }\\n return out;\\n };\\n\\n /*\\\\\\n * eve.on\\n [ method ]\\n **\\n * Binds given event handler with a given name. You can use wildcards “`*`” for the names:\\n | eve.on(\\\"*.under.*\\\", f);\\n | eve(\\\"mouse.under.floor\\\"); // triggers f\\n * Use @eve to trigger the listener.\\n **\\n > Arguments\\n **\\n - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\\n - f (function) event handler function\\n **\\n = (function) returned function accepts a single numeric parameter that represents z-index of the handler. It is an optional feature and only used when you need to ensure that some subset of handlers will be invoked in a given order, despite of the order of assignment.\\n > Example:\\n | eve.on(\\\"mouse\\\", eatIt)(2);\\n | eve.on(\\\"mouse\\\", scream);\\n | eve.on(\\\"mouse\\\", catchIt)(1);\\n * This will ensure that `catchIt()` function will be called before `eatIt()`.\\n *\\n * If you want to put your handler before non-indexed handlers, specify a negative value.\\n * Note: I assume most of the time you don’t need to worry about z-index, but it’s nice to have this feature “just in case”.\\n \\\\*/\\n eve.on = function (name, f) {\\n name = String(name);\\n if (typeof f != \\\"function\\\") {\\n return function () {};\\n }\\n var names = name.split(separator),\\n e = events;\\n for (var i = 0, ii = names.length; i < ii; i++) {\\n e = e.n;\\n e = e.hasOwnProperty(names[i]) && e[names[i]] || (e[names[i]] = {n: {}});\\n }\\n e.f = e.f || [];\\n for (i = 0, ii = e.f.length; i < ii; i++) if (e.f[i] == f) {\\n return fun;\\n }\\n e.f.push(f);\\n return function (zIndex) {\\n if (+zIndex == +zIndex) {\\n f.zIndex = +zIndex;\\n }\\n };\\n };\\n /*\\\\\\n * eve.f\\n [ method ]\\n **\\n * Returns function that will fire given event with optional arguments.\\n * Arguments that will be passed to the result function will be also\\n * concated to the list of final arguments.\\n | el.onclick = eve.f(\\\"click\\\", 1, 2);\\n | eve.on(\\\"click\\\", function (a, b, c) {\\n | console.log(a, b, c); // 1, 2, [event object]\\n | });\\n > Arguments\\n - event (string) event name\\n - varargs (…) and any other arguments\\n = (function) possible event handler function\\n \\\\*/\\n eve.f = function (event) {\\n var attrs = [].slice.call(arguments, 1);\\n return function () {\\n eve.apply(null, [event, null].concat(attrs).concat([].slice.call(arguments, 0)));\\n };\\n };\\n /*\\\\\\n * eve.stop\\n [ method ]\\n **\\n * Is used inside an event handler to stop the event, preventing any subsequent listeners from firing.\\n \\\\*/\\n eve.stop = function () {\\n stop = 1;\\n };\\n /*\\\\\\n * eve.nt\\n [ method ]\\n **\\n * Could be used inside event handler to figure out actual name of the event.\\n **\\n > Arguments\\n **\\n - subname (string) #optional subname of the event\\n **\\n = (string) name of the event, if `subname` is not specified\\n * or\\n = (boolean) `true`, if current event’s name contains `subname`\\n \\\\*/\\n eve.nt = function (subname) {\\n if (subname) {\\n return new RegExp(\\\"(?:\\\\\\\\.|\\\\\\\\/|^)\\\" + subname + \\\"(?:\\\\\\\\.|\\\\\\\\/|$)\\\").test(current_event);\\n }\\n return current_event;\\n };\\n /*\\\\\\n * eve.nts\\n [ method ]\\n **\\n * Could be used inside event handler to figure out actual name of the event.\\n **\\n **\\n = (array) names of the event\\n \\\\*/\\n eve.nts = function () {\\n return current_event.split(separator);\\n };\\n /*\\\\\\n * eve.off\\n [ method ]\\n **\\n * Removes given function from the list of event listeners assigned to given name.\\n * If no arguments specified all the events will be cleared.\\n **\\n > Arguments\\n **\\n - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\\n - f (function) event handler function\\n \\\\*/\\n /*\\\\\\n * eve.unbind\\n [ method ]\\n **\\n * See @eve.off\\n \\\\*/\\n eve.off = eve.unbind = function (name, f) {\\n if (!name) {\\n eve._events = events = {n: {}};\\n return;\\n }\\n var names = name.split(separator),\\n e,\\n key,\\n splice,\\n i, ii, j, jj,\\n cur = [events];\\n for (i = 0, ii = names.length; i < ii; i++) {\\n for (j = 0; j < cur.length; j += splice.length - 2) {\\n splice = [j, 1];\\n e = cur[j].n;\\n if (names[i] != wildcard) {\\n if (e[names[i]]) {\\n splice.push(e[names[i]]);\\n }\\n } else {\\n for (key in e) if (e[has](key)) {\\n splice.push(e[key]);\\n }\\n }\\n cur.splice.apply(cur, splice);\\n }\\n }\\n for (i = 0, ii = cur.length; i < ii; i++) {\\n e = cur[i];\\n while (e.n) {\\n if (f) {\\n if (e.f) {\\n for (j = 0, jj = e.f.length; j < jj; j++) if (e.f[j] == f) {\\n e.f.splice(j, 1);\\n break;\\n }\\n !e.f.length && delete e.f;\\n }\\n for (key in e.n) if (e.n[has](key) && e.n[key].f) {\\n var funcs = e.n[key].f;\\n for (j = 0, jj = funcs.length; j < jj; j++) if (funcs[j] == f) {\\n funcs.splice(j, 1);\\n break;\\n }\\n !funcs.length && delete e.n[key].f;\\n }\\n } else {\\n delete e.f;\\n for (key in e.n) if (e.n[has](key) && e.n[key].f) {\\n delete e.n[key].f;\\n }\\n }\\n e = e.n;\\n }\\n }\\n };\\n /*\\\\\\n * eve.once\\n [ method ]\\n **\\n * Binds given event handler with a given name to only run once then unbind itself.\\n | eve.once(\\\"login\\\", f);\\n | eve(\\\"login\\\"); // triggers f\\n | eve(\\\"login\\\"); // no listeners\\n * Use @eve to trigger the listener.\\n **\\n > Arguments\\n **\\n - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\\n - f (function) event handler function\\n **\\n = (function) same return function as @eve.on\\n \\\\*/\\n eve.once = function (name, f) {\\n var f2 = function () {\\n eve.unbind(name, f2);\\n return f.apply(this, arguments);\\n };\\n return eve.on(name, f2);\\n };\\n /*\\\\\\n * eve.version\\n [ property (string) ]\\n **\\n * Current version of the library.\\n \\\\*/\\n eve.version = version;\\n eve.toString = function () {\\n return \\\"You are running Eve \\\" + version;\\n };\\n\\n return eve;\\n}));\\n\\n// ┌────────────────────────────────────────────────────────────────────┐ \\\\\\\\\\n// │ Raphaël 2.1.4 - JavaScript Vector Library │ \\\\\\\\\\n// ├────────────────────────────────────────────────────────────────────┤ \\\\\\\\\\n// │ Core Module │ \\\\\\\\\\n// ├────────────────────────────────────────────────────────────────────┤ \\\\\\\\\\n// │ Licensed under the MIT (http://raphaeljs.com/license.html) license.│ \\\\\\\\\\n// └────────────────────────────────────────────────────────────────────┘ \\\\\\\\\\n\\n(function (glob, factory) {\\n if (typeof define === \\\"function\\\" && define.amd) {\\n define(\\\"raphael.core\\\", [\\\"eve\\\"], function(eve) {\\n return factory(eve);\\n });\\n } else if (typeof exports === \\\"object\\\") {\\n module.exports = factory(require(\\\"eve\\\"));\\n } else {\\n glob.Raphael = factory(glob.eve);\\n }\\n}(this, function (eve) {\\n /*\\\\\\n * Raphael\\n [ method ]\\n **\\n * Creates a canvas object on which to draw.\\n * You must do this first, as all future calls to drawing methods\\n * from this instance will be bound to this canvas.\\n > Parameters\\n **\\n - container (HTMLElement|string) DOM element or its ID which is going to be a parent for drawing surface\\n - width (number)\\n - height (number)\\n - callback (function) #optional callback function which is going to be executed in the context of newly created paper\\n * or\\n - x (number)\\n - y (number)\\n - width (number)\\n - height (number)\\n - callback (function) #optional callback function which is going to be executed in the context of newly created paper\\n * or\\n - all (array) (first 3 or 4 elements in the array are equal to [containerID, width, height] or [x, y, width, height]. The rest are element descriptions in format {type: type, }). See @Paper.add.\\n - callback (function) #optional callback function which is going to be executed in the context of newly created paper\\n * or\\n - onReadyCallback (function) function that is going to be called on DOM ready event. You can also subscribe to this event via Eve’s “DOMLoad” event. In this case method returns `undefined`.\\n = (object) @Paper\\n > Usage\\n | // Each of the following examples create a canvas\\n | // that is 320px wide by 200px high.\\n | // Canvas is created at the viewport’s 10,50 coordinate.\\n | var paper = Raphael(10, 50, 320, 200);\\n | // Canvas is created at the top left corner of the #notepad element\\n | // (or its top right corner in dir=\\\"rtl\\\" elements)\\n | var paper = Raphael(document.getElementById(\\\"notepad\\\"), 320, 200);\\n | // Same as above\\n | var paper = Raphael(\\\"notepad\\\", 320, 200);\\n | // Image dump\\n | var set = Raphael([\\\"notepad\\\", 320, 200, {\\n | type: \\\"rect\\\",\\n | x: 10,\\n | y: 10,\\n | width: 25,\\n | height: 25,\\n | stroke: \\\"#f00\\\"\\n | }, {\\n | type: \\\"text\\\",\\n | x: 30,\\n | y: 40,\\n | text: \\\"Dump\\\"\\n | }]);\\n \\\\*/\\n function R(first) {\\n if (R.is(first, \\\"function\\\")) {\\n return loaded ? first() : eve.on(\\\"raphael.DOMload\\\", first);\\n } else if (R.is(first, array)) {\\n return R._engine.create[apply](R, first.splice(0, 3 + R.is(first[0], nu))).add(first);\\n } else {\\n var args = Array.prototype.slice.call(arguments, 0);\\n if (R.is(args[args.length - 1], \\\"function\\\")) {\\n var f = args.pop();\\n return loaded ? f.call(R._engine.create[apply](R, args)) : eve.on(\\\"raphael.DOMload\\\", function () {\\n f.call(R._engine.create[apply](R, args));\\n });\\n } else {\\n return R._engine.create[apply](R, arguments);\\n }\\n }\\n }\\n R.version = \\\"2.1.4\\\";\\n R.eve = eve;\\n var loaded,\\n separator = /[, ]+/,\\n elements = {circle: 1, rect: 1, path: 1, ellipse: 1, text: 1, image: 1},\\n formatrg = /\\\\{(\\\\d+)\\\\}/g,\\n proto = \\\"prototype\\\",\\n has = \\\"hasOwnProperty\\\",\\n g = {\\n doc: document,\\n win: window\\n },\\n oldRaphael = {\\n was: Object.prototype[has].call(g.win, \\\"Raphael\\\"),\\n is: g.win.Raphael\\n },\\n Paper = function () {\\n /*\\\\\\n * Paper.ca\\n [ property (object) ]\\n **\\n * Shortcut for @Paper.customAttributes\\n \\\\*/\\n /*\\\\\\n * Paper.customAttributes\\n [ property (object) ]\\n **\\n * If you have a set of attributes that you would like to represent\\n * as a function of some number you can do it easily with custom attributes:\\n > Usage\\n | paper.customAttributes.hue = function (num) {\\n | num = num % 1;\\n | return {fill: \\\"hsb(\\\" + num + \\\", 0.75, 1)\\\"};\\n | };\\n | // Custom attribute “hue” will change fill\\n | // to be given hue with fixed saturation and brightness.\\n | // Now you can use it like this:\\n | var c = paper.circle(10, 10, 10).attr({hue: .45});\\n | // or even like this:\\n | c.animate({hue: 1}, 1e3);\\n |\\n | // You could also create custom attribute\\n | // with multiple parameters:\\n | paper.customAttributes.hsb = function (h, s, b) {\\n | return {fill: \\\"hsb(\\\" + [h, s, b].join(\\\",\\\") + \\\")\\\"};\\n | };\\n | c.attr({hsb: \\\"0.5 .8 1\\\"});\\n | c.animate({hsb: [1, 0, 0.5]}, 1e3);\\n \\\\*/\\n this.ca = this.customAttributes = {};\\n },\\n paperproto,\\n appendChild = \\\"appendChild\\\",\\n apply = \\\"apply\\\",\\n concat = \\\"concat\\\",\\n supportsTouch = ('ontouchstart' in g.win) || g.win.DocumentTouch && g.doc instanceof DocumentTouch, //taken from Modernizr touch test\\n E = \\\"\\\",\\n S = \\\" \\\",\\n Str = String,\\n split = \\\"split\\\",\\n events = \\\"click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel\\\"[split](S),\\n touchMap = {\\n mousedown: \\\"touchstart\\\",\\n mousemove: \\\"touchmove\\\",\\n mouseup: \\\"touchend\\\"\\n },\\n lowerCase = Str.prototype.toLowerCase,\\n math = Math,\\n mmax = math.max,\\n mmin = math.min,\\n abs = math.abs,\\n pow = math.pow,\\n PI = math.PI,\\n nu = \\\"number\\\",\\n string = \\\"string\\\",\\n array = \\\"array\\\",\\n toString = \\\"toString\\\",\\n fillString = \\\"fill\\\",\\n objectToString = Object.prototype.toString,\\n paper = {},\\n push = \\\"push\\\",\\n ISURL = R._ISURL = /^url\\\\(['\\\"]?(.+?)['\\\"]?\\\\)$/i,\\n colourRegExp = /^\\\\s*((#[a-f\\\\d]{6})|(#[a-f\\\\d]{3})|rgba?\\\\(\\\\s*([\\\\d\\\\.]+%?\\\\s*,\\\\s*[\\\\d\\\\.]+%?\\\\s*,\\\\s*[\\\\d\\\\.]+%?(?:\\\\s*,\\\\s*[\\\\d\\\\.]+%?)?)\\\\s*\\\\)|hsba?\\\\(\\\\s*([\\\\d\\\\.]+(?:deg|\\\\xb0|%)?\\\\s*,\\\\s*[\\\\d\\\\.]+%?\\\\s*,\\\\s*[\\\\d\\\\.]+(?:%?\\\\s*,\\\\s*[\\\\d\\\\.]+)?)%?\\\\s*\\\\)|hsla?\\\\(\\\\s*([\\\\d\\\\.]+(?:deg|\\\\xb0|%)?\\\\s*,\\\\s*[\\\\d\\\\.]+%?\\\\s*,\\\\s*[\\\\d\\\\.]+(?:%?\\\\s*,\\\\s*[\\\\d\\\\.]+)?)%?\\\\s*\\\\))\\\\s*$/i,\\n isnan = {\\\"NaN\\\": 1, \\\"Infinity\\\": 1, \\\"-Infinity\\\": 1},\\n bezierrg = /^(?:cubic-)?bezier\\\\(([^,]+),([^,]+),([^,]+),([^\\\\)]+)\\\\)/,\\n round = math.round,\\n setAttribute = \\\"setAttribute\\\",\\n toFloat = parseFloat,\\n toInt = parseInt,\\n upperCase = Str.prototype.toUpperCase,\\n availableAttrs = R._availableAttrs = {\\n \\\"arrow-end\\\": \\\"none\\\",\\n \\\"arrow-start\\\": \\\"none\\\",\\n blur: 0,\\n \\\"clip-rect\\\": \\\"0 0 1e9 1e9\\\",\\n cursor: \\\"default\\\",\\n cx: 0,\\n cy: 0,\\n fill: \\\"#fff\\\",\\n \\\"fill-opacity\\\": 1,\\n font: '10px \\\"Arial\\\"',\\n \\\"font-family\\\": '\\\"Arial\\\"',\\n \\\"font-size\\\": \\\"10\\\",\\n \\\"font-style\\\": \\\"normal\\\",\\n \\\"font-weight\\\": 400,\\n gradient: 0,\\n height: 0,\\n href: \\\"http://raphaeljs.com/\\\",\\n \\\"letter-spacing\\\": 0,\\n opacity: 1,\\n path: \\\"M0,0\\\",\\n r: 0,\\n rx: 0,\\n ry: 0,\\n src: \\\"\\\",\\n stroke: \\\"#000\\\",\\n \\\"stroke-dasharray\\\": \\\"\\\",\\n \\\"stroke-linecap\\\": \\\"butt\\\",\\n \\\"stroke-linejoin\\\": \\\"butt\\\",\\n \\\"stroke-miterlimit\\\": 0,\\n \\\"stroke-opacity\\\": 1,\\n \\\"stroke-width\\\": 1,\\n \\\"stroke-scale\\\": false, // FreeGroup: draw2d enhancement\\n target: \\\"_blank\\\",\\n \\\"text-anchor\\\": \\\"middle\\\",\\n title: \\\"Raphael\\\",\\n transform: \\\"\\\",\\n width: 0,\\n x: 0,\\n y: 0\\n },\\n availableAnimAttrs = R._availableAnimAttrs = {\\n blur: nu,\\n \\\"clip-rect\\\": \\\"csv\\\",\\n cx: nu,\\n cy: nu,\\n fill: \\\"colour\\\",\\n \\\"fill-opacity\\\": nu,\\n \\\"font-size\\\": nu,\\n height: nu,\\n opacity: nu,\\n path: \\\"path\\\",\\n r: nu,\\n rx: nu,\\n ry: nu,\\n stroke: \\\"colour\\\",\\n \\\"stroke-opacity\\\": nu,\\n \\\"stroke-width\\\": nu,\\n transform: \\\"transform\\\",\\n width: nu,\\n x: nu,\\n y: nu\\n },\\n whitespace = /[\\\\x09\\\\x0a\\\\x0b\\\\x0c\\\\x0d\\\\x20\\\\xa0\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029]/g,\\n commaSpaces = /[\\\\x09\\\\x0a\\\\x0b\\\\x0c\\\\x0d\\\\x20\\\\xa0\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029]*,[\\\\x09\\\\x0a\\\\x0b\\\\x0c\\\\x0d\\\\x20\\\\xa0\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029]*/,\\n hsrg = {hs: 1, rg: 1},\\n p2s = /,?([achlmqrstvxz]),?/gi,\\n pathCommand = /([achlmrqstvz])[\\\\x09\\\\x0a\\\\x0b\\\\x0c\\\\x0d\\\\x20\\\\xa0\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029,]*((-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?[\\\\x09\\\\x0a\\\\x0b\\\\x0c\\\\x0d\\\\x20\\\\xa0\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029]*,?[\\\\x09\\\\x0a\\\\x0b\\\\x0c\\\\x0d\\\\x20\\\\xa0\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029]*)+)/ig,\\n tCommand = /([rstm])[\\\\x09\\\\x0a\\\\x0b\\\\x0c\\\\x0d\\\\x20\\\\xa0\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029,]*((-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?[\\\\x09\\\\x0a\\\\x0b\\\\x0c\\\\x0d\\\\x20\\\\xa0\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029]*,?[\\\\x09\\\\x0a\\\\x0b\\\\x0c\\\\x0d\\\\x20\\\\xa0\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029]*)+)/ig,\\n pathValues = /(-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?)[\\\\x09\\\\x0a\\\\x0b\\\\x0c\\\\x0d\\\\x20\\\\xa0\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029]*,?[\\\\x09\\\\x0a\\\\x0b\\\\x0c\\\\x0d\\\\x20\\\\xa0\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029]*/ig,\\n radial_gradient = R._radial_gradient = /^r(?:\\\\(([^,]+?)[\\\\x09\\\\x0a\\\\x0b\\\\x0c\\\\x0d\\\\x20\\\\xa0\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029]*,[\\\\x09\\\\x0a\\\\x0b\\\\x0c\\\\x0d\\\\x20\\\\xa0\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\u2028\\\\u2029]*([^\\\\)]+?)\\\\))?/,\\n eldata = {},\\n sortByKey = function (a, b) {\\n return a.key - b.key;\\n },\\n sortByNumber = function (a, b) {\\n return toFloat(a) - toFloat(b);\\n },\\n fun = function () {},\\n pipe = function (x) {\\n return x;\\n },\\n rectPath = R._rectPath = function (x, y, w, h, r) {\\n if (r) {\\n return [[\\\"M\\\", x + r, y], [\\\"l\\\", w - r * 2, 0], [\\\"a\\\", r, r, 0, 0, 1, r, r], [\\\"l\\\", 0, h - r * 2], [\\\"a\\\", r, r, 0, 0, 1, -r, r], [\\\"l\\\", r * 2 - w, 0], [\\\"a\\\", r, r, 0, 0, 1, -r, -r], [\\\"l\\\", 0, r * 2 - h], [\\\"a\\\", r, r, 0, 0, 1, r, -r], [\\\"z\\\"]];\\n }\\n return [[\\\"M\\\", x, y], [\\\"l\\\", w, 0], [\\\"l\\\", 0, h], [\\\"l\\\", -w, 0], [\\\"z\\\"]];\\n },\\n ellipsePath = function (x, y, rx, ry) {\\n if (ry == null) {\\n ry = rx;\\n }\\n return [[\\\"M\\\", x, y], [\\\"m\\\", 0, -ry], [\\\"a\\\", rx, ry, 0, 1, 1, 0, 2 * ry], [\\\"a\\\", rx, ry, 0, 1, 1, 0, -2 * ry], [\\\"z\\\"]];\\n },\\n getPath = R._getPath = {\\n path: function (el) {\\n return el.attr(\\\"path\\\");\\n },\\n circle: function (el) {\\n var a = el.attrs;\\n return ellipsePath(a.cx, a.cy, a.r);\\n },\\n ellipse: function (el) {\\n var a = el.attrs;\\n return ellipsePath(a.cx, a.cy, a.rx, a.ry);\\n },\\n rect: function (el) {\\n var a = el.attrs;\\n return rectPath(a.x, a.y, a.width, a.height, a.r);\\n },\\n image: function (el) {\\n var a = el.attrs;\\n return rectPath(a.x, a.y, a.width, a.height);\\n },\\n text: function (el) {\\n var bbox = el._getBBox();\\n return rectPath(bbox.x, bbox.y, bbox.width, bbox.height);\\n },\\n set : function(el) {\\n var bbox = el._getBBox();\\n return rectPath(bbox.x, bbox.y, bbox.width, bbox.height);\\n }\\n },\\n /*\\\\\\n * Raphael.mapPath\\n [ method ]\\n **\\n * Transform the path string with given matrix.\\n > Parameters\\n - path (string) path string\\n - matrix (object) see @Matrix\\n = (string) transformed path string\\n \\\\*/\\n mapPath = R.mapPath = function (path, matrix) {\\n if (!matrix) {\\n return path;\\n }\\n var x, y, i, j, ii, jj, pathi;\\n path = path2curve(path);\\n for (i = 0, ii = path.length; i < ii; i++) {\\n pathi = path[i];\\n for (j = 1, jj = pathi.length; j < jj; j += 2) {\\n x = matrix.x(pathi[j], pathi[j + 1]);\\n y = matrix.y(pathi[j], pathi[j + 1]);\\n pathi[j] = x;\\n pathi[j + 1] = y;\\n }\\n }\\n return path;\\n };\\n\\n R._g = g;\\n /*\\\\\\n * Raphael.type\\n [ property (string) ]\\n **\\n * Can be “SVG”, “VML” or empty, depending on browser support.\\n \\\\*/\\n R.type = (g.win.SVGAngle || g.doc.implementation.hasFeature(\\\"http://www.w3.org/TR/SVG11/feature#BasicStructure\\\", \\\"1.1\\\") ? \\\"SVG\\\" : \\\"VML\\\");\\n if (R.type == \\\"VML\\\") {\\n var d = g.doc.createElement(\\\"div\\\"),\\n b;\\n d.innerHTML = '';\\n b = d.firstChild;\\n b.style.behavior = \\\"url(#default#VML)\\\";\\n if (!(b && typeof b.adj == \\\"object\\\")) {\\n return (R.type = E);\\n }\\n d = null;\\n }\\n /*\\\\\\n * Raphael.svg\\n [ property (boolean) ]\\n **\\n * `true` if browser supports SVG.\\n \\\\*/\\n /*\\\\\\n * Raphael.vml\\n [ property (boolean) ]\\n **\\n * `true` if browser supports VML.\\n \\\\*/\\n R.svg = !(R.vml = R.type == \\\"VML\\\");\\n R._Paper = Paper;\\n /*\\\\\\n * Raphael.fn\\n [ property (object) ]\\n **\\n * You can add your own method to the canvas. For example if you want to draw a pie chart,\\n * you can create your own pie chart function and ship it as a Raphaël plugin. To do this\\n * you need to extend the `Raphael.fn` object. You should modify the `fn` object before a\\n * Raphaël instance is created, otherwise it will take no effect. Please note that the\\n * ability for namespaced plugins was removed in Raphael 2.0. It is up to the plugin to\\n * ensure any namespacing ensures proper context.\\n > Usage\\n | Raphael.fn.arrow = function (x1, y1, x2, y2, size) {\\n | return this.path( ... );\\n | };\\n | // or create namespace\\n | Raphael.fn.mystuff = {\\n | arrow: function () {…},\\n | star: function () {…},\\n | // etc…\\n | };\\n | var paper = Raphael(10, 10, 630, 480);\\n | // then use it\\n | paper.arrow(10, 10, 30, 30, 5).attr({fill: \\\"#f00\\\"});\\n | paper.mystuff.arrow();\\n | paper.mystuff.star();\\n \\\\*/\\n R.fn = paperproto = Paper.prototype = R.prototype;\\n R._id = 0;\\n R._oid = 0;\\n /*\\\\\\n * Raphael.is\\n [ method ]\\n **\\n * Handful of replacements for `typeof` operator.\\n > Parameters\\n - o (…) any object or primitive\\n - type (string) name of the type, i.e. “string”, “function”, “number”, etc.\\n = (boolean) is given value is of given type\\n \\\\*/\\n R.is = function (o, type) {\\n type = lowerCase.call(type);\\n if (type == \\\"finite\\\") {\\n return !isnan[has](+o);\\n }\\n if (type == \\\"array\\\") {\\n return o instanceof Array;\\n }\\n return (type == \\\"null\\\" && o === null) ||\\n (type == typeof o && o !== null) ||\\n (type == \\\"object\\\" && o === Object(o)) ||\\n (type == \\\"array\\\" && Array.isArray && Array.isArray(o)) ||\\n objectToString.call(o).slice(8, -1).toLowerCase() == type;\\n };\\n\\n function clone(obj) {\\n if (typeof obj == \\\"function\\\" || Object(obj) !== obj) {\\n return obj;\\n }\\n var res = new obj.constructor;\\n for (var key in obj) if (obj[has](key)) {\\n res[key] = clone(obj[key]);\\n }\\n return res;\\n }\\n\\n /*\\\\\\n * Raphael.angle\\n [ method ]\\n **\\n * Returns angle between two or three points\\n > Parameters\\n - x1 (number) x coord of first point\\n - y1 (number) y coord of first point\\n - x2 (number) x coord of second point\\n - y2 (number) y coord of second point\\n - x3 (number) #optional x coord of third point\\n - y3 (number) #optional y coord of third point\\n = (number) angle in degrees.\\n \\\\*/\\n R.angle = function (x1, y1, x2, y2, x3, y3) {\\n if (x3 == null) {\\n var x = x1 - x2,\\n y = y1 - y2;\\n if (!x && !y) {\\n return 0;\\n }\\n return (180 + math.atan2(-y, -x) * 180 / PI + 360) % 360;\\n } else {\\n return R.angle(x1, y1, x3, y3) - R.angle(x2, y2, x3, y3);\\n }\\n };\\n /*\\\\\\n * Raphael.rad\\n [ method ]\\n **\\n * Transform angle to radians\\n > Parameters\\n - deg (number) angle in degrees\\n = (number) angle in radians.\\n \\\\*/\\n R.rad = function (deg) {\\n return deg % 360 * PI / 180;\\n };\\n /*\\\\\\n * Raphael.deg\\n [ method ]\\n **\\n * Transform angle to degrees\\n > Parameters\\n - rad (number) angle in radians\\n = (number) angle in degrees.\\n \\\\*/\\n R.deg = function (rad) {\\n return Math.round ((rad * 180 / PI% 360)* 1000) / 1000;\\n };\\n /*\\\\\\n * Raphael.snapTo\\n [ method ]\\n **\\n * Snaps given value to given grid.\\n > Parameters\\n - values (array|number) given array of values or step of the grid\\n - value (number) value to adjust\\n - tolerance (number) #optional tolerance for snapping. Default is `10`.\\n = (number) adjusted value.\\n \\\\*/\\n R.snapTo = function (values, value, tolerance) {\\n tolerance = R.is(tolerance, \\\"finite\\\") ? tolerance : 10;\\n if (R.is(values, array)) {\\n var i = values.length;\\n while (i--) if (abs(values[i] - value) <= tolerance) {\\n return values[i];\\n }\\n } else {\\n values = +values;\\n var rem = value % values;\\n if (rem < tolerance) {\\n return value - rem;\\n }\\n if (rem > values - tolerance) {\\n return value - rem + values;\\n }\\n }\\n return value;\\n };\\n\\n /*\\\\\\n * Raphael.createUUID\\n [ method ]\\n **\\n * Returns RFC4122, version 4 ID\\n \\\\*/\\n var createUUID = R.createUUID = (function (uuidRegEx, uuidReplacer) {\\n return function () {\\n return \\\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\\\".replace(uuidRegEx, uuidReplacer).toUpperCase();\\n };\\n })(/[xy]/g, function (c) {\\n var r = math.random() * 16 | 0,\\n v = c == \\\"x\\\" ? r : (r & 3 | 8);\\n return v.toString(16);\\n });\\n\\n /*\\\\\\n * Raphael.setWindow\\n [ method ]\\n **\\n * Used when you need to draw in `<iframe>`. Switched window to the iframe one.\\n > Parameters\\n - newwin (window) new window object\\n \\\\*/\\n R.setWindow = function (newwin) {\\n eve(\\\"raphael.setWindow\\\", R, g.win, newwin);\\n g.win = newwin;\\n g.doc = g.win.document;\\n if (R._engine.initWin) {\\n R._engine.initWin(g.win);\\n }\\n };\\n var toHex = function (color) {\\n if (R.vml) {\\n // http://dean.edwards.name/weblog/2009/10/convert-any-colour-value-to-hex-in-msie/\\n var trim = /^\\\\s+|\\\\s+$/g;\\n var bod;\\n try {\\n var docum = new ActiveXObject(\\\"htmlfile\\\");\\n docum.write(\\\"\\\");\\n docum.close();\\n bod = docum.body;\\n } catch(e) {\\n bod = createPopup().document.body;\\n }\\n var range = bod.createTextRange();\\n toHex = cacher(function (color) {\\n try {\\n bod.style.color = Str(color).replace(trim, E);\\n var value = range.queryCommandValue(\\\"ForeColor\\\");\\n value = ((value & 255) << 16) | (value & 65280) | ((value & 16711680) >>> 16);\\n return \\\"#\\\" + (\\\"000000\\\" + value.toString(16)).slice(-6);\\n } catch(e) {\\n return \\\"none\\\";\\n }\\n });\\n } else {\\n var i = g.doc.createElement(\\\"i\\\");\\n i.title = \\\"Rapha\\\\xebl Colour Picker\\\";\\n i.style.display = \\\"none\\\";\\n g.doc.body.appendChild(i);\\n toHex = cacher(function (color) {\\n i.style.color = color;\\n return g.doc.defaultView.getComputedStyle(i, E).getPropertyValue(\\\"color\\\");\\n });\\n }\\n return toHex(color);\\n },\\n hsbtoString = function () {\\n return \\\"hsb(\\\" + [this.h, this.s, this.b] + \\\")\\\";\\n },\\n hsltoString = function () {\\n return \\\"hsl(\\\" + [this.h, this.s, this.l] + \\\")\\\";\\n },\\n rgbtoString = function () {\\n return this.hex;\\n },\\n prepareRGB = function (r, g, b) {\\n if (g == null && R.is(r, \\\"object\\\") && \\\"r\\\" in r && \\\"g\\\" in r && \\\"b\\\" in r) {\\n b = r.b;\\n g = r.g;\\n r = r.r;\\n }\\n if (g == null && R.is(r, string)) {\\n var clr = R.getRGB(r);\\n r = clr.r;\\n g = clr.g;\\n b = clr.b;\\n }\\n if (r > 1 || g > 1 || b > 1) {\\n r /= 255;\\n g /= 255;\\n b /= 255;\\n }\\n\\n return [r, g, b];\\n },\\n packageRGB = function (r, g, b, o) {\\n r *= 255;\\n g *= 255;\\n b *= 255;\\n var rgb = {\\n r: r,\\n g: g,\\n b: b,\\n hex: R.rgb(r, g, b),\\n toString: rgbtoString\\n };\\n R.is(o, \\\"finite\\\") && (rgb.opacity = o);\\n return rgb;\\n };\\n\\n /*\\\\\\n * Raphael.color\\n [ method ]\\n **\\n * Parses the color string and returns object with all values for the given color.\\n > Parameters\\n - clr (string) color string in one of the supported formats (see @Raphael.getRGB)\\n = (object) Combined RGB & HSB object in format:\\n o {\\n o r (number) red,\\n o g (number) green,\\n o b (number) blue,\\n o hex (string) color in HTML/CSS format: #••••••,\\n o error (boolean) `true` if string can’t be parsed,\\n o h (number) hue,\\n o s (number) saturation,\\n o v (number) value (brightness),\\n o l (number) lightness\\n o }\\n \\\\*/\\n R.color = function (clr) {\\n var rgb;\\n if (R.is(clr, \\\"object\\\") && \\\"h\\\" in clr && \\\"s\\\" in clr && \\\"b\\\" in clr) {\\n rgb = R.hsb2rgb(clr);\\n clr.r = rgb.r;\\n clr.g = rgb.g;\\n clr.b = rgb.b;\\n clr.hex = rgb.hex;\\n } else if (R.is(clr, \\\"object\\\") && \\\"h\\\" in clr && \\\"s\\\" in clr && \\\"l\\\" in clr) {\\n rgb = R.hsl2rgb(clr);\\n clr.r = rgb.r;\\n clr.g = rgb.g;\\n clr.b = rgb.b;\\n clr.hex = rgb.hex;\\n } else {\\n if (R.is(clr, \\\"string\\\")) {\\n clr = R.getRGB(clr);\\n }\\n if (R.is(clr, \\\"object\\\") && \\\"r\\\" in clr && \\\"g\\\" in clr && \\\"b\\\" in clr) {\\n rgb = R.rgb2hsl(clr);\\n clr.h = rgb.h;\\n clr.s = rgb.s;\\n clr.l = rgb.l;\\n rgb = R.rgb2hsb(clr);\\n clr.v = rgb.b;\\n } else {\\n clr = {hex: \\\"none\\\"};\\n clr.r = clr.g = clr.b = clr.h = clr.s = clr.v = clr.l = -1;\\n }\\n }\\n clr.toString = rgbtoString;\\n return clr;\\n };\\n /*\\\\\\n * Raphael.hsb2rgb\\n [ method ]\\n **\\n * Converts HSB values to RGB object.\\n > Parameters\\n - h (number) hue\\n - s (number) saturation\\n - v (number) value or brightness\\n = (object) RGB object in format:\\n o {\\n o r (number) red,\\n o g (number) green,\\n o b (number) blue,\\n o hex (string) color in HTML/CSS format: #••••••\\n o }\\n \\\\*/\\n R.hsb2rgb = function (h, s, v, o) {\\n if (this.is(h, \\\"object\\\") && \\\"h\\\" in h && \\\"s\\\" in h && \\\"b\\\" in h) {\\n v = h.b;\\n s = h.s;\\n o = h.o;\\n h = h.h;\\n }\\n h *= 360;\\n var R, G, B, X, C;\\n h = (h % 360) / 60;\\n C = v * s;\\n X = C * (1 - abs(h % 2 - 1));\\n R = G = B = v - C;\\n\\n h = ~~h;\\n R += [C, X, 0, 0, X, C][h];\\n G += [X, C, C, X, 0, 0][h];\\n B += [0, 0, X, C, C, X][h];\\n return packageRGB(R, G, B, o);\\n };\\n /*\\\\\\n * Raphael.hsl2rgb\\n [ method ]\\n **\\n * Converts HSL values to RGB object.\\n > Parameters\\n - h (number) hue\\n - s (number) saturation\\n - l (number) luminosity\\n = (object) RGB object in format:\\n o {\\n o r (number) red,\\n o g (number) green,\\n o b (number) blue,\\n o hex (string) color in HTML/CSS format: #••••••\\n o }\\n \\\\*/\\n R.hsl2rgb = function (h, s, l, o) {\\n if (this.is(h, \\\"object\\\") && \\\"h\\\" in h && \\\"s\\\" in h && \\\"l\\\" in h) {\\n l = h.l;\\n s = h.s;\\n h = h.h;\\n }\\n if (h > 1 || s > 1 || l > 1) {\\n h /= 360;\\n s /= 100;\\n l /= 100;\\n }\\n h *= 360;\\n var R, G, B, X, C;\\n h = (h % 360) / 60;\\n C = 2 * s * (l < .5 ? l : 1 - l);\\n X = C * (1 - abs(h % 2 - 1));\\n R = G = B = l - C / 2;\\n\\n h = ~~h;\\n R += [C, X, 0, 0, X, C][h];\\n G += [X, C, C, X, 0, 0][h];\\n B += [0, 0, X, C, C, X][h];\\n return packageRGB(R, G, B, o);\\n };\\n /*\\\\\\n * Raphael.rgb2hsb\\n [ method ]\\n **\\n * Converts RGB values to HSB object.\\n > Parameters\\n - r (number) red\\n - g (number) green\\n - b (number) blue\\n = (object) HSB object in format:\\n o {\\n o h (number) hue\\n o s (number) saturation\\n o b (number) brightness\\n o }\\n \\\\*/\\n R.rgb2hsb = function (r, g, b) {\\n b = prepareRGB(r, g, b);\\n r = b[0];\\n g = b[1];\\n b = b[2];\\n\\n var H, S, V, C;\\n V = mmax(r, g, b);\\n C = V - mmin(r, g, b);\\n H = (C == 0 ? null :\\n V == r ? (g - b) / C :\\n V == g ? (b - r) / C + 2 :\\n (r - g) / C + 4\\n );\\n H = ((H + 360) % 6) * 60 / 360;\\n S = C == 0 ? 0 : C / V;\\n return {h: H, s: S, b: V, toString: hsbtoString};\\n };\\n /*\\\\\\n * Raphael.rgb2hsl\\n [ method ]\\n **\\n * Converts RGB values to HSL object.\\n > Parameters\\n - r (number) red\\n - g (number) green\\n - b (number) blue\\n = (object) HSL object in format:\\n o {\\n o h (number) hue\\n o s (number) saturation\\n o l (number) luminosity\\n o }\\n \\\\*/\\n R.rgb2hsl = function (r, g, b) {\\n b = prepareRGB(r, g, b);\\n r = b[0];\\n g = b[1];\\n b = b[2];\\n\\n var H, S, L, M, m, C;\\n M = mmax(r, g, b);\\n m = mmin(r, g, b);\\n C = M - m;\\n H = (C == 0 ? null :\\n M == r ? (g - b) / C :\\n M == g ? (b - r) / C + 2 :\\n (r - g) / C + 4);\\n H = ((H + 360) % 6) * 60 / 360;\\n L = (M + m) / 2;\\n S = (C == 0 ? 0 :\\n L < .5 ? C / (2 * L) :\\n C / (2 - 2 * L));\\n return {h: H, s: S, l: L, toString: hsltoString};\\n };\\n R._path2string = function () {\\n return this.join(\\\",\\\").replace(p2s, \\\"$1\\\");\\n };\\n function repush(array, item) {\\n for (var i = 0, ii = array.length; i < ii; i++) if (array[i] === item) {\\n return array.push(array.splice(i, 1)[0]);\\n }\\n }\\n function cacher(f, scope, postprocessor) {\\n function newf() {\\n var arg = Array.prototype.slice.call(arguments, 0),\\n args = arg.join(\\\"\\\\u2400\\\"),\\n cache = newf.cache = newf.cache || {},\\n count = newf.count = newf.count || [];\\n if (cache[has](args)) {\\n repush(count, args);\\n return postprocessor ? postprocessor(cache[args]) : cache[args];\\n }\\n count.length >= 1e3 && delete cache[count.shift()];\\n count.push(args);\\n cache[args] = f[apply](scope, arg);\\n return postprocessor ? postprocessor(cache[args]) : cache[args];\\n }\\n return newf;\\n }\\n\\n var preload = R._preload = function (src, f) {\\n var img = g.doc.createElement(\\\"img\\\");\\n img.style.cssText = \\\"position:absolute;left:-9999em;top:-9999em\\\";\\n img.onload = function () {\\n f.call(this);\\n this.onload = null;\\n g.doc.body.removeChild(this);\\n };\\n img.onerror = function () {\\n g.doc.body.removeChild(this);\\n };\\n g.doc.body.appendChild(img);\\n img.src = src;\\n };\\n\\n function clrToString() {\\n return this.hex;\\n }\\n\\n /*\\\\\\n * Raphael.getRGB\\n [ method ]\\n **\\n * Parses colour string as RGB object\\n > Parameters\\n - colour (string) colour string in one of formats:\\n #
    \\n #
  • Colour name (“red”, “green”, “cornflowerblue”, etc)
  • \\n #
  • #••• — shortened HTML colour: (“#000”, “#fc0”, etc)
  • \\n #
  • #•••••• — full length HTML colour: (“#000000”, “#bd2300”)
  • \\n #
  • rgb(•••, •••, •••) — red, green and blue channels’ values: (“rgb(200, 100, 0)”)
  • \\n #
  • rgb(•••%, •••%, •••%) — same as above, but in %: (“rgb(100%, 175%, 0%)”)
  • \\n #
  • hsb(•••, •••, •••) — hue, saturation and brightness values: (“hsb(0.5, 0.25, 1)”)
  • \\n #
  • hsb(•••%, •••%, •••%) — same as above, but in %
  • \\n #
  • hsl(•••, •••, •••) — same as hsb
  • \\n #
  • hsl(•••%, •••%, •••%) — same as hsb
  • \\n #
\\n = (object) RGB object in format:\\n o {\\n o r (number) red,\\n o g (number) green,\\n o b (number) blue\\n o hex (string) color in HTML/CSS format: #••••••,\\n o error (boolean) true if string can’t be parsed\\n o }\\n \\\\*/\\n R.getRGB = cacher(function (colour) {\\n if (!colour || !!((colour = Str(colour)).indexOf(\\\"-\\\") + 1)) {\\n return {r: -1, g: -1, b: -1, hex: \\\"none\\\", error: 1, toString: clrToString};\\n }\\n if (colour == \\\"none\\\") {\\n return {r: -1, g: -1, b: -1, hex: \\\"none\\\", toString: clrToString};\\n }\\n !(hsrg[has](colour.toLowerCase().substring(0, 2)) || colour.charAt() == \\\"#\\\") && (colour = toHex(colour));\\n var res,\\n red,\\n green,\\n blue,\\n opacity,\\n t,\\n values,\\n rgb = colour.match(colourRegExp);\\n if (rgb) {\\n if (rgb[2]) {\\n blue = toInt(rgb[2].substring(5), 16);\\n green = toInt(rgb[2].substring(3, 5), 16);\\n red = toInt(rgb[2].substring(1, 3), 16);\\n }\\n if (rgb[3]) {\\n blue = toInt((t = rgb[3].charAt(3)) + t, 16);\\n green = toInt((t = rgb[3].charAt(2)) + t, 16);\\n red = toInt((t = rgb[3].charAt(1)) + t, 16);\\n }\\n if (rgb[4]) {\\n values = rgb[4][split](commaSpaces);\\n red = toFloat(values[0]);\\n values[0].slice(-1) == \\\"%\\\" && (red *= 2.55);\\n green = toFloat(values[1]);\\n values[1].slice(-1) == \\\"%\\\" && (green *= 2.55);\\n blue = toFloat(values[2]);\\n values[2].slice(-1) == \\\"%\\\" && (blue *= 2.55);\\n rgb[1].toLowerCase().slice(0, 4) == \\\"rgba\\\" && (opacity = toFloat(values[3]));\\n values[3] && values[3].slice(-1) == \\\"%\\\" && (opacity /= 100);\\n }\\n if (rgb[5]) {\\n values = rgb[5][split](commaSpaces);\\n red = toFloat(values[0]);\\n values[0].slice(-1) == \\\"%\\\" && (red *= 2.55);\\n green = toFloat(values[1]);\\n values[1].slice(-1) == \\\"%\\\" && (green *= 2.55);\\n blue = toFloat(values[2]);\\n values[2].slice(-1) == \\\"%\\\" && (blue *= 2.55);\\n (values[0].slice(-3) == \\\"deg\\\" || values[0].slice(-1) == \\\"\\\\xb0\\\") && (red /= 360);\\n rgb[1].toLowerCase().slice(0, 4) == \\\"hsba\\\" && (opacity = toFloat(values[3]));\\n values[3] && values[3].slice(-1) == \\\"%\\\" && (opacity /= 100);\\n return R.hsb2rgb(red, green, blue, opacity);\\n }\\n if (rgb[6]) {\\n values = rgb[6][split](commaSpaces);\\n red = toFloat(values[0]);\\n values[0].slice(-1) == \\\"%\\\" && (red *= 2.55);\\n green = toFloat(values[1]);\\n values[1].slice(-1) == \\\"%\\\" && (green *= 2.55);\\n blue = toFloat(values[2]);\\n values[2].slice(-1) == \\\"%\\\" && (blue *= 2.55);\\n (values[0].slice(-3) == \\\"deg\\\" || values[0].slice(-1) == \\\"\\\\xb0\\\") && (red /= 360);\\n rgb[1].toLowerCase().slice(0, 4) == \\\"hsla\\\" && (opacity = toFloat(values[3]));\\n values[3] && values[3].slice(-1) == \\\"%\\\" && (opacity /= 100);\\n return R.hsl2rgb(red, green, blue, opacity);\\n }\\n rgb = {r: red, g: green, b: blue, toString: clrToString};\\n rgb.hex = \\\"#\\\" + (16777216 | blue | (green << 8) | (red << 16)).toString(16).slice(1);\\n R.is(opacity, \\\"finite\\\") && (rgb.opacity = opacity);\\n return rgb;\\n }\\n return {r: -1, g: -1, b: -1, hex: \\\"none\\\", error: 1, toString: clrToString};\\n }, R);\\n /*\\\\\\n * Raphael.hsb\\n [ method ]\\n **\\n * Converts HSB values to hex representation of the colour.\\n > Parameters\\n - h (number) hue\\n - s (number) saturation\\n - b (number) value or brightness\\n = (string) hex representation of the colour.\\n \\\\*/\\n R.hsb = cacher(function (h, s, b) {\\n return R.hsb2rgb(h, s, b).hex;\\n });\\n /*\\\\\\n * Raphael.hsl\\n [ method ]\\n **\\n * Converts HSL values to hex representation of the colour.\\n > Parameters\\n - h (number) hue\\n - s (number) saturation\\n - l (number) luminosity\\n = (string) hex representation of the colour.\\n \\\\*/\\n R.hsl = cacher(function (h, s, l) {\\n return R.hsl2rgb(h, s, l).hex;\\n });\\n /*\\\\\\n * Raphael.rgb\\n [ method ]\\n **\\n * Converts RGB values to hex representation of the colour.\\n > Parameters\\n - r (number) red\\n - g (number) green\\n - b (number) blue\\n = (string) hex representation of the colour.\\n \\\\*/\\n R.rgb = cacher(function (r, g, b) {\\n function round(x) { return (x + 0.5) | 0; }\\n return \\\"#\\\" + (16777216 | round(b) | (round(g) << 8) | (round(r) << 16)).toString(16).slice(1);\\n });\\n /*\\\\\\n * Raphael.getColor\\n [ method ]\\n **\\n * On each call returns next colour in the spectrum. To reset it back to red call @Raphael.getColor.reset\\n > Parameters\\n - value (number) #optional brightness, default is `0.75`\\n = (string) hex representation of the colour.\\n \\\\*/\\n R.getColor = function (value) {\\n var start = this.getColor.start = this.getColor.start || {h: 0, s: 1, b: value || .75},\\n rgb = this.hsb2rgb(start.h, start.s, start.b);\\n start.h += .075;\\n if (start.h > 1) {\\n start.h = 0;\\n start.s -= .2;\\n start.s <= 0 && (this.getColor.start = {h: 0, s: 1, b: start.b});\\n }\\n return rgb.hex;\\n };\\n /*\\\\\\n * Raphael.getColor.reset\\n [ method ]\\n **\\n * Resets spectrum position for @Raphael.getColor back to red.\\n \\\\*/\\n R.getColor.reset = function () {\\n delete this.start;\\n };\\n\\n // http://schepers.cc/getting-to-the-point\\n function catmullRom2bezier(crp, z) {\\n var d = [];\\n for (var i = 0, iLen = crp.length; iLen - 2 * !z > i; i += 2) {\\n var p = [\\n {x: +crp[i - 2], y: +crp[i - 1]},\\n {x: +crp[i], y: +crp[i + 1]},\\n {x: +crp[i + 2], y: +crp[i + 3]},\\n {x: +crp[i + 4], y: +crp[i + 5]}\\n ];\\n if (z) {\\n if (!i) {\\n p[0] = {x: +crp[iLen - 2], y: +crp[iLen - 1]};\\n } else if (iLen - 4 == i) {\\n p[3] = {x: +crp[0], y: +crp[1]};\\n } else if (iLen - 2 == i) {\\n p[2] = {x: +crp[0], y: +crp[1]};\\n p[3] = {x: +crp[2], y: +crp[3]};\\n }\\n } else {\\n if (iLen - 4 == i) {\\n p[3] = p[2];\\n } else if (!i) {\\n p[0] = {x: +crp[i], y: +crp[i + 1]};\\n }\\n }\\n d.push([\\\"C\\\",\\n (-p[0].x + 6 * p[1].x + p[2].x) / 6,\\n (-p[0].y + 6 * p[1].y + p[2].y) / 6,\\n (p[1].x + 6 * p[2].x - p[3].x) / 6,\\n (p[1].y + 6*p[2].y - p[3].y) / 6,\\n p[2].x,\\n p[2].y\\n ]);\\n }\\n\\n return d;\\n }\\n /*\\\\\\n * Raphael.parsePathString\\n [ method ]\\n **\\n * Utility method\\n **\\n * Parses given path string into an array of arrays of path segments.\\n > Parameters\\n - pathString (string|array) path string or array of segments (in the last case it will be returned straight away)\\n = (array) array of segments.\\n \\\\*/\\n R.parsePathString = function (pathString) {\\n if (!pathString) {\\n return null;\\n }\\n var pth = paths(pathString);\\n if (pth.arr) {\\n return pathClone(pth.arr);\\n }\\n\\n var paramCounts = {a: 7, c: 6, h: 1, l: 2, m: 2, r: 4, q: 4, s: 4, t: 2, v: 1, z: 0},\\n data = [];\\n if (R.is(pathString, array) && R.is(pathString[0], array)) { // rough assumption\\n data = pathClone(pathString);\\n }\\n if (!data.length) {\\n Str(pathString).replace(pathCommand, function (a, b, c) {\\n var params = [],\\n name = b.toLowerCase();\\n c.replace(pathValues, function (a, b) {\\n b && params.push(+b);\\n });\\n if (name == \\\"m\\\" && params.length > 2) {\\n data.push([b][concat](params.splice(0, 2)));\\n name = \\\"l\\\";\\n b = b == \\\"m\\\" ? \\\"l\\\" : \\\"L\\\";\\n }\\n if (name == \\\"r\\\") {\\n data.push([b][concat](params));\\n } else while (params.length >= paramCounts[name]) {\\n data.push([b][concat](params.splice(0, paramCounts[name])));\\n if (!paramCounts[name]) {\\n break;\\n }\\n }\\n });\\n }\\n data.toString = R._path2string;\\n pth.arr = pathClone(data);\\n return data;\\n };\\n /*\\\\\\n * Raphael.parseTransformString\\n [ method ]\\n **\\n * Utility method\\n **\\n * Parses given path string into an array of transformations.\\n > Parameters\\n - TString (string|array) transform string or array of transformations (in the last case it will be returned straight away)\\n = (array) array of transformations.\\n \\\\*/\\n R.parseTransformString = cacher(function (TString) {\\n if (!TString) {\\n return null;\\n }\\n var paramCounts = {r: 3, s: 4, t: 2, m: 6},\\n data = [];\\n if (R.is(TString, array) && R.is(TString[0], array)) { // rough assumption\\n data = pathClone(TString);\\n }\\n if (!data.length) {\\n Str(TString).replace(tCommand, function (a, b, c) {\\n var params = [],\\n name = lowerCase.call(b);\\n c.replace(pathValues, function (a, b) {\\n b && params.push(+b);\\n });\\n data.push([b][concat](params));\\n });\\n }\\n data.toString = R._path2string;\\n return data;\\n });\\n // PATHS\\n var paths = function (ps) {\\n var p = paths.ps = paths.ps || {};\\n if (p[ps]) {\\n p[ps].sleep = 100;\\n } else {\\n p[ps] = {\\n sleep: 100\\n };\\n }\\n setTimeout(function () {\\n for (var key in p) if (p[has](key) && key != ps) {\\n p[key].sleep--;\\n !p[key].sleep && delete p[key];\\n }\\n });\\n return p[ps];\\n };\\n /*\\\\\\n * Raphael.findDotsAtSegment\\n [ method ]\\n **\\n * Utility method\\n **\\n * Find dot coordinates on the given cubic bezier curve at the given t.\\n > Parameters\\n - p1x (number) x of the first point of the curve\\n - p1y (number) y of the first point of the curve\\n - c1x (number) x of the first anchor of the curve\\n - c1y (number) y of the first anchor of the curve\\n - c2x (number) x of the second anchor of the curve\\n - c2y (number) y of the second anchor of the curve\\n - p2x (number) x of the second point of the curve\\n - p2y (number) y of the second point of the curve\\n - t (number) position on the curve (0..1)\\n = (object) point information in format:\\n o {\\n o x: (number) x coordinate of the point\\n o y: (number) y coordinate of the point\\n o m: {\\n o x: (number) x coordinate of the left anchor\\n o y: (number) y coordinate of the left anchor\\n o }\\n o n: {\\n o x: (number) x coordinate of the right anchor\\n o y: (number) y coordinate of the right anchor\\n o }\\n o start: {\\n o x: (number) x coordinate of the start of the curve\\n o y: (number) y coordinate of the start of the curve\\n o }\\n o end: {\\n o x: (number) x coordinate of the end of the curve\\n o y: (number) y coordinate of the end of the curve\\n o }\\n o alpha: (number) angle of the curve derivative at the point\\n o }\\n \\\\*/\\n R.findDotsAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) {\\n var t1 = 1 - t,\\n t13 = pow(t1, 3),\\n t12 = pow(t1, 2),\\n t2 = t * t,\\n t3 = t2 * t,\\n x = t13 * p1x + t12 * 3 * t * c1x + t1 * 3 * t * t * c2x + t3 * p2x,\\n y = t13 * p1y + t12 * 3 * t * c1y + t1 * 3 * t * t * c2y + t3 * p2y,\\n mx = p1x + 2 * t * (c1x - p1x) + t2 * (c2x - 2 * c1x + p1x),\\n my = p1y + 2 * t * (c1y - p1y) + t2 * (c2y - 2 * c1y + p1y),\\n nx = c1x + 2 * t * (c2x - c1x) + t2 * (p2x - 2 * c2x + c1x),\\n ny = c1y + 2 * t * (c2y - c1y) + t2 * (p2y - 2 * c2y + c1y),\\n ax = t1 * p1x + t * c1x,\\n ay = t1 * p1y + t * c1y,\\n cx = t1 * c2x + t * p2x,\\n cy = t1 * c2y + t * p2y,\\n alpha = (90 - math.atan2(mx - nx, my - ny) * 180 / PI);\\n (mx > nx || my < ny) && (alpha += 180);\\n return {\\n x: x,\\n y: y,\\n m: {x: mx, y: my},\\n n: {x: nx, y: ny},\\n start: {x: ax, y: ay},\\n end: {x: cx, y: cy},\\n alpha: alpha\\n };\\n };\\n /*\\\\\\n * Raphael.bezierBBox\\n [ method ]\\n **\\n * Utility method\\n **\\n * Return bounding box of a given cubic bezier curve\\n > Parameters\\n - p1x (number) x of the first point of the curve\\n - p1y (number) y of the first point of the curve\\n - c1x (number) x of the first anchor of the curve\\n - c1y (number) y of the first anchor of the curve\\n - c2x (number) x of the second anchor of the curve\\n - c2y (number) y of the second anchor of the curve\\n - p2x (number) x of the second point of the curve\\n - p2y (number) y of the second point of the curve\\n * or\\n - bez (array) array of six points for bezier curve\\n = (object) point information in format:\\n o {\\n o min: {\\n o x: (number) x coordinate of the left point\\n o y: (number) y coordinate of the top point\\n o }\\n o max: {\\n o x: (number) x coordinate of the right point\\n o y: (number) y coordinate of the bottom point\\n o }\\n o }\\n \\\\*/\\n R.bezierBBox = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) {\\n if (!R.is(p1x, \\\"array\\\")) {\\n p1x = [p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y];\\n }\\n var bbox = curveDim.apply(null, p1x);\\n return {\\n x: bbox.min.x,\\n y: bbox.min.y,\\n x2: bbox.max.x,\\n y2: bbox.max.y,\\n width: bbox.max.x - bbox.min.x,\\n height: bbox.max.y - bbox.min.y\\n };\\n };\\n /*\\\\\\n * Raphael.isPointInsideBBox\\n [ method ]\\n **\\n * Utility method\\n **\\n * Returns `true` if given point is inside bounding boxes.\\n > Parameters\\n - bbox (string) bounding box\\n - x (string) x coordinate of the point\\n - y (string) y coordinate of the point\\n = (boolean) `true` if point inside\\n \\\\*/\\n R.isPointInsideBBox = function (bbox, x, y) {\\n return x >= bbox.x && x <= bbox.x2 && y >= bbox.y && y <= bbox.y2;\\n };\\n /*\\\\\\n * Raphael.isBBoxIntersect\\n [ method ]\\n **\\n * Utility method\\n **\\n * Returns `true` if two bounding boxes intersect\\n > Parameters\\n - bbox1 (string) first bounding box\\n - bbox2 (string) second bounding box\\n = (boolean) `true` if they intersect\\n \\\\*/\\n R.isBBoxIntersect = function (bbox1, bbox2) {\\n var i = R.isPointInsideBBox;\\n return i(bbox2, bbox1.x, bbox1.y)\\n || i(bbox2, bbox1.x2, bbox1.y)\\n || i(bbox2, bbox1.x, bbox1.y2)\\n || i(bbox2, bbox1.x2, bbox1.y2)\\n || i(bbox1, bbox2.x, bbox2.y)\\n || i(bbox1, bbox2.x2, bbox2.y)\\n || i(bbox1, bbox2.x, bbox2.y2)\\n || i(bbox1, bbox2.x2, bbox2.y2)\\n || (bbox1.x < bbox2.x2 && bbox1.x > bbox2.x || bbox2.x < bbox1.x2 && bbox2.x > bbox1.x)\\n && (bbox1.y < bbox2.y2 && bbox1.y > bbox2.y || bbox2.y < bbox1.y2 && bbox2.y > bbox1.y);\\n };\\n function base3(t, p1, p2, p3, p4) {\\n var t1 = -3 * p1 + 9 * p2 - 9 * p3 + 3 * p4,\\n t2 = t * t1 + 6 * p1 - 12 * p2 + 6 * p3;\\n return t * t2 - 3 * p1 + 3 * p2;\\n }\\n function bezlen(x1, y1, x2, y2, x3, y3, x4, y4, z) {\\n if (z == null) {\\n z = 1;\\n }\\n z = z > 1 ? 1 : z < 0 ? 0 : z;\\n var z2 = z / 2,\\n n = 12,\\n Tvalues = [-0.1252,0.1252,-0.3678,0.3678,-0.5873,0.5873,-0.7699,0.7699,-0.9041,0.9041,-0.9816,0.9816],\\n Cvalues = [0.2491,0.2491,0.2335,0.2335,0.2032,0.2032,0.1601,0.1601,0.1069,0.1069,0.0472,0.0472],\\n sum = 0;\\n for (var i = 0; i < n; i++) {\\n var ct = z2 * Tvalues[i] + z2,\\n xbase = base3(ct, x1, x2, x3, x4),\\n ybase = base3(ct, y1, y2, y3, y4),\\n comb = xbase * xbase + ybase * ybase;\\n sum += Cvalues[i] * math.sqrt(comb);\\n }\\n return z2 * sum;\\n }\\n function getTatLen(x1, y1, x2, y2, x3, y3, x4, y4, ll) {\\n if (ll < 0 || bezlen(x1, y1, x2, y2, x3, y3, x4, y4) < ll) {\\n return;\\n }\\n var t = 1,\\n step = t / 2,\\n t2 = t - step,\\n l,\\n e = .01;\\n l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2);\\n while (abs(l - ll) > e) {\\n step /= 2;\\n t2 += (l < ll ? 1 : -1) * step;\\n l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2);\\n }\\n return t2;\\n }\\n function intersect(x1, y1, x2, y2, x3, y3, x4, y4) {\\n if (\\n mmax(x1, x2) < mmin(x3, x4) ||\\n mmin(x1, x2) > mmax(x3, x4) ||\\n mmax(y1, y2) < mmin(y3, y4) ||\\n mmin(y1, y2) > mmax(y3, y4)\\n ) {\\n return;\\n }\\n var nx = (x1 * y2 - y1 * x2) * (x3 - x4) - (x1 - x2) * (x3 * y4 - y3 * x4),\\n ny = (x1 * y2 - y1 * x2) * (y3 - y4) - (y1 - y2) * (x3 * y4 - y3 * x4),\\n denominator = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4);\\n\\n if (!denominator) {\\n return;\\n }\\n var px = nx / denominator,\\n py = ny / denominator,\\n px2 = +px.toFixed(2),\\n py2 = +py.toFixed(2);\\n if (\\n px2 < +mmin(x1, x2).toFixed(2) ||\\n px2 > +mmax(x1, x2).toFixed(2) ||\\n px2 < +mmin(x3, x4).toFixed(2) ||\\n px2 > +mmax(x3, x4).toFixed(2) ||\\n py2 < +mmin(y1, y2).toFixed(2) ||\\n py2 > +mmax(y1, y2).toFixed(2) ||\\n py2 < +mmin(y3, y4).toFixed(2) ||\\n py2 > +mmax(y3, y4).toFixed(2)\\n ) {\\n return;\\n }\\n return {x: px, y: py};\\n }\\n function inter(bez1, bez2) {\\n return interHelper(bez1, bez2);\\n }\\n function interCount(bez1, bez2) {\\n return interHelper(bez1, bez2, 1);\\n }\\n function interHelper(bez1, bez2, justCount) {\\n var bbox1 = R.bezierBBox(bez1),\\n bbox2 = R.bezierBBox(bez2);\\n if (!R.isBBoxIntersect(bbox1, bbox2)) {\\n return justCount ? 0 : [];\\n }\\n var l1 = bezlen.apply(0, bez1),\\n l2 = bezlen.apply(0, bez2),\\n n1 = mmax(~~(l1 / 5), 1),\\n n2 = mmax(~~(l2 / 5), 1),\\n dots1 = [],\\n dots2 = [],\\n xy = {},\\n res = justCount ? 0 : [];\\n for (var i = 0; i < n1 + 1; i++) {\\n var p = R.findDotsAtSegment.apply(R, bez1.concat(i / n1));\\n dots1.push({x: p.x, y: p.y, t: i / n1});\\n }\\n for (i = 0; i < n2 + 1; i++) {\\n p = R.findDotsAtSegment.apply(R, bez2.concat(i / n2));\\n dots2.push({x: p.x, y: p.y, t: i / n2});\\n }\\n for (i = 0; i < n1; i++) {\\n for (var j = 0; j < n2; j++) {\\n var di = dots1[i],\\n di1 = dots1[i + 1],\\n dj = dots2[j],\\n dj1 = dots2[j + 1],\\n ci = abs(di1.x - di.x) < .001 ? \\\"y\\\" : \\\"x\\\",\\n cj = abs(dj1.x - dj.x) < .001 ? \\\"y\\\" : \\\"x\\\",\\n is = intersect(di.x, di.y, di1.x, di1.y, dj.x, dj.y, dj1.x, dj1.y);\\n if (is) {\\n if (xy[is.x.toFixed(4)] == is.y.toFixed(4)) {\\n continue;\\n }\\n xy[is.x.toFixed(4)] = is.y.toFixed(4);\\n var t1 = di.t + abs((is[ci] - di[ci]) / (di1[ci] - di[ci])) * (di1.t - di.t),\\n t2 = dj.t + abs((is[cj] - dj[cj]) / (dj1[cj] - dj[cj])) * (dj1.t - dj.t);\\n if (t1 >= 0 && t1 <= 1.001 && t2 >= 0 && t2 <= 1.001) {\\n if (justCount) {\\n res++;\\n } else {\\n res.push({\\n x: is.x,\\n y: is.y,\\n t1: mmin(t1, 1),\\n t2: mmin(t2, 1)\\n });\\n }\\n }\\n }\\n }\\n }\\n return res;\\n }\\n /*\\\\\\n * Raphael.pathIntersection\\n [ method ]\\n **\\n * Utility method\\n **\\n * Finds intersections of two paths\\n > Parameters\\n - path1 (string) path string\\n - path2 (string) path string\\n = (array) dots of intersection\\n o [\\n o {\\n o x: (number) x coordinate of the point\\n o y: (number) y coordinate of the point\\n o t1: (number) t value for segment of path1\\n o t2: (number) t value for segment of path2\\n o segment1: (number) order number for segment of path1\\n o segment2: (number) order number for segment of path2\\n o bez1: (array) eight coordinates representing beziér curve for the segment of path1\\n o bez2: (array) eight coordinates representing beziér curve for the segment of path2\\n o }\\n o ]\\n \\\\*/\\n R.pathIntersection = function (path1, path2) {\\n return interPathHelper(path1, path2);\\n };\\n R.pathIntersectionNumber = function (path1, path2) {\\n return interPathHelper(path1, path2, 1);\\n };\\n function interPathHelper(path1, path2, justCount) {\\n path1 = R._path2curve(path1);\\n path2 = R._path2curve(path2);\\n var x1, y1, x2, y2, x1m, y1m, x2m, y2m, bez1, bez2,\\n res = justCount ? 0 : [];\\n for (var i = 0, ii = path1.length; i < ii; i++) {\\n var pi = path1[i];\\n if (pi[0] == \\\"M\\\") {\\n x1 = x1m = pi[1];\\n y1 = y1m = pi[2];\\n } else {\\n if (pi[0] == \\\"C\\\") {\\n bez1 = [x1, y1].concat(pi.slice(1));\\n x1 = bez1[6];\\n y1 = bez1[7];\\n } else {\\n bez1 = [x1, y1, x1, y1, x1m, y1m, x1m, y1m];\\n x1 = x1m;\\n y1 = y1m;\\n }\\n for (var j = 0, jj = path2.length; j < jj; j++) {\\n var pj = path2[j];\\n if (pj[0] == \\\"M\\\") {\\n x2 = x2m = pj[1];\\n y2 = y2m = pj[2];\\n } else {\\n if (pj[0] == \\\"C\\\") {\\n bez2 = [x2, y2].concat(pj.slice(1));\\n x2 = bez2[6];\\n y2 = bez2[7];\\n } else {\\n bez2 = [x2, y2, x2, y2, x2m, y2m, x2m, y2m];\\n x2 = x2m;\\n y2 = y2m;\\n }\\n var intr = interHelper(bez1, bez2, justCount);\\n if (justCount) {\\n res += intr;\\n } else {\\n for (var k = 0, kk = intr.length; k < kk; k++) {\\n intr[k].segment1 = i;\\n intr[k].segment2 = j;\\n intr[k].bez1 = bez1;\\n intr[k].bez2 = bez2;\\n }\\n res = res.concat(intr);\\n }\\n }\\n }\\n }\\n }\\n return res;\\n }\\n /*\\\\\\n * Raphael.isPointInsidePath\\n [ method ]\\n **\\n * Utility method\\n **\\n * Returns `true` if given point is inside a given closed path.\\n > Parameters\\n - path (string) path string\\n - x (number) x of the point\\n - y (number) y of the point\\n = (boolean) true, if point is inside the path\\n \\\\*/\\n R.isPointInsidePath = function (path, x, y) {\\n var bbox = R.pathBBox(path);\\n return R.isPointInsideBBox(bbox, x, y) &&\\n interPathHelper(path, [[\\\"M\\\", x, y], [\\\"H\\\", bbox.x2 + 10]], 1) % 2 == 1;\\n };\\n R._removedFactory = function (methodname) {\\n return function () {\\n eve(\\\"raphael.log\\\", null, \\\"Rapha\\\\xebl: you are calling to method \\\\u201c\\\" + methodname + \\\"\\\\u201d of removed object\\\", methodname);\\n };\\n };\\n /*\\\\\\n * Raphael.pathBBox\\n [ method ]\\n **\\n * Utility method\\n **\\n * Return bounding box of a given path\\n > Parameters\\n - path (string) path string\\n = (object) bounding box\\n o {\\n o x: (number) x coordinate of the left top point of the box\\n o y: (number) y coordinate of the left top point of the box\\n o x2: (number) x coordinate of the right bottom point of the box\\n o y2: (number) y coordinate of the right bottom point of the box\\n o width: (number) width of the box\\n o height: (number) height of the box\\n o cx: (number) x coordinate of the center of the box\\n o cy: (number) y coordinate of the center of the box\\n o }\\n \\\\*/\\n var pathDimensions = R.pathBBox = function (path) {\\n var pth = paths(path);\\n if (pth.bbox) {\\n var b= pth.bbox;\\n return {x: b.x, y: b.y, width: b.width, height: b.height, x2: b.x2, y2: b.y2} ; // FREEGROUP FIX!!!!!!\\n // raphael reuse the returned bbox. You must clone it here if the caller need the bbxo for\\n //further calculation\\n }\\n if (!path) {\\n return {x: 0, y: 0, width: 0, height: 0, x2: 0, y2: 0};\\n }\\n path = path2curve(path);\\n var x = 0,\\n y = 0,\\n X = [],\\n Y = [],\\n p;\\n for (var i = 0, ii = path.length; i < ii; i++) {\\n p = path[i];\\n if (p[0] == \\\"M\\\") {\\n x = p[1];\\n y = p[2];\\n X.push(x);\\n Y.push(y);\\n } else {\\n var dim = curveDim(x, y, p[1], p[2], p[3], p[4], p[5], p[6]);\\n X = X[concat](dim.min.x, dim.max.x);\\n Y = Y[concat](dim.min.y, dim.max.y);\\n x = p[5];\\n y = p[6];\\n }\\n }\\n var xmin = mmin[apply](0, X),\\n ymin = mmin[apply](0, Y),\\n xmax = mmax[apply](0, X),\\n ymax = mmax[apply](0, Y),\\n width = xmax - xmin,\\n height = ymax - ymin,\\n bb = {\\n x: xmin,\\n y: ymin,\\n x2: xmax,\\n y2: ymax,\\n width: width,\\n height: height,\\n cx: xmin + width / 2,\\n cy: ymin + height / 2\\n };\\n pth.bbox = clone(bb);\\n return bb;\\n },\\n pathClone = function (pathArray) {\\n var res = clone(pathArray);\\n res.toString = R._path2string;\\n return res;\\n },\\n pathToRelative = R._pathToRelative = function (pathArray) {\\n var pth = paths(pathArray);\\n if (pth.rel) {\\n return pathClone(pth.rel);\\n }\\n if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) { // rough assumption\\n pathArray = R.parsePathString(pathArray);\\n }\\n var res = [],\\n x = 0,\\n y = 0,\\n mx = 0,\\n my = 0,\\n start = 0;\\n if (pathArray[0][0] == \\\"M\\\") {\\n x = pathArray[0][1];\\n y = pathArray[0][2];\\n mx = x;\\n my = y;\\n start++;\\n res.push([\\\"M\\\", x, y]);\\n }\\n for (var i = start, ii = pathArray.length; i < ii; i++) {\\n var r = res[i] = [],\\n pa = pathArray[i];\\n if (pa[0] != lowerCase.call(pa[0])) {\\n r[0] = lowerCase.call(pa[0]);\\n switch (r[0]) {\\n case \\\"a\\\":\\n r[1] = pa[1];\\n r[2] = pa[2];\\n r[3] = pa[3];\\n r[4] = pa[4];\\n r[5] = pa[5];\\n r[6] = +(pa[6] - x).toFixed(3);\\n r[7] = +(pa[7] - y).toFixed(3);\\n break;\\n case \\\"v\\\":\\n r[1] = +(pa[1] - y).toFixed(3);\\n break;\\n case \\\"m\\\":\\n mx = pa[1];\\n my = pa[2];\\n default:\\n for (var j = 1, jj = pa.length; j < jj; j++) {\\n r[j] = +(pa[j] - ((j % 2) ? x : y)).toFixed(3);\\n }\\n }\\n } else {\\n r = res[i] = [];\\n if (pa[0] == \\\"m\\\") {\\n mx = pa[1] + x;\\n my = pa[2] + y;\\n }\\n for (var k = 0, kk = pa.length; k < kk; k++) {\\n res[i][k] = pa[k];\\n }\\n }\\n var len = res[i].length;\\n switch (res[i][0]) {\\n case \\\"z\\\":\\n x = mx;\\n y = my;\\n break;\\n case \\\"h\\\":\\n x += +res[i][len - 1];\\n break;\\n case \\\"v\\\":\\n y += +res[i][len - 1];\\n break;\\n default:\\n x += +res[i][len - 2];\\n y += +res[i][len - 1];\\n }\\n }\\n res.toString = R._path2string;\\n pth.rel = pathClone(res);\\n return res;\\n },\\n pathToAbsolute = R._pathToAbsolute = function (pathArray) {\\n var pth = paths(pathArray);\\n if (pth.abs) {\\n return pathClone(pth.abs);\\n }\\n if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) { // rough assumption\\n pathArray = R.parsePathString(pathArray);\\n }\\n if (!pathArray || !pathArray.length) {\\n return [[\\\"M\\\", 0, 0]];\\n }\\n var res = [],\\n x = 0,\\n y = 0,\\n mx = 0,\\n my = 0,\\n start = 0;\\n if (pathArray[0][0] == \\\"M\\\") {\\n x = +pathArray[0][1];\\n y = +pathArray[0][2];\\n mx = x;\\n my = y;\\n start++;\\n res[0] = [\\\"M\\\", x, y];\\n }\\n var crz = pathArray.length == 3 && pathArray[0][0] == \\\"M\\\" && pathArray[1][0].toUpperCase() == \\\"R\\\" && pathArray[2][0].toUpperCase() == \\\"Z\\\";\\n for (var r, pa, i = start, ii = pathArray.length; i < ii; i++) {\\n res.push(r = []);\\n pa = pathArray[i];\\n if (pa[0] != upperCase.call(pa[0])) {\\n r[0] = upperCase.call(pa[0]);\\n switch (r[0]) {\\n case \\\"A\\\":\\n r[1] = pa[1];\\n r[2] = pa[2];\\n r[3] = pa[3];\\n r[4] = pa[4];\\n r[5] = pa[5];\\n r[6] = +(pa[6] + x);\\n r[7] = +(pa[7] + y);\\n break;\\n case \\\"V\\\":\\n r[1] = +pa[1] + y;\\n break;\\n case \\\"H\\\":\\n r[1] = +pa[1] + x;\\n break;\\n case \\\"R\\\":\\n var dots = [x, y][concat](pa.slice(1));\\n for (var j = 2, jj = dots.length; j < jj; j++) {\\n dots[j] = +dots[j] + x;\\n dots[++j] = +dots[j] + y;\\n }\\n res.pop();\\n res = res[concat](catmullRom2bezier(dots, crz));\\n break;\\n case \\\"M\\\":\\n mx = +pa[1] + x;\\n my = +pa[2] + y;\\n default:\\n for (j = 1, jj = pa.length; j < jj; j++) {\\n r[j] = +pa[j] + ((j % 2) ? x : y);\\n }\\n }\\n } else if (pa[0] == \\\"R\\\") {\\n dots = [x, y][concat](pa.slice(1));\\n res.pop();\\n res = res[concat](catmullRom2bezier(dots, crz));\\n r = [\\\"R\\\"][concat](pa.slice(-2));\\n } else {\\n for (var k = 0, kk = pa.length; k < kk; k++) {\\n r[k] = pa[k];\\n }\\n }\\n switch (r[0]) {\\n case \\\"Z\\\":\\n x = mx;\\n y = my;\\n break;\\n case \\\"H\\\":\\n x = r[1];\\n break;\\n case \\\"V\\\":\\n y = r[1];\\n break;\\n case \\\"M\\\":\\n mx = r[r.length - 2];\\n my = r[r.length - 1];\\n default:\\n x = r[r.length - 2];\\n y = r[r.length - 1];\\n }\\n }\\n res.toString = R._path2string;\\n pth.abs = pathClone(res);\\n return res;\\n },\\n l2c = function (x1, y1, x2, y2) {\\n return [x1, y1, x2, y2, x2, y2];\\n },\\n q2c = function (x1, y1, ax, ay, x2, y2) {\\n var _13 = 1 / 3,\\n _23 = 2 / 3;\\n return [\\n _13 * x1 + _23 * ax,\\n _13 * y1 + _23 * ay,\\n _13 * x2 + _23 * ax,\\n _13 * y2 + _23 * ay,\\n x2,\\n y2\\n ];\\n },\\n a2c = function (x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) {\\n // for more information of where this math came from visit:\\n // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\\n var _120 = PI * 120 / 180,\\n rad = PI / 180 * (+angle || 0),\\n res = [],\\n xy,\\n rotate = cacher(function (x, y, rad) {\\n var X = x * math.cos(rad) - y * math.sin(rad),\\n Y = x * math.sin(rad) + y * math.cos(rad);\\n return {x: X, y: Y};\\n });\\n if (!recursive) {\\n xy = rotate(x1, y1, -rad);\\n x1 = xy.x;\\n y1 = xy.y;\\n xy = rotate(x2, y2, -rad);\\n x2 = xy.x;\\n y2 = xy.y;\\n var cos = math.cos(PI / 180 * angle),\\n sin = math.sin(PI / 180 * angle),\\n x = (x1 - x2) / 2,\\n y = (y1 - y2) / 2;\\n var h = (x * x) / (rx * rx) + (y * y) / (ry * ry);\\n if (h > 1) {\\n h = math.sqrt(h);\\n rx = h * rx;\\n ry = h * ry;\\n }\\n var rx2 = rx * rx,\\n ry2 = ry * ry,\\n k = (large_arc_flag == sweep_flag ? -1 : 1) *\\n math.sqrt(abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x))),\\n cx = k * rx * y / ry + (x1 + x2) / 2,\\n cy = k * -ry * x / rx + (y1 + y2) / 2,\\n f1 = math.asin(((y1 - cy) / ry).toFixed(9)),\\n f2 = math.asin(((y2 - cy) / ry).toFixed(9));\\n\\n f1 = x1 < cx ? PI - f1 : f1;\\n f2 = x2 < cx ? PI - f2 : f2;\\n f1 < 0 && (f1 = PI * 2 + f1);\\n f2 < 0 && (f2 = PI * 2 + f2);\\n if (sweep_flag && f1 > f2) {\\n f1 = f1 - PI * 2;\\n }\\n if (!sweep_flag && f2 > f1) {\\n f2 = f2 - PI * 2;\\n }\\n } else {\\n f1 = recursive[0];\\n f2 = recursive[1];\\n cx = recursive[2];\\n cy = recursive[3];\\n }\\n var df = f2 - f1;\\n if (abs(df) > _120) {\\n var f2old = f2,\\n x2old = x2,\\n y2old = y2;\\n f2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1);\\n x2 = cx + rx * math.cos(f2);\\n y2 = cy + ry * math.sin(f2);\\n res = a2c(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy]);\\n }\\n df = f2 - f1;\\n var c1 = math.cos(f1),\\n s1 = math.sin(f1),\\n c2 = math.cos(f2),\\n s2 = math.sin(f2),\\n t = math.tan(df / 4),\\n hx = 4 / 3 * rx * t,\\n hy = 4 / 3 * ry * t,\\n m1 = [x1, y1],\\n m2 = [x1 + hx * s1, y1 - hy * c1],\\n m3 = [x2 + hx * s2, y2 - hy * c2],\\n m4 = [x2, y2];\\n m2[0] = 2 * m1[0] - m2[0];\\n m2[1] = 2 * m1[1] - m2[1];\\n if (recursive) {\\n return [m2, m3, m4][concat](res);\\n } else {\\n res = [m2, m3, m4][concat](res).join()[split](\\\",\\\");\\n var newres = [];\\n for (var i = 0, ii = res.length; i < ii; i++) {\\n newres[i] = i % 2 ? rotate(res[i - 1], res[i], rad).y : rotate(res[i], res[i + 1], rad).x;\\n }\\n return newres;\\n }\\n },\\n findDotAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) {\\n var t1 = 1 - t;\\n return {\\n x: pow(t1, 3) * p1x + pow(t1, 2) * 3 * t * c1x + t1 * 3 * t * t * c2x + pow(t, 3) * p2x,\\n y: pow(t1, 3) * p1y + pow(t1, 2) * 3 * t * c1y + t1 * 3 * t * t * c2y + pow(t, 3) * p2y\\n };\\n },\\n curveDim = cacher(function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) {\\n var a = (c2x - 2 * c1x + p1x) - (p2x - 2 * c2x + c1x),\\n b = 2 * (c1x - p1x) - 2 * (c2x - c1x),\\n c = p1x - c1x,\\n t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a,\\n t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a,\\n y = [p1y, p2y],\\n x = [p1x, p2x],\\n dot;\\n abs(t1) > \\\"1e12\\\" && (t1 = .5);\\n abs(t2) > \\\"1e12\\\" && (t2 = .5);\\n if (t1 > 0 && t1 < 1) {\\n dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1);\\n x.push(dot.x);\\n y.push(dot.y);\\n }\\n if (t2 > 0 && t2 < 1) {\\n dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2);\\n x.push(dot.x);\\n y.push(dot.y);\\n }\\n a = (c2y - 2 * c1y + p1y) - (p2y - 2 * c2y + c1y);\\n b = 2 * (c1y - p1y) - 2 * (c2y - c1y);\\n c = p1y - c1y;\\n t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a;\\n t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a;\\n abs(t1) > \\\"1e12\\\" && (t1 = .5);\\n abs(t2) > \\\"1e12\\\" && (t2 = .5);\\n if (t1 > 0 && t1 < 1) {\\n dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1);\\n x.push(dot.x);\\n y.push(dot.y);\\n }\\n if (t2 > 0 && t2 < 1) {\\n dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2);\\n x.push(dot.x);\\n y.push(dot.y);\\n }\\n return {\\n min: {x: mmin[apply](0, x), y: mmin[apply](0, y)},\\n max: {x: mmax[apply](0, x), y: mmax[apply](0, y)}\\n };\\n }),\\n path2curve = R._path2curve = cacher(function (path, path2) {\\n var pth = !path2 && paths(path);\\n if (!path2 && pth.curve) {\\n return pathClone(pth.curve);\\n }\\n var p = pathToAbsolute(path),\\n p2 = path2 && pathToAbsolute(path2),\\n attrs = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null},\\n attrs2 = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null},\\n processPath = function (path, d, pcom) {\\n var nx, ny, tq = {T:1, Q:1};\\n if (!path) {\\n return [\\\"C\\\", d.x, d.y, d.x, d.y, d.x, d.y];\\n }\\n !(path[0] in tq) && (d.qx = d.qy = null);\\n switch (path[0]) {\\n case \\\"M\\\":\\n d.X = path[1];\\n d.Y = path[2];\\n break;\\n case \\\"A\\\":\\n path = [\\\"C\\\"][concat](a2c[apply](0, [d.x, d.y][concat](path.slice(1))));\\n break;\\n case \\\"S\\\":\\n if (pcom == \\\"C\\\" || pcom == \\\"S\\\") { // In \\\"S\\\" case we have to take into account, if the previous command is C/S.\\n nx = d.x * 2 - d.bx; // And reflect the previous\\n ny = d.y * 2 - d.by; // command's control point relative to the current point.\\n }\\n else { // or some else or nothing\\n nx = d.x;\\n ny = d.y;\\n }\\n path = [\\\"C\\\", nx, ny][concat](path.slice(1));\\n break;\\n case \\\"T\\\":\\n if (pcom == \\\"Q\\\" || pcom == \\\"T\\\") { // In \\\"T\\\" case we have to take into account, if the previous command is Q/T.\\n d.qx = d.x * 2 - d.qx; // And make a reflection similar\\n d.qy = d.y * 2 - d.qy; // to case \\\"S\\\".\\n }\\n else { // or something else or nothing\\n d.qx = d.x;\\n d.qy = d.y;\\n }\\n path = [\\\"C\\\"][concat](q2c(d.x, d.y, d.qx, d.qy, path[1], path[2]));\\n break;\\n case \\\"Q\\\":\\n d.qx = path[1];\\n d.qy = path[2];\\n path = [\\\"C\\\"][concat](q2c(d.x, d.y, path[1], path[2], path[3], path[4]));\\n break;\\n case \\\"L\\\":\\n path = [\\\"C\\\"][concat](l2c(d.x, d.y, path[1], path[2]));\\n break;\\n case \\\"H\\\":\\n path = [\\\"C\\\"][concat](l2c(d.x, d.y, path[1], d.y));\\n break;\\n case \\\"V\\\":\\n path = [\\\"C\\\"][concat](l2c(d.x, d.y, d.x, path[1]));\\n break;\\n case \\\"Z\\\":\\n path = [\\\"C\\\"][concat](l2c(d.x, d.y, d.X, d.Y));\\n break;\\n }\\n return path;\\n },\\n fixArc = function (pp, i) {\\n if (pp[i].length > 7) {\\n pp[i].shift();\\n var pi = pp[i];\\n while (pi.length) {\\n pcoms1[i]=\\\"A\\\"; // if created multiple C:s, their original seg is saved\\n p2 && (pcoms2[i]=\\\"A\\\"); // the same as above\\n pp.splice(i++, 0, [\\\"C\\\"][concat](pi.splice(0, 6)));\\n }\\n pp.splice(i, 1);\\n ii = mmax(p.length, p2 && p2.length || 0);\\n }\\n },\\n fixM = function (path1, path2, a1, a2, i) {\\n if (path1 && path2 && path1[i][0] == \\\"M\\\" && path2[i][0] != \\\"M\\\") {\\n path2.splice(i, 0, [\\\"M\\\", a2.x, a2.y]);\\n a1.bx = 0;\\n a1.by = 0;\\n a1.x = path1[i][1];\\n a1.y = path1[i][2];\\n ii = mmax(p.length, p2 && p2.length || 0);\\n }\\n },\\n pcoms1 = [], // path commands of original path p\\n pcoms2 = [], // path commands of original path p2\\n pfirst = \\\"\\\", // temporary holder for original path command\\n pcom = \\\"\\\"; // holder for previous path command of original path\\n for (var i = 0, ii = mmax(p.length, p2 && p2.length || 0); i < ii; i++) {\\n p[i] && (pfirst = p[i][0]); // save current path command\\n\\n if (pfirst != \\\"C\\\") // C is not saved yet, because it may be result of conversion\\n {\\n pcoms1[i] = pfirst; // Save current path command\\n i && ( pcom = pcoms1[i-1]); // Get previous path command pcom\\n }\\n p[i] = processPath(p[i], attrs, pcom); // Previous path command is inputted to processPath\\n\\n if (pcoms1[i] != \\\"A\\\" && pfirst == \\\"C\\\") pcoms1[i] = \\\"C\\\"; // A is the only command\\n // which may produce multiple C:s\\n // so we have to make sure that C is also C in original path\\n\\n fixArc(p, i); // fixArc adds also the right amount of A:s to pcoms1\\n\\n if (p2) { // the same procedures is done to p2\\n p2[i] && (pfirst = p2[i][0]);\\n if (pfirst != \\\"C\\\")\\n {\\n pcoms2[i] = pfirst;\\n i && (pcom = pcoms2[i-1]);\\n }\\n p2[i] = processPath(p2[i], attrs2, pcom);\\n\\n if (pcoms2[i]!=\\\"A\\\" && pfirst==\\\"C\\\") pcoms2[i]=\\\"C\\\";\\n\\n fixArc(p2, i);\\n }\\n fixM(p, p2, attrs, attrs2, i);\\n fixM(p2, p, attrs2, attrs, i);\\n var seg = p[i],\\n seg2 = p2 && p2[i],\\n seglen = seg.length,\\n seg2len = p2 && seg2.length;\\n attrs.x = seg[seglen - 2];\\n attrs.y = seg[seglen - 1];\\n attrs.bx = toFloat(seg[seglen - 4]) || attrs.x;\\n attrs.by = toFloat(seg[seglen - 3]) || attrs.y;\\n attrs2.bx = p2 && (toFloat(seg2[seg2len - 4]) || attrs2.x);\\n attrs2.by = p2 && (toFloat(seg2[seg2len - 3]) || attrs2.y);\\n attrs2.x = p2 && seg2[seg2len - 2];\\n attrs2.y = p2 && seg2[seg2len - 1];\\n }\\n if (!p2) {\\n pth.curve = pathClone(p);\\n }\\n return p2 ? [p, p2] : p;\\n }, null, pathClone),\\n parseDots = R._parseDots = cacher(function (gradient) {\\n var dots = [];\\n for (var i = 0, ii = gradient.length; i < ii; i++) {\\n var dot = {},\\n par = gradient[i].match(/^([^:]*):?([\\\\d\\\\.]*)/);\\n dot.color = R.getRGB(par[1]);\\n if (dot.color.error) {\\n return null;\\n }\\n dot.opacity = dot.color.opacity;\\n dot.color = dot.color.hex;\\n par[2] && (dot.offset = par[2] + \\\"%\\\");\\n dots.push(dot);\\n }\\n for (i = 1, ii = dots.length - 1; i < ii; i++) {\\n if (!dots[i].offset) {\\n var start = toFloat(dots[i - 1].offset || 0),\\n end = 0;\\n for (var j = i + 1; j < ii; j++) {\\n if (dots[j].offset) {\\n end = dots[j].offset;\\n break;\\n }\\n }\\n if (!end) {\\n end = 100;\\n j = ii;\\n }\\n end = toFloat(end);\\n var d = (end - start) / (j - i + 1);\\n for (; i < j; i++) {\\n start += d;\\n dots[i].offset = start + \\\"%\\\";\\n }\\n }\\n }\\n return dots;\\n }),\\n tear = R._tear = function (el, paper) {\\n el == paper.top && (paper.top = el.prev);\\n el == paper.bottom && (paper.bottom = el.next);\\n el.next && (el.next.prev = el.prev);\\n el.prev && (el.prev.next = el.next);\\n },\\n tofront = R._tofront = function (el, paper) {\\n if (paper.top === el) {\\n return;\\n }\\n tear(el, paper);\\n el.next = null;\\n el.prev = paper.top;\\n paper.top.next = el;\\n paper.top = el;\\n },\\n toback = R._toback = function (el, paper) {\\n if (paper.bottom === el) {\\n return;\\n }\\n tear(el, paper);\\n el.next = paper.bottom;\\n el.prev = null;\\n paper.bottom.prev = el;\\n paper.bottom = el;\\n },\\n insertafter = R._insertafter = function (el, el2, paper) {\\n tear(el, paper);\\n el2 == paper.top && (paper.top = el);\\n el2.next && (el2.next.prev = el);\\n el.next = el2.next;\\n el.prev = el2;\\n el2.next = el;\\n },\\n insertbefore = R._insertbefore = function (el, el2, paper) {\\n tear(el, paper);\\n el2 == paper.bottom && (paper.bottom = el);\\n el2.prev && (el2.prev.next = el);\\n el.prev = el2.prev;\\n el2.prev = el;\\n el.next = el2;\\n },\\n /*\\\\\\n * Raphael.toMatrix\\n [ method ]\\n **\\n * Utility method\\n **\\n * Returns matrix of transformations applied to a given path\\n > Parameters\\n - path (string) path string\\n - transform (string|array) transformation string\\n = (object) @Matrix\\n \\\\*/\\n toMatrix = R.toMatrix = function (path, transform) {\\n var bb = pathDimensions(path),\\n el = {\\n _: {\\n transform: E\\n },\\n getBBox: function () {\\n return bb;\\n }\\n };\\n extractTransform(el, transform);\\n return el.matrix;\\n },\\n /*\\\\\\n * Raphael.transformPath\\n [ method ]\\n **\\n * Utility method\\n **\\n * Returns path transformed by a given transformation\\n > Parameters\\n - path (string) path string\\n - transform (string|array) transformation string\\n = (string) path\\n \\\\*/\\n transformPath = R.transformPath = function (path, transform) {\\n return mapPath(path, toMatrix(path, transform));\\n },\\n extractTransform = R._extractTransform = function (el, tstr) {\\n if (tstr == null) {\\n return el._.transform;\\n }\\n tstr = Str(tstr).replace(/\\\\.{3}|\\\\u2026/g, el._.transform || E);\\n var tdata = R.parseTransformString(tstr),\\n deg = 0,\\n dx = 0,\\n dy = 0,\\n sx = 1,\\n sy = 1,\\n _ = el._,\\n m = new Matrix;\\n _.transform = tdata || [];\\n if (tdata) {\\n for (var i = 0, ii = tdata.length; i < ii; i++) {\\n var t = tdata[i],\\n tlen = t.length,\\n command = Str(t[0]).toLowerCase(),\\n absolute = t[0] != command,\\n inver = absolute ? m.invert() : 0,\\n x1,\\n y1,\\n x2,\\n y2,\\n bb;\\n if (command == \\\"t\\\" && tlen == 3) {\\n if (absolute) {\\n x1 = inver.x(0, 0);\\n y1 = inver.y(0, 0);\\n x2 = inver.x(t[1], t[2]);\\n y2 = inver.y(t[1], t[2]);\\n m.translate(x2 - x1, y2 - y1);\\n } else {\\n m.translate(t[1], t[2]);\\n }\\n } else if (command == \\\"r\\\") {\\n if (tlen == 2) {\\n bb = bb || el.getBBox(1);\\n m.rotate(t[1], bb.x + bb.width / 2, bb.y + bb.height / 2);\\n deg += t[1];\\n } else if (tlen == 4) {\\n if (absolute) {\\n x2 = inver.x(t[2], t[3]);\\n y2 = inver.y(t[2], t[3]);\\n m.rotate(t[1], x2, y2);\\n } else {\\n m.rotate(t[1], t[2], t[3]);\\n }\\n deg += t[1];\\n }\\n } else if (command == \\\"s\\\") {\\n if (tlen == 2 || tlen == 3) {\\n bb = bb || el.getBBox(1);\\n m.scale(t[1], t[tlen - 1], bb.x + bb.width / 2, bb.y + bb.height / 2);\\n sx *= t[1];\\n sy *= t[tlen - 1];\\n } else if (tlen == 5) {\\n if (absolute) {\\n x2 = inver.x(t[3], t[4]);\\n y2 = inver.y(t[3], t[4]);\\n m.scale(t[1], t[2], x2, y2);\\n } else {\\n m.scale(t[1], t[2], t[3], t[4]);\\n }\\n sx *= t[1];\\n sy *= t[2];\\n }\\n } else if (command == \\\"m\\\" && tlen == 7) {\\n m.add(t[1], t[2], t[3], t[4], t[5], t[6]);\\n }\\n _.dirtyT = 1;\\n el.matrix = m;\\n }\\n }\\n\\n /*\\\\\\n * Element.matrix\\n [ property (object) ]\\n **\\n * Keeps @Matrix object, which represents element transformation\\n \\\\*/\\n el.matrix = m;\\n\\n _.sx = sx;\\n _.sy = sy;\\n _.deg = deg;\\n _.dx = dx = m.e;\\n _.dy = dy = m.f;\\n\\n if (sx == 1 && sy == 1 && !deg && _.bbox) {\\n _.bbox.x += +dx;\\n _.bbox.y += +dy;\\n } else {\\n _.dirtyT = 1;\\n }\\n },\\n getEmpty = function (item) {\\n var l = item[0];\\n switch (l.toLowerCase()) {\\n case \\\"t\\\": return [l, 0, 0];\\n case \\\"m\\\": return [l, 1, 0, 0, 1, 0, 0];\\n case \\\"r\\\": if (item.length == 4) {\\n return [l, 0, item[2], item[3]];\\n } else {\\n return [l, 0];\\n }\\n case \\\"s\\\": if (item.length == 5) {\\n return [l, 1, 1, item[3], item[4]];\\n } else if (item.length == 3) {\\n return [l, 1, 1];\\n } else {\\n return [l, 1];\\n }\\n }\\n },\\n equaliseTransform = R._equaliseTransform = function (t1, t2) {\\n t2 = Str(t2).replace(/\\\\.{3}|\\\\u2026/g, t1);\\n t1 = R.parseTransformString(t1) || [];\\n t2 = R.parseTransformString(t2) || [];\\n var maxlength = mmax(t1.length, t2.length),\\n from = [],\\n to = [],\\n i = 0, j, jj,\\n tt1, tt2;\\n for (; i < maxlength; i++) {\\n tt1 = t1[i] || getEmpty(t2[i]);\\n tt2 = t2[i] || getEmpty(tt1);\\n if ((tt1[0] != tt2[0]) ||\\n (tt1[0].toLowerCase() == \\\"r\\\" && (tt1[2] != tt2[2] || tt1[3] != tt2[3])) ||\\n (tt1[0].toLowerCase() == \\\"s\\\" && (tt1[3] != tt2[3] || tt1[4] != tt2[4]))\\n ) {\\n return;\\n }\\n from[i] = [];\\n to[i] = [];\\n for (j = 0, jj = mmax(tt1.length, tt2.length); j < jj; j++) {\\n j in tt1 && (from[i][j] = tt1[j]);\\n j in tt2 && (to[i][j] = tt2[j]);\\n }\\n }\\n return {\\n from: from,\\n to: to\\n };\\n };\\n R._getContainer = function (x, y, w, h) {\\n var container;\\n container = h == null && !R.is(x, \\\"object\\\") ? g.doc.getElementById(x) : x;\\n if (container == null) {\\n return;\\n }\\n if (container.tagName) {\\n if (y == null) {\\n return {\\n container: container,\\n width: container.style.pixelWidth || container.offsetWidth,\\n height: container.style.pixelHeight || container.offsetHeight\\n };\\n } else {\\n return {\\n container: container,\\n width: y,\\n height: w\\n };\\n }\\n }\\n return {\\n container: 1,\\n x: x,\\n y: y,\\n width: w,\\n height: h\\n };\\n };\\n /*\\\\\\n * Raphael.pathToRelative\\n [ method ]\\n **\\n * Utility method\\n **\\n * Converts path to relative form\\n > Parameters\\n - pathString (string|array) path string or array of segments\\n = (array) array of segments.\\n \\\\*/\\n R.pathToRelative = pathToRelative;\\n R._engine = {};\\n /*\\\\\\n * Raphael.path2curve\\n [ method ]\\n **\\n * Utility method\\n **\\n * Converts path to a new path where all segments are cubic bezier curves.\\n > Parameters\\n - pathString (string|array) path string or array of segments\\n = (array) array of segments.\\n \\\\*/\\n R.path2curve = path2curve;\\n /*\\\\\\n * Raphael.matrix\\n [ method ]\\n **\\n * Utility method\\n **\\n * Returns matrix based on given parameters.\\n > Parameters\\n - a (number)\\n - b (number)\\n - c (number)\\n - d (number)\\n - e (number)\\n - f (number)\\n = (object) @Matrix\\n \\\\*/\\n R.matrix = function (a, b, c, d, e, f) {\\n return new Matrix(a, b, c, d, e, f);\\n };\\n function Matrix(a, b, c, d, e, f) {\\n if (a != null) {\\n this.a = +a;\\n this.b = +b;\\n this.c = +c;\\n this.d = +d;\\n this.e = +e;\\n this.f = +f;\\n } else {\\n this.a = 1;\\n this.b = 0;\\n this.c = 0;\\n this.d = 1;\\n this.e = 0;\\n this.f = 0;\\n }\\n }\\n (function (matrixproto) {\\n /*\\\\\\n * Matrix.add\\n [ method ]\\n **\\n * Adds given matrix to existing one.\\n > Parameters\\n - a (number)\\n - b (number)\\n - c (number)\\n - d (number)\\n - e (number)\\n - f (number)\\n or\\n - matrix (object) @Matrix\\n \\\\*/\\n matrixproto.add = function (a, b, c, d, e, f) {\\n var out = [[], [], []],\\n m = [[this.a, this.c, this.e], [this.b, this.d, this.f], [0, 0, 1]],\\n matrix = [[a, c, e], [b, d, f], [0, 0, 1]],\\n x, y, z, res;\\n\\n if (a && a instanceof Matrix) {\\n matrix = [[a.a, a.c, a.e], [a.b, a.d, a.f], [0, 0, 1]];\\n }\\n\\n for (x = 0; x < 3; x++) {\\n for (y = 0; y < 3; y++) {\\n res = 0;\\n for (z = 0; z < 3; z++) {\\n res += m[x][z] * matrix[z][y];\\n }\\n out[x][y] = res;\\n }\\n }\\n this.a = out[0][0];\\n this.b = out[1][0];\\n this.c = out[0][1];\\n this.d = out[1][1];\\n this.e = out[0][2];\\n this.f = out[1][2];\\n };\\n /*\\\\\\n * Matrix.invert\\n [ method ]\\n **\\n * Returns inverted version of the matrix\\n = (object) @Matrix\\n \\\\*/\\n matrixproto.invert = function () {\\n var me = this,\\n x = me.a * me.d - me.b * me.c;\\n return new Matrix(me.d / x, -me.b / x, -me.c / x, me.a / x, (me.c * me.f - me.d * me.e) / x, (me.b * me.e - me.a * me.f) / x);\\n };\\n /*\\\\\\n * Matrix.clone\\n [ method ]\\n **\\n * Returns copy of the matrix\\n = (object) @Matrix\\n \\\\*/\\n matrixproto.clone = function () {\\n return new Matrix(this.a, this.b, this.c, this.d, this.e, this.f);\\n };\\n /*\\\\\\n * Matrix.translate\\n [ method ]\\n **\\n * Translate the matrix\\n > Parameters\\n - x (number)\\n - y (number)\\n \\\\*/\\n matrixproto.translate = function (x, y) {\\n this.add(1, 0, 0, 1, x, y);\\n };\\n /*\\\\\\n * Matrix.scale\\n [ method ]\\n **\\n * Scales the matrix\\n > Parameters\\n - x (number)\\n - y (number) #optional\\n - cx (number) #optional\\n - cy (number) #optional\\n \\\\*/\\n matrixproto.scale = function (x, y, cx, cy) {\\n y == null && (y = x);\\n (cx || cy) && this.add(1, 0, 0, 1, cx, cy);\\n this.add(x, 0, 0, y, 0, 0);\\n (cx || cy) && this.add(1, 0, 0, 1, -cx, -cy);\\n };\\n /*\\\\\\n * Matrix.rotate\\n [ method ]\\n **\\n * Rotates the matrix\\n > Parameters\\n - a (number)\\n - x (number)\\n - y (number)\\n \\\\*/\\n matrixproto.rotate = function (a, x, y) {\\n a = R.rad(a);\\n x = x || 0;\\n y = y || 0;\\n var cos = +math.cos(a).toFixed(9),\\n sin = +math.sin(a).toFixed(9);\\n this.add(cos, sin, -sin, cos, x, y);\\n this.add(1, 0, 0, 1, -x, -y);\\n };\\n /*\\\\\\n * Matrix.x\\n [ method ]\\n **\\n * Return x coordinate for given point after transformation described by the matrix. See also @Matrix.y\\n > Parameters\\n - x (number)\\n - y (number)\\n = (number) x\\n \\\\*/\\n matrixproto.x = function (x, y) {\\n return x * this.a + y * this.c + this.e;\\n };\\n /*\\\\\\n * Matrix.y\\n [ method ]\\n **\\n * Return y coordinate for given point after transformation described by the matrix. See also @Matrix.x\\n > Parameters\\n - x (number)\\n - y (number)\\n = (number) y\\n \\\\*/\\n matrixproto.y = function (x, y) {\\n return x * this.b + y * this.d + this.f;\\n };\\n matrixproto.get = function (i) {\\n return +this[Str.fromCharCode(97 + i)].toFixed(4);\\n };\\n matrixproto.toString = function () {\\n return R.svg ?\\n \\\"matrix(\\\" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)].join() + \\\")\\\" :\\n [this.get(0), this.get(2), this.get(1), this.get(3), 0, 0].join();\\n };\\n matrixproto.toFilter = function () {\\n return \\\"progid:DXImageTransform.Microsoft.Matrix(M11=\\\" + this.get(0) +\\n \\\", M12=\\\" + this.get(2) + \\\", M21=\\\" + this.get(1) + \\\", M22=\\\" + this.get(3) +\\n \\\", Dx=\\\" + this.get(4) + \\\", Dy=\\\" + this.get(5) + \\\", sizingmethod='auto expand')\\\";\\n };\\n matrixproto.offset = function () {\\n return [this.e.toFixed(4), this.f.toFixed(4)];\\n };\\n function norm(a) {\\n return a[0] * a[0] + a[1] * a[1];\\n }\\n function normalize(a) {\\n var mag = math.sqrt(norm(a));\\n a[0] && (a[0] /= mag);\\n a[1] && (a[1] /= mag);\\n }\\n /*\\\\\\n * Matrix.split\\n [ method ]\\n **\\n * Splits matrix into primitive transformations\\n = (object) in format:\\n o dx (number) translation by x\\n o dy (number) translation by y\\n o scalex (number) scale by x\\n o scaley (number) scale by y\\n o shear (number) shear\\n o rotate (number) rotation in deg\\n o isSimple (boolean) could it be represented via simple transformations\\n \\\\*/\\n matrixproto.split = function () {\\n var out = {};\\n // translation\\n out.dx = this.e;\\n out.dy = this.f;\\n\\n // scale and shear\\n var row = [[this.a, this.c], [this.b, this.d]];\\n out.scalex = math.sqrt(norm(row[0]));\\n normalize(row[0]);\\n\\n out.shear = row[0][0] * row[1][0] + row[0][1] * row[1][1];\\n row[1] = [row[1][0] - row[0][0] * out.shear, row[1][1] - row[0][1] * out.shear];\\n\\n out.scaley = math.sqrt(norm(row[1]));\\n normalize(row[1]);\\n out.shear /= out.scaley;\\n\\n // rotation\\n var sin = -row[0][1],\\n cos = row[1][1];\\n if (cos < 0) {\\n out.rotate = R.deg(math.acos(cos));\\n if (sin < 0) {\\n out.rotate = 360 - out.rotate;\\n }\\n } else {\\n out.rotate = R.deg(math.asin(sin));\\n }\\n\\n out.isSimple = !+out.shear.toFixed(9) && (out.scalex.toFixed(9) == out.scaley.toFixed(9) || !out.rotate);\\n out.isSuperSimple = !+out.shear.toFixed(9) && out.scalex.toFixed(9) == out.scaley.toFixed(9) && !out.rotate;\\n out.noRotation = !+out.shear.toFixed(9) && !out.rotate;\\n return out;\\n };\\n /*\\\\\\n * Matrix.toTransformString\\n [ method ]\\n **\\n * Return transform string that represents given matrix\\n = (string) transform string\\n \\\\*/\\n matrixproto.toTransformString = function (shorter) {\\n var s = shorter || this[split]();\\n if (s.isSimple) {\\n s.scalex = +s.scalex.toFixed(4);\\n s.scaley = +s.scaley.toFixed(4);\\n s.rotate = +s.rotate.toFixed(4);\\n return (s.dx || s.dy ? \\\"t\\\" + [s.dx, s.dy] : E) +\\n (s.scalex != 1 || s.scaley != 1 ? \\\"s\\\" + [s.scalex, s.scaley, 0, 0] : E) +\\n (s.rotate ? \\\"r\\\" + [s.rotate, 0, 0] : E);\\n } else {\\n return \\\"m\\\" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)];\\n }\\n };\\n })(Matrix.prototype);\\n\\n var preventDefault = function () {\\n this.returnValue = false;\\n },\\n preventTouch = function () {\\n return this.originalEvent.preventDefault();\\n },\\n stopPropagation = function () {\\n this.cancelBubble = true;\\n },\\n stopTouch = function () {\\n return this.originalEvent.stopPropagation();\\n },\\n getEventPosition = function (e) {\\n var scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,\\n scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft;\\n\\n return {\\n x: e.clientX + scrollX,\\n y: e.clientY + scrollY\\n };\\n },\\n addEvent = (function () {\\n if (g.doc.addEventListener) {\\n return function (obj, type, fn, element) {\\n var f = function (e) {\\n var pos = getEventPosition(e);\\n return fn.call(element, e, pos.x, pos.y);\\n };\\n obj.addEventListener(type, f, false);\\n\\n if (supportsTouch && touchMap[type]) {\\n var _f = function (e) {\\n var pos = getEventPosition(e),\\n olde = e;\\n\\n for (var i = 0, ii = e.targetTouches && e.targetTouches.length; i < ii; i++) {\\n if (e.targetTouches[i].target == obj) {\\n e = e.targetTouches[i];\\n e.originalEvent = olde;\\n e.preventDefault = preventTouch;\\n e.stopPropagation = stopTouch;\\n break;\\n }\\n }\\n\\n return fn.call(element, e, pos.x, pos.y);\\n };\\n obj.addEventListener(touchMap[type], _f, false);\\n }\\n\\n return function () {\\n obj.removeEventListener(type, f, false);\\n\\n if (supportsTouch && touchMap[type])\\n obj.removeEventListener(touchMap[type], _f, false);\\n\\n return true;\\n };\\n };\\n } else if (g.doc.attachEvent) {\\n return function (obj, type, fn, element) {\\n var f = function (e) {\\n e = e || g.win.event;\\n var scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,\\n scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft,\\n x = e.clientX + scrollX,\\n y = e.clientY + scrollY;\\n e.preventDefault = e.preventDefault || preventDefault;\\n e.stopPropagation = e.stopPropagation || stopPropagation;\\n return fn.call(element, e, x, y);\\n };\\n obj.attachEvent(\\\"on\\\" + type, f);\\n var detacher = function () {\\n obj.detachEvent(\\\"on\\\" + type, f);\\n return true;\\n };\\n return detacher;\\n };\\n }\\n })(),\\n drag = [],\\n dragMove = function (e) {\\n var x = e.clientX,\\n y = e.clientY,\\n scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,\\n scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft,\\n dragi,\\n j = drag.length;\\n while (j--) {\\n dragi = drag[j];\\n if (supportsTouch && e.touches) {\\n var i = e.touches.length,\\n touch;\\n while (i--) {\\n touch = e.touches[i];\\n if (touch.identifier == dragi.el._drag.id) {\\n x = touch.clientX;\\n y = touch.clientY;\\n (e.originalEvent ? e.originalEvent : e).preventDefault();\\n break;\\n }\\n }\\n } else {\\n e.preventDefault();\\n }\\n var node = dragi.el.node,\\n o,\\n next = node.nextSibling,\\n parent = node.parentNode,\\n display = node.style.display;\\n g.win.opera && parent.removeChild(node);\\n node.style.display = \\\"none\\\";\\n o = dragi.el.paper.getElementByPoint(x, y);\\n node.style.display = display;\\n g.win.opera && (next ? parent.insertBefore(node, next) : parent.appendChild(node));\\n o && eve(\\\"raphael.drag.over.\\\" + dragi.el.id, dragi.el, o);\\n x += scrollX;\\n y += scrollY;\\n eve(\\\"raphael.drag.move.\\\" + dragi.el.id, dragi.move_scope || dragi.el, x - dragi.el._drag.x, y - dragi.el._drag.y, x, y, e);\\n }\\n },\\n dragUp = function (e) {\\n R.unmousemove(dragMove).unmouseup(dragUp);\\n var i = drag.length,\\n dragi;\\n while (i--) {\\n dragi = drag[i];\\n dragi.el._drag = {};\\n eve(\\\"raphael.drag.end.\\\" + dragi.el.id, dragi.end_scope || dragi.start_scope || dragi.move_scope || dragi.el, e);\\n }\\n drag = [];\\n },\\n /*\\\\\\n * Raphael.el\\n [ property (object) ]\\n **\\n * You can add your own method to elements. This is usefull when you want to hack default functionality or\\n * want to wrap some common transformation or attributes in one method. In difference to canvas methods,\\n * you can redefine element method at any time. Expending element methods wouldn’t affect set.\\n > Usage\\n | Raphael.el.red = function () {\\n | this.attr({fill: \\\"#f00\\\"});\\n | };\\n | // then use it\\n | paper.circle(100, 100, 20).red();\\n \\\\*/\\n elproto = R.el = {};\\n /*\\\\\\n * Element.click\\n [ method ]\\n **\\n * Adds event handler for click for the element.\\n > Parameters\\n - handler (function) handler for the event\\n = (object) @Element\\n \\\\*/\\n /*\\\\\\n * Element.unclick\\n [ method ]\\n **\\n * Removes event handler for click for the element.\\n > Parameters\\n - handler (function) #optional handler for the event\\n = (object) @Element\\n \\\\*/\\n\\n /*\\\\\\n * Element.dblclick\\n [ method ]\\n **\\n * Adds event handler for double click for the element.\\n > Parameters\\n - handler (function) handler for the event\\n = (object) @Element\\n \\\\*/\\n /*\\\\\\n * Element.undblclick\\n [ method ]\\n **\\n * Removes event handler for double click for the element.\\n > Parameters\\n - handler (function) #optional handler for the event\\n = (object) @Element\\n \\\\*/\\n\\n /*\\\\\\n * Element.mousedown\\n [ method ]\\n **\\n * Adds event handler for mousedown for the element.\\n > Parameters\\n - handler (function) handler for the event\\n = (object) @Element\\n \\\\*/\\n /*\\\\\\n * Element.unmousedown\\n [ method ]\\n **\\n * Removes event handler for mousedown for the element.\\n > Parameters\\n - handler (function) #optional handler for the event\\n = (object) @Element\\n \\\\*/\\n\\n /*\\\\\\n * Element.mousemove\\n [ method ]\\n **\\n * Adds event handler for mousemove for the element.\\n > Parameters\\n - handler (function) handler for the event\\n = (object) @Element\\n \\\\*/\\n /*\\\\\\n * Element.unmousemove\\n [ method ]\\n **\\n * Removes event handler for mousemove for the element.\\n > Parameters\\n - handler (function) #optional handler for the event\\n = (object) @Element\\n \\\\*/\\n\\n /*\\\\\\n * Element.mouseout\\n [ method ]\\n **\\n * Adds event handler for mouseout for the element.\\n > Parameters\\n - handler (function) handler for the event\\n = (object) @Element\\n \\\\*/\\n /*\\\\\\n * Element.unmouseout\\n [ method ]\\n **\\n * Removes event handler for mouseout for the element.\\n > Parameters\\n - handler (function) #optional handler for the event\\n = (object) @Element\\n \\\\*/\\n\\n /*\\\\\\n * Element.mouseover\\n [ method ]\\n **\\n * Adds event handler for mouseover for the element.\\n > Parameters\\n - handler (function) handler for the event\\n = (object) @Element\\n \\\\*/\\n /*\\\\\\n * Element.unmouseover\\n [ method ]\\n **\\n * Removes event handler for mouseover for the element.\\n > Parameters\\n - handler (function) #optional handler for the event\\n = (object) @Element\\n \\\\*/\\n\\n /*\\\\\\n * Element.mouseup\\n [ method ]\\n **\\n * Adds event handler for mouseup for the element.\\n > Parameters\\n - handler (function) handler for the event\\n = (object) @Element\\n \\\\*/\\n /*\\\\\\n * Element.unmouseup\\n [ method ]\\n **\\n * Removes event handler for mouseup for the element.\\n > Parameters\\n - handler (function) #optional handler for the event\\n = (object) @Element\\n \\\\*/\\n\\n /*\\\\\\n * Element.touchstart\\n [ method ]\\n **\\n * Adds event handler for touchstart for the element.\\n > Parameters\\n - handler (function) handler for the event\\n = (object) @Element\\n \\\\*/\\n /*\\\\\\n * Element.untouchstart\\n [ method ]\\n **\\n * Removes event handler for touchstart for the element.\\n > Parameters\\n - handler (function) #optional handler for the event\\n = (object) @Element\\n \\\\*/\\n\\n /*\\\\\\n * Element.touchmove\\n [ method ]\\n **\\n * Adds event handler for touchmove for the element.\\n > Parameters\\n - handler (function) handler for the event\\n = (object) @Element\\n \\\\*/\\n /*\\\\\\n * Element.untouchmove\\n [ method ]\\n **\\n * Removes event handler for touchmove for the element.\\n > Parameters\\n - handler (function) #optional handler for the event\\n = (object) @Element\\n \\\\*/\\n\\n /*\\\\\\n * Element.touchend\\n [ method ]\\n **\\n * Adds event handler for touchend for the element.\\n > Parameters\\n - handler (function) handler for the event\\n = (object) @Element\\n \\\\*/\\n /*\\\\\\n * Element.untouchend\\n [ method ]\\n **\\n * Removes event handler for touchend for the element.\\n > Parameters\\n - handler (function) #optional handler for the event\\n = (object) @Element\\n \\\\*/\\n\\n /*\\\\\\n * Element.touchcancel\\n [ method ]\\n **\\n * Adds event handler for touchcancel for the element.\\n > Parameters\\n - handler (function) handler for the event\\n = (object) @Element\\n \\\\*/\\n /*\\\\\\n * Element.untouchcancel\\n [ method ]\\n **\\n * Removes event handler for touchcancel for the element.\\n > Parameters\\n - handler (function) #optional handler for the event\\n = (object) @Element\\n \\\\*/\\n for (var i = events.length; i--;) {\\n (function (eventName) {\\n R[eventName] = elproto[eventName] = function (fn, scope) {\\n if (R.is(fn, \\\"function\\\")) {\\n this.events = this.events || [];\\n this.events.push({name: eventName, f: fn, unbind: addEvent(this.shape || this.node || g.doc, eventName, fn, scope || this)});\\n }\\n return this;\\n };\\n R[\\\"un\\\" + eventName] = elproto[\\\"un\\\" + eventName] = function (fn) {\\n var events = this.events || [],\\n l = events.length;\\n while (l--){\\n if (events[l].name == eventName && (R.is(fn, \\\"undefined\\\") || events[l].f == fn)) {\\n events[l].unbind();\\n events.splice(l, 1);\\n !events.length && delete this.events;\\n }\\n }\\n return this;\\n };\\n })(events[i]);\\n }\\n\\n /*\\\\\\n * Element.data\\n [ method ]\\n **\\n * Adds or retrieves given value asociated with given key.\\n **\\n * See also @Element.removeData\\n > Parameters\\n - key (string) key to store data\\n - value (any) #optional value to store\\n = (object) @Element\\n * or, if value is not specified:\\n = (any) value\\n * or, if key and value are not specified:\\n = (object) Key/value pairs for all the data associated with the element.\\n > Usage\\n | for (var i = 0, i < 5, i++) {\\n | paper.circle(10 + 15 * i, 10, 10)\\n | .attr({fill: \\\"#000\\\"})\\n | .data(\\\"i\\\", i)\\n | .click(function () {\\n | alert(this.data(\\\"i\\\"));\\n | });\\n | }\\n \\\\*/\\n elproto.data = function (key, value) {\\n var data = eldata[this.id] = eldata[this.id] || {};\\n if (arguments.length == 0) {\\n return data;\\n }\\n if (arguments.length == 1) {\\n if (R.is(key, \\\"object\\\")) {\\n for (var i in key) if (key[has](i)) {\\n this.data(i, key[i]);\\n }\\n return this;\\n }\\n eve(\\\"raphael.data.get.\\\" + this.id, this, data[key], key);\\n return data[key];\\n }\\n data[key] = value;\\n eve(\\\"raphael.data.set.\\\" + this.id, this, value, key);\\n return this;\\n };\\n /*\\\\\\n * Element.removeData\\n [ method ]\\n **\\n * Removes value associated with an element by given key.\\n * If key is not provided, removes all the data of the element.\\n > Parameters\\n - key (string) #optional key\\n = (object) @Element\\n \\\\*/\\n elproto.removeData = function (key) {\\n if (key == null) {\\n eldata[this.id] = {};\\n } else {\\n eldata[this.id] && delete eldata[this.id][key];\\n }\\n return this;\\n };\\n /*\\\\\\n * Element.getData\\n [ method ]\\n **\\n * Retrieves the element data\\n = (object) data\\n \\\\*/\\n elproto.getData = function () {\\n return clone(eldata[this.id] || {});\\n };\\n /*\\\\\\n * Element.hover\\n [ method ]\\n **\\n * Adds event handlers for hover for the element.\\n > Parameters\\n - f_in (function) handler for hover in\\n - f_out (function) handler for hover out\\n - icontext (object) #optional context for hover in handler\\n - ocontext (object) #optional context for hover out handler\\n = (object) @Element\\n \\\\*/\\n elproto.hover = function (f_in, f_out, scope_in, scope_out) {\\n return this.mouseover(f_in, scope_in).mouseout(f_out, scope_out || scope_in);\\n };\\n /*\\\\\\n * Element.unhover\\n [ method ]\\n **\\n * Removes event handlers for hover for the element.\\n > Parameters\\n - f_in (function) handler for hover in\\n - f_out (function) handler for hover out\\n = (object) @Element\\n \\\\*/\\n elproto.unhover = function (f_in, f_out) {\\n return this.unmouseover(f_in).unmouseout(f_out);\\n };\\n var draggable = [];\\n /*\\\\\\n * Element.drag\\n [ method ]\\n **\\n * Adds event handlers for drag of the element.\\n > Parameters\\n - onmove (function) handler for moving\\n - onstart (function) handler for drag start\\n - onend (function) handler for drag end\\n - mcontext (object) #optional context for moving handler\\n - scontext (object) #optional context for drag start handler\\n - econtext (object) #optional context for drag end handler\\n * Additionaly following `drag` events will be triggered: `drag.start.` on start,\\n * `drag.end.` on end and `drag.move.` on every move. When element will be dragged over another element\\n * `drag.over.` will be fired as well.\\n *\\n * Start event and start handler will be called in specified context or in context of the element with following parameters:\\n o x (number) x position of the mouse\\n o y (number) y position of the mouse\\n o event (object) DOM event object\\n * Move event and move handler will be called in specified context or in context of the element with following parameters:\\n o dx (number) shift by x from the start point\\n o dy (number) shift by y from the start point\\n o x (number) x position of the mouse\\n o y (number) y position of the mouse\\n o event (object) DOM event object\\n * End event and end handler will be called in specified context or in context of the element with following parameters:\\n o event (object) DOM event object\\n = (object) @Element\\n \\\\*/\\n elproto.drag = function (onmove, onstart, onend, move_scope, start_scope, end_scope) {\\n function start(e) {\\n (e.originalEvent || e).preventDefault();\\n var x = e.clientX,\\n y = e.clientY,\\n scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,\\n scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft;\\n this._drag.id = e.identifier;\\n if (supportsTouch && e.touches) {\\n var i = e.touches.length, touch;\\n while (i--) {\\n touch = e.touches[i];\\n this._drag.id = touch.identifier;\\n if (touch.identifier == this._drag.id) {\\n x = touch.clientX;\\n y = touch.clientY;\\n break;\\n }\\n }\\n }\\n this._drag.x = x + scrollX;\\n this._drag.y = y + scrollY;\\n !drag.length && R.mousemove(dragMove).mouseup(dragUp);\\n drag.push({el: this, move_scope: move_scope, start_scope: start_scope, end_scope: end_scope});\\n onstart && eve.on(\\\"raphael.drag.start.\\\" + this.id, onstart);\\n onmove && eve.on(\\\"raphael.drag.move.\\\" + this.id, onmove);\\n onend && eve.on(\\\"raphael.drag.end.\\\" + this.id, onend);\\n eve(\\\"raphael.drag.start.\\\" + this.id, start_scope || move_scope || this, e.clientX + scrollX, e.clientY + scrollY, e);\\n }\\n this._drag = {};\\n draggable.push({el: this, start: start});\\n this.mousedown(start);\\n return this;\\n };\\n /*\\\\\\n * Element.onDragOver\\n [ method ]\\n **\\n * Shortcut for assigning event handler for `drag.over.` event, where id is id of the element (see @Element.id).\\n > Parameters\\n - f (function) handler for event, first argument would be the element you are dragging over\\n \\\\*/\\n elproto.onDragOver = function (f) {\\n f ? eve.on(\\\"raphael.drag.over.\\\" + this.id, f) : eve.unbind(\\\"raphael.drag.over.\\\" + this.id);\\n };\\n /*\\\\\\n * Element.undrag\\n [ method ]\\n **\\n * Removes all drag event handlers from given element.\\n \\\\*/\\n elproto.undrag = function () {\\n var i = draggable.length;\\n while (i--) if (draggable[i].el == this) {\\n this.unmousedown(draggable[i].start);\\n draggable.splice(i, 1);\\n eve.unbind(\\\"raphael.drag.*.\\\" + this.id);\\n }\\n !draggable.length && R.unmousemove(dragMove).unmouseup(dragUp);\\n drag = [];\\n };\\n /*\\\\\\n * Paper.circle\\n [ method ]\\n **\\n * Draws a circle.\\n **\\n > Parameters\\n **\\n - x (number) x coordinate of the centre\\n - y (number) y coordinate of the centre\\n - r (number) radius\\n = (object) Raphaël element object with type “circle”\\n **\\n > Usage\\n | var c = paper.circle(50, 50, 40);\\n \\\\*/\\n paperproto.circle = function (x, y, r) {\\n var out = R._engine.circle(this, x || 0, y || 0, r || 0);\\n this.__set__ && this.__set__.push(out);\\n return out;\\n };\\n /*\\\\\\n * Paper.rect\\n [ method ]\\n *\\n * Draws a rectangle.\\n **\\n > Parameters\\n **\\n - x (number) x coordinate of the top left corner\\n - y (number) y coordinate of the top left corner\\n - width (number) width\\n - height (number) height\\n - r (number) #optional radius for rounded corners, default is 0\\n = (object) Raphaël element object with type “rect”\\n **\\n > Usage\\n | // regular rectangle\\n | var c = paper.rect(10, 10, 50, 50);\\n | // rectangle with rounded corners\\n | var c = paper.rect(40, 40, 50, 50, 10);\\n \\\\*/\\n paperproto.rect = function (x, y, w, h, r) {\\n var out = R._engine.rect(this, x || 0, y || 0, w || 0, h || 0, r || 0);\\n this.__set__ && this.__set__.push(out);\\n return out;\\n };\\n /*\\\\\\n * Paper.ellipse\\n [ method ]\\n **\\n * Draws an ellipse.\\n **\\n > Parameters\\n **\\n - x (number) x coordinate of the centre\\n - y (number) y coordinate of the centre\\n - rx (number) horizontal radius\\n - ry (number) vertical radius\\n = (object) Raphaël element object with type “ellipse”\\n **\\n > Usage\\n | var c = paper.ellipse(50, 50, 40, 20);\\n \\\\*/\\n paperproto.ellipse = function (x, y, rx, ry) {\\n var out = R._engine.ellipse(this, x || 0, y || 0, rx || 0, ry || 0);\\n this.__set__ && this.__set__.push(out);\\n return out;\\n };\\n /*\\\\\\n * Paper.path\\n [ method ]\\n **\\n * Creates a path element by given path data string.\\n > Parameters\\n - pathString (string) #optional path string in SVG format.\\n * Path string consists of one-letter commands, followed by comma seprarated arguments in numercal form. Example:\\n | \\\"M10,20L30,40\\\"\\n * Here we can see two commands: “M”, with arguments `(10, 20)` and “L” with arguments `(30, 40)`. Upper case letter mean command is absolute, lower case—relative.\\n *\\n #

Here is short list of commands available, for more details see SVG path string format.

\\n # \\n # \\n # \\n # \\n # \\n # \\n # \\n # \\n # \\n # \\n # \\n #
CommandNameParameters
Mmoveto(x y)+
Zclosepath(none)
Llineto(x y)+
Hhorizontal linetox+
Vvertical linetoy+
Ccurveto(x1 y1 x2 y2 x y)+
Ssmooth curveto(x2 y2 x y)+
Qquadratic Bézier curveto(x1 y1 x y)+
Tsmooth quadratic Bézier curveto(x y)+
Aelliptical arc(rx ry x-axis-rotation large-arc-flag sweep-flag x y)+
RCatmull-Rom curveto*x1 y1 (x y)+
\\n * * “Catmull-Rom curveto” is a not standard SVG command and added in 2.0 to make life easier.\\n * Note: there is a special case when path consist of just three commands: “M10,10R…z”. In this case path will smoothly connects to its beginning.\\n > Usage\\n | var c = paper.path(\\\"M10 10L90 90\\\");\\n | // draw a diagonal line:\\n | // move to 10,10, line to 90,90\\n * For example of path strings, check out these icons: http://raphaeljs.com/icons/\\n \\\\*/\\n paperproto.path = function (pathString) {\\n pathString && !R.is(pathString, string) && !R.is(pathString[0], array) && (pathString += E);\\n var out = R._engine.path(R.format[apply](R, arguments), this);\\n this.__set__ && this.__set__.push(out);\\n return out;\\n };\\n /*\\\\\\n * Paper.image\\n [ method ]\\n **\\n * Embeds an image into the surface.\\n **\\n > Parameters\\n **\\n - src (string) URI of the source image\\n - x (number) x coordinate position\\n - y (number) y coordinate position\\n - width (number) width of the image\\n - height (number) height of the image\\n = (object) Raphaël element object with type “image”\\n **\\n > Usage\\n | var c = paper.image(\\\"apple.png\\\", 10, 10, 80, 80);\\n \\\\*/\\n paperproto.image = function (src, x, y, w, h) {\\n var out = R._engine.image(this, src || \\\"about:blank\\\", x || 0, y || 0, w || 0, h || 0);\\n this.__set__ && this.__set__.push(out);\\n return out;\\n };\\n /*\\\\\\n * Paper.text\\n [ method ]\\n **\\n * Draws a text string. If you need line breaks, put “\\\\n” in the string.\\n **\\n > Parameters\\n **\\n - x (number) x coordinate position\\n - y (number) y coordinate position\\n - text (string) The text string to draw\\n = (object) Raphaël element object with type “text”\\n **\\n > Usage\\n | var t = paper.text(50, 50, \\\"Raphaël\\\\nkicks\\\\nbutt!\\\");\\n \\\\*/\\n paperproto.text = function (x, y, text) {\\n var out = R._engine.text(this, x || 0, y || 0, Str(text));\\n this.__set__ && this.__set__.push(out);\\n return out;\\n };\\n /*\\\\\\n * Paper.set\\n [ method ]\\n **\\n * Creates array-like object to keep and operate several elements at once.\\n * Warning: it doesn’t create any elements for itself in the page, it just groups existing elements.\\n * Sets act as pseudo elements — all methods available to an element can be used on a set.\\n = (object) array-like object that represents set of elements\\n **\\n > Usage\\n | var st = paper.set();\\n | st.push(\\n | paper.circle(10, 10, 5),\\n | paper.circle(30, 10, 5)\\n | );\\n | st.attr({fill: \\\"red\\\"}); // changes the fill of both circles\\n \\\\*/\\n paperproto.set = function (itemsArray) {\\n !R.is(itemsArray, \\\"array\\\") && (itemsArray = Array.prototype.splice.call(arguments, 0, arguments.length));\\n var out = new Set(itemsArray);\\n this.__set__ && this.__set__.push(out);\\n out[\\\"paper\\\"] = this;\\n out[\\\"type\\\"] = \\\"set\\\";\\n return out;\\n };\\n /*\\\\\\n * Paper.setStart\\n [ method ]\\n **\\n * Creates @Paper.set. All elements that will be created after calling this method and before calling\\n * @Paper.setFinish will be added to the set.\\n **\\n > Usage\\n | paper.setStart();\\n | paper.circle(10, 10, 5),\\n | paper.circle(30, 10, 5)\\n | var st = paper.setFinish();\\n | st.attr({fill: \\\"red\\\"}); // changes the fill of both circles\\n \\\\*/\\n paperproto.setStart = function (set) {\\n this.__set__ = set || this.set();\\n };\\n /*\\\\\\n * Paper.setFinish\\n [ method ]\\n **\\n * See @Paper.setStart. This method finishes catching and returns resulting set.\\n **\\n = (object) set\\n \\\\*/\\n paperproto.setFinish = function (set) {\\n var out = this.__set__;\\n delete this.__set__;\\n return out;\\n };\\n /*\\\\\\n * Paper.getSize\\n [ method ]\\n **\\n * Obtains current paper actual size.\\n **\\n = (object)\\n \\\\*/\\n paperproto.getSize = function () {\\n var container = this.canvas.parentNode;\\n return {\\n width: container.offsetWidth,\\n height: container.offsetHeight\\n };\\n };\\n /*\\\\\\n * Paper.setSize\\n [ method ]\\n **\\n * If you need to change dimensions of the canvas call this method\\n **\\n > Parameters\\n **\\n - width (number) new width of the canvas\\n - height (number) new height of the canvas\\n \\\\*/\\n paperproto.setSize = function (width, height) {\\n return R._engine.setSize.call(this, width, height);\\n };\\n /*\\\\\\n * Paper.setViewBox\\n [ method ]\\n **\\n * Sets the view box of the paper. Practically it gives you ability to zoom and pan whole paper surface by\\n * specifying new boundaries.\\n **\\n > Parameters\\n **\\n - x (number) new x position, default is `0`\\n - y (number) new y position, default is `0`\\n - w (number) new width of the canvas\\n - h (number) new height of the canvas\\n - fit (boolean) `true` if you want graphics to fit into new boundary box\\n \\\\*/\\n paperproto.setViewBox = function (x, y, w, h, fit) {\\n return R._engine.setViewBox.call(this, x, y, w, h, fit);\\n };\\n /*\\\\\\n * Paper.top\\n [ property ]\\n **\\n * Points to the topmost element on the paper\\n \\\\*/\\n /*\\\\\\n * Paper.bottom\\n [ property ]\\n **\\n * Points to the bottom element on the paper\\n \\\\*/\\n paperproto.top = paperproto.bottom = null;\\n /*\\\\\\n * Paper.raphael\\n [ property ]\\n **\\n * Points to the @Raphael object/function\\n \\\\*/\\n paperproto.raphael = R;\\n var getOffset = function (elem) {\\n var box = elem.getBoundingClientRect(),\\n doc = elem.ownerDocument,\\n body = doc.body,\\n docElem = doc.documentElement,\\n clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0,\\n top = box.top + (g.win.pageYOffset || docElem.scrollTop || body.scrollTop ) - clientTop,\\n left = box.left + (g.win.pageXOffset || docElem.scrollLeft || body.scrollLeft) - clientLeft;\\n return {\\n y: top,\\n x: left\\n };\\n };\\n /*\\\\\\n * Paper.getElementByPoint\\n [ method ]\\n **\\n * Returns you topmost element under given point.\\n **\\n = (object) Raphaël element object\\n > Parameters\\n **\\n - x (number) x coordinate from the top left corner of the window\\n - y (number) y coordinate from the top left corner of the window\\n > Usage\\n | paper.getElementByPoint(mouseX, mouseY).attr({stroke: \\\"#f00\\\"});\\n \\\\*/\\n paperproto.getElementByPoint = function (x, y) {\\n var paper = this,\\n svg = paper.canvas,\\n target = g.doc.elementFromPoint(x, y);\\n if (g.win.opera && target.tagName == \\\"svg\\\") {\\n var so = getOffset(svg),\\n sr = svg.createSVGRect();\\n sr.x = x - so.x;\\n sr.y = y - so.y;\\n sr.width = sr.height = 1;\\n var hits = svg.getIntersectionList(sr, null);\\n if (hits.length) {\\n target = hits[hits.length - 1];\\n }\\n }\\n if (!target) {\\n return null;\\n }\\n while (target.parentNode && target != svg.parentNode && !target.raphael) {\\n target = target.parentNode;\\n }\\n target == paper.canvas.parentNode && (target = svg);\\n target = target && target.raphael ? paper.getById(target.raphaelid) : null;\\n return target;\\n };\\n\\n /*\\\\\\n * Paper.getElementsByBBox\\n [ method ]\\n **\\n * Returns set of elements that have an intersecting bounding box\\n **\\n > Parameters\\n **\\n - bbox (object) bbox to check with\\n = (object) @Set\\n \\\\*/\\n paperproto.getElementsByBBox = function (bbox) {\\n var set = this.set();\\n this.forEach(function (el) {\\n if (R.isBBoxIntersect(el.getBBox(), bbox)) {\\n set.push(el);\\n }\\n });\\n return set;\\n };\\n\\n /*\\\\\\n * Paper.getById\\n [ method ]\\n **\\n * Returns you element by its internal ID.\\n **\\n > Parameters\\n **\\n - id (number) id\\n = (object) Raphaël element object\\n \\\\*/\\n paperproto.getById = function (id) {\\n var bot = this.bottom;\\n while (bot) {\\n if (bot.id == id) {\\n return bot;\\n }\\n bot = bot.next;\\n }\\n return null;\\n };\\n /*\\\\\\n * Paper.forEach\\n [ method ]\\n **\\n * Executes given function for each element on the paper\\n *\\n * If callback function returns `false` it will stop loop running.\\n **\\n > Parameters\\n **\\n - callback (function) function to run\\n - thisArg (object) context object for the callback\\n = (object) Paper object\\n > Usage\\n | paper.forEach(function (el) {\\n | el.attr({ stroke: \\\"blue\\\" });\\n | });\\n \\\\*/\\n paperproto.forEach = function (callback, thisArg) {\\n var bot = this.bottom;\\n while (bot) {\\n if (callback.call(thisArg, bot) === false) {\\n return this;\\n }\\n bot = bot.next;\\n }\\n return this;\\n };\\n /*\\\\\\n * Paper.getElementsByPoint\\n [ method ]\\n **\\n * Returns set of elements that have common point inside\\n **\\n > Parameters\\n **\\n - x (number) x coordinate of the point\\n - y (number) y coordinate of the point\\n = (object) @Set\\n \\\\*/\\n paperproto.getElementsByPoint = function (x, y) {\\n var set = this.set();\\n this.forEach(function (el) {\\n if (el.isPointInside(x, y)) {\\n set.push(el);\\n }\\n });\\n return set;\\n };\\n function x_y() {\\n return this.x + S + this.y;\\n }\\n function x_y_w_h() {\\n return this.x + S + this.y + S + this.width + \\\" \\\\xd7 \\\" + this.height;\\n }\\n /*\\\\\\n * Element.isPointInside\\n [ method ]\\n **\\n * Determine if given point is inside this element’s shape\\n **\\n > Parameters\\n **\\n - x (number) x coordinate of the point\\n - y (number) y coordinate of the point\\n = (boolean) `true` if point inside the shape\\n \\\\*/\\n elproto.isPointInside = function (x, y) {\\n var rp = this.realPath = getPath[this.type](this);\\n if (this.attr('transform') && this.attr('transform').length) {\\n rp = R.transformPath(rp, this.attr('transform'));\\n }\\n return R.isPointInsidePath(rp, x, y);\\n };\\n /*\\\\\\n * Element.getBBox\\n [ method ]\\n **\\n * Return bounding box for a given element\\n **\\n > Parameters\\n **\\n - isWithoutTransform (boolean) flag, `true` if you want to have bounding box before transformations. Default is `false`.\\n = (object) Bounding box object:\\n o {\\n o x: (number) top left corner x\\n o y: (number) top left corner y\\n o x2: (number) bottom right corner x\\n o y2: (number) bottom right corner y\\n o width: (number) width\\n o height: (number) height\\n o }\\n \\\\*/\\n elproto.getBBox = function (isWithoutTransform) {\\n if (this.removed) {\\n return {};\\n }\\n var _ = this._;\\n if (isWithoutTransform) {\\n if (_.dirty || !_.bboxwt) {\\n this.realPath = getPath[this.type](this);\\n _.bboxwt = pathDimensions(this.realPath);\\n _.bboxwt.toString = x_y_w_h;\\n _.dirty = 0;\\n }\\n return _.bboxwt;\\n }\\n if (_.dirty || _.dirtyT || !_.bbox) {\\n if (_.dirty || !this.realPath) {\\n _.bboxwt = 0;\\n this.realPath = getPath[this.type](this);\\n }\\n _.bbox = pathDimensions(mapPath(this.realPath, this.matrix));\\n _.bbox.toString = x_y_w_h;\\n _.dirty = _.dirtyT = 0;\\n }\\n return _.bbox;\\n };\\n /*\\\\\\n * Element.clone\\n [ method ]\\n **\\n = (object) clone of a given element\\n **\\n \\\\*/\\n elproto.clone = function () {\\n if (this.removed) {\\n return null;\\n }\\n var out = this.paper[this.type]().attr(this.attr());\\n this.__set__ && this.__set__.push(out);\\n return out;\\n };\\n /*\\\\\\n * Element.glow\\n [ method ]\\n **\\n * Return set of elements that create glow-like effect around given element. See @Paper.set.\\n *\\n * Note: Glow is not connected to the element. If you change element attributes it won’t adjust itself.\\n **\\n > Parameters\\n **\\n - glow (object) #optional parameters object with all properties optional:\\n o {\\n o width (number) size of the glow, default is `10`\\n o fill (boolean) will it be filled, default is `false`\\n o opacity (number) opacity, default is `0.5`\\n o offsetx (number) horizontal offset, default is `0`\\n o offsety (number) vertical offset, default is `0`\\n o color (string) glow colour, default is `black`\\n o }\\n = (object) @Paper.set of elements that represents glow\\n \\\\*/\\n elproto.glow = function (glow) {\\n if (this.type == \\\"text\\\") {\\n return null;\\n }\\n glow = glow || {};\\n var s = {\\n width: (glow.width || 10) + (+this.attr(\\\"stroke-width\\\") || 1),\\n fill: glow.fill || false,\\n opacity: glow.opacity == null ? .5 : glow.opacity,\\n offsetx: glow.offsetx || 0,\\n offsety: glow.offsety || 0,\\n color: glow.color || \\\"#000\\\"\\n },\\n c = s.width / 2,\\n r = this.paper,\\n out = r.set(),\\n path = this.realPath || getPath[this.type](this);\\n path = this.matrix ? mapPath(path, this.matrix) : path;\\n for (var i = 1; i < c + 1; i++) {\\n out.push(r.path(path).attr({\\n stroke: s.color,\\n fill: s.fill ? s.color : \\\"none\\\",\\n \\\"stroke-linejoin\\\": \\\"round\\\",\\n \\\"stroke-linecap\\\": \\\"round\\\",\\n \\\"stroke-width\\\": +(s.width / c * i).toFixed(3),\\n opacity: +(s.opacity / c).toFixed(3)\\n }));\\n }\\n return out.insertBefore(this).translate(s.offsetx, s.offsety);\\n };\\n var curveslengths = {},\\n getPointAtSegmentLength = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length) {\\n if (length == null) {\\n return bezlen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y);\\n } else {\\n return R.findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, getTatLen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length));\\n }\\n },\\n getLengthFactory = function (istotal, subpath) {\\n return function (path, length, onlystart) {\\n path = path2curve(path);\\n var x, y, p, l, sp = \\\"\\\", subpaths = {}, point,\\n len = 0;\\n for (var i = 0, ii = path.length; i < ii; i++) {\\n p = path[i];\\n if (p[0] == \\\"M\\\") {\\n x = +p[1];\\n y = +p[2];\\n } else {\\n l = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6]);\\n if (len + l > length) {\\n if (subpath && !subpaths.start) {\\n point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len);\\n sp += [\\\"C\\\" + point.start.x, point.start.y, point.m.x, point.m.y, point.x, point.y];\\n if (onlystart) {return sp;}\\n subpaths.start = sp;\\n sp = [\\\"M\\\" + point.x, point.y + \\\"C\\\" + point.n.x, point.n.y, point.end.x, point.end.y, p[5], p[6]].join();\\n len += l;\\n x = +p[5];\\n y = +p[6];\\n continue;\\n }\\n if (!istotal && !subpath) {\\n point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len);\\n return {x: point.x, y: point.y, alpha: point.alpha};\\n }\\n }\\n len += l;\\n x = +p[5];\\n y = +p[6];\\n }\\n sp += p.shift() + p;\\n }\\n subpaths.end = sp;\\n point = istotal ? len : subpath ? subpaths : R.findDotsAtSegment(x, y, p[0], p[1], p[2], p[3], p[4], p[5], 1);\\n point.alpha && (point = {x: point.x, y: point.y, alpha: point.alpha});\\n return point;\\n };\\n };\\n var getTotalLength = getLengthFactory(1),\\n getPointAtLength = getLengthFactory(),\\n getSubpathsAtLength = getLengthFactory(0, 1);\\n /*\\\\\\n * Raphael.getTotalLength\\n [ method ]\\n **\\n * Returns length of the given path in pixels.\\n **\\n > Parameters\\n **\\n - path (string) SVG path string.\\n **\\n = (number) length.\\n \\\\*/\\n R.getTotalLength = getTotalLength;\\n /*\\\\\\n * Raphael.getPointAtLength\\n [ method ]\\n **\\n * Return coordinates of the point located at the given length on the given path.\\n **\\n > Parameters\\n **\\n - path (string) SVG path string\\n - length (number)\\n **\\n = (object) representation of the point:\\n o {\\n o x: (number) x coordinate\\n o y: (number) y coordinate\\n o alpha: (number) angle of derivative\\n o }\\n \\\\*/\\n R.getPointAtLength = getPointAtLength;\\n /*\\\\\\n * Raphael.getSubpath\\n [ method ]\\n **\\n * Return subpath of a given path from given length to given length.\\n **\\n > Parameters\\n **\\n - path (string) SVG path string\\n - from (number) position of the start of the segment\\n - to (number) position of the end of the segment\\n **\\n = (string) pathstring for the segment\\n \\\\*/\\n R.getSubpath = function (path, from, to) {\\n if (this.getTotalLength(path) - to < 1e-6) {\\n return getSubpathsAtLength(path, from).end;\\n }\\n var a = getSubpathsAtLength(path, to, 1);\\n return from ? getSubpathsAtLength(a, from).end : a;\\n };\\n /*\\\\\\n * Element.getTotalLength\\n [ method ]\\n **\\n * Returns length of the path in pixels. Only works for element of “path” type.\\n = (number) length.\\n \\\\*/\\n elproto.getTotalLength = function () {\\n var path = this.getPath();\\n if (!path) {\\n return;\\n }\\n\\n if (this.node.getTotalLength) {\\n return this.node.getTotalLength();\\n }\\n\\n return getTotalLength(path);\\n };\\n /*\\\\\\n * Element.getPointAtLength\\n [ method ]\\n **\\n * Return coordinates of the point located at the given length on the given path. Only works for element of “path” type.\\n **\\n > Parameters\\n **\\n - length (number)\\n **\\n = (object) representation of the point:\\n o {\\n o x: (number) x coordinate\\n o y: (number) y coordinate\\n o alpha: (number) angle of derivative\\n o }\\n \\\\*/\\n elproto.getPointAtLength = function (length) {\\n var path = this.getPath();\\n if (!path) {\\n return;\\n }\\n\\n return getPointAtLength(path, length);\\n };\\n /*\\\\\\n * Element.getPath\\n [ method ]\\n **\\n * Returns path of the element. Only works for elements of “path” type and simple elements like circle.\\n = (object) path\\n **\\n \\\\*/\\n elproto.getPath = function () {\\n var path,\\n getPath = R._getPath[this.type];\\n\\n if (this.type == \\\"text\\\" || this.type == \\\"set\\\") {\\n return;\\n }\\n\\n if (getPath) {\\n path = getPath(this);\\n }\\n\\n return path;\\n };\\n /*\\\\\\n * Element.getSubpath\\n [ method ]\\n **\\n * Return subpath of a given element from given length to given length. Only works for element of “path” type.\\n **\\n > Parameters\\n **\\n - from (number) position of the start of the segment\\n - to (number) position of the end of the segment\\n **\\n = (string) pathstring for the segment\\n \\\\*/\\n elproto.getSubpath = function (from, to) {\\n var path = this.getPath();\\n if (!path) {\\n return;\\n }\\n\\n return R.getSubpath(path, from, to);\\n };\\n /*\\\\\\n * Raphael.easing_formulas\\n [ property ]\\n **\\n * Object that contains easing formulas for animation. You could extend it with your own. By default it has following list of easing:\\n #
    \\n #
  • “linear”
  • \\n #
  • “<” or “easeIn” or “ease-in”
  • \\n #
  • “>” or “easeOut” or “ease-out”
  • \\n #
  • “<>” or “easeInOut” or “ease-in-out”
  • \\n #
  • “backIn” or “back-in”
  • \\n #
  • “backOut” or “back-out”
  • \\n #
  • “elastic”
  • \\n #
  • “bounce”
  • \\n #
\\n #

See also Easing demo.

\\n \\\\*/\\n var ef = R.easing_formulas = {\\n linear: function (n) {\\n return n;\\n },\\n \\\"<\\\": function (n) {\\n return pow(n, 1.7);\\n },\\n \\\">\\\": function (n) {\\n return pow(n, .48);\\n },\\n \\\"<>\\\": function (n) {\\n var q = .48 - n / 1.04,\\n Q = math.sqrt(.1734 + q * q),\\n x = Q - q,\\n X = pow(abs(x), 1 / 3) * (x < 0 ? -1 : 1),\\n y = -Q - q,\\n Y = pow(abs(y), 1 / 3) * (y < 0 ? -1 : 1),\\n t = X + Y + .5;\\n return (1 - t) * 3 * t * t + t * t * t;\\n },\\n backIn: function (n) {\\n var s = 1.70158;\\n return n * n * ((s + 1) * n - s);\\n },\\n backOut: function (n) {\\n n = n - 1;\\n var s = 1.70158;\\n return n * n * ((s + 1) * n + s) + 1;\\n },\\n elastic: function (n) {\\n if (n == !!n) {\\n return n;\\n }\\n return pow(2, -10 * n) * math.sin((n - .075) * (2 * PI) / .3) + 1;\\n },\\n bounce: function (n) {\\n var s = 7.5625,\\n p = 2.75,\\n l;\\n if (n < (1 / p)) {\\n l = s * n * n;\\n } else {\\n if (n < (2 / p)) {\\n n -= (1.5 / p);\\n l = s * n * n + .75;\\n } else {\\n if (n < (2.5 / p)) {\\n n -= (2.25 / p);\\n l = s * n * n + .9375;\\n } else {\\n n -= (2.625 / p);\\n l = s * n * n + .984375;\\n }\\n }\\n }\\n return l;\\n }\\n };\\n ef.easeIn = ef[\\\"ease-in\\\"] = ef[\\\"<\\\"];\\n ef.easeOut = ef[\\\"ease-out\\\"] = ef[\\\">\\\"];\\n ef.easeInOut = ef[\\\"ease-in-out\\\"] = ef[\\\"<>\\\"];\\n ef[\\\"back-in\\\"] = ef.backIn;\\n ef[\\\"back-out\\\"] = ef.backOut;\\n\\n var animationElements = [],\\n requestAnimFrame = window.requestAnimationFrame ||\\n window.webkitRequestAnimationFrame ||\\n window.mozRequestAnimationFrame ||\\n window.oRequestAnimationFrame ||\\n window.msRequestAnimationFrame ||\\n function (callback) {\\n setTimeout(callback, 16);\\n },\\n animation = function () {\\n var Now = +new Date,\\n l = 0;\\n for (; l < animationElements.length; l++) {\\n var e = animationElements[l];\\n if (e.el.removed || e.paused) {\\n continue;\\n }\\n var time = Now - e.start,\\n ms = e.ms,\\n easing = e.easing,\\n from = e.from,\\n diff = e.diff,\\n to = e.to,\\n t = e.t,\\n that = e.el,\\n set = {},\\n now,\\n init = {},\\n key;\\n if (e.initstatus) {\\n time = (e.initstatus * e.anim.top - e.prev) / (e.percent - e.prev) * ms;\\n e.status = e.initstatus;\\n delete e.initstatus;\\n e.stop && animationElements.splice(l--, 1);\\n } else {\\n e.status = (e.prev + (e.percent - e.prev) * (time / ms)) / e.anim.top;\\n }\\n if (time < 0) {\\n continue;\\n }\\n if (time < ms) {\\n var pos = easing(time / ms);\\n for (var attr in from) if (from[has](attr)) {\\n switch (availableAnimAttrs[attr]) {\\n case nu:\\n now = +from[attr] + pos * ms * diff[attr];\\n break;\\n case \\\"colour\\\":\\n now = \\\"rgb(\\\" + [\\n upto255(round(from[attr].r + pos * ms * diff[attr].r)),\\n upto255(round(from[attr].g + pos * ms * diff[attr].g)),\\n upto255(round(from[attr].b + pos * ms * diff[attr].b))\\n ].join(\\\",\\\") + \\\")\\\";\\n break;\\n case \\\"path\\\":\\n now = [];\\n for (var i = 0, ii = from[attr].length; i < ii; i++) {\\n now[i] = [from[attr][i][0]];\\n for (var j = 1, jj = from[attr][i].length; j < jj; j++) {\\n now[i][j] = +from[attr][i][j] + pos * ms * diff[attr][i][j];\\n }\\n now[i] = now[i].join(S);\\n }\\n now = now.join(S);\\n break;\\n case \\\"transform\\\":\\n if (diff[attr].real) {\\n now = [];\\n for (i = 0, ii = from[attr].length; i < ii; i++) {\\n now[i] = [from[attr][i][0]];\\n for (j = 1, jj = from[attr][i].length; j < jj; j++) {\\n now[i][j] = from[attr][i][j] + pos * ms * diff[attr][i][j];\\n }\\n }\\n } else {\\n var get = function (i) {\\n return +from[attr][i] + pos * ms * diff[attr][i];\\n };\\n // now = [[\\\"r\\\", get(2), 0, 0], [\\\"t\\\", get(3), get(4)], [\\\"s\\\", get(0), get(1), 0, 0]];\\n now = [[\\\"m\\\", get(0), get(1), get(2), get(3), get(4), get(5)]];\\n }\\n break;\\n case \\\"csv\\\":\\n if (attr == \\\"clip-rect\\\") {\\n now = [];\\n i = 4;\\n while (i--) {\\n now[i] = +from[attr][i] + pos * ms * diff[attr][i];\\n }\\n }\\n break;\\n default:\\n var from2 = [][concat](from[attr]);\\n now = [];\\n i = that.paper.customAttributes[attr].length;\\n while (i--) {\\n now[i] = +from2[i] + pos * ms * diff[attr][i];\\n }\\n break;\\n }\\n set[attr] = now;\\n }\\n that.attr(set);\\n (function (id, that, anim) {\\n setTimeout(function () {\\n eve(\\\"raphael.anim.frame.\\\" + id, that, anim);\\n });\\n })(that.id, that, e.anim);\\n } else {\\n (function(f, el, a) {\\n setTimeout(function() {\\n eve(\\\"raphael.anim.frame.\\\" + el.id, el, a);\\n eve(\\\"raphael.anim.finish.\\\" + el.id, el, a);\\n R.is(f, \\\"function\\\") && f.call(el);\\n });\\n })(e.callback, that, e.anim);\\n that.attr(to);\\n animationElements.splice(l--, 1);\\n if (e.repeat > 1 && !e.next) {\\n for (key in to) if (to[has](key)) {\\n init[key] = e.totalOrigin[key];\\n }\\n e.el.attr(init);\\n runAnimation(e.anim, e.el, e.anim.percents[0], null, e.totalOrigin, e.repeat - 1);\\n }\\n if (e.next && !e.stop) {\\n runAnimation(e.anim, e.el, e.next, null, e.totalOrigin, e.repeat);\\n }\\n }\\n }\\n animationElements.length && requestAnimFrame(animation);\\n },\\n upto255 = function (color) {\\n return color > 255 ? 255 : color < 0 ? 0 : color;\\n };\\n /*\\\\\\n * Element.animateWith\\n [ method ]\\n **\\n * Acts similar to @Element.animate, but ensure that given animation runs in sync with another given element.\\n **\\n > Parameters\\n **\\n - el (object) element to sync with\\n - anim (object) animation to sync with\\n - params (object) #optional final attributes for the element, see also @Element.attr\\n - ms (number) #optional number of milliseconds for animation to run\\n - easing (string) #optional easing type. Accept on of @Raphael.easing_formulas or CSS format: `cubic‐bezier(XX, XX, XX, XX)`\\n - callback (function) #optional callback function. Will be called at the end of animation.\\n * or\\n - element (object) element to sync with\\n - anim (object) animation to sync with\\n - animation (object) #optional animation object, see @Raphael.animation\\n **\\n = (object) original element\\n \\\\*/\\n elproto.animateWith = function (el, anim, params, ms, easing, callback) {\\n var element = this;\\n if (element.removed) {\\n callback && callback.call(element);\\n return element;\\n }\\n var a = params instanceof Animation ? params : R.animation(params, ms, easing, callback),\\n x, y;\\n runAnimation(a, element, a.percents[0], null, element.attr());\\n for (var i = 0, ii = animationElements.length; i < ii; i++) {\\n if (animationElements[i].anim == anim && animationElements[i].el == el) {\\n animationElements[ii - 1].start = animationElements[i].start;\\n break;\\n }\\n }\\n return element;\\n //\\n //\\n // var a = params ? R.animation(params, ms, easing, callback) : anim,\\n // status = element.status(anim);\\n // return this.animate(a).status(a, status * anim.ms / a.ms);\\n };\\n function CubicBezierAtTime(t, p1x, p1y, p2x, p2y, duration) {\\n var cx = 3 * p1x,\\n bx = 3 * (p2x - p1x) - cx,\\n ax = 1 - cx - bx,\\n cy = 3 * p1y,\\n by = 3 * (p2y - p1y) - cy,\\n ay = 1 - cy - by;\\n function sampleCurveX(t) {\\n return ((ax * t + bx) * t + cx) * t;\\n }\\n function solve(x, epsilon) {\\n var t = solveCurveX(x, epsilon);\\n return ((ay * t + by) * t + cy) * t;\\n }\\n function solveCurveX(x, epsilon) {\\n var t0, t1, t2, x2, d2, i;\\n for(t2 = x, i = 0; i < 8; i++) {\\n x2 = sampleCurveX(t2) - x;\\n if (abs(x2) < epsilon) {\\n return t2;\\n }\\n d2 = (3 * ax * t2 + 2 * bx) * t2 + cx;\\n if (abs(d2) < 1e-6) {\\n break;\\n }\\n t2 = t2 - x2 / d2;\\n }\\n t0 = 0;\\n t1 = 1;\\n t2 = x;\\n if (t2 < t0) {\\n return t0;\\n }\\n if (t2 > t1) {\\n return t1;\\n }\\n while (t0 < t1) {\\n x2 = sampleCurveX(t2);\\n if (abs(x2 - x) < epsilon) {\\n return t2;\\n }\\n if (x > x2) {\\n t0 = t2;\\n } else {\\n t1 = t2;\\n }\\n t2 = (t1 - t0) / 2 + t0;\\n }\\n return t2;\\n }\\n return solve(t, 1 / (200 * duration));\\n }\\n elproto.onAnimation = function (f) {\\n f ? eve.on(\\\"raphael.anim.frame.\\\" + this.id, f) : eve.unbind(\\\"raphael.anim.frame.\\\" + this.id);\\n return this;\\n };\\n function Animation(anim, ms) {\\n var percents = [],\\n newAnim = {};\\n this.ms = ms;\\n this.times = 1;\\n if (anim) {\\n for (var attr in anim) if (anim[has](attr)) {\\n newAnim[toFloat(attr)] = anim[attr];\\n percents.push(toFloat(attr));\\n }\\n percents.sort(sortByNumber);\\n }\\n this.anim = newAnim;\\n this.top = percents[percents.length - 1];\\n this.percents = percents;\\n }\\n /*\\\\\\n * Animation.delay\\n [ method ]\\n **\\n * Creates a copy of existing animation object with given delay.\\n **\\n > Parameters\\n **\\n - delay (number) number of ms to pass between animation start and actual animation\\n **\\n = (object) new altered Animation object\\n | var anim = Raphael.animation({cx: 10, cy: 20}, 2e3);\\n | circle1.animate(anim); // run the given animation immediately\\n | circle2.animate(anim.delay(500)); // run the given animation after 500 ms\\n \\\\*/\\n Animation.prototype.delay = function (delay) {\\n var a = new Animation(this.anim, this.ms);\\n a.times = this.times;\\n a.del = +delay || 0;\\n return a;\\n };\\n /*\\\\\\n * Animation.repeat\\n [ method ]\\n **\\n * Creates a copy of existing animation object with given repetition.\\n **\\n > Parameters\\n **\\n - repeat (number) number iterations of animation. For infinite animation pass `Infinity`\\n **\\n = (object) new altered Animation object\\n \\\\*/\\n Animation.prototype.repeat = function (times) {\\n var a = new Animation(this.anim, this.ms);\\n a.del = this.del;\\n a.times = math.floor(mmax(times, 0)) || 1;\\n return a;\\n };\\n function runAnimation(anim, element, percent, status, totalOrigin, times) {\\n percent = toFloat(percent);\\n var params,\\n isInAnim,\\n isInAnimSet,\\n percents = [],\\n next,\\n prev,\\n timestamp,\\n ms = anim.ms,\\n from = {},\\n to = {},\\n diff = {};\\n if (status) {\\n for (i = 0, ii = animationElements.length; i < ii; i++) {\\n var e = animationElements[i];\\n if (e.el.id == element.id && e.anim == anim) {\\n if (e.percent != percent) {\\n animationElements.splice(i, 1);\\n isInAnimSet = 1;\\n } else {\\n isInAnim = e;\\n }\\n element.attr(e.totalOrigin);\\n break;\\n }\\n }\\n } else {\\n status = +to; // NaN\\n }\\n for (var i = 0, ii = anim.percents.length; i < ii; i++) {\\n if (anim.percents[i] == percent || anim.percents[i] > status * anim.top) {\\n percent = anim.percents[i];\\n prev = anim.percents[i - 1] || 0;\\n ms = ms / anim.top * (percent - prev);\\n next = anim.percents[i + 1];\\n params = anim.anim[percent];\\n break;\\n } else if (status) {\\n element.attr(anim.anim[anim.percents[i]]);\\n }\\n }\\n if (!params) {\\n return;\\n }\\n if (!isInAnim) {\\n for (var attr in params) if (params[has](attr)) {\\n if (availableAnimAttrs[has](attr) || element.paper.customAttributes[has](attr)) {\\n from[attr] = element.attr(attr);\\n (from[attr] == null) && (from[attr] = availableAttrs[attr]);\\n to[attr] = params[attr];\\n switch (availableAnimAttrs[attr]) {\\n case nu:\\n diff[attr] = (to[attr] - from[attr]) / ms;\\n break;\\n case \\\"colour\\\":\\n from[attr] = R.getRGB(from[attr]);\\n var toColour = R.getRGB(to[attr]);\\n diff[attr] = {\\n r: (toColour.r - from[attr].r) / ms,\\n g: (toColour.g - from[attr].g) / ms,\\n b: (toColour.b - from[attr].b) / ms\\n };\\n break;\\n case \\\"path\\\":\\n var pathes = path2curve(from[attr], to[attr]),\\n toPath = pathes[1];\\n from[attr] = pathes[0];\\n diff[attr] = [];\\n for (i = 0, ii = from[attr].length; i < ii; i++) {\\n diff[attr][i] = [0];\\n for (var j = 1, jj = from[attr][i].length; j < jj; j++) {\\n diff[attr][i][j] = (toPath[i][j] - from[attr][i][j]) / ms;\\n }\\n }\\n break;\\n case \\\"transform\\\":\\n var _ = element._,\\n eq = equaliseTransform(_[attr], to[attr]);\\n if (eq) {\\n from[attr] = eq.from;\\n to[attr] = eq.to;\\n diff[attr] = [];\\n diff[attr].real = true;\\n for (i = 0, ii = from[attr].length; i < ii; i++) {\\n diff[attr][i] = [from[attr][i][0]];\\n for (j = 1, jj = from[attr][i].length; j < jj; j++) {\\n diff[attr][i][j] = (to[attr][i][j] - from[attr][i][j]) / ms;\\n }\\n }\\n } else {\\n var m = (element.matrix || new Matrix),\\n to2 = {\\n _: {transform: _.transform},\\n getBBox: function () {\\n return element.getBBox(1);\\n }\\n };\\n from[attr] = [\\n m.a,\\n m.b,\\n m.c,\\n m.d,\\n m.e,\\n m.f\\n ];\\n extractTransform(to2, to[attr]);\\n to[attr] = to2._.transform;\\n diff[attr] = [\\n (to2.matrix.a - m.a) / ms,\\n (to2.matrix.b - m.b) / ms,\\n (to2.matrix.c - m.c) / ms,\\n (to2.matrix.d - m.d) / ms,\\n (to2.matrix.e - m.e) / ms,\\n (to2.matrix.f - m.f) / ms\\n ];\\n // from[attr] = [_.sx, _.sy, _.deg, _.dx, _.dy];\\n // var to2 = {_:{}, getBBox: function () { return element.getBBox(); }};\\n // extractTransform(to2, to[attr]);\\n // diff[attr] = [\\n // (to2._.sx - _.sx) / ms,\\n // (to2._.sy - _.sy) / ms,\\n // (to2._.deg - _.deg) / ms,\\n // (to2._.dx - _.dx) / ms,\\n // (to2._.dy - _.dy) / ms\\n // ];\\n }\\n break;\\n case \\\"csv\\\":\\n var values = Str(params[attr])[split](separator),\\n from2 = Str(from[attr])[split](separator);\\n if (attr == \\\"clip-rect\\\") {\\n from[attr] = from2;\\n diff[attr] = [];\\n i = from2.length;\\n while (i--) {\\n diff[attr][i] = (values[i] - from[attr][i]) / ms;\\n }\\n }\\n to[attr] = values;\\n break;\\n default:\\n values = [][concat](params[attr]);\\n from2 = [][concat](from[attr]);\\n diff[attr] = [];\\n i = element.paper.customAttributes[attr].length;\\n while (i--) {\\n diff[attr][i] = ((values[i] || 0) - (from2[i] || 0)) / ms;\\n }\\n break;\\n }\\n }\\n }\\n var easing = params.easing,\\n easyeasy = R.easing_formulas[easing];\\n if (!easyeasy) {\\n easyeasy = Str(easing).match(bezierrg);\\n if (easyeasy && easyeasy.length == 5) {\\n var curve = easyeasy;\\n easyeasy = function (t) {\\n return CubicBezierAtTime(t, +curve[1], +curve[2], +curve[3], +curve[4], ms);\\n };\\n } else {\\n easyeasy = pipe;\\n }\\n }\\n timestamp = params.start || anim.start || +new Date;\\n e = {\\n anim: anim,\\n percent: percent,\\n timestamp: timestamp,\\n start: timestamp + (anim.del || 0),\\n status: 0,\\n initstatus: status || 0,\\n stop: false,\\n ms: ms,\\n easing: easyeasy,\\n from: from,\\n diff: diff,\\n to: to,\\n el: element,\\n callback: params.callback,\\n prev: prev,\\n next: next,\\n repeat: times || anim.times,\\n origin: element.attr(),\\n totalOrigin: totalOrigin\\n };\\n animationElements.push(e);\\n if (status && !isInAnim && !isInAnimSet) {\\n e.stop = true;\\n e.start = new Date - ms * status;\\n if (animationElements.length == 1) {\\n return animation();\\n }\\n }\\n if (isInAnimSet) {\\n e.start = new Date - e.ms * status;\\n }\\n animationElements.length == 1 && requestAnimFrame(animation);\\n } else {\\n isInAnim.initstatus = status;\\n isInAnim.start = new Date - isInAnim.ms * status;\\n }\\n eve(\\\"raphael.anim.start.\\\" + element.id, element, anim);\\n }\\n /*\\\\\\n * Raphael.animation\\n [ method ]\\n **\\n * Creates an animation object that can be passed to the @Element.animate or @Element.animateWith methods.\\n * See also @Animation.delay and @Animation.repeat methods.\\n **\\n > Parameters\\n **\\n - params (object) final attributes for the element, see also @Element.attr\\n - ms (number) number of milliseconds for animation to run\\n - easing (string) #optional easing type. Accept one of @Raphael.easing_formulas or CSS format: `cubic‐bezier(XX, XX, XX, XX)`\\n - callback (function) #optional callback function. Will be called at the end of animation.\\n **\\n = (object) @Animation\\n \\\\*/\\n R.animation = function (params, ms, easing, callback) {\\n if (params instanceof Animation) {\\n return params;\\n }\\n if (R.is(easing, \\\"function\\\") || !easing) {\\n callback = callback || easing || null;\\n easing = null;\\n }\\n params = Object(params);\\n ms = +ms || 0;\\n var p = {},\\n json,\\n attr;\\n for (attr in params) if (params[has](attr) && toFloat(attr) != attr && toFloat(attr) + \\\"%\\\" != attr) {\\n json = true;\\n p[attr] = params[attr];\\n }\\n if (!json) {\\n // if percent-like syntax is used and end-of-all animation callback used\\n if(callback){\\n // find the last one\\n var lastKey = 0;\\n for(var i in params){\\n var percent = toInt(i);\\n if(params[has](i) && percent > lastKey){\\n lastKey = percent;\\n }\\n }\\n lastKey += '%';\\n // if already defined callback in the last keyframe, skip\\n !params[lastKey].callback && (params[lastKey].callback = callback);\\n }\\n return new Animation(params, ms);\\n } else {\\n easing && (p.easing = easing);\\n callback && (p.callback = callback);\\n return new Animation({100: p}, ms);\\n }\\n };\\n /*\\\\\\n * Element.animate\\n [ method ]\\n **\\n * Creates and starts animation for given element.\\n **\\n > Parameters\\n **\\n - params (object) final attributes for the element, see also @Element.attr\\n - ms (number) number of milliseconds for animation to run\\n - easing (string) #optional easing type. Accept one of @Raphael.easing_formulas or CSS format: `cubic‐bezier(XX, XX, XX, XX)`\\n - callback (function) #optional callback function. Will be called at the end of animation.\\n * or\\n - animation (object) animation object, see @Raphael.animation\\n **\\n = (object) original element\\n \\\\*/\\n elproto.animate = function (params, ms, easing, callback) {\\n var element = this;\\n if (element.removed) {\\n callback && callback.call(element);\\n return element;\\n }\\n var anim = params instanceof Animation ? params : R.animation(params, ms, easing, callback);\\n runAnimation(anim, element, anim.percents[0], null, element.attr());\\n return element;\\n };\\n /*\\\\\\n * Element.setTime\\n [ method ]\\n **\\n * Sets the status of animation of the element in milliseconds. Similar to @Element.status method.\\n **\\n > Parameters\\n **\\n - anim (object) animation object\\n - value (number) number of milliseconds from the beginning of the animation\\n **\\n = (object) original element if `value` is specified\\n * Note, that during animation following events are triggered:\\n *\\n * On each animation frame event `anim.frame.`, on start `anim.start.` and on end `anim.finish.`.\\n \\\\*/\\n elproto.setTime = function (anim, value) {\\n if (anim && value != null) {\\n this.status(anim, mmin(value, anim.ms) / anim.ms);\\n }\\n return this;\\n };\\n /*\\\\\\n * Element.status\\n [ method ]\\n **\\n * Gets or sets the status of animation of the element.\\n **\\n > Parameters\\n **\\n - anim (object) #optional animation object\\n - value (number) #optional 0 – 1. If specified, method works like a setter and sets the status of a given animation to the value. This will cause animation to jump to the given position.\\n **\\n = (number) status\\n * or\\n = (array) status if `anim` is not specified. Array of objects in format:\\n o {\\n o anim: (object) animation object\\n o status: (number) status\\n o }\\n * or\\n = (object) original element if `value` is specified\\n \\\\*/\\n elproto.status = function (anim, value) {\\n var out = [],\\n i = 0,\\n len,\\n e;\\n if (value != null) {\\n runAnimation(anim, this, -1, mmin(value, 1));\\n return this;\\n } else {\\n len = animationElements.length;\\n for (; i < len; i++) {\\n e = animationElements[i];\\n if (e.el.id == this.id && (!anim || e.anim == anim)) {\\n if (anim) {\\n return e.status;\\n }\\n out.push({\\n anim: e.anim,\\n status: e.status\\n });\\n }\\n }\\n if (anim) {\\n return 0;\\n }\\n return out;\\n }\\n };\\n /*\\\\\\n * Element.pause\\n [ method ]\\n **\\n * Stops animation of the element with ability to resume it later on.\\n **\\n > Parameters\\n **\\n - anim (object) #optional animation object\\n **\\n = (object) original element\\n \\\\*/\\n elproto.pause = function (anim) {\\n for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) {\\n if (eve(\\\"raphael.anim.pause.\\\" + this.id, this, animationElements[i].anim) !== false) {\\n animationElements[i].paused = true;\\n }\\n }\\n return this;\\n };\\n /*\\\\\\n * Element.resume\\n [ method ]\\n **\\n * Resumes animation if it was paused with @Element.pause method.\\n **\\n > Parameters\\n **\\n - anim (object) #optional animation object\\n **\\n = (object) original element\\n \\\\*/\\n elproto.resume = function (anim) {\\n for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) {\\n var e = animationElements[i];\\n if (eve(\\\"raphael.anim.resume.\\\" + this.id, this, e.anim) !== false) {\\n delete e.paused;\\n this.status(e.anim, e.status);\\n }\\n }\\n return this;\\n };\\n /*\\\\\\n * Element.stop\\n [ method ]\\n **\\n * Stops animation of the element.\\n **\\n > Parameters\\n **\\n - anim (object) #optional animation object\\n **\\n = (object) original element\\n \\\\*/\\n elproto.stop = function (anim) {\\n for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) {\\n if (eve(\\\"raphael.anim.stop.\\\" + this.id, this, animationElements[i].anim) !== false) {\\n animationElements.splice(i--, 1);\\n }\\n }\\n return this;\\n };\\n function stopAnimation(paper) {\\n for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.paper == paper) {\\n animationElements.splice(i--, 1);\\n }\\n }\\n eve.on(\\\"raphael.remove\\\", stopAnimation);\\n eve.on(\\\"raphael.clear\\\", stopAnimation);\\n elproto.toString = function () {\\n return \\\"Rapha\\\\xebl\\\\u2019s object\\\";\\n };\\n\\n // Set\\n var Set = function (items) {\\n this.items = [];\\n this.length = 0;\\n this.type = \\\"set\\\";\\n if (items) {\\n for (var i = 0, ii = items.length; i < ii; i++) {\\n if (items[i] && (items[i].constructor == elproto.constructor || items[i].constructor == Set)) {\\n this[this.items.length] = this.items[this.items.length] = items[i];\\n this.length++;\\n }\\n }\\n }\\n },\\n setproto = Set.prototype;\\n /*\\\\\\n * Set.push\\n [ method ]\\n **\\n * Adds each argument to the current set.\\n = (object) original element\\n \\\\*/\\n setproto.push = function () {\\n var item,\\n len;\\n for (var i = 0, ii = arguments.length; i < ii; i++) {\\n item = arguments[i];\\n if (item && (item.constructor == elproto.constructor || item.constructor == Set)) {\\n len = this.items.length;\\n this[len] = this.items[len] = item;\\n this.length++;\\n }\\n }\\n return this;\\n };\\n /*\\\\\\n * Set.pop\\n [ method ]\\n **\\n * Removes last element and returns it.\\n = (object) element\\n \\\\*/\\n setproto.pop = function () {\\n this.length && delete this[this.length--];\\n return this.items.pop();\\n };\\n /*\\\\\\n * Set.forEach\\n [ method ]\\n **\\n * Executes given function for each element in the set.\\n *\\n * If function returns `false` it will stop loop running.\\n **\\n > Parameters\\n **\\n - callback (function) function to run\\n - thisArg (object) context object for the callback\\n = (object) Set object\\n \\\\*/\\n setproto.forEach = function (callback, thisArg) {\\n for (var i = 0, ii = this.items.length; i < ii; i++) {\\n if (callback.call(thisArg, this.items[i], i) === false) {\\n return this;\\n }\\n }\\n return this;\\n };\\n for (var method in elproto) if (elproto[has](method)) {\\n setproto[method] = (function (methodname) {\\n return function () {\\n var arg = arguments;\\n return this.forEach(function (el) {\\n el[methodname][apply](el, arg);\\n });\\n };\\n })(method);\\n }\\n setproto.attr = function (name, value) {\\n if (name && R.is(name, array) && R.is(name[0], \\\"object\\\")) {\\n for (var j = 0, jj = name.length; j < jj; j++) {\\n this.items[j].attr(name[j]);\\n }\\n } else {\\n for (var i = 0, ii = this.items.length; i < ii; i++) {\\n this.items[i].attr(name, value);\\n }\\n }\\n return this;\\n };\\n /*\\\\\\n * Set.clear\\n [ method ]\\n **\\n * Removes all elements from the set\\n \\\\*/\\n setproto.clear = function () {\\n while (this.length) {\\n this.pop();\\n }\\n };\\n /*\\\\\\n * Set.splice\\n [ method ]\\n **\\n * Removes given element from the set\\n **\\n > Parameters\\n **\\n - index (number) position of the deletion\\n - count (number) number of element to remove\\n - insertion… (object) #optional elements to insert\\n = (object) set elements that were deleted\\n \\\\*/\\n setproto.splice = function (index, count, insertion) {\\n index = index < 0 ? mmax(this.length + index, 0) : index;\\n count = mmax(0, mmin(this.length - index, count));\\n var tail = [],\\n todel = [],\\n args = [],\\n i;\\n for (i = 2; i < arguments.length; i++) {\\n args.push(arguments[i]);\\n }\\n for (i = 0; i < count; i++) {\\n todel.push(this[index + i]);\\n }\\n for (; i < this.length - index; i++) {\\n tail.push(this[index + i]);\\n }\\n var arglen = args.length;\\n for (i = 0; i < arglen + tail.length; i++) {\\n this.items[index + i] = this[index + i] = i < arglen ? args[i] : tail[i - arglen];\\n }\\n i = this.items.length = this.length -= count - arglen;\\n while (this[i]) {\\n delete this[i++];\\n }\\n return new Set(todel);\\n };\\n /*\\\\\\n * Set.exclude\\n [ method ]\\n **\\n * Removes given element from the set\\n **\\n > Parameters\\n **\\n - element (object) element to remove\\n = (boolean) `true` if object was found & removed from the set\\n \\\\*/\\n setproto.exclude = function (el) {\\n for (var i = 0, ii = this.length; i < ii; i++) if (this[i] == el) {\\n this.splice(i, 1);\\n return true;\\n }\\n };\\n setproto.animate = function (params, ms, easing, callback) {\\n (R.is(easing, \\\"function\\\") || !easing) && (callback = easing || null);\\n var len = this.items.length,\\n i = len,\\n item,\\n set = this,\\n collector;\\n if (!len) {\\n return this;\\n }\\n callback && (collector = function () {\\n !--len && callback.call(set);\\n });\\n easing = R.is(easing, string) ? easing : collector;\\n var anim = R.animation(params, ms, easing, collector);\\n item = this.items[--i].animate(anim);\\n while (i--) {\\n this.items[i] && !this.items[i].removed && this.items[i].animateWith(item, anim, anim);\\n (this.items[i] && !this.items[i].removed) || len--;\\n }\\n return this;\\n };\\n setproto.insertAfter = function (el) {\\n var i = this.items.length;\\n while (i--) {\\n this.items[i].insertAfter(el);\\n }\\n return this;\\n };\\n\\n // FREEGROUP Fix: RaphaelJS changes the order of the elements of the 'set' by calling the toBack method.\\n // \\\"toBack\\\" must be called reverse to care about the rendering order. In this case we override\\n // the buggy default implementation here.\\n //\\n setproto.toBack = function () {\\n var i = this.items.length;\\n while (i--) {\\n this.items[i].toBack();\\n }\\n return this;\\n };\\n\\n // FREEGROUP Fix: Unfortunately raphael didn'T expose the \\\"set.prototype\\\". In this case\\n // I must add all extension to the raphael implementation itself.\\n // Provide support method for easy check if the elements are visible.\\n setproto.isVisible = function () {\\n var i = this.items.length;\\n var visible = false;\\n while (i--) {\\n visible = visible ||this.items[i].isVisible();\\n }\\n return visible;\\n };\\n\\n\\n // FREEGROUP FIX: Adding \\\"isWithoutTransform\\\" to the function and redirect them to the elements\\n setproto.getBBox = function (isWithoutTransform) {\\n var x = [],\\n y = [],\\n x2 = [],\\n y2 = [];\\n for (var i = this.items.length; i--;) if (!this.items[i].removed) {\\n var box = this.items[i].getBBox(isWithoutTransform);\\n x.push(box.x);\\n y.push(box.y);\\n x2.push(box.x + box.width);\\n y2.push(box.y + box.height);\\n }\\n x = mmin[apply](0, x);\\n y = mmin[apply](0, y);\\n x2 = mmax[apply](0, x2);\\n y2 = mmax[apply](0, y2);\\n return {\\n x: x,\\n y: y,\\n x2: x2,\\n y2: y2,\\n width: x2 - x,\\n height: y2 - y\\n };\\n };\\n setproto.clone = function (s) {\\n s = this.paper.set();\\n for (var i = 0, ii = this.items.length; i < ii; i++) {\\n s.push(this.items[i].clone());\\n }\\n return s;\\n };\\n setproto.toString = function () {\\n return \\\"Rapha\\\\xebl\\\\u2018s set\\\";\\n };\\n\\n setproto.glow = function(glowConfig) {\\n var ret = this.paper.set();\\n this.forEach(function(shape, index){\\n var g = shape.glow(glowConfig);\\n if(g != null){\\n g.forEach(function(shape2, index2){\\n ret.push(shape2);\\n });\\n }\\n });\\n return ret;\\n };\\n\\n\\n /*\\\\\\n * Set.isPointInside\\n [ method ]\\n **\\n * Determine if given point is inside this set’s elements\\n **\\n > Parameters\\n **\\n - x (number) x coordinate of the point\\n - y (number) y coordinate of the point\\n = (boolean) `true` if point is inside any of the set's elements\\n \\\\*/\\n setproto.isPointInside = function (x, y) {\\n var isPointInside = false;\\n this.forEach(function (el) {\\n if (el.isPointInside(x, y)) {\\n isPointInside = true;\\n return false; // stop loop\\n }\\n });\\n return isPointInside;\\n };\\n\\n /*\\\\\\n * Raphael.registerFont\\n [ method ]\\n **\\n * Adds given font to the registered set of fonts for Raphaël. Should be used as an internal call from within Cufón’s font file.\\n * Returns original parameter, so it could be used with chaining.\\n # More about Cufón and how to convert your font form TTF, OTF, etc to JavaScript file.\\n **\\n > Parameters\\n **\\n - font (object) the font to register\\n = (object) the font you passed in\\n > Usage\\n | Cufon.registerFont(Raphael.registerFont({…}));\\n \\\\*/\\n R.registerFont = function (font) {\\n if (!font.face) {\\n return font;\\n }\\n this.fonts = this.fonts || {};\\n var fontcopy = {\\n w: font.w,\\n face: {},\\n glyphs: {}\\n },\\n family = font.face[\\\"font-family\\\"];\\n for (var prop in font.face) if (font.face[has](prop)) {\\n fontcopy.face[prop] = font.face[prop];\\n }\\n if (this.fonts[family]) {\\n this.fonts[family].push(fontcopy);\\n } else {\\n this.fonts[family] = [fontcopy];\\n }\\n if (!font.svg) {\\n fontcopy.face[\\\"units-per-em\\\"] = toInt(font.face[\\\"units-per-em\\\"], 10);\\n for (var glyph in font.glyphs) if (font.glyphs[has](glyph)) {\\n var path = font.glyphs[glyph];\\n fontcopy.glyphs[glyph] = {\\n w: path.w,\\n k: {},\\n d: path.d && \\\"M\\\" + path.d.replace(/[mlcxtrv]/g, function (command) {\\n return {l: \\\"L\\\", c: \\\"C\\\", x: \\\"z\\\", t: \\\"m\\\", r: \\\"l\\\", v: \\\"c\\\"}[command] || \\\"M\\\";\\n }) + \\\"z\\\"\\n };\\n if (path.k) {\\n for (var k in path.k) if (path[has](k)) {\\n fontcopy.glyphs[glyph].k[k] = path.k[k];\\n }\\n }\\n }\\n }\\n return font;\\n };\\n /*\\\\\\n * Paper.getFont\\n [ method ]\\n **\\n * Finds font object in the registered fonts by given parameters. You could specify only one word from the font name, like “Myriad” for “Myriad Pro”.\\n **\\n > Parameters\\n **\\n - family (string) font family name or any word from it\\n - weight (string) #optional font weight\\n - style (string) #optional font style\\n - stretch (string) #optional font stretch\\n = (object) the font object\\n > Usage\\n | paper.print(100, 100, \\\"Test string\\\", paper.getFont(\\\"Times\\\", 800), 30);\\n \\\\*/\\n paperproto.getFont = function (family, weight, style, stretch) {\\n stretch = stretch || \\\"normal\\\";\\n style = style || \\\"normal\\\";\\n weight = +weight || {normal: 400, bold: 700, lighter: 300, bolder: 800}[weight] || 400;\\n if (!R.fonts) {\\n return;\\n }\\n var font = R.fonts[family];\\n if (!font) {\\n var name = new RegExp(\\\"(^|\\\\\\\\s)\\\" + family.replace(/[^\\\\w\\\\d\\\\s+!~.:_-]/g, E) + \\\"(\\\\\\\\s|$)\\\", \\\"i\\\");\\n for (var fontName in R.fonts) if (R.fonts[has](fontName)) {\\n if (name.test(fontName)) {\\n font = R.fonts[fontName];\\n break;\\n }\\n }\\n }\\n var thefont;\\n if (font) {\\n for (var i = 0, ii = font.length; i < ii; i++) {\\n thefont = font[i];\\n if (thefont.face[\\\"font-weight\\\"] == weight && (thefont.face[\\\"font-style\\\"] == style || !thefont.face[\\\"font-style\\\"]) && thefont.face[\\\"font-stretch\\\"] == stretch) {\\n break;\\n }\\n }\\n }\\n return thefont;\\n };\\n /*\\\\\\n * Paper.print\\n [ method ]\\n **\\n * Creates path that represent given text written using given font at given position with given size.\\n * Result of the method is path element that contains whole text as a separate path.\\n **\\n > Parameters\\n **\\n - x (number) x position of the text\\n - y (number) y position of the text\\n - string (string) text to print\\n - font (object) font object, see @Paper.getFont\\n - size (number) #optional size of the font, default is `16`\\n - origin (string) #optional could be `\\\"baseline\\\"` or `\\\"middle\\\"`, default is `\\\"middle\\\"`\\n - letter_spacing (number) #optional number in range `-1..1`, default is `0`\\n - line_spacing (number) #optional number in range `1..3`, default is `1`\\n = (object) resulting path element, which consist of all letters\\n > Usage\\n | var txt = r.print(10, 50, \\\"print\\\", r.getFont(\\\"Museo\\\"), 30).attr({fill: \\\"#fff\\\"});\\n \\\\*/\\n paperproto.print = function (x, y, string, font, size, origin, letter_spacing, line_spacing) {\\n origin = origin || \\\"middle\\\"; // baseline|middle\\n letter_spacing = mmax(mmin(letter_spacing || 0, 1), -1);\\n line_spacing = mmax(mmin(line_spacing || 1, 3), 1);\\n var letters = Str(string)[split](E),\\n shift = 0,\\n notfirst = 0,\\n path = E,\\n scale;\\n R.is(font, \\\"string\\\") && (font = this.getFont(font));\\n if (font) {\\n scale = (size || 16) / font.face[\\\"units-per-em\\\"];\\n var bb = font.face.bbox[split](separator),\\n top = +bb[0],\\n lineHeight = bb[3] - bb[1],\\n shifty = 0,\\n height = +bb[1] + (origin == \\\"baseline\\\" ? lineHeight + (+font.face.descent) : lineHeight / 2);\\n for (var i = 0, ii = letters.length; i < ii; i++) {\\n if (letters[i] == \\\"\\\\n\\\") {\\n shift = 0;\\n curr = 0;\\n notfirst = 0;\\n shifty += lineHeight * line_spacing;\\n } else {\\n var prev = notfirst && font.glyphs[letters[i - 1]] || {},\\n curr = font.glyphs[letters[i]];\\n shift += notfirst ? (prev.w || font.w) + (prev.k && prev.k[letters[i]] || 0) + (font.w * letter_spacing) : 0;\\n notfirst = 1;\\n }\\n if (curr && curr.d) {\\n path += R.transformPath(curr.d, [\\\"t\\\", shift * scale, shifty * scale, \\\"s\\\", scale, scale, top, height, \\\"t\\\", (x - top) / scale, (y - height) / scale]);\\n }\\n }\\n }\\n return this.path(path).attr({\\n fill: \\\"#000\\\",\\n stroke: \\\"none\\\"\\n });\\n };\\n\\n /*\\\\\\n * Paper.add\\n [ method ]\\n **\\n * Imports elements in JSON array in format `{type: type, }`\\n **\\n > Parameters\\n **\\n - json (array)\\n = (object) resulting set of imported elements\\n > Usage\\n | paper.add([\\n | {\\n | type: \\\"circle\\\",\\n | cx: 10,\\n | cy: 10,\\n | r: 5\\n | },\\n | {\\n | type: \\\"rect\\\",\\n | x: 10,\\n | y: 10,\\n | width: 10,\\n | height: 10,\\n | fill: \\\"#fc0\\\"\\n | }\\n | ]);\\n \\\\*/\\n paperproto.add = function (json) {\\n if (R.is(json, \\\"array\\\")) {\\n var res = this.set(),\\n i = 0,\\n ii = json.length,\\n j;\\n for (; i < ii; i++) {\\n j = json[i] || {};\\n elements[has](j.type) && res.push(this[j.type]().attr(j));\\n }\\n }\\n return res;\\n };\\n\\n /*\\\\\\n * Raphael.format\\n [ method ]\\n **\\n * Simple format function. Replaces construction of type “`{}`” to the corresponding argument.\\n **\\n > Parameters\\n **\\n - token (string) string to format\\n - … (string) rest of arguments will be treated as parameters for replacement\\n = (string) formated string\\n > Usage\\n | var x = 10,\\n | y = 20,\\n | width = 40,\\n | height = 50;\\n | // this will draw a rectangular shape equivalent to \\\"M10,20h40v50h-40z\\\"\\n | paper.path(Raphael.format(\\\"M{0},{1}h{2}v{3}h{4}z\\\", x, y, width, height, -width));\\n \\\\*/\\n R.format = function (token, params) {\\n var args = R.is(params, array) ? [0][concat](params) : arguments;\\n token && R.is(token, string) && args.length - 1 && (token = token.replace(formatrg, function (str, i) {\\n return args[++i] == null ? E : args[i];\\n }));\\n return token || E;\\n };\\n /*\\\\\\n * Raphael.fullfill\\n [ method ]\\n **\\n * A little bit more advanced format function than @Raphael.format. Replaces construction of type “`{}`” to the corresponding argument.\\n **\\n > Parameters\\n **\\n - token (string) string to format\\n - json (object) object which properties will be used as a replacement\\n = (string) formated string\\n > Usage\\n | // this will draw a rectangular shape equivalent to \\\"M10,20h40v50h-40z\\\"\\n | paper.path(Raphael.fullfill(\\\"M{x},{y}h{dim.width}v{dim.height}h{dim['negative width']}z\\\", {\\n | x: 10,\\n | y: 20,\\n | dim: {\\n | width: 40,\\n | height: 50,\\n | \\\"negative width\\\": -40\\n | }\\n | }));\\n \\\\*/\\n R.fullfill = (function () {\\n var tokenRegex = /\\\\{([^\\\\}]+)\\\\}/g,\\n objNotationRegex = /(?:(?:^|\\\\.)(.+?)(?=\\\\[|\\\\.|$|\\\\()|\\\\[('|\\\")(.+?)\\\\2\\\\])(\\\\(\\\\))?/g, // matches .xxxxx or [\\\"xxxxx\\\"] to run over object properties\\n replacer = function (all, key, obj) {\\n var res = obj;\\n key.replace(objNotationRegex, function (all, name, quote, quotedName, isFunc) {\\n name = name || quotedName;\\n if (res) {\\n if (name in res) {\\n res = res[name];\\n }\\n typeof res == \\\"function\\\" && isFunc && (res = res());\\n }\\n });\\n res = (res == null || res == obj ? all : res) + \\\"\\\";\\n return res;\\n };\\n return function (str, obj) {\\n return String(str).replace(tokenRegex, function (all, key) {\\n return replacer(all, key, obj);\\n });\\n };\\n })();\\n /*\\\\\\n * Raphael.ninja\\n [ method ]\\n **\\n * If you want to leave no trace of Raphaël (Well, Raphaël creates only one global variable `Raphael`, but anyway.) You can use `ninja` method.\\n * Beware, that in this case plugins could stop working, because they are depending on global variable existence.\\n **\\n = (object) Raphael object\\n > Usage\\n | (function (local_raphael) {\\n | var paper = local_raphael(10, 10, 320, 200);\\n | …\\n | })(Raphael.ninja());\\n \\\\*/\\n R.ninja = function () {\\n oldRaphael.was ? (g.win.Raphael = oldRaphael.is) : delete Raphael;\\n return R;\\n };\\n /*\\\\\\n * Raphael.st\\n [ property (object) ]\\n **\\n * You can add your own method to elements and sets. It is wise to add a set method for each element method\\n * you added, so you will be able to call the same method on sets too.\\n **\\n * See also @Raphael.el.\\n > Usage\\n | Raphael.el.red = function () {\\n | this.attr({fill: \\\"#f00\\\"});\\n | };\\n | Raphael.st.red = function () {\\n | this.forEach(function (el) {\\n | el.red();\\n | });\\n | };\\n | // then use it\\n | paper.set(paper.circle(100, 100, 20), paper.circle(110, 100, 20)).red();\\n \\\\*/\\n R.st = setproto;\\n\\n eve.on(\\\"raphael.DOMload\\\", function () {\\n loaded = true;\\n });\\n\\n // Firefox <3.6 fix: http://webreflection.blogspot.com/2009/11/195-chars-to-help-lazy-loading.html\\n (function (doc, loaded, f) {\\n if (doc.readyState == null && doc.addEventListener){\\n doc.addEventListener(loaded, f = function () {\\n doc.removeEventListener(loaded, f, false);\\n doc.readyState = \\\"complete\\\";\\n }, false);\\n doc.readyState = \\\"loading\\\";\\n }\\n function isLoaded() {\\n (/in/).test(doc.readyState) ? setTimeout(isLoaded, 9) : R.eve(\\\"raphael.DOMload\\\");\\n }\\n isLoaded();\\n })(document, \\\"DOMContentLoaded\\\");\\n\\n return R;\\n}));\\n\\n// ┌─────────────────────────────────────────────────────────────────────┐ \\\\\\\\\\n// │ Raphaël 2.1.4 - JavaScript Vector Library │ \\\\\\\\\\n// ├─────────────────────────────────────────────────────────────────────┤ \\\\\\\\\\n// │ SVG Module │ \\\\\\\\\\n// ├─────────────────────────────────────────────────────────────────────┤ \\\\\\\\\\n// │ Copyright (c) 2008-2011 Dmitry Baranovskiy (http://raphaeljs.com) │ \\\\\\\\\\n// │ Copyright (c) 2008-2011 Sencha Labs (http://sencha.com) │ \\\\\\\\\\n// │ Licensed under the MIT (http://raphaeljs.com/license.html) license. │ \\\\\\\\\\n// └─────────────────────────────────────────────────────────────────────┘ \\\\\\\\\\n\\n(function (glob, factory) {\\n if (typeof define === \\\"function\\\" && define.amd) {\\n define(\\\"raphael.svg\\\", [\\\"raphael.core\\\"], function(raphael) {\\n return factory(raphael);\\n });\\n } else if (typeof exports === \\\"object\\\") {\\n factory(require(\\\"./raphael.core\\\"));\\n } else {\\n factory(glob.Raphael);\\n }\\n}(this, function(R) {\\n if (R && !R.svg) {\\n return;\\n }\\n\\n var has = \\\"hasOwnProperty\\\",\\n Str = String,\\n toFloat = parseFloat,\\n toInt = parseInt,\\n math = Math,\\n mmax = math.max,\\n abs = math.abs,\\n pow = math.pow,\\n separator = /[, ]+/,\\n eve = R.eve,\\n E = \\\"\\\",\\n S = \\\" \\\";\\n var xlink = \\\"http://www.w3.org/1999/xlink\\\",\\n markers = {\\n block: \\\"M5,0 0,2.5 5,5z\\\",\\n classic: \\\"M5,0 0,2.5 5,5 3.5,3 3.5,2z\\\",\\n diamond: \\\"M2.5,0 5,2.5 2.5,5 0,2.5z\\\",\\n open: \\\"M6,1 1,3.5 6,6\\\",\\n oval: \\\"M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z\\\"\\n },\\n markerCounter = {};\\n R.toString = function () {\\n return \\\"Your browser supports SVG.\\\\nYou are running Rapha\\\\xebl \\\" + this.version;\\n };\\n var $ = function (el, attr) {\\n if (attr) {\\n if (typeof el == \\\"string\\\") {\\n el = $(el);\\n }\\n for (var key in attr) if (attr[has](key)) {\\n if (key.substring(0, 6) == \\\"xlink:\\\") {\\n el.setAttributeNS(xlink, key.substring(6), Str(attr[key]));\\n } else {\\n try {\\n el.setAttribute(key, Str(attr[key]));\\n }\\n catch(e){\\n debugger\\n }\\n }\\n }\\n } else {\\n el = R._g.doc.createElementNS(\\\"http://www.w3.org/2000/svg\\\", el);\\n el.style && (el.style.webkitTapHighlightColor = \\\"rgba(0,0,0,0)\\\");\\n }\\n return el;\\n },\\n addGradientFill = function (element, gradient) {\\n var type = \\\"linear\\\",\\n id = element.id + gradient,\\n fx = .5, fy = .5,\\n o = element.node,\\n SVG = element.paper,\\n s = o.style,\\n el = R._g.doc.getElementById(id);\\n if (!el) {\\n gradient = Str(gradient).replace(R._radial_gradient, function (all, _fx, _fy) {\\n type = \\\"radial\\\";\\n if (_fx && _fy) {\\n fx = toFloat(_fx);\\n fy = toFloat(_fy);\\n var dir = ((fy > .5) * 2 - 1);\\n pow(fx - .5, 2) + pow(fy - .5, 2) > .25 &&\\n (fy = math.sqrt(.25 - pow(fx - .5, 2)) * dir + .5) &&\\n fy != .5 &&\\n (fy = fy.toFixed(5) - 1e-5 * dir);\\n }\\n return E;\\n });\\n gradient = gradient.split(/\\\\s*\\\\-\\\\s*/);\\n if (type == \\\"linear\\\") {\\n var angle = gradient.shift();\\n angle = -toFloat(angle);\\n if (isNaN(angle)) {\\n return null;\\n }\\n var vector = [0, 0, math.cos(R.rad(angle)), math.sin(R.rad(angle))],\\n max = 1 / (mmax(abs(vector[2]), abs(vector[3])) || 1);\\n vector[2] *= max;\\n vector[3] *= max;\\n if (vector[2] < 0) {\\n vector[0] = -vector[2];\\n vector[2] = 0;\\n }\\n if (vector[3] < 0) {\\n vector[1] = -vector[3];\\n vector[3] = 0;\\n }\\n }\\n var dots = R._parseDots(gradient);\\n if (!dots) {\\n return null;\\n }\\n id = id.replace(/[\\\\(\\\\)\\\\s,\\\\xb0#]/g, \\\"_\\\");\\n\\n if (element.gradient && id != element.gradient.id) {\\n SVG.defs.removeChild(element.gradient);\\n delete element.gradient;\\n }\\n\\n if (!element.gradient) {\\n el = $(type + \\\"Gradient\\\", {id: id});\\n element.gradient = el;\\n $(el, type == \\\"radial\\\" ? {\\n fx: fx,\\n fy: fy\\n } : {\\n x1: vector[0],\\n y1: vector[1],\\n x2: vector[2],\\n y2: vector[3],\\n gradientTransform: element.matrix.invert()\\n });\\n SVG.defs.appendChild(el);\\n for (var i = 0, ii = dots.length; i < ii; i++) {\\n el.appendChild($(\\\"stop\\\", {\\n offset: dots[i].offset ? dots[i].offset : i ? \\\"100%\\\" : \\\"0%\\\",\\n \\\"stop-color\\\": dots[i].color || \\\"#fff\\\",\\n \\\"stop-opacity\\\": isFinite(dots[i].opacity) ? dots[i].opacity : 1\\n }));\\n }\\n }\\n }\\n /* FREEGROUP: don't push URL parameter into the drawing. This will break Apps with \\\"?\\\" in the URL\\n * see: https://github.com/DmitryBaranovskiy/raphael/issues/693\\n **/\\n var url =\\\"\\\";//document.location.protocol + \\\"//\\\" + document.location.host + document.location.pathname;\\n $(o, {\\n fill: \\\"url('\\\" + url + \\\"#\\\" + id + \\\"')\\\",\\n opacity: 1,\\n \\\"fill-opacity\\\": 1\\n });\\n\\n s.fill = E;\\n s.opacity = 1;\\n s.fillOpacity = 1;\\n return 1;\\n },\\n updatePosition = function (o) {\\n var bbox = o.getBBox(1);\\n $(o.pattern, {patternTransform: o.matrix.invert() + \\\" translate(\\\" + bbox.x + \\\",\\\" + bbox.y + \\\")\\\"});\\n },\\n addArrow = function (o, value, isEnd) {\\n if (o.type == \\\"path\\\") {\\n var values = Str(value).toLowerCase().split(\\\"-\\\"),\\n p = o.paper,\\n se = isEnd ? \\\"end\\\" : \\\"start\\\",\\n node = o.node,\\n attrs = o.attrs,\\n stroke = attrs[\\\"stroke-width\\\"],\\n i = values.length,\\n type = \\\"classic\\\",\\n from,\\n to,\\n dx,\\n refX,\\n attr,\\n w = 3,\\n h = 3,\\n t = 5;\\n while (i--) {\\n switch (values[i]) {\\n case \\\"block\\\":\\n case \\\"classic\\\":\\n case \\\"oval\\\":\\n case \\\"diamond\\\":\\n case \\\"open\\\":\\n case \\\"none\\\":\\n type = values[i];\\n break;\\n case \\\"wide\\\": h = 5; break;\\n case \\\"narrow\\\": h = 2; break;\\n case \\\"long\\\": w = 5; break;\\n case \\\"short\\\": w = 2; break;\\n }\\n }\\n if (type == \\\"open\\\") {\\n w += 2;\\n h += 2;\\n t += 2;\\n dx = 1;\\n refX = isEnd ? 4 : 1;\\n attr = {\\n fill: \\\"none\\\",\\n stroke: attrs.stroke\\n };\\n } else {\\n refX = dx = w / 2;\\n attr = {\\n fill: attrs.stroke,\\n stroke: \\\"none\\\"\\n };\\n }\\n if (o._.arrows) {\\n if (isEnd) {\\n o._.arrows.endPath && markerCounter[o._.arrows.endPath]--;\\n o._.arrows.endMarker && markerCounter[o._.arrows.endMarker]--;\\n } else {\\n o._.arrows.startPath && markerCounter[o._.arrows.startPath]--;\\n o._.arrows.startMarker && markerCounter[o._.arrows.startMarker]--;\\n }\\n } else {\\n o._.arrows = {};\\n }\\n if (type != \\\"none\\\") {\\n var pathId = \\\"raphael-marker-\\\" + type,\\n markerId = \\\"raphael-marker-\\\" + se + type + w + h + \\\"-obj\\\" + o.id;\\n if (!R._g.doc.getElementById(pathId)) {\\n p.defs.appendChild($($(\\\"path\\\"), {\\n \\\"stroke-linecap\\\": \\\"round\\\",\\n d: markers[type],\\n id: pathId\\n }));\\n markerCounter[pathId] = 1;\\n } else {\\n markerCounter[pathId]++;\\n }\\n var marker = R._g.doc.getElementById(markerId),\\n use;\\n if (!marker) {\\n marker = $($(\\\"marker\\\"), {\\n id: markerId,\\n markerHeight: h,\\n markerWidth: w,\\n orient: \\\"auto\\\",\\n refX: refX,\\n refY: h / 2\\n });\\n use = $($(\\\"use\\\"), {\\n \\\"xlink:href\\\": \\\"#\\\" + pathId,\\n transform: (isEnd ? \\\"rotate(180 \\\" + w / 2 + \\\" \\\" + h / 2 + \\\") \\\" : E) + \\\"scale(\\\" + w / t + \\\",\\\" + h / t + \\\")\\\",\\n \\\"stroke-width\\\": (1 / ((w / t + h / t) / 2)).toFixed(4)\\n });\\n marker.appendChild(use);\\n p.defs.appendChild(marker);\\n markerCounter[markerId] = 1;\\n } else {\\n markerCounter[markerId]++;\\n use = marker.getElementsByTagName(\\\"use\\\")[0];\\n }\\n $(use, attr);\\n var delta = dx * (type != \\\"diamond\\\" && type != \\\"oval\\\");\\n if (isEnd) {\\n from = o._.arrows.startdx * stroke || 0;\\n to = R.getTotalLength(attrs.path) - delta * stroke;\\n } else {\\n from = delta * stroke;\\n to = R.getTotalLength(attrs.path) - (o._.arrows.enddx * stroke || 0);\\n }\\n attr = {};\\n attr[\\\"marker-\\\" + se] = \\\"url(#\\\" + markerId + \\\")\\\";\\n if (to || from) {\\n attr.d = R.getSubpath(attrs.path, from, to);\\n }\\n $(node, attr);\\n o._.arrows[se + \\\"Path\\\"] = pathId;\\n o._.arrows[se + \\\"Marker\\\"] = markerId;\\n o._.arrows[se + \\\"dx\\\"] = delta;\\n o._.arrows[se + \\\"Type\\\"] = type;\\n o._.arrows[se + \\\"String\\\"] = value;\\n } else {\\n if (isEnd) {\\n from = o._.arrows.startdx * stroke || 0;\\n to = R.getTotalLength(attrs.path) - from;\\n } else {\\n from = 0;\\n to = R.getTotalLength(attrs.path) - (o._.arrows.enddx * stroke || 0);\\n }\\n o._.arrows[se + \\\"Path\\\"] && $(node, {d: R.getSubpath(attrs.path, from, to)});\\n delete o._.arrows[se + \\\"Path\\\"];\\n delete o._.arrows[se + \\\"Marker\\\"];\\n delete o._.arrows[se + \\\"dx\\\"];\\n delete o._.arrows[se + \\\"Type\\\"];\\n delete o._.arrows[se + \\\"String\\\"];\\n }\\n for (attr in markerCounter) if (markerCounter[has](attr) && !markerCounter[attr]) {\\n var item = R._g.doc.getElementById(attr);\\n item && item.parentNode.removeChild(item);\\n }\\n }\\n },\\n dasharray = {\\n \\\"-\\\": [3, 1],\\n \\\".\\\": [1, 1],\\n \\\"-.\\\": [3, 1, 1, 1],\\n \\\"-..\\\": [3, 1, 1, 1, 1, 1],\\n \\\". \\\": [1, 3],\\n \\\"- \\\": [4, 3],\\n \\\"--\\\": [8, 3],\\n \\\"- .\\\": [4, 3, 1, 3],\\n \\\"--.\\\": [8, 3, 1, 3],\\n \\\"--..\\\": [8, 3, 1, 3, 1, 3]\\n },\\n addDashes = function (o, value, params) {\\n value = dasharray[Str(value).toLowerCase()];\\n if (value) {\\n var width = o.attrs[\\\"stroke-width\\\"] || \\\"1\\\",\\n butt = {round: width, square: width, butt: 0}[o.attrs[\\\"stroke-linecap\\\"] || params[\\\"stroke-linecap\\\"]] || 0,\\n dashes = [],\\n i = value.length;\\n while (i--) {\\n dashes[i] = value[i] * width + ((i % 2) ? 1 : -1) * butt;\\n }\\n $(o.node, {\\\"stroke-dasharray\\\": dashes.join(\\\",\\\")});\\n }\\n else {\\n $(o.node, {\\\"stroke-dasharray\\\": \\\"none\\\"});\\n }\\n },\\n setFillAndStroke = function (o, params) {\\n var node = o.node,\\n attrs = o.attrs,\\n vis = node.style.visibility;\\n node.style.visibility = \\\"hidden\\\";\\n for (var att in params) {\\n if (params[has](att)) {\\n if (!R._availableAttrs[has](att)) {\\n continue;\\n }\\n var value = params[att];\\n attrs[att] = value;\\n switch (att) {\\n case \\\"blur\\\":\\n o.blur(value);\\n break;\\n case \\\"title\\\":\\n var title = node.getElementsByTagName(\\\"title\\\");\\n\\n // Use the existing .\\n if (title.length && (title = title[0])) {\\n title.firstChild.nodeValue = value;\\n } else {\\n title = $(\\\"title\\\");\\n var val = R._g.doc.createTextNode(value);\\n title.appendChild(val);\\n node.appendChild(title);\\n }\\n break;\\n case \\\"href\\\":\\n case \\\"target\\\":\\n var pn = node.parentNode;\\n if (pn.tagName.toLowerCase() != \\\"a\\\") {\\n var hl = $(\\\"a\\\");\\n pn.insertBefore(hl, node);\\n hl.appendChild(node);\\n pn = hl;\\n }\\n if (att == \\\"target\\\") {\\n pn.setAttributeNS(xlink, \\\"show\\\", value == \\\"blank\\\" ? \\\"new\\\" : value);\\n } else {\\n pn.setAttributeNS(xlink, att, value);\\n }\\n break;\\n case \\\"cursor\\\":\\n node.style.cursor = value;\\n break;\\n case \\\"transform\\\":\\n o.transform(value);\\n break;\\n case \\\"arrow-start\\\":\\n addArrow(o, value);\\n break;\\n case \\\"arrow-end\\\":\\n addArrow(o, value, 1);\\n break;\\n case \\\"clip-rect\\\":\\n var rect = Str(value).split(separator);\\n if (rect.length == 4) {\\n o.clip && o.clip.parentNode.parentNode.removeChild(o.clip.parentNode);\\n var el = $(\\\"clipPath\\\"),\\n rc = $(\\\"rect\\\");\\n el.id = R.createUUID();\\n $(rc, {\\n x: rect[0],\\n y: rect[1],\\n width: rect[2],\\n height: rect[3]\\n });\\n el.appendChild(rc);\\n o.paper.defs.appendChild(el);\\n $(node, {\\\"clip-path\\\": \\\"url(#\\\" + el.id + \\\")\\\"});\\n o.clip = rc;\\n }\\n if (!value) {\\n var path = node.getAttribute(\\\"clip-path\\\");\\n if (path) {\\n var clip = R._g.doc.getElementById(path.replace(/(^url\\\\(#|\\\\)$)/g, E));\\n clip && clip.parentNode.removeChild(clip);\\n $(node, {\\\"clip-path\\\": E});\\n delete o.clip;\\n }\\n }\\n break;\\n case \\\"path\\\":\\n if (o.type == \\\"path\\\") {\\n $(node, {d: value ? attrs.path = R._pathToAbsolute(value) : \\\"M0,0\\\"});\\n o._.dirty = 1;\\n if (o._.arrows) {\\n \\\"startString\\\" in o._.arrows && addArrow(o, o._.arrows.startString);\\n \\\"endString\\\" in o._.arrows && addArrow(o, o._.arrows.endString, 1);\\n }\\n }\\n break;\\n case \\\"width\\\":\\n node.setAttribute(att, value);\\n o._.dirty = 1;\\n if (attrs.fx) {\\n att = \\\"x\\\";\\n value = attrs.x;\\n } else {\\n break;\\n }\\n case \\\"x\\\":\\n if (attrs.fx) {\\n value = -attrs.x - (attrs.width || 0);\\n }\\n case \\\"rx\\\":\\n if (att == \\\"rx\\\" && o.type == \\\"rect\\\") {\\n break;\\n }\\n case \\\"cx\\\":\\n node.setAttribute(att, value);\\n o.pattern && updatePosition(o);\\n o._.dirty = 1;\\n break;\\n case \\\"height\\\":\\n node.setAttribute(att, value);\\n o._.dirty = 1;\\n if (attrs.fy) {\\n att = \\\"y\\\";\\n value = attrs.y;\\n } else {\\n break;\\n }\\n case \\\"y\\\":\\n if (attrs.fy) {\\n value = -attrs.y - (attrs.height || 0);\\n }\\n case \\\"ry\\\":\\n if (att == \\\"ry\\\" && o.type == \\\"rect\\\") {\\n break;\\n }\\n case \\\"cy\\\":\\n node.setAttribute(att, value);\\n o.pattern && updatePosition(o);\\n o._.dirty = 1;\\n break;\\n case \\\"r\\\":\\n if (o.type == \\\"rect\\\") {\\n $(node, {rx: value, ry: value});\\n } else {\\n node.setAttribute(att, value);\\n }\\n o._.dirty = 1;\\n break;\\n case \\\"src\\\":\\n if (o.type == \\\"image\\\") {\\n node.setAttributeNS(xlink, \\\"href\\\", value);\\n }\\n break;\\n case \\\"stroke-width\\\":\\n /* FREEGROUP fix\\n * draw2d version 3.0.3\\n *\\n * don't scale the line width if the user resize an shape/element.\\n * Obscure stroke-width in case of \\\"Draw2D touch\\\" usage\\n */\\n if(!attrs[\\\"stroke-scale\\\"]){\\n if (o._.sx != 1 || o._.sy != 1) {\\n value /= mmax(abs(o._.sx), abs(o._.sy)) || 1;\\n }\\n if (o.paper._vbSize) {\\n // value *= o.paper._vbSize;\\n }\\n }\\n\\n\\n node.setAttribute(att, value);\\n if (attrs[\\\"stroke-dasharray\\\"]) {\\n addDashes(o, attrs[\\\"stroke-dasharray\\\"], params);\\n }\\n if (o._.arrows) {\\n \\\"startString\\\" in o._.arrows && addArrow(o, o._.arrows.startString);\\n \\\"endString\\\" in o._.arrows && addArrow(o, o._.arrows.endString, 1);\\n }\\n break;\\n case \\\"stroke-dasharray\\\":\\n addDashes(o, value, params);\\n break;\\n case \\\"fill\\\":\\n var isURL = Str(value).match(R._ISURL);\\n if (isURL) {\\n el = $(\\\"pattern\\\");\\n var ig = $(\\\"image\\\");\\n el.id = R.createUUID();\\n $(el, {x: 0, y: 0, patternUnits: \\\"userSpaceOnUse\\\", height: 1, width: 1});\\n $(ig, {x: 0, y: 0, \\\"xlink:href\\\": isURL[1]});\\n el.appendChild(ig);\\n\\n (function (el) {\\n R._preload(isURL[1], function () {\\n var w = this.offsetWidth,\\n h = this.offsetHeight;\\n $(el, {width: w, height: h});\\n $(ig, {width: w, height: h});\\n });\\n })(el);\\n o.paper.defs.appendChild(el);\\n $(node, {fill: \\\"url(#\\\" + el.id + \\\")\\\"});\\n o.pattern = el;\\n o.pattern && updatePosition(o);\\n break;\\n }\\n var clr = R.getRGB(value);\\n if (!clr.error) {\\n delete params.gradient;\\n delete attrs.gradient;\\n !R.is(attrs.opacity, \\\"undefined\\\") &&\\n R.is(params.opacity, \\\"undefined\\\") &&\\n $(node, {opacity: attrs.opacity});\\n !R.is(attrs[\\\"fill-opacity\\\"], \\\"undefined\\\") &&\\n R.is(params[\\\"fill-opacity\\\"], \\\"undefined\\\") &&\\n $(node, {\\\"fill-opacity\\\": attrs[\\\"fill-opacity\\\"]});\\n } else if ((o.type == \\\"circle\\\" || o.type == \\\"ellipse\\\" || Str(value).charAt() != \\\"r\\\") && addGradientFill(o, value)) {\\n if (\\\"opacity\\\" in attrs || \\\"fill-opacity\\\" in attrs) {\\n var gradient = R._g.doc.getElementById(node.getAttribute(\\\"fill\\\").replace(/^url\\\\(#|\\\\)$/g, E));\\n if (gradient) {\\n var stops = gradient.getElementsByTagName(\\\"stop\\\");\\n $(stops[stops.length - 1], {\\\"stop-opacity\\\": (\\\"opacity\\\" in attrs ? attrs.opacity : 1) * (\\\"fill-opacity\\\" in attrs ? attrs[\\\"fill-opacity\\\"] : 1)});\\n }\\n }\\n attrs.gradient = value;\\n attrs.fill = \\\"none\\\";\\n break;\\n }\\n clr[has](\\\"opacity\\\") && $(node, {\\\"fill-opacity\\\": clr.opacity > 1 ? clr.opacity / 100 : clr.opacity});\\n case \\\"stroke\\\":\\n clr = R.getRGB(value);\\n node.setAttribute(att, clr.hex);\\n att == \\\"stroke\\\" && clr[has](\\\"opacity\\\") && $(node, {\\\"stroke-opacity\\\": clr.opacity > 1 ? clr.opacity / 100 : clr.opacity});\\n if (att == \\\"stroke\\\" && o._.arrows) {\\n \\\"startString\\\" in o._.arrows && addArrow(o, o._.arrows.startString);\\n \\\"endString\\\" in o._.arrows && addArrow(o, o._.arrows.endString, 1);\\n }\\n break;\\n case \\\"gradient\\\":\\n (o.type == \\\"circle\\\" || o.type == \\\"ellipse\\\" || Str(value).charAt() != \\\"r\\\") && addGradientFill(o, value);\\n break;\\n case \\\"opacity\\\":\\n if (attrs.gradient && !attrs[has](\\\"stroke-opacity\\\")) {\\n $(node, {\\\"stroke-opacity\\\": value > 1 ? value / 100 : value});\\n }\\n // fall\\n case \\\"fill-opacity\\\":\\n if (attrs.gradient) {\\n gradient = R._g.doc.getElementById(node.getAttribute(\\\"fill\\\").replace(/^url\\\\(#|\\\\)$/g, E));\\n if (gradient) {\\n stops = gradient.getElementsByTagName(\\\"stop\\\");\\n // FREEGROUP FIX\\n for (gri = 0, grii = stops.length; gri < grii; gri++) {\\n $(stops[gri], {\\\"stop-opacity\\\": value});\\n }\\n // END FIX\\n }\\n break;\\n }\\n default:\\n att == \\\"font-size\\\" && (value = toInt(value, 10) + \\\"px\\\");\\n var cssrule = att.replace(/(\\\\-.)/g, function (w) {\\n return w.substring(1).toUpperCase();\\n });\\n node.style[cssrule] = value;\\n o._.dirty = 1;\\n node.setAttribute(att, value);\\n break;\\n }\\n }\\n }\\n\\n tuneText(o, params);\\n node.style.visibility = vis;\\n },\\n leading = 1.2,\\n tuneText = function (el, params) {\\n if (el.type != \\\"text\\\" || !(params[has](\\\"text\\\") || params[has](\\\"font\\\") || params[has](\\\"font-size\\\") || params[has](\\\"x\\\") || params[has](\\\"y\\\"))) {\\n return;\\n }\\n var a = el.attrs,\\n node = el.node,\\n fontSize = node.firstChild ? toInt(R._g.doc.defaultView.getComputedStyle(node.firstChild, E).getPropertyValue(\\\"font-size\\\"), 10) : 10;\\n\\n if (params[has](\\\"text\\\")) {\\n a.text = params.text;\\n while (node.firstChild) {\\n node.removeChild(node.firstChild);\\n }\\n var texts = Str(params.text).split(\\\"\\\\n\\\"),\\n tspans = [],\\n tspan;\\n for (var i = 0, ii = texts.length; i < ii; i++) {\\n tspan = $(\\\"tspan\\\");\\n i && $(tspan, {dy: fontSize * leading, x: a.x});\\n tspan.appendChild(R._g.doc.createTextNode(texts[i]));\\n node.appendChild(tspan);\\n tspans[i] = tspan;\\n }\\n } else {\\n tspans = node.getElementsByTagName(\\\"tspan\\\");\\n for (i = 0, ii = tspans.length; i < ii; i++) if (i) {\\n $(tspans[i], {dy: fontSize * leading, x: a.x});\\n } else {\\n $(tspans[0], {dy: 0});\\n }\\n }\\n $(node, {x: a.x, y: a.y});\\n el._.dirty = 1;\\n var bb = el._getBBox(),\\n dif = a.y - (bb.y + bb.height / 2);\\n dif && R.is(dif, \\\"finite\\\") && $(tspans[0], {dy: dif});\\n },\\n getRealNode = function (node) {\\n if (node.parentNode && node.parentNode.tagName.toLowerCase() === \\\"a\\\") {\\n return node.parentNode;\\n } else {\\n return node;\\n }\\n },\\n Element = function (node, svg) {\\n var X = 0,\\n Y = 0;\\n /*\\\\\\n * Element.node\\n [ property (object) ]\\n **\\n * Gives you a reference to the DOM object, so you can assign event handlers or just mess around.\\n **\\n * Note: Don’t mess with it.\\n > Usage\\n | // draw a circle at coordinate 10,10 with radius of 10\\n | var c = paper.circle(10, 10, 10);\\n | c.node.onclick = function () {\\n | c.attr(\\\"fill\\\", \\\"red\\\");\\n | };\\n \\\\*/\\n this[0] = this.node = node;\\n /*\\\\\\n * Element.raphael\\n [ property (object) ]\\n **\\n * Internal reference to @Raphael object. In case it is not available.\\n > Usage\\n | Raphael.el.red = function () {\\n | var hsb = this.paper.raphael.rgb2hsb(this.attr(\\\"fill\\\"));\\n | hsb.h = 1;\\n | this.attr({fill: this.paper.raphael.hsb2rgb(hsb).hex});\\n | }\\n \\\\*/\\n node.raphael = true;\\n /*\\\\\\n * Element.id\\n [ property (number) ]\\n **\\n * Unique id of the element. Especially useful when you want to listen to events of the element,\\n * because all events are fired in format `<module>.<action>.<id>`. Also useful for @Paper.getById method.\\n \\\\*/\\n this.id = R._oid++;\\n node.raphaelid = this.id;\\n this.matrix = R.matrix();\\n this.realPath = null;\\n /*\\\\\\n * Element.paper\\n [ property (object) ]\\n **\\n * Internal reference to “paper” where object drawn. Mainly for use in plugins and element extensions.\\n > Usage\\n | Raphael.el.cross = function () {\\n | this.attr({fill: \\\"red\\\"});\\n | this.paper.path(\\\"M10,10L50,50M50,10L10,50\\\")\\n | .attr({stroke: \\\"red\\\"});\\n | }\\n \\\\*/\\n this.paper = svg;\\n this.attrs = this.attrs || {};\\n this._ = {\\n transform: [],\\n sx: 1,\\n sy: 1,\\n deg: 0,\\n dx: 0,\\n dy: 0,\\n dirty: 1\\n };\\n !svg.bottom && (svg.bottom = this);\\n /*\\\\\\n * Element.prev\\n [ property (object) ]\\n **\\n * Reference to the previous element in the hierarchy.\\n \\\\*/\\n this.prev = svg.top;\\n svg.top && (svg.top.next = this);\\n svg.top = this;\\n /*\\\\\\n * Element.next\\n [ property (object) ]\\n **\\n * Reference to the next element in the hierarchy.\\n \\\\*/\\n this.next = null;\\n },\\n elproto = R.el;\\n\\n Element.prototype = elproto;\\n elproto.constructor = Element;\\n\\n R._engine.path = function (pathString, SVG) {\\n var el = $(\\\"path\\\");\\n SVG.canvas && SVG.canvas.appendChild(el);\\n var p = new Element(el, SVG);\\n p.type = \\\"path\\\";\\n setFillAndStroke(p, {\\n fill: \\\"none\\\",\\n stroke: \\\"#000\\\",\\n path: pathString\\n });\\n return p;\\n };\\n /*\\\\\\n * Element.rotate\\n [ method ]\\n **\\n * Deprecated! Use @Element.transform instead.\\n * Adds rotation by given angle around given point to the list of\\n * transformations of the element.\\n > Parameters\\n - deg (number) angle in degrees\\n - cx (number) #optional x coordinate of the centre of rotation\\n - cy (number) #optional y coordinate of the centre of rotation\\n * If cx & cy aren’t specified centre of the shape is used as a point of rotation.\\n = (object) @Element\\n \\\\*/\\n elproto.rotate = function (deg, cx, cy) {\\n if (this.removed) {\\n return this;\\n }\\n deg = Str(deg).split(separator);\\n if (deg.length - 1) {\\n cx = toFloat(deg[1]);\\n cy = toFloat(deg[2]);\\n }\\n deg = toFloat(deg[0]);\\n (cy == null) && (cx = cy);\\n if (cx == null || cy == null) {\\n var bbox = this.getBBox(1);\\n cx = bbox.x + bbox.width / 2;\\n cy = bbox.y + bbox.height / 2;\\n }\\n this.transform(this._.transform.concat([[\\\"r\\\", deg, cx, cy]]));\\n return this;\\n };\\n /*\\\\\\n * Element.scale\\n [ method ]\\n **\\n * Deprecated! Use @Element.transform instead.\\n * Adds scale by given amount relative to given point to the list of\\n * transformations of the element.\\n > Parameters\\n - sx (number) horisontal scale amount\\n - sy (number) vertical scale amount\\n - cx (number) #optional x coordinate of the centre of scale\\n - cy (number) #optional y coordinate of the centre of scale\\n * If cx & cy aren’t specified centre of the shape is used instead.\\n = (object) @Element\\n \\\\*/\\n elproto.scale = function (sx, sy, cx, cy) {\\n if (this.removed) {\\n return this;\\n }\\n sx = Str(sx).split(separator);\\n if (sx.length - 1) {\\n sy = toFloat(sx[1]);\\n cx = toFloat(sx[2]);\\n cy = toFloat(sx[3]);\\n }\\n sx = toFloat(sx[0]);\\n (sy == null) && (sy = sx);\\n (cy == null) && (cx = cy);\\n if (cx == null || cy == null) {\\n var bbox = this.getBBox(1);\\n }\\n cx = cx == null ? bbox.x + bbox.width / 2 : cx;\\n cy = cy == null ? bbox.y + bbox.height / 2 : cy;\\n this.transform(this._.transform.concat([[\\\"s\\\", sx, sy, cx, cy]]));\\n return this;\\n };\\n /*\\\\\\n * Element.translate\\n [ method ]\\n **\\n * Deprecated! Use @Element.transform instead.\\n * Adds translation by given amount to the list of transformations of the element.\\n > Parameters\\n - dx (number) horisontal shift\\n - dy (number) vertical shift\\n = (object) @Element\\n \\\\*/\\n elproto.translate = function (dx, dy) {\\n if (this.removed) {\\n return this;\\n }\\n dx = Str(dx).split(separator);\\n if (dx.length - 1) {\\n dy = toFloat(dx[1]);\\n }\\n dx = toFloat(dx[0]) || 0;\\n dy = +dy || 0;\\n this.transform(this._.transform.concat([[\\\"t\\\", dx, dy]]));\\n return this;\\n };\\n /*\\\\\\n * Element.transform\\n [ method ]\\n **\\n * Adds transformation to the element which is separate to other attributes,\\n * i.e. translation doesn’t change `x` or `y` of the rectange. The format\\n * of transformation string is similar to the path string syntax:\\n | \\\"t100,100r30,100,100s2,2,100,100r45s1.5\\\"\\n * Each letter is a command. There are four commands: `t` is for translate, `r` is for rotate, `s` is for\\n * scale and `m` is for matrix.\\n *\\n * There are also alternative “absolute” translation, rotation and scale: `T`, `R` and `S`. They will not take previous transformation into account. For example, `...T100,0` will always move element 100 px horisontally, while `...t100,0` could move it vertically if there is `r90` before. Just compare results of `r90t100,0` and `r90T100,0`.\\n *\\n * So, the example line above could be read like “translate by 100, 100; rotate 30° around 100, 100; scale twice around 100, 100;\\n * rotate 45° around centre; scale 1.5 times relative to centre”. As you can see rotate and scale commands have origin\\n * coordinates as optional parameters, the default is the centre point of the element.\\n * Matrix accepts six parameters.\\n > Usage\\n | var el = paper.rect(10, 20, 300, 200);\\n | // translate 100, 100, rotate 45°, translate -100, 0\\n | el.transform(\\\"t100,100r45t-100,0\\\");\\n | // if you want you can append or prepend transformations\\n | el.transform(\\\"...t50,50\\\");\\n | el.transform(\\\"s2...\\\");\\n | // or even wrap\\n | el.transform(\\\"t50,50...t-50-50\\\");\\n | // to reset transformation call method with empty string\\n | el.transform(\\\"\\\");\\n | // to get current value call it without parameters\\n | console.log(el.transform());\\n > Parameters\\n - tstr (string) #optional transformation string\\n * If tstr isn’t specified\\n = (string) current transformation string\\n * else\\n = (object) @Element\\n \\\\*/\\n elproto.transform = function (tstr) {\\n var _ = this._;\\n if (tstr == null) {\\n return _.transform;\\n }\\n R._extractTransform(this, tstr);\\n\\n this.clip && $(this.clip, {transform: this.matrix.invert()});\\n this.pattern && updatePosition(this);\\n this.node && $(this.node, {transform: this.matrix});\\n\\n if (_.sx != 1 || _.sy != 1) {\\n var sw = this.attrs[has](\\\"stroke-width\\\") ? this.attrs[\\\"stroke-width\\\"] : 1;\\n this.attr({\\\"stroke-width\\\": sw});\\n }\\n\\n //Reduce transform string\\n _.transform = this.matrix.toTransformString();\\n\\n return this;\\n };\\n /*\\\\\\n * Element.hide\\n [ method ]\\n **\\n * Makes element invisible. See @Element.show.\\n = (object) @Element\\n \\\\*/\\n elproto.hide = function () {\\n if(!this.removed) this.node.style.display = \\\"none\\\";\\n return this;\\n };\\n /*\\\\\\n * Element.show\\n [ method ]\\n **\\n * Makes element visible. See @Element.hide.\\n = (object) @Element\\n \\\\*/\\n elproto.show = function () {\\n if(!this.removed) this.node.style.display = \\\"\\\";\\n return this;\\n };\\n /*\\\\\\n * Element.remove\\n [ method ]\\n **\\n * Removes element from the paper.\\n \\\\*/\\n elproto.remove = function () {\\n var node = getRealNode(this.node);\\n if (this.removed || !node.parentNode) {\\n return;\\n }\\n var paper = this.paper;\\n paper.__set__ && paper.__set__.exclude(this);\\n eve.unbind(\\\"raphael.*.*.\\\" + this.id);\\n if (this.gradient) {\\n paper.defs.removeChild(this.gradient);\\n }\\n R._tear(this, paper);\\n\\n node.parentNode.removeChild(node);\\n\\n // Remove custom data for element\\n this.removeData();\\n\\n for (var i in this) {\\n this[i] = typeof this[i] == \\\"function\\\" ? R._removedFactory(i) : null;\\n }\\n this.removed = true;\\n };\\n elproto._getBBox = function () {\\n if (this.node.style.display == \\\"none\\\") {\\n this.show();\\n var hide = true;\\n }\\n var canvasHidden = false,\\n containerStyle;\\n if (this.paper.canvas.parentElement) {\\n containerStyle = this.paper.canvas.parentElement.style;\\n } //IE10+ can't find parentElement\\n else if (this.paper.canvas.parentNode) {\\n containerStyle = this.paper.canvas.parentNode.style;\\n }\\n\\n if(containerStyle && containerStyle.display == \\\"none\\\") {\\n canvasHidden = true;\\n containerStyle.display = \\\"\\\";\\n }\\n var bbox = {};\\n try {\\n bbox = this.node.getBBox();\\n } catch(e) {\\n // Firefox 3.0.x, 25.0.1 (probably more versions affected) play badly here - possible fix\\n bbox = {\\n x: this.node.clientLeft,\\n y: this.node.clientTop,\\n width: this.node.clientWidth,\\n height: this.node.clientHeight\\n }\\n } finally {\\n bbox = bbox || {};\\n if(canvasHidden){\\n containerStyle.display = \\\"none\\\";\\n }\\n }\\n hide && this.hide();\\n return bbox;\\n };\\n /*\\\\\\n * Element.attr\\n [ method ]\\n **\\n * Sets the attributes of the element.\\n > Parameters\\n - attrName (string) attribute’s name\\n - value (string) value\\n * or\\n - params (object) object of name/value pairs\\n * or\\n - attrName (string) attribute’s name\\n * or\\n - attrNames (array) in this case method returns array of current values for given attribute names\\n = (object) @Element if attrsName & value or params are passed in.\\n = (...) value of the attribute if only attrsName is passed in.\\n = (array) array of values of the attribute if attrsNames is passed in.\\n = (object) object of attributes if nothing is passed in.\\n > Possible parameters\\n # <p>Please refer to the <a href=\\\"http://www.w3.org/TR/SVG/\\\" title=\\\"The W3C Recommendation for the SVG language describes these properties in detail.\\\">SVG specification</a> for an explanation of these parameters.</p>\\n o arrow-end (string) arrowhead on the end of the path. The format for string is `<type>[-<width>[-<length>]]`. Possible types: `classic`, `block`, `open`, `oval`, `diamond`, `none`, width: `wide`, `narrow`, `medium`, length: `long`, `short`, `midium`.\\n o clip-rect (string) comma or space separated values: x, y, width and height\\n o cursor (string) CSS type of the cursor\\n o cx (number) the x-axis coordinate of the center of the circle, or ellipse\\n o cy (number) the y-axis coordinate of the center of the circle, or ellipse\\n o fill (string) colour, gradient or image\\n o fill-opacity (number)\\n o font (string)\\n o font-family (string)\\n o font-size (number) font size in pixels\\n o font-weight (string)\\n o height (number)\\n o href (string) URL, if specified element behaves as hyperlink\\n o opacity (number)\\n o path (string) SVG path string format\\n o r (number) radius of the circle, ellipse or rounded corner on the rect\\n o rx (number) horisontal radius of the ellipse\\n o ry (number) vertical radius of the ellipse\\n o src (string) image URL, only works for @Element.image element\\n o stroke (string) stroke colour\\n o stroke-dasharray (string) [“”, “none”, “`-`”, “`.`”, “`-.`”, “`-..`”, “`. `”, “`- `”, “`--`”, “`- .`”, “`--.`”, “`--..`”]\\n o stroke-linecap (string) [“`butt`”, “`square`”, “`round`”]\\n o stroke-linejoin (string) [“`bevel`”, “`round`”, “`miter`”]\\n o stroke-miterlimit (number)\\n o stroke-opacity (number)\\n o stroke-width (number) stroke width in pixels, default is '1'\\n o target (string) used with href\\n o text (string) contents of the text element. Use `\\\\n` for multiline text\\n o text-anchor (string) [“`start`”, “`middle`”, “`end`”], default is “`middle`”\\n o title (string) will create tooltip with a given text\\n o transform (string) see @Element.transform\\n o width (number)\\n o x (number)\\n o y (number)\\n > Gradients\\n * Linear gradient format: “`‹angle›-‹colour›[-‹colour›[:‹offset›]]*-‹colour›`”, example: “`90-#fff-#000`” – 90°\\n * gradient from white to black or “`0-#fff-#f00:20-#000`” – 0° gradient from white via red (at 20%) to black.\\n *\\n * radial gradient: “`r[(‹fx›, ‹fy›)]‹colour›[-‹colour›[:‹offset›]]*-‹colour›`”, example: “`r#fff-#000`” –\\n * gradient from white to black or “`r(0.25, 0.75)#fff-#000`” – gradient from white to black with focus point\\n * at 0.25, 0.75. Focus point coordinates are in 0..1 range. Radial gradients can only be applied to circles and ellipses.\\n > Path String\\n # <p>Please refer to <a href=\\\"http://www.w3.org/TR/SVG/paths.html#PathData\\\" title=\\\"Details of a path’s data attribute’s format are described in the SVG specification.\\\">SVG documentation regarding path string</a>. Raphaël fully supports it.</p>\\n > Colour Parsing\\n # <ul>\\n # <li>Colour name (“<code>red</code>”, “<code>green</code>”, “<code>cornflowerblue</code>”, etc)</li>\\n # <li>#••• — shortened HTML colour: (“<code>#000</code>”, “<code>#fc0</code>”, etc)</li>\\n # <li>#•••••• — full length HTML colour: (“<code>#000000</code>”, “<code>#bd2300</code>”)</li>\\n # <li>rgb(•••, •••, •••) — red, green and blue channels’ values: (“<code>rgb(200, 100, 0)</code>”)</li>\\n # <li>rgb(•••%, •••%, •••%) — same as above, but in %: (“<code>rgb(100%, 175%, 0%)</code>”)</li>\\n # <li>rgba(•••, •••, •••, •••) — red, green and blue channels’ values: (“<code>rgba(200, 100, 0, .5)</code>”)</li>\\n # <li>rgba(•••%, •••%, •••%, •••%) — same as above, but in %: (“<code>rgba(100%, 175%, 0%, 50%)</code>”)</li>\\n # <li>hsb(•••, •••, •••) — hue, saturation and brightness values: (“<code>hsb(0.5, 0.25, 1)</code>”)</li>\\n # <li>hsb(•••%, •••%, •••%) — same as above, but in %</li>\\n # <li>hsba(•••, •••, •••, •••) — same as above, but with opacity</li>\\n # <li>hsl(•••, •••, •••) — almost the same as hsb, see <a href=\\\"http://en.wikipedia.org/wiki/HSL_and_HSV\\\" title=\\\"HSL and HSV - Wikipedia, the free encyclopedia\\\">Wikipedia page</a></li>\\n # <li>hsl(•••%, •••%, •••%) — same as above, but in %</li>\\n # <li>hsla(•••, •••, •••, •••) — same as above, but with opacity</li>\\n # <li>Optionally for hsb and hsl you could specify hue as a degree: “<code>hsl(240deg, 1, .5)</code>” or, if you want to go fancy, “<code>hsl(240°, 1, .5)</code>”</li>\\n # </ul>\\n \\\\*/\\n elproto.attr = function (name, value) {\\n if (this.removed) {\\n return this;\\n }\\n if (name == null) {\\n var res = {};\\n for (var a in this.attrs) if (this.attrs[has](a)) {\\n res[a] = this.attrs[a];\\n }\\n res.gradient && res.fill == \\\"none\\\" && (res.fill = res.gradient) && delete res.gradient;\\n res.transform = this._.transform;\\n return res;\\n }\\n if (value == null && R.is(name, \\\"string\\\")) {\\n if (name == \\\"fill\\\" && this.attrs.fill == \\\"none\\\" && this.attrs.gradient) {\\n return this.attrs.gradient;\\n }\\n if (name == \\\"transform\\\") {\\n return this._.transform;\\n }\\n var names = name.split(separator),\\n out = {};\\n for (var i = 0, ii = names.length; i < ii; i++) {\\n name = names[i];\\n if (name in this.attrs) {\\n out[name] = this.attrs[name];\\n } else if (R.is(this.paper.customAttributes[name], \\\"function\\\")) {\\n out[name] = this.paper.customAttributes[name].def;\\n } else {\\n out[name] = R._availableAttrs[name];\\n }\\n }\\n return ii - 1 ? out : out[names[0]];\\n }\\n if (value == null && R.is(name, \\\"array\\\")) {\\n out = {};\\n for (i = 0, ii = name.length; i < ii; i++) {\\n out[name[i]] = this.attr(name[i]);\\n }\\n return out;\\n }\\n if (value != null) {\\n var params = {};\\n params[name] = value;\\n } else if (name != null && R.is(name, \\\"object\\\")) {\\n params = name;\\n }\\n for (var key in params) {\\n eve(\\\"raphael.attr.\\\" + key + \\\".\\\" + this.id, this, params[key]);\\n }\\n for (key in this.paper.customAttributes) if (this.paper.customAttributes[has](key) && params[has](key) && R.is(this.paper.customAttributes[key], \\\"function\\\")) {\\n var par = this.paper.customAttributes[key].apply(this, [].concat(params[key]));\\n this.attrs[key] = params[key];\\n for (var subkey in par) if (par[has](subkey)) {\\n params[subkey] = par[subkey];\\n }\\n }\\n setFillAndStroke(this, params);\\n return this;\\n };\\n /*\\\\\\n * Element.toFront\\n [ method ]\\n **\\n * Moves the element so it is the closest to the viewer’s eyes, on top of other elements.\\n = (object) @Element\\n \\\\*/\\n elproto.toFront = function () {\\n if (this.removed) {\\n return this;\\n }\\n var node = getRealNode(this.node);\\n node.parentNode.appendChild(node);\\n var svg = this.paper;\\n svg.top != this && R._tofront(this, svg);\\n return this;\\n };\\n /*\\\\\\n * Element.toBack\\n [ method ]\\n **\\n * Moves the element so it is the furthest from the viewer’s eyes, behind other elements.\\n = (object) @Element\\n \\\\*/\\n elproto.toBack = function () {\\n if (this.removed) {\\n return this;\\n }\\n var node = getRealNode(this.node);\\n var parentNode = node.parentNode;\\n parentNode.insertBefore(node, parentNode.firstChild);\\n R._toback(this, this.paper);\\n var svg = this.paper;\\n return this;\\n };\\n /*\\\\\\n * Element.insertAfter\\n [ method ]\\n **\\n * Inserts current object after the given one.\\n = (object) @Element\\n \\\\*/\\n elproto.insertAfter = function (element) {\\n if (this.removed || !element) {\\n return this;\\n }\\n\\n var node = getRealNode(this.node);\\n var afterNode = getRealNode(element.node || element[element.length - 1].node);\\n if (afterNode.nextSibling) {\\n afterNode.parentNode.insertBefore(node, afterNode.nextSibling);\\n } else {\\n afterNode.parentNode.appendChild(node);\\n }\\n R._insertafter(this, element, this.paper);\\n return this;\\n };\\n /*\\\\\\n * Element.insertBefore\\n [ method ]\\n **\\n * Inserts current object before the given one.\\n = (object) @Element\\n \\\\*/\\n elproto.insertBefore = function (element) {\\n if (this.removed || !element) {\\n return this;\\n }\\n\\n var node = getRealNode(this.node);\\n var beforeNode = getRealNode(element.node || element[0].node);\\n beforeNode.parentNode.insertBefore(node, beforeNode);\\n R._insertbefore(this, element, this.paper);\\n return this;\\n };\\n elproto.blur = function (size) {\\n // Experimental. No Safari support. Use it on your own risk.\\n var t = this;\\n if (+size !== 0) {\\n var fltr = $(\\\"filter\\\"),\\n blur = $(\\\"feGaussianBlur\\\");\\n t.attrs.blur = size;\\n fltr.id = R.createUUID();\\n $(blur, {stdDeviation: +size || 1.5});\\n fltr.appendChild(blur);\\n t.paper.defs.appendChild(fltr);\\n t._blur = fltr;\\n $(t.node, {filter: \\\"url(#\\\" + fltr.id + \\\")\\\"});\\n } else {\\n if (t._blur) {\\n t._blur.parentNode.removeChild(t._blur);\\n delete t._blur;\\n delete t.attrs.blur;\\n }\\n t.node.removeAttribute(\\\"filter\\\");\\n }\\n return t;\\n };\\n R._engine.circle = function (svg, x, y, r) {\\n var el = $(\\\"circle\\\");\\n svg.canvas && svg.canvas.appendChild(el);\\n var res = new Element(el, svg);\\n res.attrs = {cx: x, cy: y, r: r, fill: \\\"none\\\", stroke: \\\"#000\\\"};\\n res.type = \\\"circle\\\";\\n $(el, res.attrs);\\n return res;\\n };\\n R._engine.rect = function (svg, x, y, w, h, r) {\\n var el = $(\\\"rect\\\");\\n svg.canvas && svg.canvas.appendChild(el);\\n var res = new Element(el, svg);\\n res.attrs = {x: x, y: y, width: w, height: h, rx: r || 0, ry: r || 0, fill: \\\"none\\\", stroke: \\\"#000\\\"};\\n res.type = \\\"rect\\\";\\n $(el, res.attrs);\\n return res;\\n };\\n R._engine.ellipse = function (svg, x, y, rx, ry) {\\n var el = $(\\\"ellipse\\\");\\n svg.canvas && svg.canvas.appendChild(el);\\n var res = new Element(el, svg);\\n res.attrs = {cx: x, cy: y, rx: rx, ry: ry, fill: \\\"none\\\", stroke: \\\"#000\\\"};\\n res.type = \\\"ellipse\\\";\\n $(el, res.attrs);\\n return res;\\n };\\n R._engine.image = function (svg, src, x, y, w, h) {\\n var el = $(\\\"image\\\");\\n $(el, {x: x, y: y, width: w, height: h, preserveAspectRatio: \\\"none\\\"});\\n el.setAttributeNS(xlink, \\\"href\\\", src);\\n svg.canvas && svg.canvas.appendChild(el);\\n var res = new Element(el, svg);\\n res.attrs = {x: x, y: y, width: w, height: h, src: src};\\n res.type = \\\"image\\\";\\n return res;\\n };\\n R._engine.text = function (svg, x, y, text) {\\n var el = $(\\\"text\\\");\\n svg.canvas && svg.canvas.appendChild(el);\\n var res = new Element(el, svg);\\n res.attrs = {\\n x: x,\\n y: y,\\n \\\"text-anchor\\\": \\\"middle\\\",\\n text: text,\\n \\\"font-family\\\": R._availableAttrs[\\\"font-family\\\"],\\n \\\"font-size\\\": R._availableAttrs[\\\"font-size\\\"],\\n stroke: \\\"none\\\",\\n fill: \\\"#000\\\"\\n };\\n res.type = \\\"text\\\";\\n setFillAndStroke(res, res.attrs);\\n return res;\\n };\\n R._engine.setSize = function (width, height) {\\n this.width = width || this.width;\\n this.height = height || this.height;\\n this.canvas.setAttribute(\\\"width\\\", this.width);\\n this.canvas.setAttribute(\\\"height\\\", this.height);\\n if (this._viewBox) {\\n this.setViewBox.apply(this, this._viewBox);\\n }\\n return this;\\n };\\n R._engine.create = function () {\\n var con = R._getContainer.apply(0, arguments),\\n container = con && con.container,\\n x = con.x,\\n y = con.y,\\n width = con.width,\\n height = con.height;\\n if (!container) {\\n throw new Error(\\\"SVG container not found.\\\");\\n }\\n var cnvs = $(\\\"svg\\\"),\\n css = \\\"overflow:hidden;\\\",\\n isFloating;\\n x = x || 0;\\n y = y || 0;\\n width = width || 512;\\n height = height || 342;\\n $(cnvs, {\\n height: height,\\n version: 1.1,\\n width: width,\\n xmlns: \\\"http://www.w3.org/2000/svg\\\",\\n \\\"xmlns:xlink\\\": \\\"http://www.w3.org/1999/xlink\\\"\\n });\\n if (container == 1) {\\n cnvs.style.cssText = css + \\\"position:absolute;left:\\\" + x + \\\"px;top:\\\" + y + \\\"px\\\";\\n R._g.doc.body.appendChild(cnvs);\\n isFloating = 1;\\n } else {\\n cnvs.style.cssText = css + \\\"position:relative\\\";\\n if (container.firstChild) {\\n container.insertBefore(cnvs, container.firstChild);\\n } else {\\n container.appendChild(cnvs);\\n }\\n }\\n container = new R._Paper;\\n container.width = width;\\n container.height = height;\\n container.canvas = cnvs;\\n container.clear();\\n container._left = container._top = 0;\\n isFloating && (container.renderfix = function () {});\\n container.renderfix();\\n return container;\\n };\\n R._engine.setViewBox = function (x, y, w, h, fit) {\\n eve(\\\"raphael.setViewBox\\\", this, this._viewBox, [x, y, w, h, fit]);\\n var paperSize = this.getSize(),\\n size = mmax(w / paperSize.width, h / paperSize.height),\\n top = this.top,\\n aspectRatio = fit ? \\\"xMidYMid meet\\\" : \\\"xMinYMin\\\",\\n vb,\\n sw;\\n if (x == null) {\\n if (this._vbSize) {\\n size = 1;\\n }\\n delete this._vbSize;\\n vb = \\\"0 0 \\\" + this.width + S + this.height;\\n } else {\\n this._vbSize = size;\\n vb = x + S + y + S + w + S + h;\\n }\\n $(this.canvas, {\\n viewBox: vb,\\n preserveAspectRatio: aspectRatio\\n });\\n while (size && top) {\\n sw = \\\"stroke-width\\\" in top.attrs ? top.attrs[\\\"stroke-width\\\"] : 1;\\n top.attr({\\\"stroke-width\\\": sw});\\n top._.dirty = 1;\\n top._.dirtyT = 1;\\n top = top.prev;\\n }\\n this._viewBox = [x, y, w, h, !!fit];\\n return this;\\n };\\n /*\\\\\\n * Paper.renderfix\\n [ method ]\\n **\\n * Fixes the issue of Firefox and IE9 regarding subpixel rendering. If paper is dependant\\n * on other elements after reflow it could shift half pixel which cause for lines to lost their crispness.\\n * This method fixes the issue.\\n **\\n Special thanks to Mariusz Nowak (http://www.medikoo.com/) for this method.\\n \\\\*/\\n R.prototype.renderfix = function () {\\n var cnvs = this.canvas,\\n s = cnvs.style,\\n pos;\\n try {\\n pos = cnvs.getScreenCTM() || cnvs.createSVGMatrix();\\n } catch (e) {\\n pos = cnvs.createSVGMatrix();\\n }\\n var left = -pos.e % 1,\\n top = -pos.f % 1;\\n if (left || top) {\\n if (left) {\\n this._left = (this._left + left) % 1;\\n s.left = this._left + \\\"px\\\";\\n }\\n if (top) {\\n this._top = (this._top + top) % 1;\\n s.top = this._top + \\\"px\\\";\\n }\\n }\\n };\\n /*\\\\\\n * Paper.clear\\n [ method ]\\n **\\n * Clears the paper, i.e. removes all the elements.\\n \\\\*/\\n R.prototype.clear = function () {\\n R.eve(\\\"raphael.clear\\\", this);\\n var c = this.canvas;\\n while (c.firstChild) {\\n c.removeChild(c.firstChild);\\n }\\n this.bottom = this.top = null;\\n (this.desc = $(\\\"desc\\\")).appendChild(R._g.doc.createTextNode(\\\"Created with Rapha\\\\xebl \\\" + R.version));\\n c.appendChild(this.desc);\\n c.appendChild(this.defs = $(\\\"defs\\\"));\\n };\\n /*\\\\\\n * Paper.remove\\n [ method ]\\n **\\n * Removes the paper from the DOM.\\n \\\\*/\\n R.prototype.remove = function () {\\n eve(\\\"raphael.remove\\\", this);\\n this.canvas.parentNode && this.canvas.parentNode.removeChild(this.canvas);\\n for (var i in this) {\\n this[i] = typeof this[i] == \\\"function\\\" ? R._removedFactory(i) : null;\\n }\\n };\\n var setproto = R.st;\\n for (var method in elproto) if (elproto[has](method) && !setproto[has](method)) {\\n setproto[method] = (function (methodname) {\\n return function () {\\n var arg = arguments;\\n return this.forEach(function (el) {\\n el[methodname].apply(el, arg);\\n });\\n };\\n })(method);\\n }\\n}));\\n\\n// ┌─────────────────────────────────────────────────────────────────────┐ \\\\\\\\\\n// │ Raphaël 2.1.4 - JavaScript Vector Library │ \\\\\\\\\\n// ├─────────────────────────────────────────────────────────────────────┤ \\\\\\\\\\n// │ VML Module │ \\\\\\\\\\n// ├─────────────────────────────────────────────────────────────────────┤ \\\\\\\\\\n// │ Copyright (c) 2008-2011 Dmitry Baranovskiy (http://raphaeljs.com) │ \\\\\\\\\\n// │ Copyright (c) 2008-2011 Sencha Labs (http://sencha.com) │ \\\\\\\\\\n// │ Licensed under the MIT (http://raphaeljs.com/license.html) license. │ \\\\\\\\\\n// └─────────────────────────────────────────────────────────────────────┘ \\\\\\\\\\n\\n(function (glob, factory) {\\n if (typeof define === \\\"function\\\" && define.amd) {\\n define(\\\"raphael.vml\\\", [\\\"raphael.core\\\"], function(raphael) {\\n return factory(raphael);\\n });\\n } else if (typeof exports === \\\"object\\\") {\\n factory(require(\\\"./raphael.core\\\"));\\n } else {\\n factory(glob.Raphael);\\n }\\n}(this, function(R) {\\n if (R && !R.vml) {\\n return;\\n }\\n\\n var has = \\\"hasOwnProperty\\\",\\n Str = String,\\n toFloat = parseFloat,\\n math = Math,\\n round = math.round,\\n mmax = math.max,\\n mmin = math.min,\\n abs = math.abs,\\n fillString = \\\"fill\\\",\\n separator = /[, ]+/,\\n eve = R.eve,\\n ms = \\\" progid:DXImageTransform.Microsoft\\\",\\n S = \\\" \\\",\\n E = \\\"\\\",\\n map = {M: \\\"m\\\", L: \\\"l\\\", C: \\\"c\\\", Z: \\\"x\\\", m: \\\"t\\\", l: \\\"r\\\", c: \\\"v\\\", z: \\\"x\\\"},\\n bites = /([clmz]),?([^clmz]*)/gi,\\n blurregexp = / progid:\\\\S+Blur\\\\([^\\\\)]+\\\\)/g,\\n val = /-?[^,\\\\s-]+/g,\\n cssDot = \\\"position:absolute;left:0;top:0;width:1px;height:1px;behavior:url(#default#VML)\\\",\\n zoom = 21600,\\n pathTypes = {path: 1, rect: 1, image: 1},\\n ovalTypes = {circle: 1, ellipse: 1},\\n path2vml = function (path) {\\n var total = /[ahqstv]/ig,\\n command = R._pathToAbsolute;\\n Str(path).match(total) && (command = R._path2curve);\\n total = /[clmz]/g;\\n if (command == R._pathToAbsolute && !Str(path).match(total)) {\\n var res = Str(path).replace(bites, function (all, command, args) {\\n var vals = [],\\n isMove = command.toLowerCase() == \\\"m\\\",\\n res = map[command];\\n args.replace(val, function (value) {\\n if (isMove && vals.length == 2) {\\n res += vals + map[command == \\\"m\\\" ? \\\"l\\\" : \\\"L\\\"];\\n vals = [];\\n }\\n vals.push(round(value * zoom));\\n });\\n return res + vals;\\n });\\n return res;\\n }\\n var pa = command(path), p, r;\\n res = [];\\n for (var i = 0, ii = pa.length; i < ii; i++) {\\n p = pa[i];\\n r = pa[i][0].toLowerCase();\\n r == \\\"z\\\" && (r = \\\"x\\\");\\n for (var j = 1, jj = p.length; j < jj; j++) {\\n r += round(p[j] * zoom) + (j != jj - 1 ? \\\",\\\" : E);\\n }\\n res.push(r);\\n }\\n return res.join(S);\\n },\\n compensation = function (deg, dx, dy) {\\n var m = R.matrix();\\n m.rotate(-deg, .5, .5);\\n return {\\n dx: m.x(dx, dy),\\n dy: m.y(dx, dy)\\n };\\n },\\n setCoords = function (p, sx, sy, dx, dy, deg) {\\n var _ = p._,\\n m = p.matrix,\\n fillpos = _.fillpos,\\n o = p.node,\\n s = o.style,\\n y = 1,\\n flip = \\\"\\\",\\n dxdy,\\n kx = zoom / sx,\\n ky = zoom / sy;\\n s.visibility = \\\"hidden\\\";\\n if (!sx || !sy) {\\n return;\\n }\\n o.coordsize = abs(kx) + S + abs(ky);\\n s.rotation = deg * (sx * sy < 0 ? -1 : 1);\\n if (deg) {\\n var c = compensation(deg, dx, dy);\\n dx = c.dx;\\n dy = c.dy;\\n }\\n sx < 0 && (flip += \\\"x\\\");\\n sy < 0 && (flip += \\\" y\\\") && (y = -1);\\n s.flip = flip;\\n o.coordorigin = (dx * -kx) + S + (dy * -ky);\\n if (fillpos || _.fillsize) {\\n var fill = o.getElementsByTagName(fillString);\\n fill = fill && fill[0];\\n o.removeChild(fill);\\n if (fillpos) {\\n c = compensation(deg, m.x(fillpos[0], fillpos[1]), m.y(fillpos[0], fillpos[1]));\\n fill.position = c.dx * y + S + c.dy * y;\\n }\\n if (_.fillsize) {\\n fill.size = _.fillsize[0] * abs(sx) + S + _.fillsize[1] * abs(sy);\\n }\\n o.appendChild(fill);\\n }\\n s.visibility = \\\"visible\\\";\\n };\\n R.toString = function () {\\n return \\\"Your browser doesn\\\\u2019t support SVG. Falling down to VML.\\\\nYou are running Rapha\\\\xebl \\\" + this.version;\\n };\\n var addArrow = function (o, value, isEnd) {\\n var values = Str(value).toLowerCase().split(\\\"-\\\"),\\n se = isEnd ? \\\"end\\\" : \\\"start\\\",\\n i = values.length,\\n type = \\\"classic\\\",\\n w = \\\"medium\\\",\\n h = \\\"medium\\\";\\n while (i--) {\\n switch (values[i]) {\\n case \\\"block\\\":\\n case \\\"classic\\\":\\n case \\\"oval\\\":\\n case \\\"diamond\\\":\\n case \\\"open\\\":\\n case \\\"none\\\":\\n type = values[i];\\n break;\\n case \\\"wide\\\":\\n case \\\"narrow\\\": h = values[i]; break;\\n case \\\"long\\\":\\n case \\\"short\\\": w = values[i]; break;\\n }\\n }\\n var stroke = o.node.getElementsByTagName(\\\"stroke\\\")[0];\\n stroke[se + \\\"arrow\\\"] = type;\\n stroke[se + \\\"arrowlength\\\"] = w;\\n stroke[se + \\\"arrowwidth\\\"] = h;\\n },\\n setFillAndStroke = function (o, params) {\\n // o.paper.canvas.style.display = \\\"none\\\";\\n o.attrs = o.attrs || {};\\n var node = o.node,\\n a = o.attrs,\\n s = node.style,\\n xy,\\n newpath = pathTypes[o.type] && (params.x != a.x || params.y != a.y || params.width != a.width || params.height != a.height || params.cx != a.cx || params.cy != a.cy || params.rx != a.rx || params.ry != a.ry || params.r != a.r),\\n isOval = ovalTypes[o.type] && (a.cx != params.cx || a.cy != params.cy || a.r != params.r || a.rx != params.rx || a.ry != params.ry),\\n res = o;\\n\\n\\n for (var par in params) if (params[has](par)) {\\n a[par] = params[par];\\n }\\n if (newpath) {\\n a.path = R._getPath[o.type](o);\\n o._.dirty = 1;\\n }\\n params.href && (node.href = params.href);\\n params.title && (node.title = params.title);\\n params.target && (node.target = params.target);\\n params.cursor && (s.cursor = params.cursor);\\n \\\"blur\\\" in params && o.blur(params.blur);\\n if (params.path && o.type == \\\"path\\\" || newpath) {\\n node.path = path2vml(~Str(a.path).toLowerCase().indexOf(\\\"r\\\") ? R._pathToAbsolute(a.path) : a.path);\\n o._.dirty = 1;\\n if (o.type == \\\"image\\\") {\\n o._.fillpos = [a.x, a.y];\\n o._.fillsize = [a.width, a.height];\\n setCoords(o, 1, 1, 0, 0, 0);\\n }\\n }\\n \\\"transform\\\" in params && o.transform(params.transform);\\n if (isOval) {\\n var cx = +a.cx,\\n cy = +a.cy,\\n rx = +a.rx || +a.r || 0,\\n ry = +a.ry || +a.r || 0;\\n node.path = R.format(\\\"ar{0},{1},{2},{3},{4},{1},{4},{1}x\\\", round((cx - rx) * zoom), round((cy - ry) * zoom), round((cx + rx) * zoom), round((cy + ry) * zoom), round(cx * zoom));\\n o._.dirty = 1;\\n }\\n if (\\\"clip-rect\\\" in params) {\\n var rect = Str(params[\\\"clip-rect\\\"]).split(separator);\\n if (rect.length == 4) {\\n rect[2] = +rect[2] + (+rect[0]);\\n rect[3] = +rect[3] + (+rect[1]);\\n var div = node.clipRect || R._g.doc.createElement(\\\"div\\\"),\\n dstyle = div.style;\\n dstyle.clip = R.format(\\\"rect({1}px {2}px {3}px {0}px)\\\", rect);\\n if (!node.clipRect) {\\n dstyle.position = \\\"absolute\\\";\\n dstyle.top = 0;\\n dstyle.left = 0;\\n dstyle.width = o.paper.width + \\\"px\\\";\\n dstyle.height = o.paper.height + \\\"px\\\";\\n node.parentNode.insertBefore(div, node);\\n div.appendChild(node);\\n node.clipRect = div;\\n }\\n }\\n if (!params[\\\"clip-rect\\\"]) {\\n node.clipRect && (node.clipRect.style.clip = \\\"auto\\\");\\n }\\n }\\n if (o.textpath) {\\n var textpathStyle = o.textpath.style;\\n params.font && (textpathStyle.font = params.font);\\n params[\\\"font-family\\\"] && (textpathStyle.fontFamily = '\\\"' + params[\\\"font-family\\\"].split(\\\",\\\")[0].replace(/^['\\\"]+|['\\\"]+$/g, E) + '\\\"');\\n params[\\\"font-size\\\"] && (textpathStyle.fontSize = params[\\\"font-size\\\"]);\\n params[\\\"font-weight\\\"] && (textpathStyle.fontWeight = params[\\\"font-weight\\\"]);\\n params[\\\"font-style\\\"] && (textpathStyle.fontStyle = params[\\\"font-style\\\"]);\\n }\\n if (\\\"arrow-start\\\" in params) {\\n addArrow(res, params[\\\"arrow-start\\\"]);\\n }\\n if (\\\"arrow-end\\\" in params) {\\n addArrow(res, params[\\\"arrow-end\\\"], 1);\\n }\\n if (params.opacity != null ||\\n params[\\\"stroke-width\\\"] != null ||\\n params.fill != null ||\\n params.src != null ||\\n params.stroke != null ||\\n params[\\\"stroke-width\\\"] != null ||\\n params[\\\"stroke-opacity\\\"] != null ||\\n params[\\\"fill-opacity\\\"] != null ||\\n params[\\\"stroke-dasharray\\\"] != null ||\\n params[\\\"stroke-miterlimit\\\"] != null ||\\n params[\\\"stroke-linejoin\\\"] != null ||\\n params[\\\"stroke-linecap\\\"] != null) {\\n var fill = node.getElementsByTagName(fillString),\\n newfill = false;\\n fill = fill && fill[0];\\n !fill && (newfill = fill = createNode(fillString));\\n if (o.type == \\\"image\\\" && params.src) {\\n fill.src = params.src;\\n }\\n params.fill && (fill.on = true);\\n if (fill.on == null || params.fill == \\\"none\\\" || params.fill === null) {\\n fill.on = false;\\n }\\n if (fill.on && params.fill) {\\n var isURL = Str(params.fill).match(R._ISURL);\\n if (isURL) {\\n fill.parentNode == node && node.removeChild(fill);\\n fill.rotate = true;\\n fill.src = isURL[1];\\n fill.type = \\\"tile\\\";\\n var bbox = o.getBBox(1);\\n fill.position = bbox.x + S + bbox.y;\\n o._.fillpos = [bbox.x, bbox.y];\\n\\n R._preload(isURL[1], function () {\\n o._.fillsize = [this.offsetWidth, this.offsetHeight];\\n });\\n } else {\\n fill.color = R.getRGB(params.fill).hex;\\n fill.src = E;\\n fill.type = \\\"solid\\\";\\n if (R.getRGB(params.fill).error && (res.type in {circle: 1, ellipse: 1} || Str(params.fill).charAt() != \\\"r\\\") && addGradientFill(res, params.fill, fill)) {\\n a.fill = \\\"none\\\";\\n a.gradient = params.fill;\\n fill.rotate = false;\\n }\\n }\\n }\\n if (\\\"fill-opacity\\\" in params || \\\"opacity\\\" in params) {\\n var opacity = ((+a[\\\"fill-opacity\\\"] + 1 || 2) - 1) * ((+a.opacity + 1 || 2) - 1) * ((+R.getRGB(params.fill).o + 1 || 2) - 1);\\n opacity = mmin(mmax(opacity, 0), 1);\\n fill.opacity = opacity;\\n if (fill.src) {\\n fill.color = \\\"none\\\";\\n }\\n }\\n node.appendChild(fill);\\n var stroke = (node.getElementsByTagName(\\\"stroke\\\") && node.getElementsByTagName(\\\"stroke\\\")[0]),\\n newstroke = false;\\n !stroke && (newstroke = stroke = createNode(\\\"stroke\\\"));\\n if ((params.stroke && params.stroke != \\\"none\\\") ||\\n params[\\\"stroke-width\\\"] ||\\n params[\\\"stroke-opacity\\\"] != null ||\\n params[\\\"stroke-dasharray\\\"] ||\\n params[\\\"stroke-miterlimit\\\"] ||\\n params[\\\"stroke-linejoin\\\"] ||\\n params[\\\"stroke-linecap\\\"]) {\\n stroke.on = true;\\n }\\n (params.stroke == \\\"none\\\" || params.stroke === null || stroke.on == null || params.stroke == 0 || params[\\\"stroke-width\\\"] == 0) && (stroke.on = false);\\n var strokeColor = R.getRGB(params.stroke);\\n stroke.on && params.stroke && (stroke.color = strokeColor.hex);\\n opacity = ((+a[\\\"stroke-opacity\\\"] + 1 || 2) - 1) * ((+a.opacity + 1 || 2) - 1) * ((+strokeColor.o + 1 || 2) - 1);\\n var width = (toFloat(params[\\\"stroke-width\\\"]) || 1) * .75;\\n opacity = mmin(mmax(opacity, 0), 1);\\n params[\\\"stroke-width\\\"] == null && (width = a[\\\"stroke-width\\\"]);\\n params[\\\"stroke-width\\\"] && (stroke.weight = width);\\n width && width < 1 && (opacity *= width) && (stroke.weight = 1);\\n stroke.opacity = opacity;\\n\\n params[\\\"stroke-linejoin\\\"] && (stroke.joinstyle = params[\\\"stroke-linejoin\\\"] || \\\"miter\\\");\\n stroke.miterlimit = params[\\\"stroke-miterlimit\\\"] || 8;\\n params[\\\"stroke-linecap\\\"] && (stroke.endcap = params[\\\"stroke-linecap\\\"] == \\\"butt\\\" ? \\\"flat\\\" : params[\\\"stroke-linecap\\\"] == \\\"square\\\" ? \\\"square\\\" : \\\"round\\\");\\n if (\\\"stroke-dasharray\\\" in params) {\\n var dasharray = {\\n \\\"-\\\": \\\"shortdash\\\",\\n \\\".\\\": \\\"shortdot\\\",\\n \\\"-.\\\": \\\"shortdashdot\\\",\\n \\\"-..\\\": \\\"shortdashdotdot\\\",\\n \\\". \\\": \\\"dot\\\",\\n \\\"- \\\": \\\"dash\\\",\\n \\\"--\\\": \\\"longdash\\\",\\n \\\"- .\\\": \\\"dashdot\\\",\\n \\\"--.\\\": \\\"longdashdot\\\",\\n \\\"--..\\\": \\\"longdashdotdot\\\"\\n };\\n stroke.dashstyle = dasharray[has](params[\\\"stroke-dasharray\\\"]) ? dasharray[params[\\\"stroke-dasharray\\\"]] : E;\\n }\\n newstroke && node.appendChild(stroke);\\n }\\n if (res.type == \\\"text\\\") {\\n res.paper.canvas.style.display = E;\\n var span = res.paper.span,\\n m = 100,\\n fontSize = a.font && a.font.match(/\\\\d+(?:\\\\.\\\\d*)?(?=px)/);\\n s = span.style;\\n a.font && (s.font = a.font);\\n a[\\\"font-family\\\"] && (s.fontFamily = a[\\\"font-family\\\"]);\\n a[\\\"font-weight\\\"] && (s.fontWeight = a[\\\"font-weight\\\"]);\\n a[\\\"font-style\\\"] && (s.fontStyle = a[\\\"font-style\\\"]);\\n fontSize = toFloat(a[\\\"font-size\\\"] || fontSize && fontSize[0]) || 10;\\n s.fontSize = fontSize * m + \\\"px\\\";\\n res.textpath.string && (span.innerHTML = Str(res.textpath.string).replace(/</g, \\\"<\\\").replace(/&/g, \\\"&\\\").replace(/\\\\n/g, \\\"<br>\\\"));\\n var brect = span.getBoundingClientRect();\\n res.W = a.w = (brect.right - brect.left) / m;\\n res.H = a.h = (brect.bottom - brect.top) / m;\\n // res.paper.canvas.style.display = \\\"none\\\";\\n res.X = a.x;\\n res.Y = a.y + res.H / 2;\\n\\n (\\\"x\\\" in params || \\\"y\\\" in params) && (res.path.v = R.format(\\\"m{0},{1}l{2},{1}\\\", round(a.x * zoom), round(a.y * zoom), round(a.x * zoom) + 1));\\n var dirtyattrs = [\\\"x\\\", \\\"y\\\", \\\"text\\\", \\\"font\\\", \\\"font-family\\\", \\\"font-weight\\\", \\\"font-style\\\", \\\"font-size\\\"];\\n for (var d = 0, dd = dirtyattrs.length; d < dd; d++) if (dirtyattrs[d] in params) {\\n res._.dirty = 1;\\n break;\\n }\\n\\n // text-anchor emulation\\n switch (a[\\\"text-anchor\\\"]) {\\n case \\\"start\\\":\\n res.textpath.style[\\\"v-text-align\\\"] = \\\"left\\\";\\n res.bbx = res.W / 2;\\n break;\\n case \\\"end\\\":\\n res.textpath.style[\\\"v-text-align\\\"] = \\\"right\\\";\\n res.bbx = -res.W / 2;\\n break;\\n default:\\n res.textpath.style[\\\"v-text-align\\\"] = \\\"center\\\";\\n res.bbx = 0;\\n break;\\n }\\n res.textpath.style[\\\"v-text-kern\\\"] = true;\\n }\\n // res.paper.canvas.style.display = E;\\n },\\n addGradientFill = function (o, gradient, fill) {\\n o.attrs = o.attrs || {};\\n var attrs = o.attrs,\\n pow = Math.pow,\\n opacity,\\n oindex,\\n type = \\\"linear\\\",\\n fxfy = \\\".5 .5\\\";\\n o.attrs.gradient = gradient;\\n gradient = Str(gradient).replace(R._radial_gradient, function (all, fx, fy) {\\n type = \\\"radial\\\";\\n if (fx && fy) {\\n fx = toFloat(fx);\\n fy = toFloat(fy);\\n pow(fx - .5, 2) + pow(fy - .5, 2) > .25 && (fy = math.sqrt(.25 - pow(fx - .5, 2)) * ((fy > .5) * 2 - 1) + .5);\\n fxfy = fx + S + fy;\\n }\\n return E;\\n });\\n gradient = gradient.split(/\\\\s*\\\\-\\\\s*/);\\n if (type == \\\"linear\\\") {\\n var angle = gradient.shift();\\n angle = -toFloat(angle);\\n if (isNaN(angle)) {\\n return null;\\n }\\n }\\n var dots = R._parseDots(gradient);\\n if (!dots) {\\n return null;\\n }\\n o = o.shape || o.node;\\n if (dots.length) {\\n o.removeChild(fill);\\n fill.on = true;\\n fill.method = \\\"none\\\";\\n fill.color = dots[0].color;\\n fill.color2 = dots[dots.length - 1].color;\\n var clrs = [];\\n for (var i = 0, ii = dots.length; i < ii; i++) {\\n dots[i].offset && clrs.push(dots[i].offset + S + dots[i].color);\\n }\\n fill.colors = clrs.length ? clrs.join() : \\\"0% \\\" + fill.color;\\n if (type == \\\"radial\\\") {\\n fill.type = \\\"gradientTitle\\\";\\n fill.focus = \\\"100%\\\";\\n fill.focussize = \\\"0 0\\\";\\n fill.focusposition = fxfy;\\n fill.angle = 0;\\n } else {\\n // fill.rotate= true;\\n fill.type = \\\"gradient\\\";\\n fill.angle = (270 - angle) % 360;\\n }\\n o.appendChild(fill);\\n }\\n return 1;\\n },\\n Element = function (node, vml) {\\n this[0] = this.node = node;\\n node.raphael = true;\\n this.id = R._oid++;\\n node.raphaelid = this.id;\\n this.X = 0;\\n this.Y = 0;\\n this.attrs = {};\\n this.paper = vml;\\n this.matrix = R.matrix();\\n this._ = {\\n transform: [],\\n sx: 1,\\n sy: 1,\\n dx: 0,\\n dy: 0,\\n deg: 0,\\n dirty: 1,\\n dirtyT: 1\\n };\\n !vml.bottom && (vml.bottom = this);\\n this.prev = vml.top;\\n vml.top && (vml.top.next = this);\\n vml.top = this;\\n this.next = null;\\n };\\n var elproto = R.el;\\n\\n Element.prototype = elproto;\\n elproto.constructor = Element;\\n elproto.transform = function (tstr) {\\n if (tstr == null) {\\n return this._.transform;\\n }\\n var vbs = this.paper._viewBoxShift,\\n vbt = vbs ? \\\"s\\\" + [vbs.scale, vbs.scale] + \\\"-1-1t\\\" + [vbs.dx, vbs.dy] : E,\\n oldt;\\n if (vbs) {\\n oldt = tstr = Str(tstr).replace(/\\\\.{3}|\\\\u2026/g, this._.transform || E);\\n }\\n R._extractTransform(this, vbt + tstr);\\n var matrix = this.matrix.clone(),\\n skew = this.skew,\\n o = this.node,\\n split,\\n isGrad = ~Str(this.attrs.fill).indexOf(\\\"-\\\"),\\n isPatt = !Str(this.attrs.fill).indexOf(\\\"url(\\\");\\n matrix.translate(1, 1);\\n if (isPatt || isGrad || this.type == \\\"image\\\") {\\n skew.matrix = \\\"1 0 0 1\\\";\\n skew.offset = \\\"0 0\\\";\\n split = matrix.split();\\n if ((isGrad && split.noRotation) || !split.isSimple) {\\n o.style.filter = matrix.toFilter();\\n var bb = this.getBBox(),\\n bbt = this.getBBox(1),\\n dx = bb.x - bbt.x,\\n dy = bb.y - bbt.y;\\n o.coordorigin = (dx * -zoom) + S + (dy * -zoom);\\n setCoords(this, 1, 1, dx, dy, 0);\\n } else {\\n o.style.filter = E;\\n setCoords(this, split.scalex, split.scaley, split.dx, split.dy, split.rotate);\\n }\\n } else {\\n o.style.filter = E;\\n skew.matrix = Str(matrix);\\n skew.offset = matrix.offset();\\n }\\n if (oldt !== null) { // empty string value is true as well\\n this._.transform = oldt;\\n R._extractTransform(this, oldt);\\n }\\n return this;\\n };\\n elproto.rotate = function (deg, cx, cy) {\\n if (this.removed) {\\n return this;\\n }\\n if (deg == null) {\\n return;\\n }\\n deg = Str(deg).split(separator);\\n if (deg.length - 1) {\\n cx = toFloat(deg[1]);\\n cy = toFloat(deg[2]);\\n }\\n deg = toFloat(deg[0]);\\n (cy == null) && (cx = cy);\\n if (cx == null || cy == null) {\\n var bbox = this.getBBox(1);\\n cx = bbox.x + bbox.width / 2;\\n cy = bbox.y + bbox.height / 2;\\n }\\n this._.dirtyT = 1;\\n this.transform(this._.transform.concat([[\\\"r\\\", deg, cx, cy]]));\\n return this;\\n };\\n elproto.translate = function (dx, dy) {\\n if (this.removed) {\\n return this;\\n }\\n dx = Str(dx).split(separator);\\n if (dx.length - 1) {\\n dy = toFloat(dx[1]);\\n }\\n dx = toFloat(dx[0]) || 0;\\n dy = +dy || 0;\\n if (this._.bbox) {\\n this._.bbox.x += dx;\\n this._.bbox.y += dy;\\n }\\n this.transform(this._.transform.concat([[\\\"t\\\", dx, dy]]));\\n return this;\\n };\\n elproto.scale = function (sx, sy, cx, cy) {\\n if (this.removed) {\\n return this;\\n }\\n sx = Str(sx).split(separator);\\n if (sx.length - 1) {\\n sy = toFloat(sx[1]);\\n cx = toFloat(sx[2]);\\n cy = toFloat(sx[3]);\\n isNaN(cx) && (cx = null);\\n isNaN(cy) && (cy = null);\\n }\\n sx = toFloat(sx[0]);\\n (sy == null) && (sy = sx);\\n (cy == null) && (cx = cy);\\n if (cx == null || cy == null) {\\n var bbox = this.getBBox(1);\\n }\\n cx = cx == null ? bbox.x + bbox.width / 2 : cx;\\n cy = cy == null ? bbox.y + bbox.height / 2 : cy;\\n\\n this.transform(this._.transform.concat([[\\\"s\\\", sx, sy, cx, cy]]));\\n this._.dirtyT = 1;\\n return this;\\n };\\n elproto.hide = function () {\\n !this.removed && (this.node.style.display = \\\"none\\\");\\n return this;\\n };\\n elproto.show = function () {\\n !this.removed && (this.node.style.display = E);\\n return this;\\n };\\n // Needed to fix the vml setViewBox issues\\n elproto.auxGetBBox = R.el.getBBox;\\n elproto.getBBox = function(){\\n var b = this.auxGetBBox();\\n if (this.paper && this.paper._viewBoxShift)\\n {\\n var c = {};\\n var z = 1/this.paper._viewBoxShift.scale;\\n c.x = b.x - this.paper._viewBoxShift.dx;\\n c.x *= z;\\n c.y = b.y - this.paper._viewBoxShift.dy;\\n c.y *= z;\\n c.width = b.width * z;\\n c.height = b.height * z;\\n c.x2 = c.x + c.width;\\n c.y2 = c.y + c.height;\\n return c;\\n }\\n return b;\\n };\\n elproto._getBBox = function () {\\n if (this.removed) {\\n return {};\\n }\\n return {\\n x: this.X + (this.bbx || 0) - this.W / 2,\\n y: this.Y - this.H,\\n width: this.W,\\n height: this.H\\n };\\n };\\n elproto.remove = function () {\\n if (this.removed || !this.node.parentNode) {\\n return;\\n }\\n this.paper.__set__ && this.paper.__set__.exclude(this);\\n R.eve.unbind(\\\"raphael.*.*.\\\" + this.id);\\n R._tear(this, this.paper);\\n this.node.parentNode.removeChild(this.node);\\n this.shape && this.shape.parentNode.removeChild(this.shape);\\n for (var i in this) {\\n this[i] = typeof this[i] == \\\"function\\\" ? R._removedFactory(i) : null;\\n }\\n this.removed = true;\\n };\\n elproto.attr = function (name, value) {\\n if (this.removed) {\\n return this;\\n }\\n if (name == null) {\\n var res = {};\\n for (var a in this.attrs) if (this.attrs[has](a)) {\\n res[a] = this.attrs[a];\\n }\\n res.gradient && res.fill == \\\"none\\\" && (res.fill = res.gradient) && delete res.gradient;\\n res.transform = this._.transform;\\n return res;\\n }\\n if (value == null && R.is(name, \\\"string\\\")) {\\n if (name == fillString && this.attrs.fill == \\\"none\\\" && this.attrs.gradient) {\\n return this.attrs.gradient;\\n }\\n var names = name.split(separator),\\n out = {};\\n for (var i = 0, ii = names.length; i < ii; i++) {\\n name = names[i];\\n if (name in this.attrs) {\\n out[name] = this.attrs[name];\\n } else if (R.is(this.paper.customAttributes[name], \\\"function\\\")) {\\n out[name] = this.paper.customAttributes[name].def;\\n } else {\\n out[name] = R._availableAttrs[name];\\n }\\n }\\n return ii - 1 ? out : out[names[0]];\\n }\\n if (this.attrs && value == null && R.is(name, \\\"array\\\")) {\\n out = {};\\n for (i = 0, ii = name.length; i < ii; i++) {\\n out[name[i]] = this.attr(name[i]);\\n }\\n return out;\\n }\\n var params;\\n if (value != null) {\\n params = {};\\n params[name] = value;\\n }\\n value == null && R.is(name, \\\"object\\\") && (params = name);\\n for (var key in params) {\\n eve(\\\"raphael.attr.\\\" + key + \\\".\\\" + this.id, this, params[key]);\\n }\\n if (params) {\\n for (key in this.paper.customAttributes) if (this.paper.customAttributes[has](key) && params[has](key) && R.is(this.paper.customAttributes[key], \\\"function\\\")) {\\n var par = this.paper.customAttributes[key].apply(this, [].concat(params[key]));\\n this.attrs[key] = params[key];\\n for (var subkey in par) if (par[has](subkey)) {\\n params[subkey] = par[subkey];\\n }\\n }\\n // this.paper.canvas.style.display = \\\"none\\\";\\n if (params.text && this.type == \\\"text\\\") {\\n this.textpath.string = params.text;\\n }\\n setFillAndStroke(this, params);\\n // this.paper.canvas.style.display = E;\\n }\\n return this;\\n };\\n elproto.toFront = function () {\\n !this.removed && this.node.parentNode.appendChild(this.node);\\n this.paper && this.paper.top != this && R._tofront(this, this.paper);\\n return this;\\n };\\n elproto.toBack = function () {\\n if (this.removed) {\\n return this;\\n }\\n if (this.node.parentNode.firstChild != this.node) {\\n this.node.parentNode.insertBefore(this.node, this.node.parentNode.firstChild);\\n R._toback(this, this.paper);\\n }\\n return this;\\n };\\n elproto.insertAfter = function (element) {\\n if (this.removed) {\\n return this;\\n }\\n if (element.constructor == R.st.constructor) {\\n element = element[element.length - 1];\\n }\\n if (element.node.nextSibling) {\\n element.node.parentNode.insertBefore(this.node, element.node.nextSibling);\\n } else {\\n element.node.parentNode.appendChild(this.node);\\n }\\n R._insertafter(this, element, this.paper);\\n return this;\\n };\\n elproto.insertBefore = function (element) {\\n if (this.removed) {\\n return this;\\n }\\n if (element.constructor == R.st.constructor) {\\n element = element[0];\\n }\\n element.node.parentNode.insertBefore(this.node, element.node);\\n R._insertbefore(this, element, this.paper);\\n return this;\\n };\\n elproto.blur = function (size) {\\n var s = this.node.runtimeStyle,\\n f = s.filter;\\n f = f.replace(blurregexp, E);\\n if (+size !== 0) {\\n this.attrs.blur = size;\\n s.filter = f + S + ms + \\\".Blur(pixelradius=\\\" + (+size || 1.5) + \\\")\\\";\\n s.margin = R.format(\\\"-{0}px 0 0 -{0}px\\\", round(+size || 1.5));\\n } else {\\n s.filter = f;\\n s.margin = 0;\\n delete this.attrs.blur;\\n }\\n return this;\\n };\\n\\n R._engine.path = function (pathString, vml) {\\n var el = createNode(\\\"shape\\\");\\n el.style.cssText = cssDot;\\n el.coordsize = zoom + S + zoom;\\n el.coordorigin = vml.coordorigin;\\n var p = new Element(el, vml),\\n attr = {fill: \\\"none\\\", stroke: \\\"#000\\\"};\\n pathString && (attr.path = pathString);\\n p.type = \\\"path\\\";\\n p.path = [];\\n p.Path = E;\\n setFillAndStroke(p, attr);\\n vml.canvas.appendChild(el);\\n var skew = createNode(\\\"skew\\\");\\n skew.on = true;\\n el.appendChild(skew);\\n p.skew = skew;\\n p.transform(E);\\n return p;\\n };\\n R._engine.rect = function (vml, x, y, w, h, r) {\\n var path = R._rectPath(x, y, w, h, r),\\n res = vml.path(path),\\n a = res.attrs;\\n res.X = a.x = x;\\n res.Y = a.y = y;\\n res.W = a.width = w;\\n res.H = a.height = h;\\n a.r = r;\\n a.path = path;\\n res.type = \\\"rect\\\";\\n return res;\\n };\\n R._engine.ellipse = function (vml, x, y, rx, ry) {\\n var res = vml.path(),\\n a = res.attrs;\\n res.X = x - rx;\\n res.Y = y - ry;\\n res.W = rx * 2;\\n res.H = ry * 2;\\n res.type = \\\"ellipse\\\";\\n setFillAndStroke(res, {\\n cx: x,\\n cy: y,\\n rx: rx,\\n ry: ry\\n });\\n return res;\\n };\\n R._engine.circle = function (vml, x, y, r) {\\n var res = vml.path(),\\n a = res.attrs;\\n res.X = x - r;\\n res.Y = y - r;\\n res.W = res.H = r * 2;\\n res.type = \\\"circle\\\";\\n setFillAndStroke(res, {\\n cx: x,\\n cy: y,\\n r: r\\n });\\n return res;\\n };\\n R._engine.image = function (vml, src, x, y, w, h) {\\n var path = R._rectPath(x, y, w, h),\\n res = vml.path(path).attr({stroke: \\\"none\\\"}),\\n a = res.attrs,\\n node = res.node,\\n fill = node.getElementsByTagName(fillString)[0];\\n a.src = src;\\n res.X = a.x = x;\\n res.Y = a.y = y;\\n res.W = a.width = w;\\n res.H = a.height = h;\\n a.path = path;\\n res.type = \\\"image\\\";\\n fill.parentNode == node && node.removeChild(fill);\\n fill.rotate = true;\\n fill.src = src;\\n fill.type = \\\"tile\\\";\\n res._.fillpos = [x, y];\\n res._.fillsize = [w, h];\\n node.appendChild(fill);\\n setCoords(res, 1, 1, 0, 0, 0);\\n return res;\\n };\\n R._engine.text = function (vml, x, y, text) {\\n var el = createNode(\\\"shape\\\"),\\n path = createNode(\\\"path\\\"),\\n o = createNode(\\\"textpath\\\");\\n x = x || 0;\\n y = y || 0;\\n text = text || \\\"\\\";\\n path.v = R.format(\\\"m{0},{1}l{2},{1}\\\", round(x * zoom), round(y * zoom), round(x * zoom) + 1);\\n path.textpathok = true;\\n o.string = Str(text);\\n o.on = true;\\n el.style.cssText = cssDot;\\n el.coordsize = zoom + S + zoom;\\n el.coordorigin = \\\"0 0\\\";\\n var p = new Element(el, vml),\\n attr = {\\n fill: \\\"#000\\\",\\n stroke: \\\"none\\\",\\n font: R._availableAttrs.font,\\n text: text\\n };\\n p.shape = el;\\n p.path = path;\\n p.textpath = o;\\n p.type = \\\"text\\\";\\n p.attrs.text = Str(text);\\n p.attrs.x = x;\\n p.attrs.y = y;\\n p.attrs.w = 1;\\n p.attrs.h = 1;\\n setFillAndStroke(p, attr);\\n el.appendChild(o);\\n el.appendChild(path);\\n vml.canvas.appendChild(el);\\n var skew = createNode(\\\"skew\\\");\\n skew.on = true;\\n el.appendChild(skew);\\n p.skew = skew;\\n p.transform(E);\\n return p;\\n };\\n R._engine.setSize = function (width, height) {\\n var cs = this.canvas.style;\\n this.width = width;\\n this.height = height;\\n width == +width && (width += \\\"px\\\");\\n height == +height && (height += \\\"px\\\");\\n cs.width = width;\\n cs.height = height;\\n cs.clip = \\\"rect(0 \\\" + width + \\\" \\\" + height + \\\" 0)\\\";\\n if (this._viewBox) {\\n R._engine.setViewBox.apply(this, this._viewBox);\\n }\\n return this;\\n };\\n R._engine.setViewBox = function (x, y, w, h, fit) {\\n R.eve(\\\"raphael.setViewBox\\\", this, this._viewBox, [x, y, w, h, fit]);\\n var paperSize = this.getSize(),\\n width = paperSize.width,\\n height = paperSize.height,\\n H, W;\\n if (fit) {\\n H = height / h;\\n W = width / w;\\n if (w * H < width) {\\n x -= (width - w * H) / 2 / H;\\n }\\n if (h * W < height) {\\n y -= (height - h * W) / 2 / W;\\n }\\n }\\n this._viewBox = [x, y, w, h, !!fit];\\n this._viewBoxShift = {\\n dx: -x,\\n dy: -y,\\n scale: paperSize\\n };\\n this.forEach(function (el) {\\n el.transform(\\\"...\\\");\\n });\\n return this;\\n };\\n var createNode;\\n R._engine.initWin = function (win) {\\n var doc = win.document;\\n if (doc.styleSheets.length < 31) {\\n doc.createStyleSheet().addRule(\\\".rvml\\\", \\\"behavior:url(#default#VML)\\\");\\n } else {\\n // no more room, add to the existing one\\n // http://msdn.microsoft.com/en-us/library/ms531194%28VS.85%29.aspx\\n doc.styleSheets[0].addRule(\\\".rvml\\\", \\\"behavior:url(#default#VML)\\\");\\n }\\n try {\\n !doc.namespaces.rvml && doc.namespaces.add(\\\"rvml\\\", \\\"urn:schemas-microsoft-com:vml\\\");\\n createNode = function (tagName) {\\n return doc.createElement('<rvml:' + tagName + ' class=\\\"rvml\\\">');\\n };\\n } catch (e) {\\n createNode = function (tagName) {\\n return doc.createElement('<' + tagName + ' xmlns=\\\"urn:schemas-microsoft.com:vml\\\" class=\\\"rvml\\\">');\\n };\\n }\\n };\\n R._engine.initWin(R._g.win);\\n R._engine.create = function () {\\n var con = R._getContainer.apply(0, arguments),\\n container = con.container,\\n height = con.height,\\n s,\\n width = con.width,\\n x = con.x,\\n y = con.y;\\n if (!container) {\\n throw new Error(\\\"VML container not found.\\\");\\n }\\n var res = new R._Paper,\\n c = res.canvas = R._g.doc.createElement(\\\"div\\\"),\\n cs = c.style;\\n x = x || 0;\\n y = y || 0;\\n width = width || 512;\\n height = height || 342;\\n res.width = width;\\n res.height = height;\\n width == +width && (width += \\\"px\\\");\\n height == +height && (height += \\\"px\\\");\\n res.coordsize = zoom * 1e3 + S + zoom * 1e3;\\n res.coordorigin = \\\"0 0\\\";\\n res.span = R._g.doc.createElement(\\\"span\\\");\\n res.span.style.cssText = \\\"position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;\\\";\\n c.appendChild(res.span);\\n cs.cssText = R.format(\\\"top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden\\\", width, height);\\n if (container == 1) {\\n R._g.doc.body.appendChild(c);\\n cs.left = x + \\\"px\\\";\\n cs.top = y + \\\"px\\\";\\n cs.position = \\\"absolute\\\";\\n } else {\\n if (container.firstChild) {\\n container.insertBefore(c, container.firstChild);\\n } else {\\n container.appendChild(c);\\n }\\n }\\n res.renderfix = function () {};\\n return res;\\n };\\n R.prototype.clear = function () {\\n R.eve(\\\"raphael.clear\\\", this);\\n this.canvas.innerHTML = E;\\n this.span = R._g.doc.createElement(\\\"span\\\");\\n this.span.style.cssText = \\\"position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;\\\";\\n this.canvas.appendChild(this.span);\\n this.bottom = this.top = null;\\n };\\n R.prototype.remove = function () {\\n R.eve(\\\"raphael.remove\\\", this);\\n this.canvas.parentNode.removeChild(this.canvas);\\n for (var i in this) {\\n this[i] = typeof this[i] == \\\"function\\\" ? R._removedFactory(i) : null;\\n }\\n return true;\\n };\\n\\n var setproto = R.st;\\n for (var method in elproto) if (elproto[has](method) && !setproto[has](method)) {\\n setproto[method] = (function (methodname) {\\n return function () {\\n var arg = arguments;\\n return this.forEach(function (el) {\\n el[methodname].apply(el, arg);\\n });\\n };\\n })(method);\\n }\\n}));\\n\\n// ┌────────────────────────────────────────────────────────────────────┐ \\\\\\\\\\n// │ Raphaël @VERSION - JavaScript Vector Library │ \\\\\\\\\\n// ├────────────────────────────────────────────────────────────────────┤ \\\\\\\\\\n// │ Copyright © 2008-2012 Dmitry Baranovskiy (http://raphaeljs.com) │ \\\\\\\\\\n// │ Copyright © 2008-2012 Sencha Labs (http://sencha.com) │ \\\\\\\\\\n// ├────────────────────────────────────────────────────────────────────┤ \\\\\\\\\\n// │ Licensed under the MIT (http://raphaeljs.com/license.html) license.│ \\\\\\\\\\n// └────────────────────────────────────────────────────────────────────┘ \\\\\\\\\\n\\n(function (glob, factory) {\\n if (typeof define === \\\"function\\\" && define.amd) {\\n define(\\\"raphael\\\", [\\\"raphael.core\\\", \\\"raphael.svg\\\", \\\"raphael.vml\\\"], function(Raphael) {\\n return (glob.Raphael = factory(Raphael));\\n });\\n } else if (typeof exports === \\\"object\\\") {\\n var raphael = require(\\\"raphael.core\\\");\\n\\n require(\\\"raphael.svg\\\");\\n require(\\\"raphael.vml\\\");\\n\\n module.exports = factory(raphael);\\n } else {\\n glob.Raphael = factory(glob.Raphael);\\n }\\n}(this, function (Raphael) {\\n return Raphael.ninja();\\n}));\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n/**\\n * FRaphael\\n * \\tAn extension for Raphael.js to make it easier to work with Filter Effects\\n *\\n * Copyright © 2013 Chris Scott <chris.scott@factmint.com>\\n * Delivered with and licensed under the MIT licence\\n *\\n */\\n\\n// Create the global FRaphael object\\n(function(scope) {\\n var\\tversion = \\\"0.0.1\\\",\\n license = \\\"MIT\\\";\\n\\n var\\tns = \\\"http://www.w3.org/2000/svg\\\",\\n idCounter = 0;\\n\\n var FR = {\\n // Object prototype for a filter\\n Filter: function(id) {\\n if (id == undefined) {\\n id = \\\"filter-\\\" + idCounter++;\\n while(FR.filters[id] != undefined) {\\n id = \\\"filter-\\\" + idCounter++;\\n }\\n }\\n\\n if (FR.filters[id] != undefined) {\\n throw \\\"A filter with id \\\" + id + \\\" already exists\\\";\\n }\\n\\n this.element = document.createElementNS(ns, \\\"filter\\\");\\n this.element.setAttribute(\\\"id\\\", id);\\n this.element.setAttribute(\\\"x\\\", \\\"-25%\\\");\\n this.element.setAttribute(\\\"y\\\", \\\"-25%\\\");\\n this.element.setAttribute(\\\"width\\\", \\\"150%\\\");\\n this.element.setAttribute(\\\"height\\\", \\\"150%\\\");\\n\\n this.lastFEResult = null;\\n\\n FR.filters[id] = this;\\n this.id = id;\\n },\\n\\n // Object prototype for an effect\\n FilterEffect: function(type, attributes) {\\n this.element = document.createElementNS(ns, type);\\n for (var key in attributes) {\\n this.element.setAttribute(key, attributes[key]);\\n }\\n },\\n\\n // Return the filter applied to an element or a new filter if none are currently applied\\n getFilter: function(element) {\\n var filterId = element.data(\\\"filterId\\\");\\n var filter = null;\\n\\n if (filterId == undefined) {\\n filterId = \\\"element-filter-\\\" + element.id;\\n filter = element.paper.createFilter(filterId);\\n element.filter(filterId);\\n } else {\\n filter = FR.filters[filterId];\\n }\\n\\n return filter;\\n },\\n\\n // maintain a list of filters by id\\n filters: {}\\n };\\n\\n FR.Filter.prototype = {\\n addEffect: function(type, attributes, children) {\\n var effect = new FR.FilterEffect(type, attributes);\\n\\n if (children) {\\n if (children instanceof Array) {\\n for (var x in children) {\\n if (!children.hasOwnProperty(x)) continue;\\n\\n effect.element.appendChild(children[x].element);\\n }\\n } else {\\n effect.element.appendChild(children.element);\\n }\\n }\\n\\n this.element.appendChild(effect.element);\\n\\n return this;\\n },\\n\\n chainEffect: function(type, attributes, children) {\\n if (attributes == undefined) {\\n attributes = {};\\n }\\n\\n var inId;\\n var outId;\\n if (attributes.in == undefined) {\\n inId = this.getLastResult();\\n } else {\\n inId = attributes.in;\\n }\\n if (attributes.result == undefined) {\\n outId = idCounter++;\\n } else {\\n outId = attributes.result;\\n }\\n\\n this.lastFEResult = outId;\\n\\n attributes.in = inId;\\n attributes.result = outId;\\n\\n this.addEffect(type, attributes, children);\\n\\n return this;\\n },\\n\\n getLastResult: function() {\\n return (this.lastFEResult == undefined) ? \\\"SourceGraphic\\\" : this.lastFEResult;\\n },\\n\\n merge: function(in1, in2, attributes) {\\n var mergeNode1 = new FR.FilterEffect(\\\"feMergeNode\\\", {\\n in: in1\\n });\\n var mergeNode2 = new FR.FilterEffect(\\\"feMergeNode\\\", {\\n in: in2\\n });\\n\\n this.chainEffect(\\\"feMerge\\\", attributes, [mergeNode1, mergeNode2]);\\n\\n return this;\\n },\\n\\n compose: function(in1, in2, operator, attributes) {\\n if (attributes == undefined) {\\n attributes = {};\\n }\\n\\n if (operator == undefined) {\\n operator = \\\"over\\\";\\n }\\n\\n attributes.in = in1;\\n attributes.in2 = in2;\\n attributes.operator = operator;\\n\\n this.chainEffect(\\\"feComposite\\\", attributes);\\n\\n return this;\\n },\\n\\n arithmeticCompose: function(in1, in2, k1, k2, k3, k4) {\\n if (k1 == undefined) {\\n k1 = 0;\\n }\\n if (k2 == undefined) {\\n k2 = 0;\\n }\\n if (k3 == undefined) {\\n k3 = 0;\\n }\\n if (k4 == undefined) {\\n k4 = 0;\\n }\\n\\n this.compose(in1, in2, \\\"arithmetic\\\", {\\n k1: k1,\\n k2: k2,\\n k3: k3,\\n k4: k4\\n });\\n\\n return this;\\n },\\n\\n addBlur: function(stdDeviation, attributes) {\\n if (!stdDeviation) {\\n throw \\\"Standard deviation is required to perform a blur filter\\\";\\n }\\n\\n if (attributes == undefined) {\\n attributes = {};\\n }\\n attributes.stdDeviation = stdDeviation;\\n\\n this.chainEffect(\\\"feGaussianBlur\\\", attributes);\\n\\n return this;\\n },\\n\\n addOffset: function(dx, dy, attributes) {\\n if (dx == undefined | dy == undefined) {\\n throw \\\"dx and dy values are required to perform an offset FE\\\";\\n }\\n\\n if (attributes == undefined) {\\n attributes = {};\\n }\\n attributes.dx = dx;\\n attributes.dy = dy;\\n\\n this.chainEffect(\\\"feOffset\\\", attributes);\\n\\n return this;\\n },\\n\\n addLighting: function(x, y, z, color, type, attributes) {\\n if (x == undefined | y == undefined | z == undefined) {\\n throw \\\"Three co-ordinates are required to create a light source\\\";\\n }\\n\\n var previousResult = this.getLastResult();\\n\\n var id = idCounter++;\\n\\n if (attributes == undefined) {\\n attributes = {};\\n }\\n\\n attributes.result = id;\\n if (color != undefined) {\\n attributes[\\\"lighting-color\\\"] = color;\\n }\\n\\n if (type == undefined || type == \\\"diffuse\\\") {\\n type = \\\"feDiffuseLighting\\\";\\n } else if (type == \\\"specular\\\") {\\n type = \\\"feSpecularLighting\\\";\\n }\\n\\n var lightSource = new FR.FilterEffect(\\\"fePointLight\\\", {\\n x: x,\\n y: y,\\n z: z\\n });\\n\\n this.chainEffect(type, attributes, lightSource).arithmeticCompose(previousResult, id, 3, 0.2, 0, 0);\\n\\n return this;\\n },\\n\\n addShiftToColor: function(color, moveBy, attributes) {\\n if (color == undefined) {\\n throw \\\"A colour string is a required argument to create a colorMatrix\\\";\\n }\\n if (moveBy == undefined) {\\n moveBy = 0.5;\\n }\\n\\n var remainingColor = 1 - moveBy, x = remainingColor;\\n\\n if (attributes == undefined) {\\n attributes = {};\\n }\\n\\n var colorObject = Raphael.color(color);\\n var\\tr = colorObject.r * moveBy / 255,\\n g = colorObject.g * moveBy / 255,\\n b = colorObject.b * moveBy / 255;\\n\\n /**\\n * r'\\tx 0 0 0 r\\t\\tr\\n * g'\\t0 x 0 0 g\\t\\tg\\n * b' =\\t0 0 x 0 b\\t.\\tb\\n * a'\\t0 0 0 1 0\\t\\to\\n * 1\\t\\t\\t\\t\\t1\\n */\\n attributes.values = x + \\\" 0 0 0 \\\" + r + \\\" 0 \\\" + x + \\\" 0 0 \\\" + g + \\\" 0 0 \\\" + x + \\\" 0 \\\" + b + \\\" 0 0 0 1 0 \\\";\\n\\n this.chainEffect(\\\"feColorMatrix\\\", attributes);\\n\\n return this;\\n },\\n\\n addRecolor: function(color, opacity, attributes) {\\n if (color == undefined) {\\n throw \\\"A colour string is a required argument to create a colorMatrix\\\";\\n }\\n if (opacity == undefined) {\\n opacity = 1;\\n }\\n\\n if (attributes == undefined) {\\n attributes = {};\\n }\\n\\n var colorObject = Raphael.color(color);\\n var\\tr = colorObject.r / 255,\\n g = colorObject.g / 255,\\n b = colorObject.b / 255;\\n\\n /**\\n * r'\\t0 0 0 0 r\\t\\tr\\n * g'\\t0 0 0 0 g\\t\\tg\\n * b' =\\t0 0 0 0 b\\t.\\tb\\n * a'\\t0 0 0 a 0\\t\\ta\\n * 1\\t\\t\\t\\t\\t1\\n */\\n attributes.values = \\\"0 0 0 0 \\\" + r + \\\" 0 0 0 0 \\\" + g + \\\" 0 0 0 0 \\\" + b + \\\" 0 0 0 \\\" + opacity + \\\" 0 \\\";\\n\\n this.chainEffect(\\\"feColorMatrix\\\", attributes);\\n\\n return this;\\n },\\n\\n addDesaturate: function(saturation, attributes) {\\n if (saturation == undefined) {\\n saturnation = 0;\\n }\\n\\n if (attributes == undefined) {\\n attributes = {};\\n }\\n\\n attributes.values = saturation;\\n attributes.type = \\\"saturate\\\";\\n\\n this.chainEffect(\\\"feColorMatrix\\\", attributes);\\n\\n return this;\\n },\\n\\n addConvolveMatrix: function(matrix, attributes) {\\n if (matrix == undefined) {\\n throw \\\"A matrix (usually 9 numbers) must be provided to apply a convolve matrix transform\\\";\\n }\\n\\n if (attributes == undefined) {\\n attributes = {};\\n }\\n\\n attributes.kernelMatrix = matrix;\\n\\n this.chainEffect(\\\"feConvolveMatrix\\\", attributes);\\n\\n return this;\\n },\\n\\n createShadow: function(dx, dy, blur, opacity, color) {\\n if (dx == undefined) {\\n throw \\\"dx is required for the shadow effect\\\";\\n }\\n if (dy == undefined) {\\n throw \\\"dy is required for the shadow effect\\\";\\n }\\n if (blur == undefined) {\\n throw \\\"blur (stdDeviation) is required for the shadow effect\\\";\\n }\\n\\n if (opacity == undefined) {\\n opacity = 0.6;\\n }\\n\\n var previousResult = this.getLastResult();\\n\\n if (color == undefined) {\\n color = \\\"#000000\\\";\\n }\\n\\n this.addOffset(dx, dy, {\\n in: \\\"SourceAlpha\\\"\\n });\\n\\n this.addRecolor(color, opacity);\\n\\n this.addBlur(blur);\\n\\n this.merge(this.getLastResult(), previousResult);\\n\\n return this;\\n },\\n\\n createEmboss: function(height, x, y, z) {\\n if (height == undefined) {\\n height = 2;\\n }\\n if (x == undefined) {\\n x = -1000;\\n }\\n if (y == undefined) {\\n y = -5000;\\n }\\n if (z == undefined) {\\n z = 300;\\n }\\n\\n // Create the highlight\\n\\n this.addOffset(height * x / (x + y), height * y / (x + y), {\\n in: \\\"SourceAlpha\\\"\\n });\\n\\n this.addBlur(height * 0.5);\\n\\n var whiteLightSource = new FR.FilterEffect(\\\"fePointLight\\\", {\\n x: x,\\n y: y,\\n z: z\\n });\\n\\n this.chainEffect(\\\"feSpecularLighting\\\", {\\n surfaceScale: height,\\n specularConstant: 0.8,\\n specularExponent: 15\\n }, whiteLightSource);\\n\\n this.compose(this.getLastResult(), \\\"SourceAlpha\\\", \\\"in\\\");\\n var whiteLight = this.getLastResult();\\n\\n // Create the lowlight\\n\\n this.addOffset(height * -1 * x / (x + y), height * -1 * y / (x + y), {\\n in: \\\"SourceAlpha\\\"\\n });\\n\\n this.addBlur(height * 0.5);\\n\\n var darkLightSource = new FR.FilterEffect(\\\"fePointLight\\\", {\\n x: -1 * x,\\n y: -1 * y,\\n z: z\\n });\\n\\n this.chainEffect(\\\"feSpecularLighting\\\", {\\n surfaceScale: height,\\n specularConstant: 1.8,\\n specularExponent: 6\\n }, darkLightSource);\\n\\n this.compose(this.getLastResult(), \\\"SourceAlpha\\\", \\\"in\\\");\\n this.chainEffect(\\\"feColorMatrix\\\", {\\n values: \\\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0\\\"\\n });\\n var darkLight = this.getLastResult();\\n\\n this.arithmeticCompose(whiteLight, darkLight, 0, 0.8, 0.5, 0);\\n\\n this.merge(\\\"SourceGraphic\\\", this.getLastResult());\\n\\n return this;\\n }\\n };\\n\\n scope.FRaphael = FR;\\n})(this);\\n\\n/**\\n * add a filter to the paper by id\\n */\\nRaphael.fn.createFilter = function(id) {\\n var paper = this;\\n var filter = new FRaphael.Filter(id);\\n paper.defs.appendChild(filter.element);\\n\\n return filter;\\n};\\n\\n/**\\n * Apply a filter to an element by id\\n */\\nRaphael.el.filter = function(filter) {\\n var id = (filter instanceof FRaphael.Filter) ? filter.id : filter;\\n\\n this.node.setAttribute(\\\"filter\\\", \\\"url(#\\\" + id + \\\")\\\");\\n this.data(\\\"filterId\\\", id);\\n\\n return this;\\n};\\n\\n/**\\n * Get the current filter for an element or a new one if not\\n */\\nRaphael.el.getFilter = function() {\\n return FRaphael.getFilter(this);\\n};\\n\\n/**\\n * A shorthand method for applying blur\\n */\\nRaphael.el.blur = function(stdDeviation) {\\n if (stdDeviation == undefined) {\\n stdDeviation = 3;\\n }\\n\\n this.getFilter().addBlur(stdDeviation);\\n\\n return this;\\n};\\n\\n/**\\n * A shorthand method for applying a drop shadow\\n */\\nRaphael.el.shadow = function(dx, dy, blur, opacity, color) {\\n if (dx == undefined) {\\n dx = 3;\\n }\\n if (dy == undefined) {\\n dy = 3;\\n }\\n if (blur == undefined) {\\n blur = 3;\\n }\\n\\n this.getFilter().createShadow(dx, dy, blur, opacity, color);\\n\\n return this;\\n};\\n\\n/**\\n * A shorthand method for applying lighting\\n */\\nRaphael.el.light = function(x, y, z, color, type) {\\n if (x == undefined) {\\n x = this.paper.width;\\n }\\n if (y == undefined) {\\n y = 0;\\n }\\n if (z == undefined) {\\n z = 20;\\n }\\n\\n this.getFilter().addLighting(x, y, z, color, type);\\n\\n return this;\\n};\\n\\n/**\\n * A shorthand method for applying a colour shift\\n */\\nRaphael.el.colorShift = function(color, shift) {\\n if (color == undefined) {\\n color = \\\"black\\\";\\n }\\n if (shift == undefined) {\\n shift = 0.5;\\n }\\n\\n this.getFilter().addShiftToColor(color, shift);\\n\\n return this;\\n};\\n\\n/**\\n * A shorthand method for embossing\\n */\\nRaphael.el.emboss = function(height) {\\n this.getFilter().createEmboss(height);\\n\\n return this;\\n};\\n\\n/**\\n * A shorthand method for desaturating\\n */\\nRaphael.el.desaturate = function(saturation) {\\n this.getFilter().addDesaturate(saturation);\\n\\n return this;\\n};\\n\\n/**\\n * A shorthand method for complete desaturation\\n */\\nRaphael.el.greyScale = function() {\\n this.getFilter().addDesaturate(0);\\n\\n return this;\\n};\\n\"\n\n/***/ }),\n\n/***/ \"./node_modules/rgbcolor/index.js\":\n/*!****************************************!*\\\n !*** ./node_modules/rgbcolor/index.js ***!\n \\****************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/*\n\tBased on rgbcolor.js by Stoyan Stefanov <sstoo@gmail.com>\n\thttp://www.phpied.com/rgb-color-parser-in-javascript/\n*/\n\nmodule.exports = function(color_string) {\n this.ok = false;\n this.alpha = 1.0;\n\n // strip any leading #\n if (color_string.charAt(0) == '#') { // remove # if any\n color_string = color_string.substr(1,6);\n }\n\n color_string = color_string.replace(/ /g,'');\n color_string = color_string.toLowerCase();\n\n // before getting into regexps, try simple matches\n // and overwrite the input\n var simple_colors = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dodgerblue: '1e90ff',\n feldspar: 'd19275',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred : 'cd5c5c',\n indigo : '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgrey: 'd3d3d3',\n lightgreen: '90ee90',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslateblue: '8470ff',\n lightslategray: '778899',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '00ff00',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'ff00ff',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370d8',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'd87093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n red: 'ff0000',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n violetred: 'd02090',\n wheat: 'f5deb3',\n white: 'ffffff',\n whitesmoke: 'f5f5f5',\n yellow: 'ffff00',\n yellowgreen: '9acd32'\n };\n color_string = simple_colors[color_string] || color_string;\n // emd of simple type-in colors\n\n // array of color definition objects\n var color_defs = [\n {\n re: /^rgba\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3}),\\s*((?:\\d?\\.)?\\d)\\)$/,\n example: ['rgba(123, 234, 45, 0.8)', 'rgba(255,234,245,1.0)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3]),\n parseFloat(bits[4])\n ];\n }\n },\n {\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\n example: ['rgb(123, 234, 45)', 'rgb(255,234,245)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3])\n ];\n }\n },\n {\n re: /^(\\w{2})(\\w{2})(\\w{2})$/,\n example: ['#00ff00', '336699'],\n process: function (bits){\n return [\n parseInt(bits[1], 16),\n parseInt(bits[2], 16),\n parseInt(bits[3], 16)\n ];\n }\n },\n {\n re: /^(\\w{1})(\\w{1})(\\w{1})$/,\n example: ['#fb0', 'f0f'],\n process: function (bits){\n return [\n parseInt(bits[1] + bits[1], 16),\n parseInt(bits[2] + bits[2], 16),\n parseInt(bits[3] + bits[3], 16)\n ];\n }\n }\n ];\n\n // search through the definitions to find a match\n for (var i = 0; i < color_defs.length; i++) {\n var re = color_defs[i].re;\n var processor = color_defs[i].process;\n var bits = re.exec(color_string);\n if (bits) {\n var channels = processor(bits);\n this.r = channels[0];\n this.g = channels[1];\n this.b = channels[2];\n if (channels.length > 3) {\n this.alpha = channels[3];\n }\n this.ok = true;\n }\n\n }\n\n // validate/cleanup values\n this.r = (this.r < 0 || isNaN(this.r)) ? 0 : ((this.r > 255) ? 255 : this.r);\n this.g = (this.g < 0 || isNaN(this.g)) ? 0 : ((this.g > 255) ? 255 : this.g);\n this.b = (this.b < 0 || isNaN(this.b)) ? 0 : ((this.b > 255) ? 255 : this.b);\n this.alpha = (this.alpha < 0) ? 0 : ((this.alpha > 1.0 || isNaN(this.alpha)) ? 1.0 : this.alpha);\n\n // some getters\n this.toRGB = function () {\n return 'rgb(' + this.r + ', ' + this.g + ', ' + this.b + ')';\n }\n this.toRGBA = function () {\n return 'rgba(' + this.r + ', ' + this.g + ', ' + this.b + ', ' + this.alpha + ')';\n }\n this.toHex = function () {\n var r = this.r.toString(16);\n var g = this.g.toString(16);\n var b = this.b.toString(16);\n if (r.length == 1) r = '0' + r;\n if (g.length == 1) g = '0' + g;\n if (b.length == 1) b = '0' + b;\n return '#' + r + g + b;\n }\n\n // help\n this.getHelpXML = function () {\n\n var examples = new Array();\n // add regexps\n for (var i = 0; i < color_defs.length; i++) {\n var example = color_defs[i].example;\n for (var j = 0; j < example.length; j++) {\n examples[examples.length] = example[j];\n }\n }\n // add type-in colors\n for (var sc in simple_colors) {\n examples[examples.length] = sc;\n }\n\n var xml = document.createElement('ul');\n xml.setAttribute('id', 'rgbcolor-examples');\n for (var i = 0; i < examples.length; i++) {\n try {\n var list_item = document.createElement('li');\n var list_color = new RGBColor(examples[i]);\n var example_div = document.createElement('div');\n example_div.style.cssText =\n 'margin: 3px; '\n + 'border: 1px solid black; '\n + 'background:' + list_color.toHex() + '; '\n + 'color:' + list_color.toHex()\n ;\n example_div.appendChild(document.createTextNode('test'));\n var list_item_value = document.createTextNode(\n ' ' + examples[i] + ' -> ' + list_color.toRGB() + ' -> ' + list_color.toHex()\n );\n list_item.appendChild(example_div);\n list_item.appendChild(list_item_value);\n xml.appendChild(list_item);\n\n } catch(e){}\n }\n return xml;\n\n }\n\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/script-loader/addScript.js\":\n/*!*************************************************!*\\\n !*** ./node_modules/script-loader/addScript.js ***!\n \\*************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\nmodule.exports = function(src) {\n\tfunction log(error) {\n\t\t(typeof console !== \"undefined\")\n\t\t&& (console.error || console.log)(\"[Script Loader]\", error);\n\t}\n\n\t// Check for IE =< 8\n\tfunction isIE() {\n\t\treturn typeof attachEvent !== \"undefined\" && typeof addEventListener === \"undefined\";\n\t}\n\n\ttry {\n\t\tif (typeof execScript !== \"undefined\" && isIE()) {\n\t\t\texecScript(src);\n\t\t} else if (typeof eval !== \"undefined\") {\n\t\t\teval.call(null, src);\n\t\t} else {\n\t\t\tlog(\"EvalError: No eval function available\");\n\t\t}\n\t} catch (error) {\n\t\tlog(error);\n\t}\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/shifty/dist/shifty.js\":\n/*!********************************************!*\\\n !*** ./node_modules/shifty/dist/shifty.js ***!\n \\********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*! 2.3.1 */\n!function(t,e){ true?module.exports=e():undefined}(this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"/assets/\",e(e.s=6)}([function(t,e,n){\"use strict\";(function(t){function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=new j,n=e.tween(t);return n.tweenable=e,n}Object.defineProperty(e,\"__esModule\",{value:!0}),e.Tweenable=e.composeEasingObject=e.tweenProps=e.clone=e.each=void 0;var u=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),a=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t};e.tween=o;var c=n(5),s=r(c),f=n(1),h=function(t){return t&&t.__esModule?t:{default:t}}(f),l=n(7),p=r(l),d=\"undefined\"!=typeof window?window:t,m=d.cancelAnimationFrame||d.webkitCancelAnimationFrame||d.oCancelAnimationFrame||d.msCancelAnimationFrame||d.mozCancelRequestAnimationFrame||d.clearTimeout,_=d.requestAnimationFrame||d.webkitRequestAnimationFrame||d.oRequestAnimationFrame||d.msRequestAnimationFrame||d.mozCancelRequestAnimationFrame&&d.mozRequestAnimationFrame||setTimeout,v=function(){},y=e.each=function(t,e){return Object.keys(t).forEach(e)},w=e.clone=function(t){return(0,h.default)({},t)},g=w(s),b=function(t,e,n,r){return t+(e-t)*n(r)},O=e.tweenProps=function(t,e,n,r,i,o,u){var a=t<o?0:(t-o)/i;return y(e,function(t){var i=u[t],o=\"function\"==typeof i?i:g[i];e[t]=b(n[t],r[t],o,a)}),e},M=e.composeEasingObject=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"linear\",n={},r=void 0===e?\"undefined\":a(e);return\"string\"===r||\"function\"===r?y(t,function(t){return n[t]=e}):y(t,function(t){return n[t]=n[t]||e[t]||\"linear\"}),n},j=e.Tweenable=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;i(this,t),this._currentState=e,this._configured=!1,this._scheduleFunction=_,void 0!==n&&this.setConfig(n)}return u(t,[{key:\"_applyFilter\",value:function(e){var n=this,r=t.filters,i=this._filterArgs;y(r,function(t){var o=r[t][e];void 0!==o&&o.apply(n,i)})}},{key:\"_timeoutHandler\",value:function(e){var n=this,r=arguments,i=this._currentState,o=this._delay,u=this._duration,a=this._step,c=this._targetState,s=this._timestamp,f=s+o+u,h=Math.min(e||t.now(),f),l=h>=f,p=u-(f-h);this.isPlaying()&&(l?(a(c,this._attachment,p),this.stop(!0)):(this._scheduleId=this._scheduleFunction.call(d,function(){return n._timeoutHandler.apply(n,r)},1e3/60),this._applyFilter(\"beforeTween\"),h<s+o?(h=1,u=1,s=1):s+=o,O(h,i,this._originalState,c,u,s,this._easing),this._applyFilter(\"afterTween\"),a(i,this._attachment,p)))}},{key:\"tween\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,n=this._attachment,r=this._configured;return this._isTweening?this:(void 0===e&&r||this.setConfig(e),this._timestamp=t.now(),this._start(this.get(),n),this.resume())}},{key:\"setConfig\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._configured=!0,this._attachment=e.attachment,(0,h.default)(this,{_pausedAtTime:null,_scheduleId:null,_delay:e.delay||0,_start:e.start||v,_step:e.step||v,_duration:e.duration||500,_currentState:w(e.from||this.get())}),(0,h.default)(this,{_originalState:this.get(),_targetState:w(e.to||this.get())});var n=this._currentState;this._targetState=(0,h.default)({},n,this._targetState),this._easing=M(n,e.easing),this._filterArgs=[n,this._originalState,this._targetState,this._easing],this._applyFilter(\"tweenCreated\");var r=e.promise||Promise;return this._promise=new r(function(e,n){t._resolve=e,t._reject=n}),this._promise.catch(v),this}},{key:\"get\",value:function(){return w(this._currentState)}},{key:\"set\",value:function(t){this._currentState=t}},{key:\"pause\",value:function(){return this._pausedAtTime=t.now(),this._isPaused=!0,this}},{key:\"resume\",value:function(){return this._isPaused&&(this._timestamp+=t.now()-this._pausedAtTime),this._isPaused=!1,this._isTweening=!0,this._timeoutHandler(),this._promise}},{key:\"seek\",value:function(e){e=Math.max(e,0);var n=t.now();return this._timestamp+e===0?this:(this._timestamp=n-e,this.isPlaying()||(this._isTweening=!0,this._isPaused=!1,this._timeoutHandler(n),this.pause()),this)}},{key:\"stop\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=this._attachment,n=this._currentState,r=this._easing,i=this._originalState,o=this._targetState;return this._isTweening=!1,this._isPaused=!1,m(this._scheduleId),t?(this._applyFilter(\"beforeTween\"),O(1,n,i,o,1,0,r),this._applyFilter(\"afterTween\"),this._applyFilter(\"afterTweenEnd\"),this._resolve(n,e)):this._reject(n,e),this}},{key:\"isPlaying\",value:function(){return this._isTweening&&!this._isPaused}},{key:\"setScheduleFunction\",value:function(t){this._scheduleFunction=t}},{key:\"dispose\",value:function(){var t=this;y(this,function(e){return delete t[e]})}}]),t}();(0,h.default)(j,{formulas:g,filters:{token:p},now:Date.now||function(t){return+new Date}})}).call(e,n(4))},function(t,e,n){\"use strict\";function r(t){if(null===t||void 0===t)throw new TypeError(\"Object.assign cannot be called with null or undefined\");return Object(t)}var i=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable;t.exports=function(){try{if(!Object.assign)return!1;var t=new String(\"abc\");if(t[5]=\"de\",\"5\"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e[\"_\"+String.fromCharCode(n)]=n;if(\"0123456789\"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(\"\"))return!1;var r={};return\"abcdefghijklmnopqrst\".split(\"\").forEach(function(t){r[t]=t}),\"abcdefghijklmnopqrst\"===Object.keys(Object.assign({},r)).join(\"\")}catch(t){return!1}}()?Object.assign:function(t,e){for(var n,a,c=r(t),s=1;s<arguments.length;s++){n=Object(arguments[s]);for(var f in n)o.call(n,f)&&(c[f]=n[f]);if(i){a=i(n);for(var h=0;h<a.length;h++)u.call(n,a[h])&&(c[a[h]]=n[a[h]])}}return c}},function(t,e,n){\"use strict\";function r(t,e,n,r,i,o){var u=0,a=0,c=0,s=0,f=0,h=0,l=function(t){return((u*t+a)*t+c)*t},p=function(t){return((s*t+f)*t+h)*t},d=function(t){return(3*u*t+2*a)*t+c},m=function(t){return t>=0?t:0-t},_=function(t,e){var n=void 0,r=void 0,i=void 0,o=void 0,u=void 0,a=void 0;for(i=t,a=0;a<8;a++){if(o=l(i)-t,m(o)<e)return i;if(u=d(i),m(u)<1e-6)break;i-=o/u}if(n=0,r=1,(i=t)<n)return n;if(i>r)return r;for(;n<r;){if(o=l(i),m(o-t)<e)return i;t>o?n=i:r=i,i=.5*(r-n)+n}return i};return c=3*e,a=3*(r-e)-c,u=1-c-a,h=3*n,f=3*(i-n)-h,s=1-h-f,function(t,e){return p(_(t,e))}(t,function(t){return 1/(200*t)}(o))}Object.defineProperty(e,\"__esModule\",{value:!0}),e.unsetBezierFunction=e.setBezierFunction=void 0;var i=n(0),o=n(1),u=function(t){return t&&t.__esModule?t:{default:t}}(o),a=function(t,e,n,i){return function(o){return r(o,t,e,n,i,1)}};e.setBezierFunction=function(t,e,n,r,o){return i.Tweenable.formulas[t]=(0,u.default)(a(e,n,r,o),{displayName:t,x1:e,y1:n,x2:r,y2:o})},e.unsetBezierFunction=function(t){return delete i.Tweenable.formulas[t]}},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.interpolate=void 0;var r=n(0),i=new r.Tweenable;i._filterArgs=[];e.interpolate=function(t,e,n,o){var u=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,a=(0,r.clone)(t),c=(0,r.composeEasingObject)(t,o);i.set({}),i._filterArgs=[a,t,e,c],i._applyFilter(\"tweenCreated\"),i._applyFilter(\"beforeTween\");var s=(0,r.tweenProps)(n,a,t,e,1,u,c);return i._applyFilter(\"afterTween\"),s}},function(t,e,n){\"use strict\";var r,i=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t};r=function(){return this}();try{r=r||Function(\"return this\")()||(0,eval)(\"this\")}catch(t){\"object\"===(\"undefined\"==typeof window?\"undefined\":i(window))&&(r=window)}t.exports=r},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});e.linear=function(t){return t},e.easeInQuad=function(t){return Math.pow(t,2)},e.easeOutQuad=function(t){return-(Math.pow(t-1,2)-1)},e.easeInOutQuad=function(t){return(t/=.5)<1?.5*Math.pow(t,2):-.5*((t-=2)*t-2)},e.easeInCubic=function(t){return Math.pow(t,3)},e.easeOutCubic=function(t){return Math.pow(t-1,3)+1},e.easeInOutCubic=function(t){return(t/=.5)<1?.5*Math.pow(t,3):.5*(Math.pow(t-2,3)+2)},e.easeInQuart=function(t){return Math.pow(t,4)},e.easeOutQuart=function(t){return-(Math.pow(t-1,4)-1)},e.easeInOutQuart=function(t){return(t/=.5)<1?.5*Math.pow(t,4):-.5*((t-=2)*Math.pow(t,3)-2)},e.easeInQuint=function(t){return Math.pow(t,5)},e.easeOutQuint=function(t){return Math.pow(t-1,5)+1},e.easeInOutQuint=function(t){return(t/=.5)<1?.5*Math.pow(t,5):.5*(Math.pow(t-2,5)+2)},e.easeInSine=function(t){return 1-Math.cos(t*(Math.PI/2))},e.easeOutSine=function(t){return Math.sin(t*(Math.PI/2))},e.easeInOutSine=function(t){return-.5*(Math.cos(Math.PI*t)-1)},e.easeInExpo=function(t){return 0===t?0:Math.pow(2,10*(t-1))},e.easeOutExpo=function(t){return 1===t?1:1-Math.pow(2,-10*t)},e.easeInOutExpo=function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(2-Math.pow(2,-10*--t))},e.easeInCirc=function(t){return-(Math.sqrt(1-t*t)-1)},e.easeOutCirc=function(t){return Math.sqrt(1-Math.pow(t-1,2))},e.easeInOutCirc=function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},e.easeOutBounce=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},e.easeInBack=function(t){var e=1.70158;return t*t*((e+1)*t-e)},e.easeOutBack=function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},e.easeInOutBack=function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},e.elastic=function(t){return-1*Math.pow(4,-8*t)*Math.sin((6*t-1)*(2*Math.PI)/2)+1},e.swingFromTo=function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},e.swingFrom=function(t){var e=1.70158;return t*t*((e+1)*t-e)},e.swingTo=function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},e.bounce=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},e.bouncePast=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?2-(7.5625*(t-=1.5/2.75)*t+.75):t<2.5/2.75?2-(7.5625*(t-=2.25/2.75)*t+.9375):2-(7.5625*(t-=2.625/2.75)*t+.984375)},e.easeFromTo=function(t){return(t/=.5)<1?.5*Math.pow(t,4):-.5*((t-=2)*Math.pow(t,3)-2)},e.easeFrom=function(t){return Math.pow(t,4)},e.easeTo=function(t){return Math.pow(t,.25)}},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=n(0);Object.defineProperty(e,\"Tweenable\",{enumerable:!0,get:function(){return r.Tweenable}}),Object.defineProperty(e,\"tween\",{enumerable:!0,get:function(){return r.tween}});var i=n(3);Object.defineProperty(e,\"interpolate\",{enumerable:!0,get:function(){return i.interpolate}});var o=n(2);Object.defineProperty(e,\"setBezierFunction\",{enumerable:!0,get:function(){return o.setBezierFunction}}),Object.defineProperty(e,\"unsetBezierFunction\",{enumerable:!0,get:function(){return o.unsetBezierFunction}})},function(t,e,n){\"use strict\";function r(t){return parseInt(t,16)}function i(t,e,n){[t,e,n].forEach(_),this._tokenData=g(t)}function o(t,e,n,r){var i=this._tokenData;P(r,i),[t,e,n].forEach(function(t){return b(t,i)})}function u(t,e,n,r){var i=this._tokenData;[t,e,n].forEach(function(t){return F(t,i)}),S(r,i)}Object.defineProperty(e,\"__esModule\",{value:!0}),e.tweenCreated=i,e.beforeTween=o,e.afterTween=u;var a=n(0),c=function(){var t=/[0-9.\\-]+/g.source,e=/,\\s*/.source;return new RegExp(\"rgb\\\\(\"+t+e+t+e+t+\"\\\\)\",\"g\")}(),s=/#([0-9]|[a-f]){3,6}/gi,f=function(t,e){return t.map(function(t,n){return\"_\"+e+\"_\"+n})},h=function(t){var e=t.match(/([^\\-0-9\\.]+)/g);return e?(1===e.length||t.charAt(0).match(/(\\d|\\-|\\.)/))&&e.unshift(\"\"):e=[\"\",\"\"],e.join(\"VAL\")},l=function(t){return t=t.replace(/#/,\"\"),3===t.length&&(t=t.split(\"\"),t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]),[r(t.substr(0,2)),r(t.substr(2,2)),r(t.substr(4,2))]},p=function(t){return\"rgb(\"+l(t).join(\",\")+\")\"},d=function(t,e,n){var r=e.match(t),i=e.replace(t,\"VAL\");return r&&r.forEach(function(t){return i=i.replace(\"VAL\",n(t))}),i},m=function(t){return d(s,t,p)},_=function(t){(0,a.each)(t,function(e){var n=t[e];\"string\"==typeof n&&n.match(s)&&(t[e]=m(n))})},v=function(t){var e=t.match(/[0-9.\\-]+/g).map(Math.floor);return\"\"+t.match(/^.*\\(/)[0]+e.join(\",\")+\")\"},y=function(t){return d(c,t,v)},w=function(t){return t.match(/[0-9.\\-]+/g)},g=function(t){var e={};return(0,a.each)(t,function(n){var r=t[n];\"string\"==typeof r&&(e[n]={formatString:h(r),chunkNames:f(w(r),n)})}),e},b=function(t,e){(0,a.each)(e,function(n){w(t[n]).forEach(function(r,i){return t[e[n].chunkNames[i]]=+r}),delete t[n]})},O=function(t,e){var n={};return e.forEach(function(e){n[e]=t[e],delete t[e]}),n},M=function(t,e){return e.map(function(e){return t[e]})},j=function(t,e){return e.forEach(function(e){return t=t.replace(\"VAL\",+e.toFixed(4))}),t},F=function(t,e){(0,a.each)(e,function(n){var r=e[n],i=r.chunkNames,o=r.formatString,u=j(o,M(O(t,i),i));t[n]=y(u)})},P=function(t,e){(0,a.each)(e,function(n){var r=e[n].chunkNames,i=t[n];\"string\"==typeof i?function(){var e=i.split(\" \"),n=e[e.length-1];r.forEach(function(r,i){return t[r]=e[i]||n})}():r.forEach(function(e){return t[e]=i}),delete t[n]})},S=function(t,e){(0,a.each)(e,function(n){var r=e[n].chunkNames,i=(r.length,t[r[0]]);t[n]=\"string\"==typeof i?r.map(function(e){var n=t[e];return delete t[e],n}).join(\" \"):i})}}])});\n//# sourceMappingURL=shifty.js.map\n\n/***/ }),\n\n/***/ \"./node_modules/stackblur/index.js\":\n/*!*****************************************!*\\\n !*** ./node_modules/stackblur/index.js ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/*\n\nStackBlur - a fast almost Gaussian Blur For Canvas\n\nVersion: \t0.5\nAuthor:\t\tMario Klingemann\nContact: \tmario@quasimondo.com\nWebsite:\thttp://www.quasimondo.com/StackBlurForCanvas\nTwitter:\t@quasimondo\n\nIn case you find this class useful - especially in commercial projects -\nI am not totally unhappy for a small donation to my PayPal account\nmario@quasimondo.de\n\nOr support me on flattr: \nhttps://flattr.com/thing/72791/StackBlur-a-fast-almost-Gaussian-Blur-Effect-for-CanvasJavascript\n\nCopyright (c) 2010 Mario Klingemann\n\nPermission is hereby granted, free of charge, to any person\nobtaining a copy of this software and associated documentation\nfiles (the \"Software\"), to deal in the Software without\nrestriction, including without limitation the rights to use,\ncopy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following\nconditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE.\n*/\n\nvar mul_table = [\n 512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,\n 454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,\n 482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,\n 437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,\n 497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,\n 320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,\n 446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,\n 329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,\n 505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,\n 399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,\n 324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,\n 268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,\n 451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,\n 385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,\n 332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,\n 289,287,285,282,280,278,275,273,271,269,267,265,263,261,259];\n \n \nvar shg_table = [\n\t 9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, \n\t\t17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, \n\t\t19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20,\n\t\t20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21,\n\t\t21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,\n\t\t21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, \n\t\t22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,\n\t\t22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, \n\t\t23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n\t\t23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,\n\t\t23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, \n\t\t23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, \n\t\t24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n\t\t24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n\t\t24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n\t\t24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24 ];\n\nfunction blur( pixels, width, height, radius )\n{\n\tif ( isNaN(radius) || radius < 1 ) return;\n\tradius |= 0;\n\n\tvar x, y, i, p, yp, yi, yw, r_sum, g_sum, b_sum, a_sum, \n\tr_out_sum, g_out_sum, b_out_sum, a_out_sum,\n\tr_in_sum, g_in_sum, b_in_sum, a_in_sum, \n\tpr, pg, pb, pa, rbs;\n\t\t\t\n\tvar div = radius + radius + 1;\n\tvar w4 = width << 2;\n\tvar widthMinus1 = width - 1;\n\tvar heightMinus1 = height - 1;\n\tvar radiusPlus1 = radius + 1;\n\tvar sumFactor = radiusPlus1 * ( radiusPlus1 + 1 ) / 2;\n\t\n\tvar stackStart = new BlurStack();\n\tvar stack = stackStart;\n\tfor ( i = 1; i < div; i++ )\n\t{\n\t\tstack = stack.next = new BlurStack();\n\t\tif ( i == radiusPlus1 ) var stackEnd = stack;\n\t}\n\tstack.next = stackStart;\n\tvar stackIn = null;\n\tvar stackOut = null;\n\t\n\tyw = yi = 0;\n\t\n\tvar mul_sum = mul_table[radius];\n\tvar shg_sum = shg_table[radius];\n\t\n\tfor ( y = 0; y < height; y++ )\n\t{\n\t\tr_in_sum = g_in_sum = b_in_sum = a_in_sum = r_sum = g_sum = b_sum = a_sum = 0;\n\t\t\n\t\tr_out_sum = radiusPlus1 * ( pr = pixels[yi] );\n\t\tg_out_sum = radiusPlus1 * ( pg = pixels[yi+1] );\n\t\tb_out_sum = radiusPlus1 * ( pb = pixels[yi+2] );\n\t\ta_out_sum = radiusPlus1 * ( pa = pixels[yi+3] );\n\t\t\n\t\tr_sum += sumFactor * pr;\n\t\tg_sum += sumFactor * pg;\n\t\tb_sum += sumFactor * pb;\n\t\ta_sum += sumFactor * pa;\n\t\t\n\t\tstack = stackStart;\n\t\t\n\t\tfor( i = 0; i < radiusPlus1; i++ )\n\t\t{\n\t\t\tstack.r = pr;\n\t\t\tstack.g = pg;\n\t\t\tstack.b = pb;\n\t\t\tstack.a = pa;\n\t\t\tstack = stack.next;\n\t\t}\n\t\t\n\t\tfor( i = 1; i < radiusPlus1; i++ )\n\t\t{\n\t\t\tp = yi + (( widthMinus1 < i ? widthMinus1 : i ) << 2 );\n\t\t\tr_sum += ( stack.r = ( pr = pixels[p])) * ( rbs = radiusPlus1 - i );\n\t\t\tg_sum += ( stack.g = ( pg = pixels[p+1])) * rbs;\n\t\t\tb_sum += ( stack.b = ( pb = pixels[p+2])) * rbs;\n\t\t\ta_sum += ( stack.a = ( pa = pixels[p+3])) * rbs;\n\t\t\t\n\t\t\tr_in_sum += pr;\n\t\t\tg_in_sum += pg;\n\t\t\tb_in_sum += pb;\n\t\t\ta_in_sum += pa;\n\t\t\t\n\t\t\tstack = stack.next;\n\t\t}\n\t\t\n\t\t\n\t\tstackIn = stackStart;\n\t\tstackOut = stackEnd;\n\t\tfor ( x = 0; x < width; x++ )\n\t\t{\n\t\t\tpixels[yi+3] = pa = (a_sum * mul_sum) >> shg_sum;\n\t\t\tif ( pa != 0 )\n\t\t\t{\n\t\t\t\tpa = 255 / pa;\n\t\t\t\tpixels[yi] = ((r_sum * mul_sum) >> shg_sum) * pa;\n\t\t\t\tpixels[yi+1] = ((g_sum * mul_sum) >> shg_sum) * pa;\n\t\t\t\tpixels[yi+2] = ((b_sum * mul_sum) >> shg_sum) * pa;\n\t\t\t} else {\n\t\t\t\tpixels[yi] = pixels[yi+1] = pixels[yi+2] = 0;\n\t\t\t}\n\t\t\t\n\t\t\tr_sum -= r_out_sum;\n\t\t\tg_sum -= g_out_sum;\n\t\t\tb_sum -= b_out_sum;\n\t\t\ta_sum -= a_out_sum;\n\t\t\t\n\t\t\tr_out_sum -= stackIn.r;\n\t\t\tg_out_sum -= stackIn.g;\n\t\t\tb_out_sum -= stackIn.b;\n\t\t\ta_out_sum -= stackIn.a;\n\t\t\t\n\t\t\tp = ( yw + ( ( p = x + radius + 1 ) < widthMinus1 ? p : widthMinus1 ) ) << 2;\n\t\t\t\n\t\t\tr_in_sum += ( stackIn.r = pixels[p]);\n\t\t\tg_in_sum += ( stackIn.g = pixels[p+1]);\n\t\t\tb_in_sum += ( stackIn.b = pixels[p+2]);\n\t\t\ta_in_sum += ( stackIn.a = pixels[p+3]);\n\t\t\t\n\t\t\tr_sum += r_in_sum;\n\t\t\tg_sum += g_in_sum;\n\t\t\tb_sum += b_in_sum;\n\t\t\ta_sum += a_in_sum;\n\t\t\t\n\t\t\tstackIn = stackIn.next;\n\t\t\t\n\t\t\tr_out_sum += ( pr = stackOut.r );\n\t\t\tg_out_sum += ( pg = stackOut.g );\n\t\t\tb_out_sum += ( pb = stackOut.b );\n\t\t\ta_out_sum += ( pa = stackOut.a );\n\t\t\t\n\t\t\tr_in_sum -= pr;\n\t\t\tg_in_sum -= pg;\n\t\t\tb_in_sum -= pb;\n\t\t\ta_in_sum -= pa;\n\t\t\t\n\t\t\tstackOut = stackOut.next;\n\n\t\t\tyi += 4;\n\t\t}\n\t\tyw += width;\n\t}\n\n\t\n\tfor ( x = 0; x < width; x++ )\n\t{\n\t\tg_in_sum = b_in_sum = a_in_sum = r_in_sum = g_sum = b_sum = a_sum = r_sum = 0;\n\t\t\n\t\tyi = x << 2;\n\t\tr_out_sum = radiusPlus1 * ( pr = pixels[yi]);\n\t\tg_out_sum = radiusPlus1 * ( pg = pixels[yi+1]);\n\t\tb_out_sum = radiusPlus1 * ( pb = pixels[yi+2]);\n\t\ta_out_sum = radiusPlus1 * ( pa = pixels[yi+3]);\n\t\t\n\t\tr_sum += sumFactor * pr;\n\t\tg_sum += sumFactor * pg;\n\t\tb_sum += sumFactor * pb;\n\t\ta_sum += sumFactor * pa;\n\t\t\n\t\tstack = stackStart;\n\t\t\n\t\tfor( i = 0; i < radiusPlus1; i++ )\n\t\t{\n\t\t\tstack.r = pr;\n\t\t\tstack.g = pg;\n\t\t\tstack.b = pb;\n\t\t\tstack.a = pa;\n\t\t\tstack = stack.next;\n\t\t}\n\t\t\n\t\typ = width;\n\t\t\n\t\tfor( i = 1; i <= radius; i++ )\n\t\t{\n\t\t\tyi = ( yp + x ) << 2;\n\t\t\t\n\t\t\tr_sum += ( stack.r = ( pr = pixels[yi])) * ( rbs = radiusPlus1 - i );\n\t\t\tg_sum += ( stack.g = ( pg = pixels[yi+1])) * rbs;\n\t\t\tb_sum += ( stack.b = ( pb = pixels[yi+2])) * rbs;\n\t\t\ta_sum += ( stack.a = ( pa = pixels[yi+3])) * rbs;\n\t\t \n\t\t\tr_in_sum += pr;\n\t\t\tg_in_sum += pg;\n\t\t\tb_in_sum += pb;\n\t\t\ta_in_sum += pa;\n\t\t\t\n\t\t\tstack = stack.next;\n\t\t\n\t\t\tif( i < heightMinus1 )\n\t\t\t{\n\t\t\t\typ += width;\n\t\t\t}\n\t\t}\n\t\t\n\t\tyi = x;\n\t\tstackIn = stackStart;\n\t\tstackOut = stackEnd;\n\t\tfor ( y = 0; y < height; y++ )\n\t\t{\n\t\t\tp = yi << 2;\n\t\t\tpixels[p+3] = pa = (a_sum * mul_sum) >> shg_sum;\n\t\t\tif ( pa > 0 )\n\t\t\t{\n\t\t\t\tpa = 255 / pa;\n\t\t\t\tpixels[p] = ((r_sum * mul_sum) >> shg_sum ) * pa;\n\t\t\t\tpixels[p+1] = ((g_sum * mul_sum) >> shg_sum ) * pa;\n\t\t\t\tpixels[p+2] = ((b_sum * mul_sum) >> shg_sum ) * pa;\n\t\t\t} else {\n\t\t\t\tpixels[p] = pixels[p+1] = pixels[p+2] = 0;\n\t\t\t}\n\t\t\t\n\t\t\tr_sum -= r_out_sum;\n\t\t\tg_sum -= g_out_sum;\n\t\t\tb_sum -= b_out_sum;\n\t\t\ta_sum -= a_out_sum;\n\t\t \n\t\t\tr_out_sum -= stackIn.r;\n\t\t\tg_out_sum -= stackIn.g;\n\t\t\tb_out_sum -= stackIn.b;\n\t\t\ta_out_sum -= stackIn.a;\n\t\t\t\n\t\t\tp = ( x + (( ( p = y + radiusPlus1) < heightMinus1 ? p : heightMinus1 ) * width )) << 2;\n\t\t\t\n\t\t\tr_sum += ( r_in_sum += ( stackIn.r = pixels[p]));\n\t\t\tg_sum += ( g_in_sum += ( stackIn.g = pixels[p+1]));\n\t\t\tb_sum += ( b_in_sum += ( stackIn.b = pixels[p+2]));\n\t\t\ta_sum += ( a_in_sum += ( stackIn.a = pixels[p+3]));\n\t\t \n\t\t\tstackIn = stackIn.next;\n\t\t\t\n\t\t\tr_out_sum += ( pr = stackOut.r );\n\t\t\tg_out_sum += ( pg = stackOut.g );\n\t\t\tb_out_sum += ( pb = stackOut.b );\n\t\t\ta_out_sum += ( pa = stackOut.a );\n\t\t\t\n\t\t\tr_in_sum -= pr;\n\t\t\tg_in_sum -= pg;\n\t\t\tb_in_sum -= pb;\n\t\t\ta_in_sum -= pa;\n\t\t\t\n\t\t\tstackOut = stackOut.next;\n\t\t\t\n\t\t\tyi += width;\n\t\t}\n\t}\n}\n\nfunction BlurStack()\n{\n\tthis.r = 0;\n\tthis.g = 0;\n\tthis.b = 0;\n\tthis.a = 0;\n\tthis.next = null;\n}\n\nmodule.exports = blur;\n\n/***/ }),\n\n/***/ \"./node_modules/style-loader/lib/addStyles.js\":\n/*!****************************************************!*\\\n !*** ./node_modules/style-loader/lib/addStyles.js ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target) {\n return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target) {\n // If passing function in options, then use it for resolve \"head\" element.\n // Useful for Shadow Root style i.e\n // {\n // insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n // }\n if (typeof target === 'function') {\n return target();\n }\n if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = __webpack_require__(/*! ./urls */ \"./node_modules/style-loader/lib/urls.js\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (!options.singleton && typeof options.singleton !== \"boolean\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the <head> element\n if (!options.insertInto) options.insertInto = \"head\";\n\n\t// By default, add <style> tags to the bottom of the target\n\tif (!options.insertAt) options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list, options);\n\n\taddStylesToDom(styles, options);\n\n\treturn function update (newList) {\n\t\tvar mayRemove = [];\n\n\t\tfor (var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList, options);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\n\t\tfor (var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();\n\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n};\n\nfunction addStylesToDom (styles, options) {\n\tfor (var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles (list, options) {\n\tvar styles = [];\n\tvar newStyles = {};\n\n\tfor (var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = options.base ? item[0] + options.base : item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\n\t\tif(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse newStyles[id].parts.push(part);\n\t}\n\n\treturn styles;\n}\n\nfunction insertStyleElement (options, style) {\n\tvar target = getElement(options.insertInto)\n\n\tif (!target) {\n\t\tthrow new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");\n\t}\n\n\tvar lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];\n\n\tif (options.insertAt === \"top\") {\n\t\tif (!lastStyleElementInsertedAtTop) {\n\t\t\ttarget.insertBefore(style, target.firstChild);\n\t\t} else if (lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\ttarget.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\ttarget.appendChild(style);\n\t\t}\n\t\tstylesInsertedAtTop.push(style);\n\t} else if (options.insertAt === \"bottom\") {\n\t\ttarget.appendChild(style);\n\t} else if (typeof options.insertAt === \"object\" && options.insertAt.before) {\n\t\tvar nextSibling = getElement(options.insertInto + \" \" + options.insertAt.before);\n\t\ttarget.insertBefore(style, nextSibling);\n\t} else {\n\t\tthrow new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");\n\t}\n}\n\nfunction removeStyleElement (style) {\n\tif (style.parentNode === null) return false;\n\tstyle.parentNode.removeChild(style);\n\n\tvar idx = stylesInsertedAtTop.indexOf(style);\n\tif(idx >= 0) {\n\t\tstylesInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement (options) {\n\tvar style = document.createElement(\"style\");\n\n\tif(options.attrs.type === undefined) {\n\t\toptions.attrs.type = \"text/css\";\n\t}\n\n\taddAttrs(style, options.attrs);\n\tinsertStyleElement(options, style);\n\n\treturn style;\n}\n\nfunction createLinkElement (options) {\n\tvar link = document.createElement(\"link\");\n\n\tif(options.attrs.type === undefined) {\n\t\toptions.attrs.type = \"text/css\";\n\t}\n\toptions.attrs.rel = \"stylesheet\";\n\n\taddAttrs(link, options.attrs);\n\tinsertStyleElement(options, link);\n\n\treturn link;\n}\n\nfunction addAttrs (el, attrs) {\n\tObject.keys(attrs).forEach(function (key) {\n\t\tel.setAttribute(key, attrs[key]);\n\t});\n}\n\nfunction addStyle (obj, options) {\n\tvar style, update, remove, result;\n\n\t// If a transform function was defined, run it on the css\n\tif (options.transform && obj.css) {\n\t result = options.transform(obj.css);\n\n\t if (result) {\n\t \t// If transform returns a value, use that instead of the original css.\n\t \t// This allows running runtime transformations on the css.\n\t \tobj.css = result;\n\t } else {\n\t \t// If the transform function returns a falsy value, don't add this css.\n\t \t// This allows conditional loading of css\n\t \treturn function() {\n\t \t\t// noop\n\t \t};\n\t }\n\t}\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\n\t\tstyle = singleton || (singleton = createStyleElement(options));\n\n\t\tupdate = applyToSingletonTag.bind(null, style, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, style, styleIndex, true);\n\n\t} else if (\n\t\tobj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\"\n\t) {\n\t\tstyle = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, style, options);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\n\t\t\tif(style.href) URL.revokeObjectURL(style.href);\n\t\t};\n\t} else {\n\t\tstyle = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, style);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle (newObj) {\n\t\tif (newObj) {\n\t\t\tif (\n\t\t\t\tnewObj.css === obj.css &&\n\t\t\t\tnewObj.media === obj.media &&\n\t\t\t\tnewObj.sourceMap === obj.sourceMap\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag (style, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (style.styleSheet) {\n\t\tstyle.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = style.childNodes;\n\n\t\tif (childNodes[index]) style.removeChild(childNodes[index]);\n\n\t\tif (childNodes.length) {\n\t\t\tstyle.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyle.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag (style, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyle.setAttribute(\"media\", media)\n\t}\n\n\tif(style.styleSheet) {\n\t\tstyle.styleSheet.cssText = css;\n\t} else {\n\t\twhile(style.firstChild) {\n\t\t\tstyle.removeChild(style.firstChild);\n\t\t}\n\n\t\tstyle.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink (link, options, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\t/*\n\t\tIf convertToAbsoluteUrls isn't defined, but sourcemaps are enabled\n\t\tand there is no publicPath defined then lets turn convertToAbsoluteUrls\n\t\ton by default. Otherwise default to the convertToAbsoluteUrls option\n\t\tdirectly\n\t*/\n\tvar autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;\n\n\tif (options.convertToAbsoluteUrls || autoFixUrls) {\n\t\tcss = fixUrls(css);\n\t}\n\n\tif (sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = link.href;\n\n\tlink.href = URL.createObjectURL(blob);\n\n\tif(oldSrc) URL.revokeObjectURL(oldSrc);\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/style-loader/lib/urls.js\":\n/*!***********************************************!*\\\n !*** ./node_modules/style-loader/lib/urls.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n // get current location\n var location = typeof window !== \"undefined\" && window.location;\n\n if (!location) {\n throw new Error(\"fixUrls requires window.location\");\n }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t return css;\n }\n\n var baseUrl = location.protocol + \"//\" + location.host;\n var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\( = Match on the word \"url\" with any whitespace after it and then a parens\n\t ( = Start a capturing group\n\t (?: = Start a non-capturing group\n\t [^)(] = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t (?: = Start another non-capturing groups\n\t [^)(]+ = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t [^)(]* = Match anything that isn't a parentheses\n\t \\) = Match a end parentheses\n\t ) = End Group\n *\\) = Match anything and then a close parens\n ) = Close non-capturing group\n * = Match anything\n ) = Close capturing group\n\t \\) = Match a close parens\n\n\t /gi = Get all matches, not the first. Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(unquotedOrigUrl)) {\n\t\t return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/webpack/buildin/global.js\":\n/*!***********************************!*\\\n !*** (webpack)/buildin/global.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n\n/***/ \"./node_modules/xmldom/dom-parser.js\":\n/*!*******************************************!*\\\n !*** ./node_modules/xmldom/dom-parser.js ***!\n \\*******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction DOMParser(options){\r\n\tthis.options = options ||{locator:{}};\r\n\t\r\n}\r\nDOMParser.prototype.parseFromString = function(source,mimeType){\r\n\tvar options = this.options;\r\n\tvar sax = new XMLReader();\r\n\tvar domBuilder = options.domBuilder || new DOMHandler();//contentHandler and LexicalHandler\r\n\tvar errorHandler = options.errorHandler;\r\n\tvar locator = options.locator;\r\n\tvar defaultNSMap = options.xmlns||{};\r\n\tvar entityMap = {'lt':'<','gt':'>','amp':'&','quot':'\"','apos':\"'\"}\r\n\tif(locator){\r\n\t\tdomBuilder.setDocumentLocator(locator)\r\n\t}\r\n\t\r\n\tsax.errorHandler = buildErrorHandler(errorHandler,domBuilder,locator);\r\n\tsax.domBuilder = options.domBuilder || domBuilder;\r\n\tif(/\\/x?html?$/.test(mimeType)){\r\n\t\tentityMap.nbsp = '\\xa0';\r\n\t\tentityMap.copy = '\\xa9';\r\n\t\tdefaultNSMap['']= 'http://www.w3.org/1999/xhtml';\r\n\t}\r\n\tdefaultNSMap.xml = defaultNSMap.xml || 'http://www.w3.org/XML/1998/namespace';\r\n\tif(source){\r\n\t\tsax.parse(source,defaultNSMap,entityMap);\r\n\t}else{\r\n\t\tsax.errorHandler.error(\"invalid doc source\");\r\n\t}\r\n\treturn domBuilder.doc;\r\n}\r\nfunction buildErrorHandler(errorImpl,domBuilder,locator){\r\n\tif(!errorImpl){\r\n\t\tif(domBuilder instanceof DOMHandler){\r\n\t\t\treturn domBuilder;\r\n\t\t}\r\n\t\terrorImpl = domBuilder ;\r\n\t}\r\n\tvar errorHandler = {}\r\n\tvar isCallback = errorImpl instanceof Function;\r\n\tlocator = locator||{}\r\n\tfunction build(key){\r\n\t\tvar fn = errorImpl[key];\r\n\t\tif(!fn && isCallback){\r\n\t\t\tfn = errorImpl.length == 2?function(msg){errorImpl(key,msg)}:errorImpl;\r\n\t\t}\r\n\t\terrorHandler[key] = fn && function(msg){\r\n\t\t\tfn('[xmldom '+key+']\\t'+msg+_locator(locator));\r\n\t\t}||function(){};\r\n\t}\r\n\tbuild('warning');\r\n\tbuild('error');\r\n\tbuild('fatalError');\r\n\treturn errorHandler;\r\n}\r\n\r\n//console.log('#\\n\\n\\n\\n\\n\\n\\n####')\r\n/**\r\n * +ContentHandler+ErrorHandler\r\n * +LexicalHandler+EntityResolver2\r\n * -DeclHandler-DTDHandler \r\n * \r\n * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler\r\n * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html\r\n */\r\nfunction DOMHandler() {\r\n this.cdata = false;\r\n}\r\nfunction position(locator,node){\r\n\tnode.lineNumber = locator.lineNumber;\r\n\tnode.columnNumber = locator.columnNumber;\r\n}\r\n/**\r\n * @see org.xml.sax.ContentHandler#startDocument\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html\r\n */ \r\nDOMHandler.prototype = {\r\n\tstartDocument : function() {\r\n \tthis.doc = new DOMImplementation().createDocument(null, null, null);\r\n \tif (this.locator) {\r\n \tthis.doc.documentURI = this.locator.systemId;\r\n \t}\r\n\t},\r\n\tstartElement:function(namespaceURI, localName, qName, attrs) {\r\n\t\tvar doc = this.doc;\r\n\t var el = doc.createElementNS(namespaceURI, qName||localName);\r\n\t var len = attrs.length;\r\n\t appendElement(this, el);\r\n\t this.currentElement = el;\r\n\t \r\n\t\tthis.locator && position(this.locator,el)\r\n\t for (var i = 0 ; i < len; i++) {\r\n\t var namespaceURI = attrs.getURI(i);\r\n\t var value = attrs.getValue(i);\r\n\t var qName = attrs.getQName(i);\r\n\t\t\tvar attr = doc.createAttributeNS(namespaceURI, qName);\r\n\t\t\tthis.locator &&position(attrs.getLocator(i),attr);\r\n\t\t\tattr.value = attr.nodeValue = value;\r\n\t\t\tel.setAttributeNode(attr)\r\n\t }\r\n\t},\r\n\tendElement:function(namespaceURI, localName, qName) {\r\n\t\tvar current = this.currentElement\r\n\t\tvar tagName = current.tagName;\r\n\t\tthis.currentElement = current.parentNode;\r\n\t},\r\n\tstartPrefixMapping:function(prefix, uri) {\r\n\t},\r\n\tendPrefixMapping:function(prefix) {\r\n\t},\r\n\tprocessingInstruction:function(target, data) {\r\n\t var ins = this.doc.createProcessingInstruction(target, data);\r\n\t this.locator && position(this.locator,ins)\r\n\t appendElement(this, ins);\r\n\t},\r\n\tignorableWhitespace:function(ch, start, length) {\r\n\t},\r\n\tcharacters:function(chars, start, length) {\r\n\t\tchars = _toString.apply(this,arguments)\r\n\t\t//console.log(chars)\r\n\t\tif(chars){\r\n\t\t\tif (this.cdata) {\r\n\t\t\t\tvar charNode = this.doc.createCDATASection(chars);\r\n\t\t\t} else {\r\n\t\t\t\tvar charNode = this.doc.createTextNode(chars);\r\n\t\t\t}\r\n\t\t\tif(this.currentElement){\r\n\t\t\t\tthis.currentElement.appendChild(charNode);\r\n\t\t\t}else if(/^\\s*$/.test(chars)){\r\n\t\t\t\tthis.doc.appendChild(charNode);\r\n\t\t\t\t//process xml\r\n\t\t\t}\r\n\t\t\tthis.locator && position(this.locator,charNode)\r\n\t\t}\r\n\t},\r\n\tskippedEntity:function(name) {\r\n\t},\r\n\tendDocument:function() {\r\n\t\tthis.doc.normalize();\r\n\t},\r\n\tsetDocumentLocator:function (locator) {\r\n\t if(this.locator = locator){// && !('lineNumber' in locator)){\r\n\t \tlocator.lineNumber = 0;\r\n\t }\r\n\t},\r\n\t//LexicalHandler\r\n\tcomment:function(chars, start, length) {\r\n\t\tchars = _toString.apply(this,arguments)\r\n\t var comm = this.doc.createComment(chars);\r\n\t this.locator && position(this.locator,comm)\r\n\t appendElement(this, comm);\r\n\t},\r\n\t\r\n\tstartCDATA:function() {\r\n\t //used in characters() methods\r\n\t this.cdata = true;\r\n\t},\r\n\tendCDATA:function() {\r\n\t this.cdata = false;\r\n\t},\r\n\t\r\n\tstartDTD:function(name, publicId, systemId) {\r\n\t\tvar impl = this.doc.implementation;\r\n\t if (impl && impl.createDocumentType) {\r\n\t var dt = impl.createDocumentType(name, publicId, systemId);\r\n\t this.locator && position(this.locator,dt)\r\n\t appendElement(this, dt);\r\n\t }\r\n\t},\r\n\t/**\r\n\t * @see org.xml.sax.ErrorHandler\r\n\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\r\n\t */\r\n\twarning:function(error) {\r\n\t\tconsole.warn('[xmldom warning]\\t'+error,_locator(this.locator));\r\n\t},\r\n\terror:function(error) {\r\n\t\tconsole.error('[xmldom error]\\t'+error,_locator(this.locator));\r\n\t},\r\n\tfatalError:function(error) {\r\n\t\tconsole.error('[xmldom fatalError]\\t'+error,_locator(this.locator));\r\n\t throw error;\r\n\t}\r\n}\r\nfunction _locator(l){\r\n\tif(l){\r\n\t\treturn '\\n@'+(l.systemId ||'')+'#[line:'+l.lineNumber+',col:'+l.columnNumber+']'\r\n\t}\r\n}\r\nfunction _toString(chars,start,length){\r\n\tif(typeof chars == 'string'){\r\n\t\treturn chars.substr(start,length)\r\n\t}else{//java sax connect width xmldom on rhino(what about: \"? && !(chars instanceof String)\")\r\n\t\tif(chars.length >= start+length || start){\r\n\t\t\treturn new java.lang.String(chars,start,length)+'';\r\n\t\t}\r\n\t\treturn chars;\r\n\t}\r\n}\r\n\r\n/*\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html\r\n * used method of org.xml.sax.ext.LexicalHandler:\r\n * #comment(chars, start, length)\r\n * #startCDATA()\r\n * #endCDATA()\r\n * #startDTD(name, publicId, systemId)\r\n *\r\n *\r\n * IGNORED method of org.xml.sax.ext.LexicalHandler:\r\n * #endDTD()\r\n * #startEntity(name)\r\n * #endEntity(name)\r\n *\r\n *\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html\r\n * IGNORED method of org.xml.sax.ext.DeclHandler\r\n * \t#attributeDecl(eName, aName, type, mode, value)\r\n * #elementDecl(name, model)\r\n * #externalEntityDecl(name, publicId, systemId)\r\n * #internalEntityDecl(name, value)\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html\r\n * IGNORED method of org.xml.sax.EntityResolver2\r\n * #resolveEntity(String name,String publicId,String baseURI,String systemId)\r\n * #resolveEntity(publicId, systemId)\r\n * #getExternalSubset(name, baseURI)\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html\r\n * IGNORED method of org.xml.sax.DTDHandler\r\n * #notationDecl(name, publicId, systemId) {};\r\n * #unparsedEntityDecl(name, publicId, systemId, notationName) {};\r\n */\r\n\"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g,function(key){\r\n\tDOMHandler.prototype[key] = function(){return null}\r\n})\r\n\r\n/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */\r\nfunction appendElement (hander,node) {\r\n if (!hander.currentElement) {\r\n hander.doc.appendChild(node);\r\n } else {\r\n hander.currentElement.appendChild(node);\r\n }\r\n}//appendChild and setAttributeNS are preformance key\r\n\r\n//if(typeof require == 'function'){\r\n\tvar XMLReader = __webpack_require__(/*! ./sax */ \"./node_modules/xmldom/sax.js\").XMLReader;\r\n\tvar DOMImplementation = exports.DOMImplementation = __webpack_require__(/*! ./dom */ \"./node_modules/xmldom/dom.js\").DOMImplementation;\r\n\texports.XMLSerializer = __webpack_require__(/*! ./dom */ \"./node_modules/xmldom/dom.js\").XMLSerializer ;\r\n\texports.DOMParser = DOMParser;\r\n//}\r\n\n\n/***/ }),\n\n/***/ \"./node_modules/xmldom/dom.js\":\n/*!************************************!*\\\n !*** ./node_modules/xmldom/dom.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/*\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n */\n\nfunction copy(src,dest){\n\tfor(var p in src){\n\t\tdest[p] = src[p];\n\t}\n}\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */\nfunction _extends(Class,Super){\n\tvar pt = Class.prototype;\n\tif(Object.create){\n\t\tvar ppt = Object.create(Super.prototype)\n\t\tpt.__proto__ = ppt;\n\t}\n\tif(!(pt instanceof Super)){\n\t\tfunction t(){};\n\t\tt.prototype = Super.prototype;\n\t\tt = new t();\n\t\tcopy(pt,t);\n\t\tClass.prototype = pt = t;\n\t}\n\tif(pt.constructor != Class){\n\t\tif(typeof Class != 'function'){\n\t\t\tconsole.error(\"unknow Class:\"+Class)\n\t\t}\n\t\tpt.constructor = Class\n\t}\n}\nvar htmlns = 'http://www.w3.org/1999/xhtml' ;\n// Node Types\nvar NodeType = {}\nvar ELEMENT_NODE = NodeType.ELEMENT_NODE = 1;\nvar ATTRIBUTE_NODE = NodeType.ATTRIBUTE_NODE = 2;\nvar TEXT_NODE = NodeType.TEXT_NODE = 3;\nvar CDATA_SECTION_NODE = NodeType.CDATA_SECTION_NODE = 4;\nvar ENTITY_REFERENCE_NODE = NodeType.ENTITY_REFERENCE_NODE = 5;\nvar ENTITY_NODE = NodeType.ENTITY_NODE = 6;\nvar PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar COMMENT_NODE = NodeType.COMMENT_NODE = 8;\nvar DOCUMENT_NODE = NodeType.DOCUMENT_NODE = 9;\nvar DOCUMENT_TYPE_NODE = NodeType.DOCUMENT_TYPE_NODE = 10;\nvar DOCUMENT_FRAGMENT_NODE = NodeType.DOCUMENT_FRAGMENT_NODE = 11;\nvar NOTATION_NODE = NodeType.NOTATION_NODE = 12;\n\n// ExceptionCode\nvar ExceptionCode = {}\nvar ExceptionMessage = {};\nvar INDEX_SIZE_ERR = ExceptionCode.INDEX_SIZE_ERR = ((ExceptionMessage[1]=\"Index size error\"),1);\nvar DOMSTRING_SIZE_ERR = ExceptionCode.DOMSTRING_SIZE_ERR = ((ExceptionMessage[2]=\"DOMString size error\"),2);\nvar HIERARCHY_REQUEST_ERR = ExceptionCode.HIERARCHY_REQUEST_ERR = ((ExceptionMessage[3]=\"Hierarchy request error\"),3);\nvar WRONG_DOCUMENT_ERR = ExceptionCode.WRONG_DOCUMENT_ERR = ((ExceptionMessage[4]=\"Wrong document\"),4);\nvar INVALID_CHARACTER_ERR = ExceptionCode.INVALID_CHARACTER_ERR = ((ExceptionMessage[5]=\"Invalid character\"),5);\nvar NO_DATA_ALLOWED_ERR = ExceptionCode.NO_DATA_ALLOWED_ERR = ((ExceptionMessage[6]=\"No data allowed\"),6);\nvar NO_MODIFICATION_ALLOWED_ERR = ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ((ExceptionMessage[7]=\"No modification allowed\"),7);\nvar NOT_FOUND_ERR = ExceptionCode.NOT_FOUND_ERR = ((ExceptionMessage[8]=\"Not found\"),8);\nvar NOT_SUPPORTED_ERR = ExceptionCode.NOT_SUPPORTED_ERR = ((ExceptionMessage[9]=\"Not supported\"),9);\nvar INUSE_ATTRIBUTE_ERR = ExceptionCode.INUSE_ATTRIBUTE_ERR = ((ExceptionMessage[10]=\"Attribute in use\"),10);\n//level2\nvar INVALID_STATE_ERR \t= ExceptionCode.INVALID_STATE_ERR \t= ((ExceptionMessage[11]=\"Invalid state\"),11);\nvar SYNTAX_ERR \t= ExceptionCode.SYNTAX_ERR \t= ((ExceptionMessage[12]=\"Syntax error\"),12);\nvar INVALID_MODIFICATION_ERR \t= ExceptionCode.INVALID_MODIFICATION_ERR \t= ((ExceptionMessage[13]=\"Invalid modification\"),13);\nvar NAMESPACE_ERR \t= ExceptionCode.NAMESPACE_ERR \t= ((ExceptionMessage[14]=\"Invalid namespace\"),14);\nvar INVALID_ACCESS_ERR \t= ExceptionCode.INVALID_ACCESS_ERR \t= ((ExceptionMessage[15]=\"Invalid access\"),15);\n\n\nfunction DOMException(code, message) {\n\tif(message instanceof Error){\n\t\tvar error = message;\n\t}else{\n\t\terror = this;\n\t\tError.call(this, ExceptionMessage[code]);\n\t\tthis.message = ExceptionMessage[code];\n\t\tif(Error.captureStackTrace) Error.captureStackTrace(this, DOMException);\n\t}\n\terror.code = code;\n\tif(message) this.message = this.message + \": \" + message;\n\treturn error;\n};\nDOMException.prototype = Error.prototype;\ncopy(ExceptionCode,DOMException)\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */\nfunction NodeList() {\n};\nNodeList.prototype = {\n\t/**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */\n\tlength:0, \n\t/**\n\t * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n\t * @standard level1\n\t * @param index unsigned long \n\t * Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index. \n\t */\n\titem: function(index) {\n\t\treturn this[index] || null;\n\t},\n\ttoString:function(isHTML,nodeFilter){\n\t\tfor(var buf = [], i = 0;i<this.length;i++){\n\t\t\tserializeToString(this[i],buf,isHTML,nodeFilter);\n\t\t}\n\t\treturn buf.join('');\n\t}\n};\nfunction LiveNodeList(node,refresh){\n\tthis._node = node;\n\tthis._refresh = refresh\n\t_updateLiveList(this);\n}\nfunction _updateLiveList(list){\n\tvar inc = list._node._inc || list._node.ownerDocument._inc;\n\tif(list._inc != inc){\n\t\tvar ls = list._refresh(list._node);\n\t\t//console.log(ls.length)\n\t\t__set__(list,'length',ls.length);\n\t\tcopy(ls,list);\n\t\tlist._inc = inc;\n\t}\n}\nLiveNodeList.prototype.item = function(i){\n\t_updateLiveList(this);\n\treturn this[i];\n}\n\n_extends(LiveNodeList,NodeList);\n/**\n * \n * Objects implementing the NamedNodeMap interface are used to represent collections of nodes that can be accessed by name. Note that NamedNodeMap does not inherit from NodeList; NamedNodeMaps are not maintained in any particular order. Objects contained in an object implementing NamedNodeMap may also be accessed by an ordinal index, but this is simply to allow convenient enumeration of the contents of a NamedNodeMap, and does not imply that the DOM specifies an order to these Nodes.\n * NamedNodeMap objects in the DOM are live.\n * used for attributes or DocumentType entities \n */\nfunction NamedNodeMap() {\n};\n\nfunction _findNodeIndex(list,node){\n\tvar i = list.length;\n\twhile(i--){\n\t\tif(list[i] === node){return i}\n\t}\n}\n\nfunction _addNamedNode(el,list,newAttr,oldAttr){\n\tif(oldAttr){\n\t\tlist[_findNodeIndex(list,oldAttr)] = newAttr;\n\t}else{\n\t\tlist[list.length++] = newAttr;\n\t}\n\tif(el){\n\t\tnewAttr.ownerElement = el;\n\t\tvar doc = el.ownerDocument;\n\t\tif(doc){\n\t\t\toldAttr && _onRemoveAttribute(doc,el,oldAttr);\n\t\t\t_onAddAttribute(doc,el,newAttr);\n\t\t}\n\t}\n}\nfunction _removeNamedNode(el,list,attr){\n\t//console.log('remove attr:'+attr)\n\tvar i = _findNodeIndex(list,attr);\n\tif(i>=0){\n\t\tvar lastIndex = list.length-1\n\t\twhile(i<lastIndex){\n\t\t\tlist[i] = list[++i]\n\t\t}\n\t\tlist.length = lastIndex;\n\t\tif(el){\n\t\t\tvar doc = el.ownerDocument;\n\t\t\tif(doc){\n\t\t\t\t_onRemoveAttribute(doc,el,attr);\n\t\t\t\tattr.ownerElement = null;\n\t\t\t}\n\t\t}\n\t}else{\n\t\tthrow DOMException(NOT_FOUND_ERR,new Error(el.tagName+'@'+attr))\n\t}\n}\nNamedNodeMap.prototype = {\n\tlength:0,\n\titem:NodeList.prototype.item,\n\tgetNamedItem: function(key) {\n//\t\tif(key.indexOf(':')>0 || key == 'xmlns'){\n//\t\t\treturn null;\n//\t\t}\n\t\t//console.log()\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar attr = this[i];\n\t\t\t//console.log(attr.nodeName,key)\n\t\t\tif(attr.nodeName == key){\n\t\t\t\treturn attr;\n\t\t\t}\n\t\t}\n\t},\n\tsetNamedItem: function(attr) {\n\t\tvar el = attr.ownerElement;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\tvar oldAttr = this.getNamedItem(attr.nodeName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\t/* returns Node */\n\tsetNamedItemNS: function(attr) {// raises: WRONG_DOCUMENT_ERR,NO_MODIFICATION_ALLOWED_ERR,INUSE_ATTRIBUTE_ERR\n\t\tvar el = attr.ownerElement, oldAttr;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\toldAttr = this.getNamedItemNS(attr.namespaceURI,attr.localName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\n\t/* returns Node */\n\tremoveNamedItem: function(key) {\n\t\tvar attr = this.getNamedItem(key);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\t\t\n\t\t\n\t},// raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR\n\t\n\t//for level2\n\tremoveNamedItemNS:function(namespaceURI,localName){\n\t\tvar attr = this.getNamedItemNS(namespaceURI,localName);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\t},\n\tgetNamedItemNS: function(namespaceURI, localName) {\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar node = this[i];\n\t\t\tif(node.localName == localName && node.namespaceURI == namespaceURI){\n\t\t\t\treturn node;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n};\n/**\n * @see http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490\n */\nfunction DOMImplementation(/* Object */ features) {\n\tthis._features = {};\n\tif (features) {\n\t\tfor (var feature in features) {\n\t\t\t this._features = features[feature];\n\t\t}\n\t}\n};\n\nDOMImplementation.prototype = {\n\thasFeature: function(/* string */ feature, /* string */ version) {\n\t\tvar versions = this._features[feature.toLowerCase()];\n\t\tif (versions && (!version || version in versions)) {\n\t\t\treturn true;\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateDocument:function(namespaceURI, qualifiedName, doctype){// raises:INVALID_CHARACTER_ERR,NAMESPACE_ERR,WRONG_DOCUMENT_ERR\n\t\tvar doc = new Document();\n\t\tdoc.implementation = this;\n\t\tdoc.childNodes = new NodeList();\n\t\tdoc.doctype = doctype;\n\t\tif(doctype){\n\t\t\tdoc.appendChild(doctype);\n\t\t}\n\t\tif(qualifiedName){\n\t\t\tvar root = doc.createElementNS(namespaceURI,qualifiedName);\n\t\t\tdoc.appendChild(root);\n\t\t}\n\t\treturn doc;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateDocumentType:function(qualifiedName, publicId, systemId){// raises:INVALID_CHARACTER_ERR,NAMESPACE_ERR\n\t\tvar node = new DocumentType();\n\t\tnode.name = qualifiedName;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.publicId = publicId;\n\t\tnode.systemId = systemId;\n\t\t// Introduced in DOM Level 2:\n\t\t//readonly attribute DOMString internalSubset;\n\t\t\n\t\t//TODO:..\n\t\t// readonly attribute NamedNodeMap entities;\n\t\t// readonly attribute NamedNodeMap notations;\n\t\treturn node;\n\t}\n};\n\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */\n\nfunction Node() {\n};\n\nNode.prototype = {\n\tfirstChild : null,\n\tlastChild : null,\n\tpreviousSibling : null,\n\tnextSibling : null,\n\tattributes : null,\n\tparentNode : null,\n\tchildNodes : null,\n\townerDocument : null,\n\tnodeValue : null,\n\tnamespaceURI : null,\n\tprefix : null,\n\tlocalName : null,\n\t// Modified in DOM Level 2:\n\tinsertBefore:function(newChild, refChild){//raises \n\t\treturn _insertBefore(this,newChild,refChild);\n\t},\n\treplaceChild:function(newChild, oldChild){//raises \n\t\tthis.insertBefore(newChild,oldChild);\n\t\tif(oldChild){\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t},\n\tremoveChild:function(oldChild){\n\t\treturn _removeChild(this,oldChild);\n\t},\n\tappendChild:function(newChild){\n\t\treturn this.insertBefore(newChild,null);\n\t},\n\thasChildNodes:function(){\n\t\treturn this.firstChild != null;\n\t},\n\tcloneNode:function(deep){\n\t\treturn cloneNode(this.ownerDocument||this,this,deep);\n\t},\n\t// Modified in DOM Level 2:\n\tnormalize:function(){\n\t\tvar child = this.firstChild;\n\t\twhile(child){\n\t\t\tvar next = child.nextSibling;\n\t\t\tif(next && next.nodeType == TEXT_NODE && child.nodeType == TEXT_NODE){\n\t\t\t\tthis.removeChild(next);\n\t\t\t\tchild.appendData(next.data);\n\t\t\t}else{\n\t\t\t\tchild.normalize();\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t}\n\t},\n \t// Introduced in DOM Level 2:\n\tisSupported:function(feature, version){\n\t\treturn this.ownerDocument.implementation.hasFeature(feature,version);\n\t},\n // Introduced in DOM Level 2:\n hasAttributes:function(){\n \treturn this.attributes.length>0;\n },\n lookupPrefix:function(namespaceURI){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tfor(var n in map){\n \t\t\t\tif(map[n] == namespaceURI){\n \t\t\t\t\treturn n;\n \t\t\t\t}\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n lookupNamespaceURI:function(prefix){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tif(prefix in map){\n \t\t\t\treturn map[prefix] ;\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n isDefaultNamespace:function(namespaceURI){\n \tvar prefix = this.lookupPrefix(namespaceURI);\n \treturn prefix == null;\n }\n};\n\n\nfunction _xmlEncoder(c){\n\treturn c == '<' && '<' ||\n c == '>' && '>' ||\n c == '&' && '&' ||\n c == '\"' && '"' ||\n '&#'+c.charCodeAt()+';'\n}\n\n\ncopy(NodeType,Node);\ncopy(NodeType,Node.prototype);\n\n/**\n * @param callback return true for continue,false for break\n * @return boolean true: break visit;\n */\nfunction _visitNode(node,callback){\n\tif(callback(node)){\n\t\treturn true;\n\t}\n\tif(node = node.firstChild){\n\t\tdo{\n\t\t\tif(_visitNode(node,callback)){return true}\n }while(node=node.nextSibling)\n }\n}\n\n\n\nfunction Document(){\n}\nfunction _onAddAttribute(doc,el,newAttr){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns == 'http://www.w3.org/2000/xmlns/'){\n\t\t//update namespace\n\t\tel._nsMap[newAttr.prefix?newAttr.localName:''] = newAttr.value\n\t}\n}\nfunction _onRemoveAttribute(doc,el,newAttr,remove){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns == 'http://www.w3.org/2000/xmlns/'){\n\t\t//update namespace\n\t\tdelete el._nsMap[newAttr.prefix?newAttr.localName:'']\n\t}\n}\nfunction _onUpdateChild(doc,el,newChild){\n\tif(doc && doc._inc){\n\t\tdoc._inc++;\n\t\t//update childNodes\n\t\tvar cs = el.childNodes;\n\t\tif(newChild){\n\t\t\tcs[cs.length++] = newChild;\n\t\t}else{\n\t\t\t//console.log(1)\n\t\t\tvar child = el.firstChild;\n\t\t\tvar i = 0;\n\t\t\twhile(child){\n\t\t\t\tcs[i++] = child;\n\t\t\t\tchild =child.nextSibling;\n\t\t\t}\n\t\t\tcs.length = i;\n\t\t}\n\t}\n}\n\n/**\n * attributes;\n * children;\n * \n * writeable properties:\n * nodeValue,Attr:value,CharacterData:data\n * prefix\n */\nfunction _removeChild(parentNode,child){\n\tvar previous = child.previousSibling;\n\tvar next = child.nextSibling;\n\tif(previous){\n\t\tprevious.nextSibling = next;\n\t}else{\n\t\tparentNode.firstChild = next\n\t}\n\tif(next){\n\t\tnext.previousSibling = previous;\n\t}else{\n\t\tparentNode.lastChild = previous;\n\t}\n\t_onUpdateChild(parentNode.ownerDocument,parentNode);\n\treturn child;\n}\n/**\n * preformance key(refChild == null)\n */\nfunction _insertBefore(parentNode,newChild,nextChild){\n\tvar cp = newChild.parentNode;\n\tif(cp){\n\t\tcp.removeChild(newChild);//remove and update\n\t}\n\tif(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\tvar newFirst = newChild.firstChild;\n\t\tif (newFirst == null) {\n\t\t\treturn newChild;\n\t\t}\n\t\tvar newLast = newChild.lastChild;\n\t}else{\n\t\tnewFirst = newLast = newChild;\n\t}\n\tvar pre = nextChild ? nextChild.previousSibling : parentNode.lastChild;\n\n\tnewFirst.previousSibling = pre;\n\tnewLast.nextSibling = nextChild;\n\t\n\t\n\tif(pre){\n\t\tpre.nextSibling = newFirst;\n\t}else{\n\t\tparentNode.firstChild = newFirst;\n\t}\n\tif(nextChild == null){\n\t\tparentNode.lastChild = newLast;\n\t}else{\n\t\tnextChild.previousSibling = newLast;\n\t}\n\tdo{\n\t\tnewFirst.parentNode = parentNode;\n\t}while(newFirst !== newLast && (newFirst= newFirst.nextSibling))\n\t_onUpdateChild(parentNode.ownerDocument||parentNode,parentNode);\n\t//console.log(parentNode.lastChild.nextSibling == null)\n\tif (newChild.nodeType == DOCUMENT_FRAGMENT_NODE) {\n\t\tnewChild.firstChild = newChild.lastChild = null;\n\t}\n\treturn newChild;\n}\nfunction _appendSingleChild(parentNode,newChild){\n\tvar cp = newChild.parentNode;\n\tif(cp){\n\t\tvar pre = parentNode.lastChild;\n\t\tcp.removeChild(newChild);//remove and update\n\t\tvar pre = parentNode.lastChild;\n\t}\n\tvar pre = parentNode.lastChild;\n\tnewChild.parentNode = parentNode;\n\tnewChild.previousSibling = pre;\n\tnewChild.nextSibling = null;\n\tif(pre){\n\t\tpre.nextSibling = newChild;\n\t}else{\n\t\tparentNode.firstChild = newChild;\n\t}\n\tparentNode.lastChild = newChild;\n\t_onUpdateChild(parentNode.ownerDocument,parentNode,newChild);\n\treturn newChild;\n\t//console.log(\"__aa\",parentNode.lastChild.nextSibling == null)\n}\nDocument.prototype = {\n\t//implementation : null,\n\tnodeName : '#document',\n\tnodeType : DOCUMENT_NODE,\n\tdoctype : null,\n\tdocumentElement : null,\n\t_inc : 1,\n\t\n\tinsertBefore : function(newChild, refChild){//raises \n\t\tif(newChild.nodeType == DOCUMENT_FRAGMENT_NODE){\n\t\t\tvar child = newChild.firstChild;\n\t\t\twhile(child){\n\t\t\t\tvar next = child.nextSibling;\n\t\t\t\tthis.insertBefore(child,refChild);\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t\treturn newChild;\n\t\t}\n\t\tif(this.documentElement == null && newChild.nodeType == ELEMENT_NODE){\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\t\t\n\t\treturn _insertBefore(this,newChild,refChild),(newChild.ownerDocument = this),newChild;\n\t},\n\tremoveChild : function(oldChild){\n\t\tif(this.documentElement == oldChild){\n\t\t\tthis.documentElement = null;\n\t\t}\n\t\treturn _removeChild(this,oldChild);\n\t},\n\t// Introduced in DOM Level 2:\n\timportNode : function(importedNode,deep){\n\t\treturn importNode(this,importedNode,deep);\n\t},\n\t// Introduced in DOM Level 2:\n\tgetElementById :\tfunction(id){\n\t\tvar rtv = null;\n\t\t_visitNode(this.documentElement,function(node){\n\t\t\tif(node.nodeType == ELEMENT_NODE){\n\t\t\t\tif(node.getAttribute('id') == id){\n\t\t\t\t\trtv = node;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\treturn rtv;\n\t},\n\t\n\t//document factory method:\n\tcreateElement :\tfunction(tagName){\n\t\tvar node = new Element();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = tagName;\n\t\tnode.tagName = tagName;\n\t\tnode.childNodes = new NodeList();\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\tcreateDocumentFragment :\tfunction(){\n\t\tvar node = new DocumentFragment();\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\treturn node;\n\t},\n\tcreateTextNode :\tfunction(data){\n\t\tvar node = new Text();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateComment :\tfunction(data){\n\t\tvar node = new Comment();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateCDATASection :\tfunction(data){\n\t\tvar node = new CDATASection();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateProcessingInstruction :\tfunction(target,data){\n\t\tvar node = new ProcessingInstruction();\n\t\tnode.ownerDocument = this;\n\t\tnode.tagName = node.target = target;\n\t\tnode.nodeValue= node.data = data;\n\t\treturn node;\n\t},\n\tcreateAttribute :\tfunction(name){\n\t\tvar node = new Attr();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.name = name;\n\t\tnode.nodeName\t= name;\n\t\tnode.localName = name;\n\t\tnode.specified = true;\n\t\treturn node;\n\t},\n\tcreateEntityReference :\tfunction(name){\n\t\tvar node = new EntityReference();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.nodeName\t= name;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateElementNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Element();\n\t\tvar pl = qualifiedName.split(':');\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tnode.childNodes = new NodeList();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.tagName = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateAttributeNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Attr();\n\t\tvar pl = qualifiedName.split(':');\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.name = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tnode.specified = true;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\treturn node;\n\t}\n};\n_extends(Document,Node);\n\n\nfunction Element() {\n\tthis._nsMap = {};\n};\nElement.prototype = {\n\tnodeType : ELEMENT_NODE,\n\thasAttribute : function(name){\n\t\treturn this.getAttributeNode(name)!=null;\n\t},\n\tgetAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name);\n\t\treturn attr && attr.value || '';\n\t},\n\tgetAttributeNode : function(name){\n\t\treturn this.attributes.getNamedItem(name);\n\t},\n\tsetAttribute : function(name, value){\n\t\tvar attr = this.ownerDocument.createAttribute(name);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tremoveAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name)\n\t\tattr && this.removeAttributeNode(attr);\n\t},\n\t\n\t//four real opeartion method\n\tappendChild:function(newChild){\n\t\tif(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\t\treturn this.insertBefore(newChild,null);\n\t\t}else{\n\t\t\treturn _appendSingleChild(this,newChild);\n\t\t}\n\t},\n\tsetAttributeNode : function(newAttr){\n\t\treturn this.attributes.setNamedItem(newAttr);\n\t},\n\tsetAttributeNodeNS : function(newAttr){\n\t\treturn this.attributes.setNamedItemNS(newAttr);\n\t},\n\tremoveAttributeNode : function(oldAttr){\n\t\t//console.log(this == oldAttr.ownerElement)\n\t\treturn this.attributes.removeNamedItem(oldAttr.nodeName);\n\t},\n\t//get real attribute name,and remove it by removeAttributeNode\n\tremoveAttributeNS : function(namespaceURI, localName){\n\t\tvar old = this.getAttributeNodeNS(namespaceURI, localName);\n\t\told && this.removeAttributeNode(old);\n\t},\n\t\n\thasAttributeNS : function(namespaceURI, localName){\n\t\treturn this.getAttributeNodeNS(namespaceURI, localName)!=null;\n\t},\n\tgetAttributeNS : function(namespaceURI, localName){\n\t\tvar attr = this.getAttributeNodeNS(namespaceURI, localName);\n\t\treturn attr && attr.value || '';\n\t},\n\tsetAttributeNS : function(namespaceURI, qualifiedName, value){\n\t\tvar attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tgetAttributeNodeNS : function(namespaceURI, localName){\n\t\treturn this.attributes.getNamedItemNS(namespaceURI, localName);\n\t},\n\t\n\tgetElementsByTagName : function(tagName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType == ELEMENT_NODE && (tagName === '*' || node.tagName == tagName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t});\n\t},\n\tgetElementsByTagNameNS : function(namespaceURI, localName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE && (namespaceURI === '*' || node.namespaceURI === namespaceURI) && (localName === '*' || node.localName == localName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t\t\n\t\t});\n\t}\n};\nDocument.prototype.getElementsByTagName = Element.prototype.getElementsByTagName;\nDocument.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS;\n\n\n_extends(Element,Node);\nfunction Attr() {\n};\nAttr.prototype.nodeType = ATTRIBUTE_NODE;\n_extends(Attr,Node);\n\n\nfunction CharacterData() {\n};\nCharacterData.prototype = {\n\tdata : '',\n\tsubstringData : function(offset, count) {\n\t\treturn this.data.substring(offset, offset+count);\n\t},\n\tappendData: function(text) {\n\t\ttext = this.data+text;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t},\n\tinsertData: function(offset,text) {\n\t\tthis.replaceData(offset,0,text);\n\t\n\t},\n\tappendChild:function(newChild){\n\t\tthrow new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR])\n\t},\n\tdeleteData: function(offset, count) {\n\t\tthis.replaceData(offset,count,\"\");\n\t},\n\treplaceData: function(offset, count, text) {\n\t\tvar start = this.data.substring(0,offset);\n\t\tvar end = this.data.substring(offset+count);\n\t\ttext = start + text + end;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t}\n}\n_extends(CharacterData,Node);\nfunction Text() {\n};\nText.prototype = {\n\tnodeName : \"#text\",\n\tnodeType : TEXT_NODE,\n\tsplitText : function(offset) {\n\t\tvar text = this.data;\n\t\tvar newText = text.substring(offset);\n\t\ttext = text.substring(0, offset);\n\t\tthis.data = this.nodeValue = text;\n\t\tthis.length = text.length;\n\t\tvar newNode = this.ownerDocument.createTextNode(newText);\n\t\tif(this.parentNode){\n\t\t\tthis.parentNode.insertBefore(newNode, this.nextSibling);\n\t\t}\n\t\treturn newNode;\n\t}\n}\n_extends(Text,CharacterData);\nfunction Comment() {\n};\nComment.prototype = {\n\tnodeName : \"#comment\",\n\tnodeType : COMMENT_NODE\n}\n_extends(Comment,CharacterData);\n\nfunction CDATASection() {\n};\nCDATASection.prototype = {\n\tnodeName : \"#cdata-section\",\n\tnodeType : CDATA_SECTION_NODE\n}\n_extends(CDATASection,CharacterData);\n\n\nfunction DocumentType() {\n};\nDocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE;\n_extends(DocumentType,Node);\n\nfunction Notation() {\n};\nNotation.prototype.nodeType = NOTATION_NODE;\n_extends(Notation,Node);\n\nfunction Entity() {\n};\nEntity.prototype.nodeType = ENTITY_NODE;\n_extends(Entity,Node);\n\nfunction EntityReference() {\n};\nEntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE;\n_extends(EntityReference,Node);\n\nfunction DocumentFragment() {\n};\nDocumentFragment.prototype.nodeName =\t\"#document-fragment\";\nDocumentFragment.prototype.nodeType =\tDOCUMENT_FRAGMENT_NODE;\n_extends(DocumentFragment,Node);\n\n\nfunction ProcessingInstruction() {\n}\nProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE;\n_extends(ProcessingInstruction,Node);\nfunction XMLSerializer(){}\nXMLSerializer.prototype.serializeToString = function(node,isHtml,nodeFilter){\n\treturn nodeSerializeToString.call(node,isHtml,nodeFilter);\n}\nNode.prototype.toString = nodeSerializeToString;\nfunction nodeSerializeToString(isHtml,nodeFilter){\n\tvar buf = [];\n\tvar refNode = this.nodeType == 9?this.documentElement:this;\n\tvar prefix = refNode.prefix;\n\tvar uri = refNode.namespaceURI;\n\t\n\tif(uri && prefix == null){\n\t\t//console.log(prefix)\n\t\tvar prefix = refNode.lookupPrefix(uri);\n\t\tif(prefix == null){\n\t\t\t//isHTML = true;\n\t\t\tvar visibleNamespaces=[\n\t\t\t{namespace:uri,prefix:null}\n\t\t\t//{namespace:uri,prefix:''}\n\t\t\t]\n\t\t}\n\t}\n\tserializeToString(this,buf,isHtml,nodeFilter,visibleNamespaces);\n\t//console.log('###',this.nodeType,uri,prefix,buf.join(''))\n\treturn buf.join('');\n}\nfunction needNamespaceDefine(node,isHTML, visibleNamespaces) {\n\tvar prefix = node.prefix||'';\n\tvar uri = node.namespaceURI;\n\tif (!prefix && !uri){\n\t\treturn false;\n\t}\n\tif (prefix === \"xml\" && uri === \"http://www.w3.org/XML/1998/namespace\" \n\t\t|| uri == 'http://www.w3.org/2000/xmlns/'){\n\t\treturn false;\n\t}\n\t\n\tvar i = visibleNamespaces.length \n\t//console.log('@@@@',node.tagName,prefix,uri,visibleNamespaces)\n\twhile (i--) {\n\t\tvar ns = visibleNamespaces[i];\n\t\t// get namespace prefix\n\t\t//console.log(node.nodeType,node.tagName,ns.prefix,prefix)\n\t\tif (ns.prefix == prefix){\n\t\t\treturn ns.namespace != uri;\n\t\t}\n\t}\n\t//console.log(isHTML,uri,prefix=='')\n\t//if(isHTML && prefix ==null && uri == 'http://www.w3.org/1999/xhtml'){\n\t//\treturn false;\n\t//}\n\t//node.flag = '11111'\n\t//console.error(3,true,node.flag,node.prefix,node.namespaceURI)\n\treturn true;\n}\nfunction serializeToString(node,buf,isHTML,nodeFilter,visibleNamespaces){\n\tif(nodeFilter){\n\t\tnode = nodeFilter(node);\n\t\tif(node){\n\t\t\tif(typeof node == 'string'){\n\t\t\t\tbuf.push(node);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}else{\n\t\t\treturn;\n\t\t}\n\t\t//buf.sort.apply(attrs, attributeSorter);\n\t}\n\tswitch(node.nodeType){\n\tcase ELEMENT_NODE:\n\t\tif (!visibleNamespaces) visibleNamespaces = [];\n\t\tvar startVisibleNamespaces = visibleNamespaces.length;\n\t\tvar attrs = node.attributes;\n\t\tvar len = attrs.length;\n\t\tvar child = node.firstChild;\n\t\tvar nodeName = node.tagName;\n\t\t\n\t\tisHTML = (htmlns === node.namespaceURI) ||isHTML \n\t\tbuf.push('<',nodeName);\n\t\t\n\t\t\n\t\t\n\t\tfor(var i=0;i<len;i++){\n\t\t\t// add namespaces for attributes\n\t\t\tvar attr = attrs.item(i);\n\t\t\tif (attr.prefix == 'xmlns') {\n\t\t\t\tvisibleNamespaces.push({ prefix: attr.localName, namespace: attr.value });\n\t\t\t}else if(attr.nodeName == 'xmlns'){\n\t\t\t\tvisibleNamespaces.push({ prefix: '', namespace: attr.value });\n\t\t\t}\n\t\t}\n\t\tfor(var i=0;i<len;i++){\n\t\t\tvar attr = attrs.item(i);\n\t\t\tif (needNamespaceDefine(attr,isHTML, visibleNamespaces)) {\n\t\t\t\tvar prefix = attr.prefix||'';\n\t\t\t\tvar uri = attr.namespaceURI;\n\t\t\t\tvar ns = prefix ? ' xmlns:' + prefix : \" xmlns\";\n\t\t\t\tbuf.push(ns, '=\"' , uri , '\"');\n\t\t\t\tvisibleNamespaces.push({ prefix: prefix, namespace:uri });\n\t\t\t}\n\t\t\tserializeToString(attr,buf,isHTML,nodeFilter,visibleNamespaces);\n\t\t}\n\t\t// add namespace for current node\t\t\n\t\tif (needNamespaceDefine(node,isHTML, visibleNamespaces)) {\n\t\t\tvar prefix = node.prefix||'';\n\t\t\tvar uri = node.namespaceURI;\n\t\t\tvar ns = prefix ? ' xmlns:' + prefix : \" xmlns\";\n\t\t\tbuf.push(ns, '=\"' , uri , '\"');\n\t\t\tvisibleNamespaces.push({ prefix: prefix, namespace:uri });\n\t\t}\n\t\t\n\t\tif(child || isHTML && !/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)){\n\t\t\tbuf.push('>');\n\t\t\t//if is cdata child node\n\t\t\tif(isHTML && /^script$/i.test(nodeName)){\n\t\t\t\twhile(child){\n\t\t\t\t\tif(child.data){\n\t\t\t\t\t\tbuf.push(child.data);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tserializeToString(child,buf,isHTML,nodeFilter,visibleNamespaces);\n\t\t\t\t\t}\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}else\n\t\t\t{\n\t\t\t\twhile(child){\n\t\t\t\t\tserializeToString(child,buf,isHTML,nodeFilter,visibleNamespaces);\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbuf.push('</',nodeName,'>');\n\t\t}else{\n\t\t\tbuf.push('/>');\n\t\t}\n\t\t// remove added visible namespaces\n\t\t//visibleNamespaces.length = startVisibleNamespaces;\n\t\treturn;\n\tcase DOCUMENT_NODE:\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tserializeToString(child,buf,isHTML,nodeFilter,visibleNamespaces);\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t\treturn;\n\tcase ATTRIBUTE_NODE:\n\t\treturn buf.push(' ',node.name,'=\"',node.value.replace(/[<&\"]/g,_xmlEncoder),'\"');\n\tcase TEXT_NODE:\n\t\treturn buf.push(node.data.replace(/[<&]/g,_xmlEncoder));\n\tcase CDATA_SECTION_NODE:\n\t\treturn buf.push( '<![CDATA[',node.data,']]>');\n\tcase COMMENT_NODE:\n\t\treturn buf.push( \"<!--\",node.data,\"-->\");\n\tcase DOCUMENT_TYPE_NODE:\n\t\tvar pubid = node.publicId;\n\t\tvar sysid = node.systemId;\n\t\tbuf.push('<!DOCTYPE ',node.name);\n\t\tif(pubid){\n\t\t\tbuf.push(' PUBLIC \"',pubid);\n\t\t\tif (sysid && sysid!='.') {\n\t\t\t\tbuf.push( '\" \"',sysid);\n\t\t\t}\n\t\t\tbuf.push('\">');\n\t\t}else if(sysid && sysid!='.'){\n\t\t\tbuf.push(' SYSTEM \"',sysid,'\">');\n\t\t}else{\n\t\t\tvar sub = node.internalSubset;\n\t\t\tif(sub){\n\t\t\t\tbuf.push(\" [\",sub,\"]\");\n\t\t\t}\n\t\t\tbuf.push(\">\");\n\t\t}\n\t\treturn;\n\tcase PROCESSING_INSTRUCTION_NODE:\n\t\treturn buf.push( \"<?\",node.target,\" \",node.data,\"?>\");\n\tcase ENTITY_REFERENCE_NODE:\n\t\treturn buf.push( '&',node.nodeName,';');\n\t//case ENTITY_NODE:\n\t//case NOTATION_NODE:\n\tdefault:\n\t\tbuf.push('??',node.nodeName);\n\t}\n}\nfunction importNode(doc,node,deep){\n\tvar node2;\n\tswitch (node.nodeType) {\n\tcase ELEMENT_NODE:\n\t\tnode2 = node.cloneNode(false);\n\t\tnode2.ownerDocument = doc;\n\t\t//var attrs = node2.attributes;\n\t\t//var len = attrs.length;\n\t\t//for(var i=0;i<len;i++){\n\t\t\t//node2.setAttributeNodeNS(importNode(doc,attrs.item(i),deep));\n\t\t//}\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tbreak;\n\tcase ATTRIBUTE_NODE:\n\t\tdeep = true;\n\t\tbreak;\n\t//case ENTITY_REFERENCE_NODE:\n\t//case PROCESSING_INSTRUCTION_NODE:\n\t////case TEXT_NODE:\n\t//case CDATA_SECTION_NODE:\n\t//case COMMENT_NODE:\n\t//\tdeep = false;\n\t//\tbreak;\n\t//case DOCUMENT_NODE:\n\t//case DOCUMENT_TYPE_NODE:\n\t//cannot be imported.\n\t//case ENTITY_NODE:\n\t//case NOTATION_NODE:\n\t//can not hit in level3\n\t//default:throw e;\n\t}\n\tif(!node2){\n\t\tnode2 = node.cloneNode(false);//false\n\t}\n\tnode2.ownerDocument = doc;\n\tnode2.parentNode = null;\n\tif(deep){\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tnode2.appendChild(importNode(doc,child,deep));\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t}\n\treturn node2;\n}\n//\n//var _relationMap = {firstChild:1,lastChild:1,previousSibling:1,nextSibling:1,\n//\t\t\t\t\tattributes:1,childNodes:1,parentNode:1,documentElement:1,doctype,};\nfunction cloneNode(doc,node,deep){\n\tvar node2 = new node.constructor();\n\tfor(var n in node){\n\t\tvar v = node[n];\n\t\tif(typeof v != 'object' ){\n\t\t\tif(v != node2[n]){\n\t\t\t\tnode2[n] = v;\n\t\t\t}\n\t\t}\n\t}\n\tif(node.childNodes){\n\t\tnode2.childNodes = new NodeList();\n\t}\n\tnode2.ownerDocument = doc;\n\tswitch (node2.nodeType) {\n\tcase ELEMENT_NODE:\n\t\tvar attrs\t= node.attributes;\n\t\tvar attrs2\t= node2.attributes = new NamedNodeMap();\n\t\tvar len = attrs.length\n\t\tattrs2._ownerElement = node2;\n\t\tfor(var i=0;i<len;i++){\n\t\t\tnode2.setAttributeNode(cloneNode(doc,attrs.item(i),true));\n\t\t}\n\t\tbreak;;\n\tcase ATTRIBUTE_NODE:\n\t\tdeep = true;\n\t}\n\tif(deep){\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tnode2.appendChild(cloneNode(doc,child,deep));\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t}\n\treturn node2;\n}\n\nfunction __set__(object,key,value){\n\tobject[key] = value\n}\n//do dynamic\ntry{\n\tif(Object.defineProperty){\n\t\tObject.defineProperty(LiveNodeList.prototype,'length',{\n\t\t\tget:function(){\n\t\t\t\t_updateLiveList(this);\n\t\t\t\treturn this.$$length;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(Node.prototype,'textContent',{\n\t\t\tget:function(){\n\t\t\t\treturn getTextContent(this);\n\t\t\t},\n\t\t\tset:function(data){\n\t\t\t\tswitch(this.nodeType){\n\t\t\t\tcase ELEMENT_NODE:\n\t\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\t\t\twhile(this.firstChild){\n\t\t\t\t\t\tthis.removeChild(this.firstChild);\n\t\t\t\t\t}\n\t\t\t\t\tif(data || String(data)){\n\t\t\t\t\t\tthis.appendChild(this.ownerDocument.createTextNode(data));\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\t//TODO:\n\t\t\t\t\tthis.data = data;\n\t\t\t\t\tthis.value = data;\n\t\t\t\t\tthis.nodeValue = data;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\t\n\t\tfunction getTextContent(node){\n\t\t\tswitch(node.nodeType){\n\t\t\tcase ELEMENT_NODE:\n\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\t\tvar buf = [];\n\t\t\t\tnode = node.firstChild;\n\t\t\t\twhile(node){\n\t\t\t\t\tif(node.nodeType!==7 && node.nodeType !==8){\n\t\t\t\t\t\tbuf.push(getTextContent(node));\n\t\t\t\t\t}\n\t\t\t\t\tnode = node.nextSibling;\n\t\t\t\t}\n\t\t\t\treturn buf.join('');\n\t\t\tdefault:\n\t\t\t\treturn node.nodeValue;\n\t\t\t}\n\t\t}\n\t\t__set__ = function(object,key,value){\n\t\t\t//console.log(value)\n\t\t\tobject['$$'+key] = value\n\t\t}\n\t}\n}catch(e){//ie8\n}\n\n//if(typeof require == 'function'){\n\texports.DOMImplementation = DOMImplementation;\n\texports.XMLSerializer = XMLSerializer;\n//}\n\n\n/***/ }),\n\n/***/ \"./node_modules/xmldom/sax.js\":\n/*!************************************!*\\\n !*** ./node_modules/xmldom/sax.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\r\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\r\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\r\nvar nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]///\\u10000-\\uEFFFF\r\nvar nameChar = new RegExp(\"[\\\\-\\\\.0-9\"+nameStartChar.source.slice(1,-1)+\"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\r\nvar tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\\:'+nameStartChar.source+nameChar.source+'*)?$');\r\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\r\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\r\n\r\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\r\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\r\nvar S_TAG = 0;//tag name offerring\r\nvar S_ATTR = 1;//attr name offerring \r\nvar S_ATTR_SPACE=2;//attr name end and space offer\r\nvar S_EQ = 3;//=space?\r\nvar S_ATTR_NOQUOT_VALUE = 4;//attr value(no quot value only)\r\nvar S_ATTR_END = 5;//attr value end and no space(quot end)\r\nvar S_TAG_SPACE = 6;//(attr value end || tag end ) && (space offer)\r\nvar S_TAG_CLOSE = 7;//closed el<el />\r\n\r\nfunction XMLReader(){\r\n\t\r\n}\r\n\r\nXMLReader.prototype = {\r\n\tparse:function(source,defaultNSMap,entityMap){\r\n\t\tvar domBuilder = this.domBuilder;\r\n\t\tdomBuilder.startDocument();\r\n\t\t_copy(defaultNSMap ,defaultNSMap = {})\r\n\t\tparse(source,defaultNSMap,entityMap,\r\n\t\t\t\tdomBuilder,this.errorHandler);\r\n\t\tdomBuilder.endDocument();\r\n\t}\r\n}\r\nfunction parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){\r\n\tfunction fixedFromCharCode(code) {\r\n\t\t// String.prototype.fromCharCode does not supports\r\n\t\t// > 2 bytes unicode chars directly\r\n\t\tif (code > 0xffff) {\r\n\t\t\tcode -= 0x10000;\r\n\t\t\tvar surrogate1 = 0xd800 + (code >> 10)\r\n\t\t\t\t, surrogate2 = 0xdc00 + (code & 0x3ff);\r\n\r\n\t\t\treturn String.fromCharCode(surrogate1, surrogate2);\r\n\t\t} else {\r\n\t\t\treturn String.fromCharCode(code);\r\n\t\t}\r\n\t}\r\n\tfunction entityReplacer(a){\r\n\t\tvar k = a.slice(1,-1);\r\n\t\tif(k in entityMap){\r\n\t\t\treturn entityMap[k]; \r\n\t\t}else if(k.charAt(0) === '#'){\r\n\t\t\treturn fixedFromCharCode(parseInt(k.substr(1).replace('x','0x')))\r\n\t\t}else{\r\n\t\t\terrorHandler.error('entity not found:'+a);\r\n\t\t\treturn a;\r\n\t\t}\r\n\t}\r\n\tfunction appendText(end){//has some bugs\r\n\t\tif(end>start){\r\n\t\t\tvar xt = source.substring(start,end).replace(/&#?\\w+;/g,entityReplacer);\r\n\t\t\tlocator&&position(start);\r\n\t\t\tdomBuilder.characters(xt,0,end-start);\r\n\t\t\tstart = end\r\n\t\t}\r\n\t}\r\n\tfunction position(p,m){\r\n\t\twhile(p>=lineEnd && (m = linePattern.exec(source))){\r\n\t\t\tlineStart = m.index;\r\n\t\t\tlineEnd = lineStart + m[0].length;\r\n\t\t\tlocator.lineNumber++;\r\n\t\t\t//console.log('line++:',locator,startPos,endPos)\r\n\t\t}\r\n\t\tlocator.columnNumber = p-lineStart+1;\r\n\t}\r\n\tvar lineStart = 0;\r\n\tvar lineEnd = 0;\r\n\tvar linePattern = /.*(?:\\r\\n?|\\n)|.*$/g\r\n\tvar locator = domBuilder.locator;\r\n\t\r\n\tvar parseStack = [{currentNSMap:defaultNSMapCopy}]\r\n\tvar closeMap = {};\r\n\tvar start = 0;\r\n\twhile(true){\r\n\t\ttry{\r\n\t\t\tvar tagStart = source.indexOf('<',start);\r\n\t\t\tif(tagStart<0){\r\n\t\t\t\tif(!source.substr(start).match(/^\\s*$/)){\r\n\t\t\t\t\tvar doc = domBuilder.doc;\r\n\t \t\t\tvar text = doc.createTextNode(source.substr(start));\r\n\t \t\t\tdoc.appendChild(text);\r\n\t \t\t\tdomBuilder.currentElement = text;\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif(tagStart>start){\r\n\t\t\t\tappendText(tagStart);\r\n\t\t\t}\r\n\t\t\tswitch(source.charAt(tagStart+1)){\r\n\t\t\tcase '/':\r\n\t\t\t\tvar end = source.indexOf('>',tagStart+3);\r\n\t\t\t\tvar tagName = source.substring(tagStart+2,end);\r\n\t\t\t\tvar config = parseStack.pop();\r\n\t\t\t\tif(end<0){\r\n\t\t\t\t\t\r\n\t \t\ttagName = source.substring(tagStart+2).replace(/[\\s<].*/,'');\r\n\t \t\t//console.error('#@@@@@@'+tagName)\r\n\t \t\terrorHandler.error(\"end tag name: \"+tagName+' is not complete:'+config.tagName);\r\n\t \t\tend = tagStart+1+tagName.length;\r\n\t \t}else if(tagName.match(/\\s</)){\r\n\t \t\ttagName = tagName.replace(/[\\s<].*/,'');\r\n\t \t\terrorHandler.error(\"end tag name: \"+tagName+' maybe not complete');\r\n\t \t\tend = tagStart+1+tagName.length;\r\n\t\t\t\t}\r\n\t\t\t\t//console.error(parseStack.length,parseStack)\r\n\t\t\t\t//console.error(config);\r\n\t\t\t\tvar localNSMap = config.localNSMap;\r\n\t\t\t\tvar endMatch = config.tagName == tagName;\r\n\t\t\t\tvar endIgnoreCaseMach = endMatch || config.tagName&&config.tagName.toLowerCase() == tagName.toLowerCase()\r\n\t\t if(endIgnoreCaseMach){\r\n\t\t \tdomBuilder.endElement(config.uri,config.localName,tagName);\r\n\t\t\t\t\tif(localNSMap){\r\n\t\t\t\t\t\tfor(var prefix in localNSMap){\r\n\t\t\t\t\t\t\tdomBuilder.endPrefixMapping(prefix) ;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(!endMatch){\r\n\t\t \terrorHandler.fatalError(\"end tag name: \"+tagName+' is not match the current start tagName:'+config.tagName );\r\n\t\t\t\t\t}\r\n\t\t }else{\r\n\t\t \tparseStack.push(config)\r\n\t\t }\r\n\t\t\t\t\r\n\t\t\t\tend++;\r\n\t\t\t\tbreak;\r\n\t\t\t\t// end elment\r\n\t\t\tcase '?':// <?...?>\r\n\t\t\t\tlocator&&position(tagStart);\r\n\t\t\t\tend = parseInstruction(source,tagStart,domBuilder);\r\n\t\t\t\tbreak;\r\n\t\t\tcase '!':// <!doctype,<![CDATA,<!--\r\n\t\t\t\tlocator&&position(tagStart);\r\n\t\t\t\tend = parseDCC(source,tagStart,domBuilder,errorHandler);\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tlocator&&position(tagStart);\r\n\t\t\t\tvar el = new ElementAttributes();\r\n\t\t\t\tvar currentNSMap = parseStack[parseStack.length-1].currentNSMap;\r\n\t\t\t\t//elStartEnd\r\n\t\t\t\tvar end = parseElementStartPart(source,tagStart,el,currentNSMap,entityReplacer,errorHandler);\r\n\t\t\t\tvar len = el.length;\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\tif(!el.closed && fixSelfClosed(source,end,el.tagName,closeMap)){\r\n\t\t\t\t\tel.closed = true;\r\n\t\t\t\t\tif(!entityMap.nbsp){\r\n\t\t\t\t\t\terrorHandler.warning('unclosed xml attribute');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(locator && len){\r\n\t\t\t\t\tvar locator2 = copyLocator(locator,{});\r\n\t\t\t\t\t//try{//attribute position fixed\r\n\t\t\t\t\tfor(var i = 0;i<len;i++){\r\n\t\t\t\t\t\tvar a = el[i];\r\n\t\t\t\t\t\tposition(a.offset);\r\n\t\t\t\t\t\ta.locator = copyLocator(locator,{});\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//}catch(e){console.error('@@@@@'+e)}\r\n\t\t\t\t\tdomBuilder.locator = locator2\r\n\t\t\t\t\tif(appendElement(el,domBuilder,currentNSMap)){\r\n\t\t\t\t\t\tparseStack.push(el)\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdomBuilder.locator = locator;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tif(appendElement(el,domBuilder,currentNSMap)){\r\n\t\t\t\t\t\tparseStack.push(el)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\tif(el.uri === 'http://www.w3.org/1999/xhtml' && !el.closed){\r\n\t\t\t\t\tend = parseHtmlSpecialContent(source,end,el.tagName,entityReplacer,domBuilder)\r\n\t\t\t\t}else{\r\n\t\t\t\t\tend++;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}catch(e){\r\n\t\t\terrorHandler.error('element parse error: '+e)\r\n\t\t\t//errorHandler.error('element parse error: '+e);\r\n\t\t\tend = -1;\r\n\t\t\t//throw e;\r\n\t\t}\r\n\t\tif(end>start){\r\n\t\t\tstart = end;\r\n\t\t}else{\r\n\t\t\t//TODO: 这里有可能sax回退,有位置错误风险\r\n\t\t\tappendText(Math.max(tagStart,start)+1);\r\n\t\t}\r\n\t}\r\n}\r\nfunction copyLocator(f,t){\r\n\tt.lineNumber = f.lineNumber;\r\n\tt.columnNumber = f.columnNumber;\r\n\treturn t;\r\n}\r\n\r\n/**\r\n * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack);\r\n * @return end of the elementStartPart(end of elementEndPart for selfClosed el)\r\n */\r\nfunction parseElementStartPart(source,start,el,currentNSMap,entityReplacer,errorHandler){\r\n\tvar attrName;\r\n\tvar value;\r\n\tvar p = ++start;\r\n\tvar s = S_TAG;//status\r\n\twhile(true){\r\n\t\tvar c = source.charAt(p);\r\n\t\tswitch(c){\r\n\t\tcase '=':\r\n\t\t\tif(s === S_ATTR){//attrName\r\n\t\t\t\tattrName = source.slice(start,p);\r\n\t\t\t\ts = S_EQ;\r\n\t\t\t}else if(s === S_ATTR_SPACE){\r\n\t\t\t\ts = S_EQ;\r\n\t\t\t}else{\r\n\t\t\t\t//fatalError: equal must after attrName or space after attrName\r\n\t\t\t\tthrow new Error('attribute equal must after attrName');\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\tcase '\\'':\r\n\t\tcase '\"':\r\n\t\t\tif(s === S_EQ || s === S_ATTR //|| s == S_ATTR_SPACE\r\n\t\t\t\t){//equal\r\n\t\t\t\tif(s === S_ATTR){\r\n\t\t\t\t\terrorHandler.warning('attribute value must after \"=\"')\r\n\t\t\t\t\tattrName = source.slice(start,p)\r\n\t\t\t\t}\r\n\t\t\t\tstart = p+1;\r\n\t\t\t\tp = source.indexOf(c,start)\r\n\t\t\t\tif(p>0){\r\n\t\t\t\t\tvalue = source.slice(start,p).replace(/&#?\\w+;/g,entityReplacer);\r\n\t\t\t\t\tel.add(attrName,value,start-1);\r\n\t\t\t\t\ts = S_ATTR_END;\r\n\t\t\t\t}else{\r\n\t\t\t\t\t//fatalError: no end quot match\r\n\t\t\t\t\tthrow new Error('attribute value no end \\''+c+'\\' match');\r\n\t\t\t\t}\r\n\t\t\t}else if(s == S_ATTR_NOQUOT_VALUE){\r\n\t\t\t\tvalue = source.slice(start,p).replace(/&#?\\w+;/g,entityReplacer);\r\n\t\t\t\t//console.log(attrName,value,start,p)\r\n\t\t\t\tel.add(attrName,value,start);\r\n\t\t\t\t//console.dir(el)\r\n\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed start quot('+c+')!!');\r\n\t\t\t\tstart = p+1;\r\n\t\t\t\ts = S_ATTR_END\r\n\t\t\t}else{\r\n\t\t\t\t//fatalError: no equal before\r\n\t\t\t\tthrow new Error('attribute value must after \"=\"');\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\tcase '/':\r\n\t\t\tswitch(s){\r\n\t\t\tcase S_TAG:\r\n\t\t\t\tel.setTagName(source.slice(start,p));\r\n\t\t\tcase S_ATTR_END:\r\n\t\t\tcase S_TAG_SPACE:\r\n\t\t\tcase S_TAG_CLOSE:\r\n\t\t\t\ts =S_TAG_CLOSE;\r\n\t\t\t\tel.closed = true;\r\n\t\t\tcase S_ATTR_NOQUOT_VALUE:\r\n\t\t\tcase S_ATTR:\r\n\t\t\tcase S_ATTR_SPACE:\r\n\t\t\t\tbreak;\r\n\t\t\t//case S_EQ:\r\n\t\t\tdefault:\r\n\t\t\t\tthrow new Error(\"attribute invalid close char('/')\")\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\tcase ''://end document\r\n\t\t\t//throw new Error('unexpected end of input')\r\n\t\t\terrorHandler.error('unexpected end of input');\r\n\t\t\tif(s == S_TAG){\r\n\t\t\t\tel.setTagName(source.slice(start,p));\r\n\t\t\t}\r\n\t\t\treturn p;\r\n\t\tcase '>':\r\n\t\t\tswitch(s){\r\n\t\t\tcase S_TAG:\r\n\t\t\t\tel.setTagName(source.slice(start,p));\r\n\t\t\tcase S_ATTR_END:\r\n\t\t\tcase S_TAG_SPACE:\r\n\t\t\tcase S_TAG_CLOSE:\r\n\t\t\t\tbreak;//normal\r\n\t\t\tcase S_ATTR_NOQUOT_VALUE://Compatible state\r\n\t\t\tcase S_ATTR:\r\n\t\t\t\tvalue = source.slice(start,p);\r\n\t\t\t\tif(value.slice(-1) === '/'){\r\n\t\t\t\t\tel.closed = true;\r\n\t\t\t\t\tvalue = value.slice(0,-1)\r\n\t\t\t\t}\r\n\t\t\tcase S_ATTR_SPACE:\r\n\t\t\t\tif(s === S_ATTR_SPACE){\r\n\t\t\t\t\tvalue = attrName;\r\n\t\t\t\t}\r\n\t\t\t\tif(s == S_ATTR_NOQUOT_VALUE){\r\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!!');\r\n\t\t\t\t\tel.add(attrName,value.replace(/&#?\\w+;/g,entityReplacer),start)\r\n\t\t\t\t}else{\r\n\t\t\t\t\tif(currentNSMap[''] !== 'http://www.w3.org/1999/xhtml' || !value.match(/^(?:disabled|checked|selected)$/i)){\r\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed value!! \"'+value+'\" instead!!')\r\n\t\t\t\t\t}\r\n\t\t\t\t\tel.add(value,value,start)\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase S_EQ:\r\n\t\t\t\tthrow new Error('attribute value missed!!');\r\n\t\t\t}\r\n//\t\t\tconsole.log(tagName,tagNamePattern,tagNamePattern.test(tagName))\r\n\t\t\treturn p;\r\n\t\t/*xml space '\\x20' | #x9 | #xD | #xA; */\r\n\t\tcase '\\u0080':\r\n\t\t\tc = ' ';\r\n\t\tdefault:\r\n\t\t\tif(c<= ' '){//space\r\n\t\t\t\tswitch(s){\r\n\t\t\t\tcase S_TAG:\r\n\t\t\t\t\tel.setTagName(source.slice(start,p));//tagName\r\n\t\t\t\t\ts = S_TAG_SPACE;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase S_ATTR:\r\n\t\t\t\t\tattrName = source.slice(start,p)\r\n\t\t\t\t\ts = S_ATTR_SPACE;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase S_ATTR_NOQUOT_VALUE:\r\n\t\t\t\t\tvar value = source.slice(start,p).replace(/&#?\\w+;/g,entityReplacer);\r\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!!');\r\n\t\t\t\t\tel.add(attrName,value,start)\r\n\t\t\t\tcase S_ATTR_END:\r\n\t\t\t\t\ts = S_TAG_SPACE;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t//case S_TAG_SPACE:\r\n\t\t\t\t//case S_EQ:\r\n\t\t\t\t//case S_ATTR_SPACE:\r\n\t\t\t\t//\tvoid();break;\r\n\t\t\t\t//case S_TAG_CLOSE:\r\n\t\t\t\t\t//ignore warning\r\n\t\t\t\t}\r\n\t\t\t}else{//not space\r\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\r\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\r\n\t\t\t\tswitch(s){\r\n\t\t\t\t//case S_TAG:void();break;\r\n\t\t\t\t//case S_ATTR:void();break;\r\n\t\t\t\t//case S_ATTR_NOQUOT_VALUE:void();break;\r\n\t\t\t\tcase S_ATTR_SPACE:\r\n\t\t\t\t\tvar tagName = el.tagName;\r\n\t\t\t\t\tif(currentNSMap[''] !== 'http://www.w3.org/1999/xhtml' || !attrName.match(/^(?:disabled|checked|selected)$/i)){\r\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed value!! \"'+attrName+'\" instead2!!')\r\n\t\t\t\t\t}\r\n\t\t\t\t\tel.add(attrName,attrName,start);\r\n\t\t\t\t\tstart = p;\r\n\t\t\t\t\ts = S_ATTR;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase S_ATTR_END:\r\n\t\t\t\t\terrorHandler.warning('attribute space is required\"'+attrName+'\"!!')\r\n\t\t\t\tcase S_TAG_SPACE:\r\n\t\t\t\t\ts = S_ATTR;\r\n\t\t\t\t\tstart = p;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase S_EQ:\r\n\t\t\t\t\ts = S_ATTR_NOQUOT_VALUE;\r\n\t\t\t\t\tstart = p;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase S_TAG_CLOSE:\r\n\t\t\t\t\tthrow new Error(\"elements closed character '/' and '>' must be connected to\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}//end outer switch\r\n\t\t//console.log('p++',p)\r\n\t\tp++;\r\n\t}\r\n}\r\n/**\r\n * @return true if has new namespace define\r\n */\r\nfunction appendElement(el,domBuilder,currentNSMap){\r\n\tvar tagName = el.tagName;\r\n\tvar localNSMap = null;\r\n\t//var currentNSMap = parseStack[parseStack.length-1].currentNSMap;\r\n\tvar i = el.length;\r\n\twhile(i--){\r\n\t\tvar a = el[i];\r\n\t\tvar qName = a.qName;\r\n\t\tvar value = a.value;\r\n\t\tvar nsp = qName.indexOf(':');\r\n\t\tif(nsp>0){\r\n\t\t\tvar prefix = a.prefix = qName.slice(0,nsp);\r\n\t\t\tvar localName = qName.slice(nsp+1);\r\n\t\t\tvar nsPrefix = prefix === 'xmlns' && localName\r\n\t\t}else{\r\n\t\t\tlocalName = qName;\r\n\t\t\tprefix = null\r\n\t\t\tnsPrefix = qName === 'xmlns' && ''\r\n\t\t}\r\n\t\t//can not set prefix,because prefix !== ''\r\n\t\ta.localName = localName ;\r\n\t\t//prefix == null for no ns prefix attribute \r\n\t\tif(nsPrefix !== false){//hack!!\r\n\t\t\tif(localNSMap == null){\r\n\t\t\t\tlocalNSMap = {}\r\n\t\t\t\t//console.log(currentNSMap,0)\r\n\t\t\t\t_copy(currentNSMap,currentNSMap={})\r\n\t\t\t\t//console.log(currentNSMap,1)\r\n\t\t\t}\r\n\t\t\tcurrentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;\r\n\t\t\ta.uri = 'http://www.w3.org/2000/xmlns/'\r\n\t\t\tdomBuilder.startPrefixMapping(nsPrefix, value) \r\n\t\t}\r\n\t}\r\n\tvar i = el.length;\r\n\twhile(i--){\r\n\t\ta = el[i];\r\n\t\tvar prefix = a.prefix;\r\n\t\tif(prefix){//no prefix attribute has no namespace\r\n\t\t\tif(prefix === 'xml'){\r\n\t\t\t\ta.uri = 'http://www.w3.org/XML/1998/namespace';\r\n\t\t\t}if(prefix !== 'xmlns'){\r\n\t\t\t\ta.uri = currentNSMap[prefix || '']\r\n\t\t\t\t\r\n\t\t\t\t//{console.log('###'+a.qName,domBuilder.locator.systemId+'',currentNSMap,a.uri)}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tvar nsp = tagName.indexOf(':');\r\n\tif(nsp>0){\r\n\t\tprefix = el.prefix = tagName.slice(0,nsp);\r\n\t\tlocalName = el.localName = tagName.slice(nsp+1);\r\n\t}else{\r\n\t\tprefix = null;//important!!\r\n\t\tlocalName = el.localName = tagName;\r\n\t}\r\n\t//no prefix element has default namespace\r\n\tvar ns = el.uri = currentNSMap[prefix || ''];\r\n\tdomBuilder.startElement(ns,localName,tagName,el);\r\n\t//endPrefixMapping and startPrefixMapping have not any help for dom builder\r\n\t//localNSMap = null\r\n\tif(el.closed){\r\n\t\tdomBuilder.endElement(ns,localName,tagName);\r\n\t\tif(localNSMap){\r\n\t\t\tfor(prefix in localNSMap){\r\n\t\t\t\tdomBuilder.endPrefixMapping(prefix) \r\n\t\t\t}\r\n\t\t}\r\n\t}else{\r\n\t\tel.currentNSMap = currentNSMap;\r\n\t\tel.localNSMap = localNSMap;\r\n\t\t//parseStack.push(el);\r\n\t\treturn true;\r\n\t}\r\n}\r\nfunction parseHtmlSpecialContent(source,elStartEnd,tagName,entityReplacer,domBuilder){\r\n\tif(/^(?:script|textarea)$/i.test(tagName)){\r\n\t\tvar elEndStart = source.indexOf('</'+tagName+'>',elStartEnd);\r\n\t\tvar text = source.substring(elStartEnd+1,elEndStart);\r\n\t\tif(/[&<]/.test(text)){\r\n\t\t\tif(/^script$/i.test(tagName)){\r\n\t\t\t\t//if(!/\\]\\]>/.test(text)){\r\n\t\t\t\t\t//lexHandler.startCDATA();\r\n\t\t\t\t\tdomBuilder.characters(text,0,text.length);\r\n\t\t\t\t\t//lexHandler.endCDATA();\r\n\t\t\t\t\treturn elEndStart;\r\n\t\t\t\t//}\r\n\t\t\t}//}else{//text area\r\n\t\t\t\ttext = text.replace(/&#?\\w+;/g,entityReplacer);\r\n\t\t\t\tdomBuilder.characters(text,0,text.length);\r\n\t\t\t\treturn elEndStart;\r\n\t\t\t//}\r\n\t\t\t\r\n\t\t}\r\n\t}\r\n\treturn elStartEnd+1;\r\n}\r\nfunction fixSelfClosed(source,elStartEnd,tagName,closeMap){\r\n\t//if(tagName in closeMap){\r\n\tvar pos = closeMap[tagName];\r\n\tif(pos == null){\r\n\t\t//console.log(tagName)\r\n\t\tpos = source.lastIndexOf('</'+tagName+'>')\r\n\t\tif(pos<elStartEnd){//忘记闭合\r\n\t\t\tpos = source.lastIndexOf('</'+tagName)\r\n\t\t}\r\n\t\tcloseMap[tagName] =pos\r\n\t}\r\n\treturn pos<elStartEnd;\r\n\t//} \r\n}\r\nfunction _copy(source,target){\r\n\tfor(var n in source){target[n] = source[n]}\r\n}\r\nfunction parseDCC(source,start,domBuilder,errorHandler){//sure start with '<!'\r\n\tvar next= source.charAt(start+2)\r\n\tswitch(next){\r\n\tcase '-':\r\n\t\tif(source.charAt(start + 3) === '-'){\r\n\t\t\tvar end = source.indexOf('-->',start+4);\r\n\t\t\t//append comment source.substring(4,end)//<!--\r\n\t\t\tif(end>start){\r\n\t\t\t\tdomBuilder.comment(source,start+4,end-start-4);\r\n\t\t\t\treturn end+3;\r\n\t\t\t}else{\r\n\t\t\t\terrorHandler.error(\"Unclosed comment\");\r\n\t\t\t\treturn -1;\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\t//error\r\n\t\t\treturn -1;\r\n\t\t}\r\n\tdefault:\r\n\t\tif(source.substr(start+3,6) == 'CDATA['){\r\n\t\t\tvar end = source.indexOf(']]>',start+9);\r\n\t\t\tdomBuilder.startCDATA();\r\n\t\t\tdomBuilder.characters(source,start+9,end-start-9);\r\n\t\t\tdomBuilder.endCDATA() \r\n\t\t\treturn end+3;\r\n\t\t}\r\n\t\t//<!DOCTYPE\r\n\t\t//startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId) \r\n\t\tvar matchs = split(source,start);\r\n\t\tvar len = matchs.length;\r\n\t\tif(len>1 && /!doctype/i.test(matchs[0][0])){\r\n\t\t\tvar name = matchs[1][0];\r\n\t\t\tvar pubid = len>3 && /^public$/i.test(matchs[2][0]) && matchs[3][0]\r\n\t\t\tvar sysid = len>4 && matchs[4][0];\r\n\t\t\tvar lastMatch = matchs[len-1]\r\n\t\t\tdomBuilder.startDTD(name,pubid && pubid.replace(/^(['\"])(.*?)\\1$/,'$2'),\r\n\t\t\t\t\tsysid && sysid.replace(/^(['\"])(.*?)\\1$/,'$2'));\r\n\t\t\tdomBuilder.endDTD();\r\n\t\t\t\r\n\t\t\treturn lastMatch.index+lastMatch[0].length\r\n\t\t}\r\n\t}\r\n\treturn -1;\r\n}\r\n\r\n\r\n\r\nfunction parseInstruction(source,start,domBuilder){\r\n\tvar end = source.indexOf('?>',start);\r\n\tif(end){\r\n\t\tvar match = source.substring(start,end).match(/^<\\?(\\S*)\\s*([\\s\\S]*?)\\s*$/);\r\n\t\tif(match){\r\n\t\t\tvar len = match[0].length;\r\n\t\t\tdomBuilder.processingInstruction(match[1], match[2]) ;\r\n\t\t\treturn end+2;\r\n\t\t}else{//error\r\n\t\t\treturn -1;\r\n\t\t}\r\n\t}\r\n\treturn -1;\r\n}\r\n\r\n/**\r\n * @param source\r\n */\r\nfunction ElementAttributes(source){\r\n\t\r\n}\r\nElementAttributes.prototype = {\r\n\tsetTagName:function(tagName){\r\n\t\tif(!tagNamePattern.test(tagName)){\r\n\t\t\tthrow new Error('invalid tagName:'+tagName)\r\n\t\t}\r\n\t\tthis.tagName = tagName\r\n\t},\r\n\tadd:function(qName,value,offset){\r\n\t\tif(!tagNamePattern.test(qName)){\r\n\t\t\tthrow new Error('invalid attribute:'+qName)\r\n\t\t}\r\n\t\tthis[this.length++] = {qName:qName,value:value,offset:offset}\r\n\t},\r\n\tlength:0,\r\n\tgetLocalName:function(i){return this[i].localName},\r\n\tgetLocator:function(i){return this[i].locator},\r\n\tgetQName:function(i){return this[i].qName},\r\n\tgetURI:function(i){return this[i].uri},\r\n\tgetValue:function(i){return this[i].value}\r\n//\t,getIndex:function(uri, localName)){\r\n//\t\tif(localName){\r\n//\t\t\t\r\n//\t\t}else{\r\n//\t\t\tvar qName = uri\r\n//\t\t}\r\n//\t},\r\n//\tgetValue:function(){return this.getValue(this.getIndex.apply(this,arguments))},\r\n//\tgetType:function(uri,localName){}\r\n//\tgetType:function(i){},\r\n}\r\n\r\n\r\n\r\n\r\nfunction _set_proto_(thiz,parent){\r\n\tthiz.__proto__ = parent;\r\n\treturn thiz;\r\n}\r\nif(!(_set_proto_({},_set_proto_.prototype) instanceof _set_proto_)){\r\n\t_set_proto_ = function(thiz,parent){\r\n\t\tfunction p(){};\r\n\t\tp.prototype = parent;\r\n\t\tp = new p();\r\n\t\tfor(parent in thiz){\r\n\t\t\tp[parent] = thiz[parent];\r\n\t\t}\r\n\t\treturn p;\r\n\t}\r\n}\r\n\r\nfunction split(source,start){\r\n\tvar match;\r\n\tvar buf = [];\r\n\tvar reg = /'[^']+'|\"[^\"]+\"|[^\\s<>\\/=]+=?|(\\/?\\s*>|<)/g;\r\n\treg.lastIndex = start;\r\n\treg.exec(source);//skip <\r\n\twhile(match = reg.exec(source)){\r\n\t\tbuf.push(match);\r\n\t\tif(match[1])return buf;\r\n\t}\r\n}\r\n\r\nexports.XMLReader = XMLReader;\r\n\r\n\n\n/***/ }),\n\n/***/ \"./src/Canvas.js\":\n/*!***********************!*\\\n !*** ./src/Canvas.js ***!\n \\***********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n/**\n * @class\n * A scrolling Canvas that contains Figures. Call `add(draw2d.Figure)` to add shapes to the Viewport.\n *\n *\n * @author Andreas Herz\n */\n_packages2.default.Canvas = Class.extend(\n/** @lends draw2d.Canvas.prototype */\n{\n\n NAME: \"draw2d.Canvas\",\n\n /**\n * Create a new canvas with the given HTML DOM references.\n *\n * @param {String} canvasId the id of the DOM element to use a parent container\n */\n init: function init(canvasId, width, height) {\n var _this = this;\n\n this.setScrollArea(document.body);\n this.canvasId = canvasId;\n this.html = $(\"#\" + canvasId);\n this.html.css({ \"cursor\": \"default\" });\n if (!isNaN(parseFloat(width)) && !isNaN(parseFloat(height))) {\n this.initialWidth = parseInt(width);\n this.initialHeight = parseInt(height);\n this.html.height(this.initialHeight).width(this.initialWidth);\n } else {\n this.initialWidth = this.getWidth();\n this.initialHeight = this.getHeight();\n }\n\n // avoid the \"highlighting\" in iPad, iPhone if the user tab/touch on the canvas.\n // .... I didn't like this.\n this.html.css({ \"-webkit-tap-highlight-color\": \"rgba(0,0,0,0)\" });\n\n // Drag&Drop handling from foreign DIV into the Canvas\n // Only available in combination with jQuery-UI\n //\n // Create the droppable area for the css class \"draw2d_droppable\"\n // This can be done by a palette of toolbar or something else.\n // For more information see : http://jqueryui.com/demos/droppable/\n //\n $(this.html).droppable({\n accept: '.draw2d_droppable',\n over: function over(event, ui) {\n _this.onDragEnter(ui.draggable);\n },\n out: function out(event, ui) {\n _this.onDragLeave(ui.draggable);\n },\n drop: function drop(event, ui) {\n event = _this._getEvent(event);\n var helperPos = $(ui.helper).position();\n var pos = _this.fromDocumentToCanvasCoordinate(event.clientX, event.clientY);\n _this.onDrop(ui.draggable, pos.getX() - (event.clientX - helperPos.left) + 5, pos.getY() - (event.clientY - helperPos.top) + 5, event.shiftKey, event.ctrlKey);\n }\n });\n\n // Create the jQuery-Draggable for the palette -> canvas drag&drop interaction\n //\n $(\".draw2d_droppable\").draggable({\n appendTo: \"body\",\n stack: \"body\",\n zIndex: 27000,\n helper: \"clone\",\n drag: function drag(event, ui) {\n event = _this._getEvent(event);\n var pos = _this.fromDocumentToCanvasCoordinate(event.clientX, event.clientY);\n _this.onDrag(ui.draggable, pos.getX(), pos.getY(), event.shiftKey, event.ctrlKey);\n },\n stop: function stop(e, ui) {},\n start: function start(e, ui) {\n $(ui.helper).addClass(\"shadow\");\n }\n });\n\n // painting stuff\n //\n if (!isNaN(parseFloat(height))) {\n this.paper = Raphael(canvasId, width, height);\n } else {\n this.paper = Raphael(canvasId, this.getWidth(), this.getHeight());\n }\n this.paper.canvas.style.position = \"absolute\";\n\n // Status handling\n //\n this.zoomPolicy = null; // default ZoomEditPolicy\n this.zoomFactor = 1.0; // range [0.001..10]\n this.selection = new _packages2.default.Selection();\n this.currentDropTarget = null;\n this.currentHoverFigure = null;\n\n // installed to all added figures to avoid that a figure can be placed outside the canvas area\n // during a drag&drop operation\n this.regionDragDropConstraint = new _packages2.default.policy.figure.RegionEditPolicy(0, 0, this.getWidth(), this.getHeight());\n\n // event handling since version 5.0.0\n this.eventSubscriptions = {};\n\n this.editPolicy = new _packages2.default.util.ArrayList();\n\n // internal document with all figures, ports, ....\n //\n this.figures = new _packages2.default.util.ArrayList();\n this.lines = new _packages2.default.util.ArrayList(); // crap - why are connections not just figures. Design by accident\n this.commonPorts = new _packages2.default.util.ArrayList();\n\n // all visible resize handles which can be drag&drop around. Selection handles like AntRectangleSelectionFeedback\n // are not part of this collection. Required for hitTest only\n this.resizeHandles = new _packages2.default.util.ArrayList();\n\n // The CommandStack for undo/redo operations\n //\n this.commandStack = new _packages2.default.command.CommandStack();\n\n // INTERSECTION/CROSSING handling for connections and lines\n //\n this.linesToRepaintAfterDragDrop = new _packages2.default.util.ArrayList();\n this.lineIntersections = new _packages2.default.util.ArrayList();\n\n // alternative/legacy zoom implementation\n // this.installEditPolicy( new draw2d.policy.canvas.ZoomPolicy()); // Responsible for zooming\n this.installEditPolicy(new _packages2.default.policy.canvas.WheelZoomPolicy()); // Responsible for zooming with mouse wheel\n this.installEditPolicy(new _packages2.default.policy.canvas.DefaultKeyboardPolicy()); // Handles the keyboard interaction\n this.installEditPolicy(new _packages2.default.policy.canvas.BoundingboxSelectionPolicy()); // Responsible for selection handling\n this.installEditPolicy(new _packages2.default.policy.canvas.DropInterceptorPolicy()); // Responsible for drop operations\n this.installEditPolicy(new _packages2.default.policy.connection.ComposedConnectionCreatePolicy( // Responsible for connection creation....\n [new _packages2.default.policy.connection.DragConnectionCreatePolicy(), // ....via drag/´drop\n new _packages2.default.policy.connection.ClickConnectionCreatePolicy() // or clicking on the ports and canvas.\n ]));\n\n // Calculate all intersection between the different lines\n //\n this.commandStack.addEventListener(function (event) {\n if (event.isPostChangeEvent() === true) {\n _this.calculateConnectionIntersection();\n _this.linesToRepaintAfterDragDrop.each(function (i, line) {\n line.svgPathString = null;\n line.repaint();\n });\n _this.linesToRepaintAfterDragDrop = new _packages2.default.util.ArrayList();\n }\n });\n\n // DragDrop status handling\n //\n this.mouseDown = false;\n this.mouseDownX = 0;\n this.mouseDownY = 0;\n this.mouseDragDiffX = 0;\n this.mouseDragDiffY = 0;\n\n this.html.bind(\"mouseup touchend\", function (event) {\n if (_this.mouseDown === false) {\n return;\n }\n\n event = _this._getEvent(event);\n _this.calculateConnectionIntersection();\n\n _this.mouseDown = false;\n var pos = _this.fromDocumentToCanvasCoordinate(event.clientX, event.clientY);\n _this.editPolicy.each(function (i, policy) {\n policy.onMouseUp(_this, pos.x, pos.y, event.shiftKey, event.ctrlKey);\n });\n\n _this.mouseDragDiffX = 0;\n _this.mouseDragDiffY = 0;\n });\n\n this.html.bind(\"mousemove touchmove\", function (event) {\n event = _this._getEvent(event);\n var pos = _this.fromDocumentToCanvasCoordinate(event.clientX, event.clientY);\n if (_this.mouseDown === false) {\n // mouseEnter/mouseLeave events for Figures. Don't use the Raphael or DOM native functions.\n // Raphael didn't work for Rectangle with transparent fill (events only fired for the border line)\n // DOM didn't work well for lines. No eclipse area - you must hit the line exact to retrieve the event.\n // In this case I implement my own stuff...again and again.\n //\n // don't break the main event loop if one element fires an error during enter/leave event.\n try {\n var hover = _this.getBestFigure(pos.x, pos.y);\n if (hover !== _this.currentHoverFigure && _this.currentHoverFigure !== null) {\n _this.currentHoverFigure.onMouseLeave(); // deprecated\n _this.currentHoverFigure.fireEvent(\"mouseleave\");\n _this.fireEvent(\"mouseleave\", { figure: _this.currentHoverFigure });\n }\n if (hover !== _this.currentHoverFigure && hover !== null) {\n hover.onMouseEnter();\n hover.fireEvent(\"mouseenter\");\n _this.fireEvent(\"mouseenter\", { figure: hover });\n }\n _this.currentHoverFigure = hover;\n } catch (exc) {\n // just write it to the console\n console.log(exc);\n }\n\n _this.editPolicy.each(function (i, policy) {\n policy.onMouseMove(_this, pos.x, pos.y, event.shiftKey, event.ctrlKey);\n });\n _this.fireEvent(\"mousemove\", {\n x: pos.x,\n y: pos.y,\n shiftKey: event.shiftKey,\n ctrlKey: event.ctrlKey,\n hoverFigure: _this.currentHoverFigure\n });\n } else {\n var diffXAbs = (event.clientX - _this.mouseDownX) * _this.zoomFactor;\n var diffYAbs = (event.clientY - _this.mouseDownY) * _this.zoomFactor;\n _this.editPolicy.each(function (i, policy) {\n policy.onMouseDrag(_this, diffXAbs, diffYAbs, diffXAbs - _this.mouseDragDiffX, diffYAbs - _this.mouseDragDiffY, event.shiftKey, event.ctrlKey);\n });\n _this.mouseDragDiffX = diffXAbs;\n _this.mouseDragDiffY = diffYAbs;\n _this.fireEvent(\"mousemove\", {\n x: pos.x,\n y: pos.y,\n shiftKey: event.shiftKey,\n ctrlKey: event.ctrlKey,\n hoverFigure: _this.currentHoverFigure\n });\n }\n });\n\n this.html.bind(\"mousedown\", function (event) {\n try {\n var pos = null;\n switch (event.which) {\n case 1: //touch pressed\n case 0:\n //Left mouse button pressed\n try {\n event.preventDefault();\n event = _this._getEvent(event);\n _this.mouseDownX = event.clientX;\n _this.mouseDownY = event.clientY;\n _this.mouseDragDiffX = 0;\n _this.mouseDragDiffY = 0;\n pos = _this.fromDocumentToCanvasCoordinate(event.clientX, event.clientY);\n _this.mouseDown = true;\n _this.editPolicy.each(function (i, policy) {\n policy.onMouseDown(_this, pos.x, pos.y, event.shiftKey, event.ctrlKey);\n });\n } catch (exc) {\n console.log(exc);\n }\n break;\n case 3:\n //Right mouse button pressed\n event.preventDefault();\n if (typeof event.stopPropagation !== \"undefined\") event.stopPropagation();\n event = _this._getEvent(event);\n pos = _this.fromDocumentToCanvasCoordinate(event.clientX, event.clientY);\n _this.onRightMouseDown(pos.x, pos.y, event.shiftKey, event.ctrlKey);\n return false;\n case 2:\n //Middle mouse button pressed\n break;\n default:\n //You have a strange mouse\n }\n } catch (exc) {\n console.log(exc);\n }\n });\n\n // Catch the dblclick and route them to the Canvas hook.\n //\n this.html.on(\"dblclick\", function (event) {\n event = _this._getEvent(event);\n\n _this.mouseDownX = event.clientX;\n _this.mouseDownY = event.clientY;\n var pos = _this.fromDocumentToCanvasCoordinate(event.clientX, event.clientY);\n _this.onDoubleClick(pos.x, pos.y, event.shiftKey, event.ctrlKey);\n });\n\n // Catch the click event and route them to the canvas hook\n //\n this.html.on(\"click\", function (event) {\n event = _this._getEvent(event);\n\n // fire only the click event if we didn't move the mouse (drag&drop)\n //\n if (_this.mouseDownX === event.clientX || _this.mouseDownY === event.clientY) {\n var pos = _this.fromDocumentToCanvasCoordinate(event.clientX, event.clientY);\n _this.onClick(pos.x, pos.y, event.shiftKey, event.ctrlKey);\n }\n });\n\n // Important: MozMousePixelScroll is required to prevent 1px scrolling\n // in FF event if we call \"e.preventDefault()\"\n this.html.on('MozMousePixelScroll DOMMouseScroll mousewheel', function (e) {\n var event = _this._getEvent(e);\n var pos = _this.fromDocumentToCanvasCoordinate(event.originalEvent.clientX, event.originalEvent.clientY);\n\n var delta = 0;\n if (e.type === 'mousewheel') {\n delta = e.originalEvent.wheelDelta * -1;\n } else if (e.type === 'DOMMouseScroll') {\n delta = 40 * e.originalEvent.detail;\n }\n\n var returnValue = _this.onMouseWheel(delta, pos.x, pos.y, event.shiftKey, event.ctrlKey);\n\n if (returnValue === false) {\n e.preventDefault();\n }\n });\n\n // Catch the keyUp and CTRL-key and route them to the Canvas hook.\n //\n this.keyupCallback = function (event) {\n // don't initiate the delete command if the event comes from an INPUT field. In this case the user want delete\n // a character in the input field and not the related shape\n var target = $(event.target);\n if (!target.is(\"input\") && !target.is(\"textarea\")) {\n _this.editPolicy.each(function (i, policy) {\n if (policy instanceof _packages2.default.policy.canvas.KeyboardPolicy) {\n policy.onKeyUp(_this, event.keyCode, event.shiftKey, event.ctrlKey);\n }\n });\n }\n };\n $(document).bind(\"keyup\", this.keyupCallback);\n\n // Catch the keyDown and CTRL-key and route them to the Canvas hook.\n //\n this.keydownCallback = function (event) {\n // don't initiate the delete command if the event comes from an INPUT field. In this case the user want delete\n // a character in the input field and not the related shape\n var target = $(event.target);\n if (!target.is(\"input\") && !target.is(\"textarea\")) {\n _this.editPolicy.each(function (i, policy) {\n if (policy instanceof _packages2.default.policy.canvas.KeyboardPolicy) {\n policy.onKeyDown(_this, event.keyCode, event.shiftKey, event.ctrlKey);\n }\n });\n }\n };\n $(document).bind(\"keydown\", this.keydownCallback);\n },\n\n /**\n *\n * Call this method if you didn't need the canvas anymore. The method unregister all even handlers\n * and frees all resources. The canvas is unusable after this call\n *\n * @since. 4.7.4\n */\n destroy: function destroy() {\n this.clear();\n $(document).unbind(\"keydown\", this.keydownCallback);\n $(document).unbind(\"keyup\", this.keyupCallback);\n // reset the event handlers of the canvas without any notice\n //\n this.eventSubscriptions = {};\n\n try {\n this.paper.remove();\n } catch (exc) {\n // breaks in some ie7 version....don't care about this because ie7/8 isn't a state of the art browser ;-)\n }\n },\n\n /**\n *\n * Reset the canvas and delete all model elements.<br>\n * You can now reload another model to the canvas with a {@link draw2d.io.Reader}\n *\n * @since 1.1.0\n * @returns {this}\n */\n clear: function clear() {\n // notice all listener that the canvas will be cleared\n this.fireEvent(\"clear\");\n\n var _this = this;\n\n this.lines.clone().each(function (i, e) {\n _this.remove(e);\n });\n\n this.figures.clone().each(function (i, e) {\n _this.remove(e);\n });\n\n this.zoomFactor = 1.0;\n this.selection.clear();\n this.currentDropTarget = null;\n\n // internal document with all figures, ports, ....\n //\n this.figures = new _packages2.default.util.ArrayList();\n this.lines = new _packages2.default.util.ArrayList();\n this.commonPorts = new _packages2.default.util.ArrayList();\n\n this.commandStack.markSaveLocation();\n\n // INTERSECTION/CROSSING handling for connections and lines\n //\n this.linesToRepaintAfterDragDrop = new _packages2.default.util.ArrayList();\n this.lineIntersections = new _packages2.default.util.ArrayList();\n\n return this;\n },\n\n /**\n *\n * Callback for any kind of image export tools to trigger the canvas to hide all unwanted\n * decorations. The method is called e.g. from the draw2d.io.png.Writer\n *\n * @since 4.0.0\n * @@interface\n */\n hideDecoration: function hideDecoration() {},\n\n /**\n *\n * callback method for any image export writer to reactivate the decoration\n * of the canvas. e.g. grids, rulers,...\n *\n *\n * @since 4.0.0\n * @template\n */\n showDecoration: function showDecoration() {},\n\n /**\n *\n * Calculate all connection intersection of the canvas.\n * Required for \"bridging\" or \"crossing decoration\"\n *\n * @private\n */\n calculateConnectionIntersection: function calculateConnectionIntersection() {\n var _this2 = this;\n\n this.lineIntersections = new _packages2.default.util.ArrayList();\n var lines = this.getLines().clone();\n\n var _loop = function _loop() {\n var l1 = lines.removeElementAt(0);\n lines.each(function (ii, l2) {\n var partInter = l1.intersection(l2);\n if (partInter.getSize() > 0) {\n _this2.lineIntersections.add({ line: l1, other: l2, intersection: partInter });\n _this2.lineIntersections.add({ line: l2, other: l1, intersection: partInter });\n }\n });\n };\n\n while (lines.getSize() > 0) {\n _loop();\n }\n\n return this;\n },\n\n /**\n *\n *\n * Install a new selection and edit policy into the canvas\n *\n * @since 2.2.0\n * @param {draw2d.policy.EditPolicy} policy\n */\n installEditPolicy: function installEditPolicy(policy) {\n var _this3 = this;\n\n // a canvas can handle only one selection policy\n //\n if (policy instanceof _packages2.default.policy.canvas.SelectionPolicy) {\n // reset old selection before install new selection strategy\n this.getSelection().getAll().each(function (i, figure) {\n figure.unselect();\n });\n\n // remove existing selection policy\n this.editPolicy.grep(function (p) {\n var stay = !(p instanceof _packages2.default.policy.canvas.SelectionPolicy);\n if (stay === false) {\n p.onUninstall(_this3);\n }\n return stay;\n });\n }\n // only one zoom policy at once\n //\n else if (policy instanceof _packages2.default.policy.canvas.ZoomPolicy) {\n // remove existing zoom policy\n this.editPolicy.grep(function (p) {\n var stay = !(p instanceof _packages2.default.policy.canvas.ZoomPolicy);\n if (stay === false) {\n p.onUninstall(_this3);\n }\n return stay;\n });\n // replace the short cut handle for faster access\n this.zoomPolicy = policy;\n } else if (policy instanceof _packages2.default.policy.connection.ConnectionCreatePolicy) {\n this.editPolicy.grep(function (p) {\n var stay = !(p instanceof _packages2.default.policy.connection.ConnectionCreatePolicy);\n if (stay === false) {\n p.onUninstall(_this3);\n }\n return stay;\n });\n } else if (policy instanceof _packages2.default.policy.canvas.DropInterceptorPolicy) {}\n // think about if I allow to install only one drop policy\n\n\n // remove doublicate edit policies\n if (policy.NAME) {\n this.uninstallEditPolicy(policy.NAME);\n }\n\n policy.onInstall(this);\n this.editPolicy.add(policy);\n\n return this;\n },\n\n /**\n *\n *\n * UnInstall the selection and edit policy from the canvas.\n *\n * @since 2.2.0\n * @param {draw2d.policy.EditPolicy|String} policy\n */\n uninstallEditPolicy: function uninstallEditPolicy(policy) {\n if (policy === null) {\n return; //silently\n }\n\n // either remove exact the policy instance...\n //\n var removed = this.editPolicy.remove(policy);\n if (removed !== null) {\n removed.onUninstall(this);\n if (removed instanceof _packages2.default.policy.canvas.ZoomPolicy) {\n this.zoomPolicy = null;\n }\n } else {\n // ..or all of the same class if the policy isn't installed before\n // With this kind of behaviour it is possible to deinstall all policies with\n // the same class at once\n //\n var _this = this;\n var name = typeof policy === \"string\" ? policy : policy.NAME;\n this.editPolicy.grep(function (p) {\n if (p.NAME === name) {\n p.onUninstall(_this);\n // remove short cut handle to the zoom policy\n if (p instanceof _packages2.default.policy.canvas.ZoomPolicy) {\n _this.zoomPolicy = null;\n }\n return false;\n }\n return true;\n });\n }\n return this;\n },\n\n getDropInterceptorPolicies: function getDropInterceptorPolicies() {\n return this.editPolicy.clone().grep(function (p) {\n return p instanceof _packages2.default.policy.canvas.DropInterceptorPolicy;\n });\n },\n\n /**\n *\n * Set the new zoom factor for the canvas. The value must be between [0.01..10]\n *\n * // you can register an eventhandler if the zoom factor did change\n * canvas.on(\"zoom\", function(emitterFigure, zoomData){\n * alert(\"canvas zoomed to:\"+zoomData.value);\n * });\n *\n * @param {Number} zoomFactor new zoom factor. range [0.001..10]. 1.0 is no zoom.\n * @param {Boolean} [animated] set it to true for smooth zoom in/out\n */\n setZoom: function setZoom(zoomFactor, animated) {\n // redirect this legacy method to the new CanvasEditPolicy\n //\n if (this.zoomPolicy) {\n this.zoomPolicy.setZoom(zoomFactor, animated);\n }\n },\n\n /**\n *\n * Return the current zoom factor of the canvas.\n *\n * @returns {Number}\n */\n getZoom: function getZoom() {\n return this.zoomFactor;\n },\n\n /**\n *\n * Return the dimension of the drawing area\n *\n * @since 4.4.0\n * @returns {draw2d.geo.Rectangle}\n */\n getDimension: function getDimension() {\n return new _packages2.default.geo.Rectangle(0, 0, this.initialWidth, this.initialHeight);\n },\n\n /**\n *\n * Tells the canvas to resize. If you do not specific any parameters\n * the canvas will attempt to determine the height and width by the enclosing bounding box\n * of all elements and set the dimension accordingly. If you would like to set the dimension\n * explicitly pass in an draw2d.geo.Rectangle or an object with <b>height</b> and <b>width</b> properties.\n *\n * @since 4.4.0\n * @param {draw2d.geo.Rectangle} [dim] the dimension to set or null for autodetect\n * @param {Number} [height] the height of the canvas if the first argument is a number and not a Rectangle\n */\n setDimension: function setDimension(dim, height) {\n if (typeof dim === \"undefined\") {\n var widths = this.getFigures().clone().map(function (f) {\n return f.getAbsoluteX() + f.getWidth();\n });\n var heights = this.getFigures().clone().map(function (f) {\n return f.getAbsoluteY() + f.getHeight();\n });\n this.initialHeight = Math.max.apply(Math, _toConsumableArray(heights.asArray()));\n this.initialWidth = Math.max.apply(Math, _toConsumableArray(widths.asArray()));\n } else if (dim instanceof _packages2.default.geo.Rectangle) {\n this.initialWidth = dim.w;\n this.initialHeight = dim.h;\n } else if (typeof dim.width === \"number\" && typeof dim.height === \"number\") {\n this.initialWidth = dim.width;\n this.initialHeight = dim.height;\n } else if (typeof dim === \"number\" && typeof height === \"number\") {\n this.initialWidth = dim;\n this.initialHeight = height;\n }\n this.html.css({ \"width\": this.initialWidth + \"px\", \"height\": this.initialHeight + \"px\" });\n this.paper.setSize(this.initialWidth, this.initialHeight);\n this.setZoom(this.zoomFactor, false);\n\n return this;\n },\n\n /**\n *\n * Transforms a document coordinate to canvas coordinate.\n *\n * @param {Number} x the x coordinate relative to the window\n * @param {Number} y the y coordinate relative to the window\n *\n * @returns {draw2d.geo.Point} The coordinate in relation to the canvas [0,0] position\n */\n fromDocumentToCanvasCoordinate: function fromDocumentToCanvasCoordinate(x, y) {\n return new _packages2.default.geo.Point((x - this.getAbsoluteX() + this.getScrollLeft()) * this.zoomFactor, (y - this.getAbsoluteY() + this.getScrollTop()) * this.zoomFactor);\n },\n\n /**\n *\n * Transforms a canvas coordinate to document coordinate.\n *\n * @param {Number} x the x coordinate in the canvas\n * @param {Number} y the y coordinate in the canvas\n *\n * @returns {draw2d.geo.Point} the coordinate in relation to the document [0,0] position\n */\n fromCanvasToDocumentCoordinate: function fromCanvasToDocumentCoordinate(x, y) {\n return new _packages2.default.geo.Point(x * (1 / this.zoomFactor) + this.getAbsoluteX() - this.getScrollLeft(), y * (1 / this.zoomFactor) + this.getAbsoluteY() - this.getScrollTop());\n },\n\n /**\n *\n * The DOM host of the canvas\n *\n * @returns {HTMLElement}\n */\n getHtmlContainer: function getHtmlContainer() {\n return this.html;\n },\n\n /**\n *\n * Return a common event object independed if we run on an iPad or desktop.\n *\n * @param event\n * @returns {DOMEventObject}\n * @private\n */\n _getEvent: function _getEvent(event) {\n // check for iPad, Android touch events\n //\n if (typeof event.originalEvent !== \"undefined\") {\n if (event.originalEvent.touches && event.originalEvent.touches.length) {\n return event.originalEvent.touches[0];\n } else if (event.originalEvent.changedTouches && event.originalEvent.changedTouches.length) {\n return event.originalEvent.changedTouches[0];\n }\n }\n return event;\n },\n\n /**\n *\n *\n * Set the area which are scrolling the canvas. This can be a jquery selector or\n * a jQuery node.\n *\n * @param {String/HTMLElement} elementSelector\n * @returns {this}\n **/\n setScrollArea: function setScrollArea(elementSelector) {\n this.scrollArea = $(elementSelector);\n\n return this;\n },\n\n /**\n *\n *\n * return the scrolling area of the canvas. This is jQuery object\n *\n * @returns {JQueryElement}\n **/\n getScrollArea: function getScrollArea() {\n return this.scrollArea;\n },\n\n /**\n *\n * The left scroll position.\n *\n * @returns {Number} the left scroll offset of the canvas\n **/\n getScrollLeft: function getScrollLeft() {\n return this.getScrollArea().scrollLeft();\n },\n\n /**\n *\n * The top scroll position\n *\n * @returns {Number} the top scroll offset of the cnavas.\n **/\n getScrollTop: function getScrollTop() {\n return this.getScrollArea().scrollTop();\n },\n\n /**\n *\n * Set left scroll position.\n *\n * @param {Number} left the left scroll offset of the canvas\n **/\n setScrollLeft: function setScrollLeft(left) {\n this.getScrollArea().scrollLeft(left);\n\n return this;\n },\n\n /**\n *\n * set top scroll position\n *\n * @param {Number} top the top scroll offset of the canvas.\n **/\n setScrollTop: function setScrollTop(top) {\n this.getScrollArea().scrollTop(top);\n\n return this;\n },\n\n /**\n *\n * set the new scroll position of the canvas\n *\n * @param {Number} top the top scroll offset of the canvas.\n * @param {Number} left the left scroll offset of the canvas\n * @since 5.8.0\n **/\n scrollTo: function scrollTo(top, left) {\n this.getScrollArea().scrollTop(top).scrollLeft(left);\n\n return this;\n },\n\n /**\n *\n * The absolute document x offset.\n *\n * @returns {Number}\n **/\n getAbsoluteX: function getAbsoluteX() {\n return this.html.offset().left;\n },\n\n /**\n *\n * The absolute document y offset.\n *\n * @returns {Number}\n **/\n getAbsoluteY: function getAbsoluteY() {\n return this.html.offset().top;\n },\n\n /**\n *\n * Return the width of the canvas\n *\n * @returns {Number}\n **/\n getWidth: function getWidth() {\n return this.html.width();\n },\n\n /**\n *\n * Return the height of the canvas.\n *\n * @returns {Number}\n **/\n getHeight: function getHeight() {\n return this.html.height();\n },\n\n /**\n *\n * Add a figure at the given x/y coordinate. This method fires an event.\n *\n * Example:\n *\n * canvas.on(\"figure:add\", function(emitter, event){\n * alert(\"figure added:\");\n * });\n *\n * // or more general if you want catch all figure related events\n * //\n * canvas.on(\"figure\", function(emitter, event){\n * // use event.figure.getCanvas()===null to determine if the\n * // figure part of the canvas\n *\n * alert(\"figure added or removed:\");\n * });\n *\n * @param {draw2d.Figure} figure The figure to add.\n * @param {Number/draw2d.geo.Point} [x] The new x coordinate of the figure or the x/y coordinate if it is an draw2d.geo.Point\n * @param {Number} [y] The y position.\n **/\n add: function add(figure, x, y) {\n if (figure.getCanvas() === this) {\n return;\n }\n\n if (figure instanceof _packages2.default.shape.basic.Line) {\n this.lines.add(figure);\n this.linesToRepaintAfterDragDrop = this.lines;\n } else {\n this.figures.add(figure);\n if (typeof y !== \"undefined\") {\n figure.setPosition(x, y);\n } else if (typeof x !== \"undefined\") {\n figure.setPosition(x);\n }\n }\n figure.setCanvas(this);\n\n // to avoid drag&drop outside of this canvas\n figure.installEditPolicy(this.regionDragDropConstraint);\n\n // important initial call\n figure.getShapeElement();\n\n // init a repaint of the figure. This enforce that all properties\n // ( color, dim, stroke,...) will be set and pushed to SVG node.\n figure.repaint();\n\n // fire the figure:add event before the \"move\" event and after the figure.repaint() call!\n // - the move event can only be fired if the figure part of the canvas.\n // and in this case the notification event should be fired to the listener before\n this.fireEvent(\"figure:add\", { figure: figure, canvas: this });\n\n // fire the event that the figure is part of the canvas\n figure.fireEvent(\"added\", { figure: figure, canvas: this });\n\n // ...now we can fire the initial move event\n figure.fireEvent(\"move\", { figure: figure, x: figure.getX(), y: figure.getY(), dx: 0, dy: 0 });\n\n // this is only required if the used router requires the crossing information\n // of the connections\n if (figure instanceof _packages2.default.shape.basic.PolyLine) {\n this.calculateConnectionIntersection();\n this.linesToRepaintAfterDragDrop.each(function (i, line) {\n line.svgPathString = null;\n line.repaint();\n });\n this.linesToRepaintAfterDragDrop = new _packages2.default.util.ArrayList();\n }\n\n return this;\n },\n\n /**\n *\n * Remove a figure or connection from the Canvas. This method fires an event\n * which can be catched.\n *\n * Example:\n *\n * canvas.on(\"figure:remove\", function(emitter, event){\n * alert(\"figure removed:\");\n * });\n *\n * // or more general if you want catch all figure related events\n * //\n * canvas.on(\"figure\", function(emitter, event){\n * // use event.figure.getCanvas()===null to determine if the\n * // figure part of the canvas\n *\n * alert(\"figure added or removed:\");\n * });\n *\n *\n * @param {draw2d.Figure} figure The figure to remove\n **/\n remove: function remove(figure) {\n var _this4 = this;\n\n // don't fire events of calll callbacks if the fire isn'T part of this canvas\n //\n if (figure.getCanvas() !== this) {\n return this;\n }\n\n // remove the figure from a selection handler as well and cleanup the\n // selection feedback\n if (this.getSelection().contains(figure)) {\n this.editPolicy.each(function (i, policy) {\n if (typeof policy.unselect === \"function\") {\n policy.unselect(_this4, figure);\n }\n });\n }\n\n if (figure instanceof _packages2.default.shape.basic.Line) {\n this.lines.remove(figure);\n } else {\n this.figures.remove(figure);\n }\n\n figure.setCanvas(null);\n\n if (figure instanceof _packages2.default.Connection) {\n figure.disconnect();\n }\n\n this.fireEvent(\"figure:remove\", { figure: figure });\n\n figure.fireEvent(\"removed\", { figure: figure, canvas: this });\n\n return this;\n },\n\n /**\n *\n * Returns all lines/connections in this workflow/canvas.<br>\n *\n * @returns {draw2d.util.ArrayList}\n **/\n getLines: function getLines() {\n return this.lines;\n },\n\n /**\n *\n * Returns the internal figures.<br>\n *\n * @returns {draw2d.util.ArrayList}\n **/\n getFigures: function getFigures() {\n return this.figures;\n },\n\n /**\n *\n * Returns the line or connection with the given id.\n *\n * @param {String} id The id of the line.\n *\n * @returns {draw2d.shape.basic.Line}\n **/\n getLine: function getLine(id) {\n var count = this.lines.getSize();\n for (var i = 0; i < count; i++) {\n var line = this.lines.get(i);\n if (line.getId() === id) {\n return line;\n }\n }\n return null;\n },\n\n /**\n *\n * Returns the figure with the given id.\n *\n * @param {String} id The id of the figure.\n * @returns {draw2d.Figure}\n **/\n getFigure: function getFigure(id) {\n var figure = null;\n this.figures.each(function (i, e) {\n if (e.id === id) {\n figure = e;\n return false;\n }\n });\n return figure;\n },\n\n /**\n *\n * Return all intersections draw2d.geo.Point between the given line and all other\n * lines in the canvas.\n *\n * @param {draw2d.shape.basic.Line} line the line for the intersection test\n * @returns {draw2d.util.ArrayList}\n */\n getIntersection: function getIntersection(line) {\n var result = new _packages2.default.util.ArrayList();\n\n this.lineIntersections.each(function (i, entry) {\n if (entry.line === line) {\n entry.intersection.each(function (j, p) {\n result.add({ x: p.x, y: p.y, justTouching: p.justTouching, other: entry.other });\n });\n }\n });\n\n return result;\n },\n\n /**\n *\n * Adjust the coordinate with the installed SnapToHelper.\n *\n * @param {draw2d.Figure} figure The related figure\n * @param {draw2d.geo.Point} pos The position to adjust\n *\n * @returns {draw2d.geo.Point} the adjusted position\n * @private\n **/\n snapToHelper: function snapToHelper(figure, pos) {\n var _this5 = this;\n\n // disable snapToPos if we have select more than one element\n // which are currently in Drag&Drop operation\n //\n if (this.getSelection().getSize() > 1) {\n return pos;\n }\n\n var orig = pos.clone();\n this.editPolicy.each(function (i, policy) {\n if (policy instanceof _packages2.default.policy.canvas.SnapToEditPolicy) {\n pos = policy.snap(_this5, figure, pos, orig);\n }\n });\n\n return pos;\n },\n\n /**\n *\n * Register a port to the canvas. This is required for other ports to find a valid drop target.\n *\n * @param {draw2d.Port} port The new port which has been added to the Canvas.\n **/\n registerPort: function registerPort(port) {\n // All elements have the same drop targets.\n //\n if (!this.commonPorts.contains(port)) {\n this.commonPorts.add(port);\n }\n\n return this;\n },\n\n /**\n *\n * Remove a port from the internal cnavas registration. Now other ports can't find the\n * port anymore as drop target. The port itself is still visible.\n *\n * @param {draw2d.Port} port The port to unregister as potential drop target\n * @private\n * @returns {this}\n **/\n unregisterPort: function unregisterPort(port) {\n this.commonPorts.remove(port);\n\n return this;\n },\n\n /**\n *\n * Return all ports in the canvas\n *\n * @returns {draw2d.util.ArrayList} all ports from all figures\n */\n getAllPorts: function getAllPorts() {\n return this.commonPorts;\n },\n\n /**\n *\n * Returns the command stack for the Canvas. Required for undo/redo support.\n *\n * @returns {draw2d.command.CommandStack}\n **/\n getCommandStack: function getCommandStack() {\n return this.commandStack;\n },\n\n /**\n *\n * Returns the current selected figure in the Canvas.\n *\n * @returns {draw2d.Figure}\n **/\n getPrimarySelection: function getPrimarySelection() {\n return this.selection.getPrimary();\n },\n\n /**\n *\n * Returns the current selection.\n *\n * @returns {draw2d.Selection}\n **/\n getSelection: function getSelection() {\n return this.selection;\n },\n\n /**\n *\n * Set the current selected figure or figures in the canvas.<br>\n * <br>\n * You can hand over a draw2d.util.ArrayList since version 4.8.0 for multiple selection.\n *\n * @param {draw2d.Figure| draw2d.util.ArrayList} object The figure or list of figures to select.\n * @returns {this}\n **/\n setCurrentSelection: function setCurrentSelection(object) {\n var _this6 = this;\n\n // deselect the current selected figures\n //\n // clone the array (getAll) before iterate and modify the initial array\n this.selection.getAll().each(function (i, e) {\n _this6.editPolicy.each(function (i, policy) {\n if (typeof policy.unselect === \"function\") {\n policy.unselect(_this6, e);\n }\n });\n });\n this.addSelection(object);\n\n return this;\n },\n\n /**\n *\n * Add the current figure to the selection. If a single selection policy is installed in the\n * canvas the selection before is reseted and the figure is the one and only selection.\n *\n * @param {draw2d.Figure | draw2d.util.ArrayList} object The figure(s) to add to the selection\n * @since 4.6.0\n * @returns {this}\n **/\n addSelection: function addSelection(object) {\n var _this7 = this;\n\n var add = function add(i, figure) {\n _this7.editPolicy.each(function (i, policy) {\n if (typeof policy.select === \"function\") {\n policy.select(_this7, figure);\n }\n });\n };\n\n if (object instanceof _packages2.default.util.ArrayList || object instanceof _packages2.default.Selection) {\n object.each(add);\n } else {\n add(0, object);\n }\n\n return this;\n },\n\n /**\n *\n * Returns the best figure at the location [x,y]. It is a simple hit test. Keep in mind that only visible objects\n * are returned.\n *\n *\n * @param {Number} x The x position.\n * @param {Number} y The y position.\n * @param {draw2d.Figure|Array|Class} [blacklist] The figures or class which should be ignored.\n * @param {draw2d.Figure|Array|Class} [whitelist] The figures or class should be considered.\n *\n * @returns {draw2d.Figure}\n **/\n getBestFigure: function getBestFigure(x, y, blacklist, whitelist) {\n if (!Array.isArray(blacklist)) {\n if (blacklist) blacklist = [blacklist];else blacklist = [];\n }\n\n if (!Array.isArray(whitelist)) {\n if (whitelist) whitelist = [whitelist];else whitelist = [];\n }\n\n var result = null;\n var testFigure = null;\n\n var isInList = function isInList(testFigure, list) {\n for (var i = 0, len = list.length; i < len; i++) {\n var considering = list[i];\n if (typeof considering === \"function\") {\n if (testFigure instanceof considering) {\n return true;\n }\n } else if (considering === testFigure || considering.contains(testFigure)) {\n return true;\n }\n }\n return false;\n };\n var isInBlacklist = function isInBlacklist(item) {\n return isInList(item, blacklist);\n };\n // empty whitelist means that every kind of object is allowed\n var isInWhitelist = whitelist.length === 0 ? function () {\n return true;\n } : function (item) {\n return isInList(item, whitelist);\n };\n\n // tool method to check recursive a figure for hitTest\n //\n var checkRecursive = function checkRecursive(children) {\n children.each(function (i, e) {\n var c = e.figure;\n checkRecursive(c.children);\n if (result === null && c.isVisible() && c.hitTest(x, y) && !isInBlacklist(c) && isInWhitelist(c)) {\n result = c;\n }\n return result === null; // break the each-loop if we found an element\n });\n };\n\n // ResizeHandles\n //\n for (var i = 0, len = this.resizeHandles.getSize(); i < len; i++) {\n testFigure = this.resizeHandles.get(i);\n if (testFigure.isVisible() && testFigure.hitTest(x, y) && !isInBlacklist(testFigure) && isInWhitelist(testFigure)) {\n return testFigure;\n }\n }\n\n // Checking ports\n //\n for (var _i = 0, _len = this.commonPorts.getSize(); _i < _len; _i++) {\n var port = this.commonPorts.get(_i);\n // check first a children of the figure\n //\n checkRecursive(port.children);\n\n if (result === null && port.isVisible() && port.hitTest(x, y) && !isInBlacklist(port) && isInWhitelist(port)) {\n result = port;\n }\n\n if (result !== null) {\n return result;\n }\n }\n\n // Check now the common objects.\n // run reverse to aware the z-oder of the figures\n for (var _i2 = this.figures.getSize() - 1; _i2 >= 0; _i2--) {\n var figure = this.figures.get(_i2);\n // check first a children of the figure\n //\n checkRecursive(figure.children);\n\n // ...and the figure itself\n //\n if (result === null && figure.isVisible() && figure.hitTest(x, y) && !isInBlacklist(figure) && isInWhitelist(figure)) {\n result = figure;\n break;\n }\n }\n\n var figureResult = result;\n var childResult = null;\n var lineResult = this.getBestLine(x, y, blacklist, whitelist);\n result = null;\n\n // Check the children of the lines as well\n // Not selectable/draggable. But should receive onClick/onDoubleClick events\n // as well.\n var count = this.lines.getSize();\n for (var _i3 = 0; _i3 < count; _i3++) {\n var line = this.lines.get(_i3);\n // check first a children of the figure\n //\n checkRecursive(line.children);\n\n if (result !== null) {\n childResult = result;\n break;\n }\n }\n\n var figureIndex = figureResult !== null ? $(figureResult.shape.node).index() : -1;\n var childIndex = childResult !== null ? $(childResult.shape.node).index() : -1;\n var lineIndex = lineResult !== null ? $(lineResult.shape.node).index() : -1;\n var array = [{ i: figureIndex, f: figureResult }, { i: childIndex, f: childResult }, { i: lineIndex, f: lineResult }];\n array = array.filter(function (e) {\n return e.i !== -1;\n });\n array = array.sort(function (a, b) {\n return b.i - a.i;\n });\n\n if (array.length > 0) {\n result = array[0].f;\n }\n\n return result;\n },\n\n /**\n *\n * Return the line which match the hands over coordinate\n *\n * @param {Number} x the x-coordinate for the hit test\n * @param {Number} y the x-coordinate for the hit test\n * @param {draw2d.shape.basic.Line} [lineToIgnore] a possible line which should be ignored for the hit test\n *\n * @private\n * @returns {draw2d.shape.basic.Line}\n **/\n getBestLine: function getBestLine(x, y, lineToIgnore) {\n if (!Array.isArray(lineToIgnore)) {\n if (lineToIgnore instanceof _packages2.default.Figure) {\n lineToIgnore = [lineToIgnore];\n } else {\n lineToIgnore = [];\n }\n }\n var count = this.lines.getSize();\n\n for (var i = 0; i < count; i++) {\n var line = this.lines.get(i);\n if (line.isVisible() === true && line.hitTest(x, y) === true && $.inArray(line, lineToIgnore) === -1) {\n return line;\n }\n }\n return null;\n },\n\n /**\n *\n * Called by the framework during drag&drop operations.<br>\n * Droppable can be setup with:\n * <pre>\n * $(\".draw2d_droppable\").draggable({\n * appendTo:\"#container\",\n * stack:\"#container\",\n * zIndex: 27000,\n * helper:\"clone\",\n * start: function(e, ui){$(ui.helper).addClass(\"shadow\");}\n * });\n * </pre>\n * Draw2D use the jQuery draggable/droppable lib. Please inspect\n * http://jqueryui.com/demos/droppable/ for further information.\n *\n * @param {HTMLElement} draggedDomNode The DOM element which is currently dragging\n *\n * @template\n **/\n onDragEnter: function onDragEnter(draggedDomNode) {},\n\n /**\n *\n * Called if the DragDrop object is moving around.<br>\n * <br>\n * Draw2D use the jQuery draggable/droppable lib. Please inspect\n * http://jqueryui.com/demos/droppable/ for further information.\n *\n * @param {HTMLElement} draggedDomNode The dragged DOM element.\n * @param {Number} x the x coordinate of the drag\n * @param {Number} y the y coordinate of the drag\n *\n * @template\n **/\n onDrag: function onDrag(draggedDomNode, x, y) {},\n\n /**\n *\n * Called if the DragDrop object leaving the current hover figure.<br>\n * <br>\n * Graphiti use the jQuery draggable/droppable lib. Please inspect\n * http://jqueryui.com/demos/droppable/ for further information.\n *\n * @param {HTMLElement} draggedDomNode The figure which is currently dragging\n *\n * @template\n **/\n onDragLeave: function onDragLeave(draggedDomNode) {},\n\n /**\n *\n * Called if the user drop the droppedDomNode onto the canvas.<br>\n * <br>\n * Draw2D use the jQuery draggable/droppable lib. Please inspect\n * http://jqueryui.com/demos/droppable/ for further information.\n *\n * @param {HTMLElement} droppedDomNode The dropped DOM element.\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @template\n **/\n onDrop: function onDrop(droppedDomNode, x, y, shiftKey, ctrlKey) {},\n\n /**\n *\n * Callback method for the double click event. The x/y coordinates are relative to the top left\n * corner of the canvas.\n *\n * @private\n **/\n onDoubleClick: function onDoubleClick(x, y, shiftKey, ctrlKey) {\n // check if a line has been hit\n //\n var figure = this.getBestFigure(x, y);\n\n // or a line/connection. May we should test the line before a figure..?\n // (since 4.0.0)\n if (figure === null) {\n figure = this.getBestLine(x, y);\n }\n\n this.fireEvent(\"dblclick\", { figure: figure, x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n\n // forward the event to all install policies as well.\n // (since 4.0.0)\n this.editPolicy.each(function (i, policy) {\n policy.onDoubleClick(figure, x, y, shiftKey, ctrlKey);\n });\n },\n\n /**\n *\n * @param {Number} x the x coordinate of the event\n * @param {Number} y the y coordinate of the event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @private\n **/\n onClick: function onClick(x, y, shiftKey, ctrlKey) {\n // check if a figure has been hit\n //\n var figure = this.getBestFigure(x, y);\n\n this.fireEvent(\"click\", {\n figure: figure,\n x: x,\n y: y,\n relX: figure !== null ? x - figure.getAbsoluteX() : 0,\n relY: figure !== null ? y - figure.getAbsoluteY() : 0,\n shiftKey: shiftKey,\n ctrlKey: ctrlKey\n });\n\n // forward the event to all install policies as well.\n // (since 3.0.0)\n this.editPolicy.each(function (i, policy) {\n policy.onClick(figure, x, y, shiftKey, ctrlKey);\n });\n },\n\n /**\n *\n * The user has triggered a right click. Redirect them to a responsible figure.\n *\n * @param {Number} x The x-coordinate of the click\n * @param {Number} y The y-coordinate of the click\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @private\n * @since 1.1.0\n **/\n onRightMouseDown: function onRightMouseDown(x, y, shiftKey, ctrlKey) {\n var figure = this.getBestFigure(x, y);\n this.fireEvent(\"contextmenu\", { figure: figure, x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n\n if (figure !== null) {\n figure.fireEvent(\"contextmenu\", { figure: figure, x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n // @deprecated legacy call\n figure.onContextMenu(x, y);\n\n // forward the event to all installed policies of the figure\n // soft migration from onHookXYZ to Policies.\n // since 4.4.0\n figure.editPolicy.each(function (i, policy) {\n policy.onRightMouseDown(figure, x, y, shiftKey, ctrlKey);\n });\n }\n\n // forward the event to all install policies as well.\n // (since 4.4.0)\n this.editPolicy.each(function (i, policy) {\n policy.onRightMouseDown(figure, x, y, shiftKey, ctrlKey);\n });\n },\n\n /**\n *\n * @param {Number} wheelDelta the delata of the wheel rotation\n * @param {Number} x the x coordinate of the event\n * @param {Number} y the y coordinate of the event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @private\n **/\n onMouseWheel: function onMouseWheel(wheelDelta, x, y, shiftKey, ctrlKey) {\n var returnValue = true;\n this.fireEvent(\"wheel\", { wheelDelta: wheelDelta, x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n\n // forward the event to all install policies as well.\n // (since 3.0.0)\n this.editPolicy.each(function (i, policy) {\n returnValue = policy.onMouseWheel(wheelDelta, x, y, shiftKey, ctrlKey) && returnValue;\n });\n\n return returnValue;\n },\n\n // NEW EVENT HANDLING SINCE VERSION 5.0.0\n /**\n *\n * Execute all handlers and behaviors attached to the canvas for the given event type.\n *\n *\n * @param {String} event the event to trigger\n * @param {Object} [args] optional parameters for the triggered event callback\n * @private\n * @since 5.0.0\n */\n fireEvent: function fireEvent(event, args) {\n if (typeof this.eventSubscriptions[event] === 'undefined') {\n return;\n }\n\n var subscribers = this.eventSubscriptions[event];\n for (var i = 0; i < subscribers.length; i++) {\n try {\n subscribers[i](this, args);\n } catch (exc) {\n console.log(exc);\n console.log(subscribers[i]);\n debugger;\n }\n }\n },\n\n /**\n *\n * Attach an event handler function for one or more events to the canvas.\n * To remove events bound with .on(), see {@link #off}.\n *\n * possible events are:<br>\n * <ul>\n * <li>reset</li>\n * <li>select</li>\n * </ul>\n *\n * Example:\n *\n * canvas.on(\"clear\", function(emitter, event){\n * alert(\"canvas.clear() called.\");\n * });\n *\n * canvas.on(\"select\", function(emitter,event){\n * alert(\"figure selected\");\n * });\n *\n * canvas.on(\"unselect\", function(emitter,event){\n * alert(\"figure unselected\");\n * });\n * \n * @param {String} event One or more space-separated event types\n * @param {Function} callback A function to execute when the event is triggered.\n * @param {draw2d.Canvas} callback.emitter the emitter of the event\n * @param {Object} [callback.obj] optional event related data\n *\n * @since 5.0.0\n */\n on: function on(event, callback) {\n var events = event.split(\" \");\n for (var i = 0; i < events.length; i++) {\n if (typeof this.eventSubscriptions[events[i]] === 'undefined') {\n this.eventSubscriptions[events[i]] = [];\n }\n this.eventSubscriptions[events[i]].push(callback);\n }\n return this;\n },\n\n /**\n *\n * The `off()` method removes event handlers that were attached with {@link #on}.<br>\n * Calling .off() with no arguments removes all handlers attached to the canvas.<br>\n * <br>\n * If a simple event name such as \"reset\" is provided, all events of that type are removed from the canvas.\n *\n *\n * @param {String|Function} eventOrFunction the event name of the registerd function\n * @since 5.0.0\n */\n off: function off(eventOrFunction) {\n if (typeof eventOrFunction === \"undefined\") {\n this.eventSubscriptions = {};\n } else if (typeof eventOrFunction === 'string') {\n this.eventSubscriptions[eventOrFunction] = [];\n } else {\n for (var event in this.eventSubscriptions) {\n this.eventSubscriptions[event] = this.eventSubscriptions[event].filter(function (callback) {\n return callback !== eventOrFunction;\n });\n }\n }\n\n return this;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/Configuration.js\":\n/*!******************************!*\\\n !*** ./src/Configuration.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.Configuration = {\n version: \"@VERSION@\",\n i18n: {\n command: {\n move: \"Move Shape\",\n assignShape: \"Add Shapes to Composite\",\n groupShapes: \"Group Shapes\",\n ungroupShapes: \"Ungroup Shapes\",\n deleteShape: \"Delete Shape\",\n moveShape: \"Move Shape\",\n moveLine: \"Move Line\",\n addShape: \"Add Shape\",\n moveVertex: \"Move Vertex\",\n moveVertices: \"Move Vertices\",\n deleteVertex: \"Delete Vertex\",\n resizeShape: \"Resize Shape\",\n rotateShape: \"Rotate Shape\",\n collection: \"Execute Commands\",\n addVertex: \"Add Vertex\",\n changeAttributes: \"Change Attributes\",\n connectPorts: \"Connect Ports\"\n },\n menu: {\n deleteSegment: \"Delete Segment\",\n addSegment: \"Add Segment\"\n },\n dialog: {\n filenamePrompt: \"Enter Filename:\"\n }\n },\n\n factory: {\n // all selection policies calles this method to create a ResizeHandle.\n // It is possible to replace this method with a custom implementation\n // @since 5.2.0\n createResizeHandle: function createResizeHandle(owner, type, width, height) {\n // create a custom SelectionPolicy instead\n console.log(\"deprecated call factory.createResizeHandle\");\n\n return new _packages2.default.ResizeHandle({ owner: owner, type: type, width: width, height: height });\n },\n // The commands an canvas calles this method to create a new connection.\n // all parameters are optional.\n // @since 5.3.0\n // @deprecated\n createConnection: function createConnection(sourcePort, targetPort, callback, dropTarget) {\n console.log(\"deprecated call factory.createConnection\");\n debugger;\n return new _packages2.default.Connection();\n },\n // @since 5.3.0\n createInputPort: function createInputPort(relatedFigure) {\n return new _packages2.default.InputPort();\n },\n // @since 5.3.0\n createOutputPort: function createOutputPort(relatedFigure) {\n return new _packages2.default.OutputPort();\n },\n // @since 5.3.0\n createHybridPort: function createHybridPort(relatedFigure) {\n return new _packages2.default.HybridPort();\n }\n }\n};\n\n/***/ }),\n\n/***/ \"./src/Connection.js\":\n/*!***************************!*\\\n !*** ./src/Connection.js ***!\n \\***************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Connections figures are used to display a line between two points. The Connection interface extends\n * {@link draw2d.shape.basic.PolyLine PolyLine}.<br>\n * The source and target endpoints of a connection are each defined using a {@link draw2d.layout.anchor.ConnectionAnchor ConnectionAnchor}.\n * These endpoints, along with any other points on the connection, are set by the connection's {@link draw2d.layout.connection.ConnectionRouter ConnectionRouter}.\n * <br>\n * Usually every connection in a drawing has the same router instance. Connections with\n * common endpoints can share anchor instances as well.\n *\n * <h2>Connection Usage</h2>\n *\n * Connections are created and added just like any other figure. Unlike normal figures, you must not set the\n * bounds of a connection. Instead, you must provide the source and target port and let the connection router\n * calculate the connection's points. The connection then determines its own bounding box.<br>\n * <br>\n * A connection has a simple router by default - one that can connect the source and target anchors. But additional routers\n * are available and can be set on the connection. Some routers can handle constraints for the connection. Note that when\n * setting a routing constraint on a connection, you must first set the router which will use that constraint.<br>\n * <br>\n *\n * <b>TODO:<br></b>\n * <i>\n * A convenient way to share the router with all connections and to place connections above the drawing is to use a\n * ConnectionLayer. The layer has a connection router property which it shares with every child that's a connection.\n * You can update this property and easily change every connection's router at once.\n * </i>\n * <br>\n * <br>\n * <h2>Routing and Anchors</h2>\n * A connection always has a router and it must set at least two ports on the connection: the source and target\n * endpoints. By default, or when set to null, the connection's routing will be performed by an internal default router.\n * The ends are placed with the help of {@link draw2d.layout.anchor.ConnectionAnchor anchors}. An\n * {@link draw2d.layout.anchor.ConnectionAnchor anchors} is a fixed or calculated location, usually associated with some\n * figure. For example, the {@link draw2d.layout.anchor.ChopboxConnectionAnchor ChopboxAnchor} finds the point at which a\n * line going to the reference point intersects a box, such as the bounds of a figure. The reference point is either\n * the anchor at the opposite end, or a bendpoint or some other point nearest to the anchor.\n * <br>\n * {@img jsdoc_chopbox.gif ChopboxAnchor}\n * <br>\n * The router calculates the endpoints and any other points in the middle of the connection. It then sets the points on the\n * connection by calling {@link draw2d.shape.basic.PolyLine#addPoint Polyline.addPoint}. The connection's existing point list\n * can be reused to reduce garbage, but the points must be set on the connection anyway so that it knows about any changes made.\n * <br>\n * <h2>Adding Decorations and Children to Connections</h2>\n * Like most figures, Connection supports the addition of children. The children might be a label that\n * decorate the connection. The placement of each type of decoration can vary, so a {@link draw2d.layout.locator.ConnectionLocator ConnectionLocator}\n * is used to delegate to each child's constraint object, a Locator. <br>\n * <br>\n * {@link draw2d.decoration.connection.Decorator Decorator} can be used to create and render a rotatable shape at\n * the end or start of a connection like arrows or boxes. Examples are {@link draw2d.decoration.connection.ArrowDecorator ArrowDecorator}, {@link draw2d.decoration.connection.BarDecorator BarDecorator} or {@link draw2d.decoration.connection.CircleDecorator CircleDecorator}\n * <br>\n * <h2>Connection Layout</h2>\n * Connections extend the process of validation and layout to include routing. Since layout is the process of positioning children, routing must\n * come first. This allows a child's locator to operate on the connection's newly-routed points.<br>\n * Check out [Class System Guide](#!/guide/class_system) for additional reading.\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.basic.PolyLine\n */\n\n_packages2.default.Connection = _packages2.default.shape.basic.PolyLine.extend(\n/** @lends draw2d.Connection.prototype */\n{\n\n NAME: \"draw2d.Connection\",\n\n /**\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this.sourcePort = null;\n this.targetPort = null;\n\n this.oldPoint = null;\n\n this.sourceDecorator = null;\n /*:draw2d.ConnectionDecorator*/\n this.targetDecorator = null;\n /*:draw2d.ConnectionDecorator*/\n\n // decoration of the polyline\n //\n this.sourceDecoratorNode = null;\n this.targetDecoratorNode = null;\n\n // helper let to restore the initial visual representation if the user drag&drop\n // the port outside of the browser window. In this case some events get lost and\n // I can restore the initial state of the connection if the mouse comes in the browser window\n // again.\n this.isMoving = false;\n\n var _this = this;\n this.moveListener = function (figure) {\n if (figure === _this.sourcePort) {\n _this.setStartPoint(_this.sourcePort.getAbsoluteX(), _this.sourcePort.getAbsoluteY());\n } else {\n _this.setEndPoint(_this.targetPort.getAbsoluteX(), _this.targetPort.getAbsoluteY());\n }\n };\n\n this._super((0, _extend2.default)({\n color: \"#129CE4\",\n stroke: 2,\n // outlineStroke:1,\n // outlineColor:\"#ffffff\",\n radius: 3\n }, attr), (0, _extend2.default)({\n sourceDecorator: this.setSourceDecorator,\n targetDecorator: this.setTargetDecorator,\n source: this.setSource,\n target: this.setTarget\n }, setter), (0, _extend2.default)({\n sourceDecorator: this.getSourceDecorator,\n targetDecorator: this.getTargetDecorator,\n source: this.getSource,\n target: this.getTarget\n }, getter));\n },\n\n /**\n * @private\n **/\n disconnect: function disconnect() {\n if (this.sourcePort !== null) {\n this.sourcePort.off(this.moveListener);\n this.sourcePort.connections.remove(this);\n\n // fire the events to all listener\n this.sourcePort.fireEvent(\"disconnect\", { port: this.sourcePort, connection: this });\n if (this.canvas !== null) {\n this.canvas.fireEvent(\"disconnect\", { \"port\": this.sourcePort, \"connection\": this });\n }\n this.sourcePort.onDisconnect(this);\n\n this.fireSourcePortRouteEvent();\n }\n\n if (this.targetPort !== null) {\n this.targetPort.off(this.moveListener);\n this.targetPort.connections.remove(this);\n\n // fire the events to all listener\n this.targetPort.fireEvent(\"disconnect\", { port: this.targetPort, connection: this });\n if (this.canvas !== null) {\n this.canvas.fireEvent(\"disconnect\", { \"port\": this.targetPort, \"connection\": this });\n }\n this.targetPort.onDisconnect(this);\n\n this.fireTargetPortRouteEvent();\n }\n },\n\n /**\n * @private\n **/\n reconnect: function reconnect() {\n if (this.sourcePort !== null) {\n this.sourcePort.on(\"move\", this.moveListener);\n this.sourcePort.connections.add(this);\n\n // fire the events to all listener\n this.sourcePort.fireEvent(\"connect\", { port: this.sourcePort, connection: this });\n if (this.canvas !== null) {\n this.canvas.fireEvent(\"connect\", { \"port\": this.sourcePort, \"connection\": this });\n }\n this.sourcePort.onConnect(this);\n\n this.fireSourcePortRouteEvent();\n }\n\n if (this.targetPort !== null) {\n this.targetPort.on(\"move\", this.moveListener);\n this.targetPort.connections.add(this);\n\n // fire the events to all listener\n this.targetPort.fireEvent(\"connect\", { port: this.targetPort, connection: this });\n if (this.canvas !== null) {\n this.canvas.fireEvent(\"connect\", { \"port\": this.targetPort, \"connection\": this });\n }\n this.targetPort.onConnect(this);\n\n this.fireTargetPortRouteEvent();\n }\n this.routingRequired = true;\n this.repaint();\n },\n\n /**\n * You can't drag&drop the resize handles of a connector.\n *\n * @returns {Boolean}\n **/\n isResizeable: function isResizeable() {\n return this.isDraggable();\n },\n\n /**\n *\n * Add a child figure to the Connection. The hands over figure doesn't support drag&drop\n * operations. It's only a decorator for the connection.<br>\n * Mainly for labels or other fancy decorations :-)\n *\n * @param {draw2d.Figure} child the figure to add as decoration to the connection.\n * @param {draw2d.layout.locator.ConnectionLocator} locator the locator for the child.\n * @param {Number} [index] optional index where to insert the figure\n * @returns {this}\n **/\n add: function add(child, locator, index) {\n // just to ensure the right interface for the locator.\n // The base class needs only 'draw2d.layout.locator.Locator'.\n if (!(locator instanceof _packages2.default.layout.locator.ConnectionLocator)) {\n throw \"Locator must implement the class draw2d.layout.locator.ConnectionLocator\";\n }\n\n this._super(child, locator, index);\n },\n\n /**\n *\n * Set the ConnectionDecorator for this object.\n *\n * @param {draw2d.decoration.connection.Decorator} decorator the new source decorator for the connection\n * @returns {this}\n **/\n setSourceDecorator: function setSourceDecorator(decorator) {\n if (this.sourceDecorator) {\n this.sourceDecorator.setParent(null);\n }\n this.sourceDecorator = decorator;\n this.routingRequired = true;\n this.sourceDecorator.setParent(this);\n if (this.sourceDecoratorNode !== null) {\n this.sourceDecoratorNode.remove();\n this.sourceDecoratorNode = null;\n }\n this.repaint();\n\n return this;\n },\n\n /**\n *\n * Get the current source ConnectionDecorator for this object.\n *\n * @returns draw2d.decoration.connection.Decorator\n **/\n getSourceDecorator: function getSourceDecorator() {\n return this.sourceDecorator;\n },\n\n /**\n *\n * Set the ConnectionDecorator for this object.\n *\n * @param {draw2d.decoration.connection.Decorator} decorator the new target decorator for the connection\n * @returns {this}\n **/\n setTargetDecorator: function setTargetDecorator(decorator) {\n if (this.targetDecorator) {\n this.targetDecorator.setParent(null);\n }\n this.targetDecorator = decorator;\n this.routingRequired = true;\n this.targetDecorator.setParent(this);\n if (this.targetDecoratorNode !== null) {\n this.targetDecoratorNode.remove();\n this.targetDecoratorNode = null;\n }\n this.repaint();\n\n return this;\n },\n\n /**\n *\n * Get the current target ConnectionDecorator for this object.\n *\n * @returns draw2d.decoration.connection.Decorator\n **/\n getTargetDecorator: function getTargetDecorator() {\n return this.targetDecorator;\n },\n\n /**\n *\n * Calculate the path of the polyline.\n *\n * @param {Object} routingHints some helper attributes for the router\n * @param {Boolean} routingHints.startMoved is true if just the start location has moved\n * @param {Boolean} routingHints.destMoved is true if the destination location has changed\n * @private\n */\n calculatePath: function calculatePath(routingHints) {\n\n if (this.sourcePort === null || this.targetPort === null) {\n return this;\n }\n\n this._super(routingHints);\n\n if (this.shape !== null) {\n var z1 = this.sourcePort.getZOrder();\n var z2 = this.targetPort.getZOrder();\n z1 < z2 ? this.toBack(this.sourcePort) : this.toBack(this.targetPort);\n }\n\n return this;\n },\n\n /**\n * @private\n **/\n repaint: function repaint(attributes) {\n var _this2 = this;\n\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n if (this.sourcePort === null || this.targetPort === null) {\n return;\n }\n\n this._super(attributes);\n\n // paint the decorator if any exists\n //\n if (this.targetDecorator !== null && this.targetDecoratorNode === null) {\n this.targetDecoratorNode = this.targetDecorator.paint(this.getCanvas().paper);\n }\n\n if (this.sourceDecorator !== null && this.sourceDecoratorNode === null) {\n this.sourceDecoratorNode = this.sourceDecorator.paint(this.getCanvas().paper);\n }\n\n // translate/transform the decorations to the end/start of the connection\n // and rotate them as well\n //\n if (this.sourceDecoratorNode !== null) {\n var start = this.getVertices().first();\n this.sourceDecoratorNode.transform(\"r\" + this.getStartAngle() + \",\" + start.x + \",\" + start.y + \" t\" + start.x + \",\" + start.y);\n // propagate the color and the opacity to the decoration as well\n this.sourceDecoratorNode.attr({ opacity: this.alpha });\n // apply the color of the connection if the decoration doesn't have any\n if (this.sourceDecorator.getColor() === null) {\n this.sourceDecoratorNode.attr({ \"stroke\": \"#\" + this.lineColor.hex() });\n } else {\n this.sourceDecoratorNode.attr({ \"stroke\": \"#\" + this.sourceDecorator.getColor().hex() });\n }\n this.sourceDecoratorNode.forEach(function (shape) {\n shape.node.setAttribute(\"class\", _this2.cssClass !== null ? _this2.cssClass : \"\");\n });\n }\n\n if (this.targetDecoratorNode !== null) {\n var end = this.getVertices().last();\n this.targetDecoratorNode.transform(\"r\" + this.getEndAngle() + \",\" + end.x + \",\" + end.y + \" t\" + end.x + \",\" + end.y);\n this.targetDecoratorNode.attr({ opacity: this.alpha });\n // apply the color of the connection if the decoration doesn't have any\n if (this.targetDecorator.getColor() === null) {\n this.targetDecoratorNode.attr({ \"stroke\": \"#\" + this.lineColor.hex() });\n } else {\n this.targetDecoratorNode.attr({ \"stroke\": \"#\" + this.targetDecorator.getColor().hex() });\n }\n this.targetDecoratorNode.forEach(function (shape) {\n shape.node.setAttribute(\"class\", _this2.cssClass !== null ? _this2.cssClass : \"\");\n });\n }\n },\n\n /**\n *\n * The x-offset related to the canvas.\n * Didn't provided by a connection. Return always '0'. This is required\n * for children position calculation. (e.g. Label decoration)\n *\n * @returns {Number} the x-offset to the parent figure\n **/\n getAbsoluteX: function getAbsoluteX() {\n return 0;\n },\n\n /**\n *\n * The y-offset related to the canvas.\n * Didn't provided by a connection. Return always '0'. This is required\n * for children position calculation. (e.g. Label decoration)\n *\n * @returns {Number} The y-offset to the parent figure.\n **/\n getAbsoluteY: function getAbsoluteY() {\n return 0;\n },\n\n postProcess: function postProcess(postProcessCache) {\n this.router.postProcess(this, this.getCanvas(), postProcessCache);\n },\n\n /**\n *\n * Don't call them manually. This will be done by the framework.<br>\n * Will be called if the object are moved via drag and drop.\n * Sub classes can override this method to implement additional stuff. Don't forget to call\n * the super implementation via <code>this._super(dx, dy, dx2, dy2);</code>\n * @private\n * @param {Number} dx the x difference between the start of the drag drop operation and now\n * @param {Number} dy the y difference between the start of the drag drop operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n **/\n onDrag: function onDrag(dx, dy, dx2, dy2) {\n var _this3 = this;\n\n if (this.command === null) {\n return;\n }\n\n // Delegate the drag&drop operation to the router. The router has\n // all the meta information how to update start/end vertices\n //\n this.router.onDrag(this, dx, dy, dx2, dy2);\n\n this.command.updateVertices(this.getVertices().clone());\n\n // notify all installed policies\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.onDrag(_this3.canvas, _this3);\n }\n });\n\n this.svgPathString = null;\n this.repaint();\n\n // Update the resize handles if the user change the position of the\n // element via an API call.\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this3.canvas, _this3);\n }\n });\n\n this.fireEvent(\"move\", { figure: this, dx: dx, dy: dx });\n },\n\n /**\n *\n * Moves the element so it is the closest to the viewer’s eyes, on top of other elements. Additional\n * the internal model changed as well.\n *\n * Optional: Inserts current object in front of the given one.\n *\n * @param {draw2d.Figure} [figure] move current object in front of the given one.\n * @since 3.0.0\n */\n toFront: function toFront(figure) {\n this._super(figure);\n\n // ensure that the decoration is always in front of the connection\n //\n if (this.shape !== null) {\n if (this.targetDecoratorNode !== null) {\n this.targetDecoratorNode.insertAfter(this.shape);\n }\n if (this.sourceDecoratorNode !== null) {\n this.sourceDecoratorNode.insertAfter(this.shape);\n }\n }\n\n return this;\n },\n\n /**\n *\n * Moves the element to the background. Additional\n * the internal model changed as well.\n *\n * @param {draw2d.Figure} [figure] move this object behind of the 'figure'.\n * @since 4.7.2\n */\n toBack: function toBack(figure) {\n this._super(figure);\n\n if (this.shape !== null) {\n if (this.targetDecoratorNode !== null) {\n this.targetDecoratorNode.insertAfter(this.shape);\n }\n if (this.sourceDecoratorNode !== null) {\n this.sourceDecoratorNode.insertAfter(this.shape);\n }\n }\n\n return this;\n },\n\n /**\n *\n * Return the recalculated position of the start point with the usage of\n * the installed connection anchor locator.\n *\n * @returns {draw2d.geo.Point}\n * @deprecated\n **/\n getStartPoint: function getStartPoint(refPoint) {\n return this.getStartPosition(refPoint);\n },\n\n getStartPosition: function getStartPosition(refPoint) {\n if (this.isMoving === false) {\n if (refPoint) {\n return this.sourcePort.getConnectionAnchorLocation(refPoint, this);\n }\n return this.sourcePort.getConnectionAnchorLocation(this.targetPort.getConnectionAnchorReferencePoint(this), this);\n }\n\n return this._super();\n },\n\n /**\n *\n * Return the recalculated position of the start point with the usage of\n * the installed connection anchor locator.\n *\n * @returns {draw2d.geo.Point}\n * @deprecated\n **/\n getEndPoint: function getEndPoint(refPoint) {\n return this.getEndPosition(refPoint);\n },\n\n getEndPosition: function getEndPosition(refPoint) {\n if (this.isMoving === false) {\n if (refPoint) {\n return this.targetPort.getConnectionAnchorLocation(refPoint, this);\n }\n return this.targetPort.getConnectionAnchorLocation(this.sourcePort.getConnectionAnchorReferencePoint(this), this);\n }\n\n return this._super();\n },\n\n /**\n *\n * Set the new source port of this connection. This enforce a repaint of the connection.\n *\n * @param {draw2d.Port} port The new source port of this connection.\n *\n **/\n setSource: function setSource(port) {\n if (this.sourcePort !== null) {\n this.sourcePort.off(this.moveListener);\n this.sourcePort.connections.remove(this);\n this.sourcePort.fireEvent(\"disconnect\", { port: this.sourcePort, connection: this });\n // it is possible that a connection has already a port but is not assigned to\n // a canvas. In this case we must check if the canvas set correct before we fire this event\n if (this.canvas !== null) {\n this.canvas.fireEvent(\"disconnect\", { \"port\": this.sourcePort, \"connection\": this });\n }\n this.sourcePort.onDisconnect(this);\n }\n\n this.sourcePort = port;\n if (this.sourcePort === null) {\n return;\n }\n\n this.routingRequired = true;\n this.fireSourcePortRouteEvent();\n this.sourcePort.connections.add(this);\n this.sourcePort.on(\"move\", this.moveListener);\n if (this.canvas !== null) {\n this.canvas.fireEvent(\"connect\", { \"port\": this.sourcePort, \"connection\": this });\n }\n this.sourcePort.fireEvent(\"connect\", { port: this.sourcePort, connection: this });\n this.sourcePort.onConnect(this);\n\n this.setStartPoint(port.getAbsoluteX(), port.getAbsoluteY());\n this.fireEvent(\"connect\", { \"port\": this.sourcePort, \"connection\": this });\n },\n\n /**\n *\n * Returns the source port of this connection.\n *\n * @returns {draw2d.Port}\n **/\n getSource: function getSource() {\n return this.sourcePort;\n },\n\n /**\n *\n * Set the target port of this connection. This enforce a repaint of the connection.\n *\n * @param {draw2d.Port} port The new target port of this connection\n **/\n setTarget: function setTarget(port) {\n if (this.targetPort !== null) {\n this.targetPort.off(this.moveListener);\n this.targetPort.connections.remove(this);\n this.targetPort.fireEvent(\"disconnect\", { port: this.targetPort, connection: this });\n // it is possible that a connection has already a port but is not assigned to\n // a canvas. In this case we must check if the canvas set correct before we fire this event\n if (this.canvas !== null) {\n this.canvas.fireEvent(\"disconnect\", { \"port\": this.targetPort, \"connection\": this });\n }\n this.targetPort.onDisconnect(this);\n }\n\n this.targetPort = port;\n if (this.targetPort === null) {\n return;\n }\n\n this.routingRequired = true;\n this.fireTargetPortRouteEvent();\n this.targetPort.connections.add(this);\n this.targetPort.on(\"move\", this.moveListener);\n if (this.canvas !== null) {\n this.canvas.fireEvent(\"connect\", { \"port\": this.targetPort, \"connection\": this });\n }\n this.targetPort.fireEvent(\"connect\", { port: this.targetPort, connection: this });\n this.targetPort.onConnect(this);\n\n this.setEndPoint(port.getAbsoluteX(), port.getAbsoluteY());\n this.fireEvent(\"connect\", { \"port\": this.targetPort, \"connection\": this });\n },\n\n /**\n *\n * Returns the target port of this connection.\n *\n * @returns {draw2d.Port}\n **/\n getTarget: function getTarget() {\n return this.targetPort;\n },\n\n /**\n *\n * Method returns true if the connection has at least one common draw2d.Port with the given connection.\n *\n * @param {draw2d.Connection} other\n *\n * @returns {Boolean}\n */\n sharingPorts: function sharingPorts(other) {\n return this.sourcePort == other.sourcePort || this.sourcePort == other.targetPort || this.targetPort == other.sourcePort || this.targetPort == other.targetPort;\n },\n\n /**\n *\n * Set the canvas element of this figures.\n *\n * @param {draw2d.Canvas} canvas the new parent of the figure or null\n */\n setCanvas: function setCanvas(canvas) {\n if (this.canvas === canvas) {\n return; // nothing to do\n }\n\n var notiCanvas = this.canvas == null ? canvas : this.canvas;\n\n this._super(canvas);\n\n if (this.sourceDecoratorNode !== null) {\n this.sourceDecoratorNode.remove();\n this.sourceDecoratorNode = null;\n }\n\n if (this.targetDecoratorNode !== null) {\n this.targetDecoratorNode.remove();\n this.targetDecoratorNode = null;\n }\n\n if (this.canvas === null) {\n if (this.sourcePort !== null) {\n this.sourcePort.off(this.moveListener);\n notiCanvas.fireEvent(\"disconnect\", { \"port\": this.sourcePort, \"connection\": this });\n this.sourcePort.onDisconnect(this);\n }\n if (this.targetPort !== null) {\n this.targetPort.off(this.moveListener);\n notiCanvas.fireEvent(\"disconnect\", { \"port\": this.targetPort, \"connection\": this });\n this.targetPort.onDisconnect(this);\n }\n } else {\n\n if (this.sourcePort !== null) {\n this.sourcePort.on(\"move\", this.moveListener);\n this.canvas.fireEvent(\"connect\", { \"port\": this.sourcePort, \"connection\": this });\n this.sourcePort.onConnect(this);\n }\n if (this.targetPort !== null) {\n this.targetPort.on(\"move\", this.moveListener);\n this.canvas.fireEvent(\"connect\", { \"port\": this.targetPort, \"connection\": this });\n this.targetPort.onConnect(this);\n }\n }\n },\n\n /**\n * Returns the angle of the connection at the output port (source)\n *\n **/\n getStartAngle: function getStartAngle() {\n // return a good default value if the connection is not routed at the\n // moment\n if (this.lineSegments.getSize() === 0) {\n return 0;\n }\n\n var p1 = this.lineSegments.get(0).start;\n var p2 = this.lineSegments.get(0).end;\n if (this.router instanceof _packages2.default.layout.connection.SplineConnectionRouter) {\n p2 = this.lineSegments.get(5).end;\n }\n var length = Math.sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y));\n var angle = -(180 / Math.PI) * Math.asin((p1.y - p2.y) / length);\n\n if (angle < 0) {\n if (p2.x < p1.x) {\n angle = Math.abs(angle) + 180;\n } else {\n angle = 360 - Math.abs(angle);\n }\n } else {\n if (p2.x < p1.x) {\n angle = 180 - angle;\n }\n }\n return angle;\n },\n\n getEndAngle: function getEndAngle() {\n // return a good default value if the connection is not routed at the\n // moment\n if (this.lineSegments.getSize() === 0) {\n return 90;\n }\n\n var p1 = this.lineSegments.get(this.lineSegments.getSize() - 1).end;\n var p2 = this.lineSegments.get(this.lineSegments.getSize() - 1).start;\n if (this.router instanceof _packages2.default.layout.connection.SplineConnectionRouter) {\n p2 = this.lineSegments.get(this.lineSegments.getSize() - 5).end;\n }\n var length = Math.sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y));\n var angle = -(180 / Math.PI) * Math.asin((p1.y - p2.y) / length);\n\n if (angle < 0) {\n if (p2.x < p1.x) {\n angle = Math.abs(angle) + 180;\n } else {\n angle = 360 - Math.abs(angle);\n }\n } else {\n if (p2.x < p1.x) {\n angle = 180 - angle;\n }\n }\n return angle;\n },\n\n /**\n * @private\n **/\n fireSourcePortRouteEvent: function fireSourcePortRouteEvent() {\n this.sourcePort.getConnections().each(function (i, conn) {\n conn.routingRequired = true;\n conn.repaint();\n });\n },\n\n /**\n * @private\n **/\n fireTargetPortRouteEvent: function fireTargetPortRouteEvent() {\n // enforce a repaint of all connections which are related to this port\n // this is required for a \"FanConnectionRouter\" or \"ShortesPathConnectionRouter\"\n //\n this.targetPort.getConnections().each(function (i, conn) {\n conn.routingRequired = true;\n conn.repaint();\n });\n },\n\n /**\n *\n * Returns the Command to perform the specified Request or null.\n *\n * @param {draw2d.command.CommandType} request describes the Command being requested\n *\n * @returns {draw2d.command.Command} null or a Command\n **/\n createCommand: function createCommand(request) {\n if (request.getPolicy() === _packages2.default.command.CommandType.MOVE) {\n if (this.isDraggable()) {\n return new _packages2.default.command.CommandMoveVertices(this);\n }\n }\n\n if (request.getPolicy() === _packages2.default.command.CommandType.MOVE_BASEPOINT) {\n // DragDrop of a connection doesn't create a undo command at this point. This will be done in\n // the onDrop method\n return new _packages2.default.command.CommandReconnect(this);\n }\n\n return this._super(request);\n },\n\n /**\n *\n * Return an objects with all important attributes for XML or JSON serialization\n *\n * @returns {Object}\n */\n getPersistentAttributes: function getPersistentAttributes() {\n var memento = this._super();\n\n var parentNode = this.getSource().getParent();\n while (parentNode.getParent() !== null) {\n parentNode = parentNode.getParent();\n }\n memento.source = {\n node: parentNode.getId(),\n port: this.getSource().getName()\n };\n\n parentNode = this.getTarget().getParent();\n while (parentNode.getParent() !== null) {\n parentNode = parentNode.getParent();\n }\n memento.target = {\n node: parentNode.getId(),\n port: this.getTarget().getName()\n };\n\n if (this.sourceDecorator !== null) {\n memento.source.decoration = this.sourceDecorator.NAME;\n }\n\n if (this.targetDecorator !== null) {\n memento.target.decoration = this.targetDecorator.NAME;\n }\n\n return memento;\n },\n\n /**\n *\n * Read all attributes from the serialized properties and transfer them into the shape.\n *\n * @param {Object} memento\n * @returns {this}\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this._super(memento);\n\n // nothing to to for the connection creation. This will be done in the draw2d.io.Reader\n // implementation\n //\n // restore your custom attributes here\n if (typeof memento.target.decoration !== \"undefined\" && memento.target.decoration != null) {\n this.setTargetDecorator(eval(\"new \" + memento.target.decoration));\n }\n\n if (typeof memento.source.decoration !== \"undefined\" && memento.source.decoration != null) {\n this.setSourceDecorator(eval(\"new \" + memento.source.decoration));\n }\n\n return this;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/Figure.js\":\n/*!***********************!*\\\n !*** ./src/Figure.js ***!\n \\***********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _JSONUtil = __webpack_require__(/*! util/JSONUtil */ \"./src/util/JSONUtil.js\");\n\nvar _JSONUtil2 = _interopRequireDefault(_JSONUtil);\n\nvar _UUID = __webpack_require__(/*! util/UUID */ \"./src/util/UUID.js\");\n\nvar _UUID2 = _interopRequireDefault(_UUID);\n\nvar _extend = __webpack_require__(/*! util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n/**\n * @class\n * Base class for all draw2d shapes-\n *\n */\n_packages2.default.Figure = Class.extend(\n/** @lends draw2d.Figure.prototype */\n{\n NAME: \"draw2d.Figure\",\n MIN_TIMER_INTERVAL: 50, // minimum timer interval in milliseconds\n\n /**\n * Creates a new Figure object\n *\n * @param attr\n * @param setter\n * @param getter\n */\n init: function init(attr, setter, getter) {\n var _this2 = this;\n\n // @private\n this.setterWhitelist = (0, _extend2.default)({\n // id the unique id of the figure\n id: this.setId,\n // x the x offset of the figure in relation to the parent figure or canvas\n x: this.setX,\n // y the y offset of the figure in relation to the parent figure or canvas\n y: this.setY,\n // width the new width of the figure. Considering the minWidth of the shape\n width: this.setWidth,\n // height the new height of the figure. Considering the minHeight of the shape\n height: this.setHeight,\n // boundingBox set the new bounding box of the shape\n boundingBox: this.setBoundingBox,\n // minWidth the new min width of the figure.\n minWidth: this.setMinWidth,\n // minHeight the new min height of the figure.\n minHeight: this.setMinHeight,\n // cssClass the css class of the shape. can be used to style the shape via CSS3 (SVG only)\n cssClass: this.setCssClass,\n // userData additional custom data which can be stored by the shape\n userData: this.setUserData,\n // draggable drives the dragging behaviour of the shape\n draggable: this.setDraggable,\n // resizeable drives the resizeable behaviour of the shape\n resizeable: this.setResizeable,\n // selectable drives the selectable behaviour of the shape\n selectable: this.setSelectable,\n // angle the rotation angle of the shape. At the moment only 90 degree increments are possible\n angle: this.setRotationAngle,\n // alpha the the alpha/opacity of the shape. value must be between [0..1]\n alpha: this.setAlpha,\n // opacity the the alpha/opacity of the shape. value must be between [0..1]\n opacity: this.setAlpha,\n // glow the glow flag for the shape. The representation of the \"glow\" depends on the shape\n glow: this.setGlow,\n // visible set the visibility flag of the shape\n visible: this.setVisible,\n // keepAspectRatio indicate if the shape should keep the aspect ratio during resize\n keepAspectRatio: this.setKeepAspectRatio\n }, setter);\n\n this.getterWhitelist = (0, _extend2.default)({\n id: this.getId,\n visible: this.isVisible,\n angle: this.getRotationAngle,\n x: this.getX,\n y: this.getY,\n userData: this.getUserData,\n width: this.getWidth,\n height: this.getHeight,\n draggable: this.isDraggable,\n resizeable: this.isResizeable,\n selectable: this.isSelectable,\n alpha: this.getAlpha,\n opacity: this.getAlpha\n }, getter);\n\n // all figures has an unique id. Required for figure get and persistence storage\n this.id = _UUID2.default.create();\n\n // required for the SelectionEditPolicy to indicate the type of figure\n // which the user clicks\n this.isResizeHandle = false;\n\n // for undo/redo operation. It holds the command during a drag/drop operation\n // and execute it on the CommandStack if the user drop the figure.\n this.command = null;\n\n // the assigned canvas\n this.canvas = null;\n\n // the RaphaelJS element reference\n this.shape = null;\n\n // possible decorations ( e.g. a Label) of the Connection\n // children are fixed bounded the figure. Most of the events of the child will bee\n // routed to the parent\n this.children = new _packages2.default.util.ArrayList();\n\n // behavior flags\n //\n this.selectable = true;\n this.deleteable = true;\n this.resizeable = true;\n this.draggable = true;\n this.visible = true;\n // since 4.1.0.\n this.keepAspectRatio = false;\n\n this.canSnapToHelper = true;\n this.snapToGridAnchor = new _packages2.default.geo.Point(0, 0); // hot spot for snap to grid\n this.editPolicy = new _packages2.default.util.ArrayList();\n\n // timer for animation or automatic update\n //\n this.timerId = -1;\n this.timerInterval = 0;\n\n // possible parent of the figure.\n // @see: this.children\n this.parent = null;\n\n // a figure can be part of a StrongComposite like a group, ...\n //\n this.composite = null;\n\n // generic handle for the JSON read/write of user defined data\n this.userData = null;\n\n // appearance, position and dim properties\n //\n this.x = 0;\n this.y = 0;\n this.minHeight = 5;\n this.minWidth = 5;\n this.rotationAngle = 0;\n // add the name of the class to the css attribute\n this.cssClass = this.NAME.replace(new RegExp(\"[.]\", \"g\"), \"_\");\n\n this.width = this.getMinWidth();\n this.height = this.getMinHeight();\n\n this.alpha = 1.0;\n\n // internal status flags for the Drag&Drop operation handling and other stuff\n //\n this.isInDragDrop = false;\n\n this.ox = 0;\n this.oy = 0;\n this.repaintBlocked = false;\n this.lastAppliedAttributes = {};\n this.selectionHandles = new _packages2.default.util.ArrayList();\n this.panningDelegate = null;\n\n // even handling since version 5.0.0\n this.eventSubscriptions = {};\n\n this.relocateChildrenEventCallback = function () {\n _this2.children.each(function (i, e) {\n e.locator.relocate(i, e.figure);\n });\n };\n\n // new approach to delegate selection requests.\n //\n this.defaultSelectionAdapter = this.selectionAdapter = function () {\n return _this2;\n };\n\n // install default selection handler. Can be overridden or replaced\n this.installEditPolicy(new _packages2.default.policy.figure.RectangleSelectionFeedbackPolicy());\n\n // the new style attr call with object attributes\n this.attr(attr);\n },\n\n /**\n *\n * Read or set shape attributes.<br>\n * When no value is given, reads specified attribute from the element.<br>\n * When value is given, sets the attribute to that value.\n * Multiple attributes can be set by passing an object with name-value pairs.\n *\n * let figure = new draw2d.shape.basic.Rectangle();\n * figure.attr('x'); //=> read value\n * figure.attr('x', 30); //=> set value\n *\n * // multiple attributes:\n * figure.attr({\n * x: 30,\n * y: 40,\n * width : 200,\n * height: 50,\n * cssClass: \"red_border_figure\"\n * });\n *\n * // it is possible to override any method of the figure as well\n * // Instead of inheritance you can just override the callback methods\n * // like\n * //\n * figure.attr({\n * onClick : function(){\n * alert(\"click\");\n * }\n * });\n *\n * // or you can pass the attr values in the constructor\n * //\n * let clickFigure = new draw2d.shape.basic.Rectangle({\n * onClick : function(){\n * alert(\"click\");\n * }\n * });\n *\n *\n * Additional you can set the user defined values (userData) with this method\n * using the dot-notation. User defined values are always part of the exported\n * JSON data.\n *\n * // setting multiple attributes:\n * figure.attr({\n * \"userData.my.property.x\": 30,\n * \"userData.my.property.y\": 40\n * });\n *\n * Also set using array notation is possible for the userData:\n *\n * // dot notation and array brackets:\n * figure.attr({\n * \"userData.my.names[0]\": \"John\",\n * \"userData.my.names[1]\": \"Doe\"\n * });\n *\n *\n * The Object returned should be the equivalent structured object:\n *\n * let obj = figure.getUserData();\n *\n * That is, where obj is equivalent to:\n *\n * let obj = {\n * my:{\n * property:{\n * x: 30,\n * y: 40\n * },\n * names: [\"John\", \"Doe\"]\n * }\n * };\n *\n *\n *\n * @param {String/Object} name\n * @param {Object} [value]\n * @since 5.0.1\n * @experimental\n * @returns {Object} either the requested attribute if this method used as getter or `this` if the method uses as setter\n **/\n attr: function attr(name, value) {\n var _this = this;\n var orig = this.repaintBlocked;\n\n try {\n // call of attr as setter method with {name1:val1, name2:val2 } argument list\n //\n if ($.isPlainObject(name)) {\n for (var key in name) {\n // user can set the \"userData\" with path notation. In this case we\n // expand the path to a real JSON object and set the data.\n // index/brackets are allowed too.\n //\n if (key.substring(0, 9) === \"userData.\") {\n if (this.userData === null) {\n this.userData = {};\n }\n _JSONUtil2.default.set({ userData: this.userData }, key, name[key]);\n this.fireEvent(\"change:\" + key, { value: name[key] });\n } else {\n var func = this.setterWhitelist[key];\n var param = name[key];\n if (func && param !== undefined) {\n func.call(this, param);\n }\n // maybe the user adds a function as property to the attr call\n // e.g.:\n // {\n // doIt: function(){}\n // }\n //\n // in this case we assign the method to this object and wrap it with \"this\" as context\n // a very, very simple method to replace default implemenations of the object\n else if (typeof name[key] === \"function\") {\n this[key] = param.bind(this);\n }\n }\n }\n } else if (typeof name === \"string\") {\n // call attr as getter\n //\n if (typeof value === \"undefined\") {\n var getter = this.getterWhitelist[name];\n if (typeof getter === \"function\") {\n return getter.call(this);\n }\n // or it is a userData path notation like \"userData.any.path.value\"\n else if (name.substring(0, 9) === \"userData.\") {\n var data = { userData: this.userData };\n return _JSONUtil2.default.get(data, name);\n }\n return; // undefined\n }\n // call attr as simple setter with (key , value)\n //\n\n // the value can be a function. In this case we must call the value().\n if (typeof value === \"function\") {\n value = value();\n }\n if (name.substring(0, 9) === \"userData.\") {\n if (this.userData === null) {\n this.userData = {};\n }\n _JSONUtil2.default.set({ userData: this.userData }, name, value);\n this.fireEvent(\"change:\" + name, { value: value });\n } else {\n var setter = this.setterWhitelist[name];\n if (setter) {\n setter.call(this, value);\n }\n }\n }\n // may it is a array of attributes used for the getter\n //\n else if (Array.isArray(name)) {\n return Object.assign.apply(Object, [{}].concat(_toConsumableArray(Object.keys(name).map(function (k) {\n return _defineProperty({}, k, _this.attr(k));\n }))));\n }\n // generic getter of all registered attributes\n else if (typeof name === \"undefined\") {\n var result = {};\n for (var _key in this.getterWhitelist) {\n result[_key] = this.getterWhitelist[_key].call(this);\n }\n return result;\n }\n } finally {\n this.repaintBlocked = orig;\n }\n // this.repaint();\n\n return this;\n },\n\n /**\n * Return a copy of the object, filtered to only have values for the whitelisted keys.\n * @deprecated\n */\n pick: function pick(obj, var_keys) {\n var keys = typeof arguments[1] !== 'string' ? arguments[1] : Array.prototype.slice.call(arguments, 1);\n var out = {},\n key = void 0;\n for (key in keys) {\n if (typeof obj[key] !== \"undefined\") out[key] = obj[key];\n }\n return out;\n },\n\n /**\n *\n * Add the figure to the current selection and propagate this to all edit policies.\n *\n * @param {Boolean} [asPrimarySelection] true if the element should be the primary selection\n * @private\n */\n select: function select(asPrimarySelection) {\n if (typeof asPrimarySelection === \"undefined\") {\n asPrimarySelection = true;\n }\n\n // apply all EditPolicy for select Operations\n //\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.SelectionPolicy) {\n e.onSelect(_this.canvas, _this, asPrimarySelection);\n }\n });\n\n if (this.canvas !== null) {\n this.canvas.getSelection().add(this);\n }\n\n this.fireEvent(\"select\", { figure: this });\n\n return this;\n },\n\n /**\n *\n * Unselect the figure and propagete this event to all edit policies.\n *\n * @private\n **/\n unselect: function unselect() {\n var _this = this;\n // apply all EditPolicy for select Operations\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.SelectionPolicy) {\n e.onUnselect(_this.canvas, _this);\n }\n });\n\n if (this.canvas !== null) {\n this.canvas.getSelection().remove(this);\n }\n\n this.fireEvent(\"unselect\", { figure: this });\n return this;\n },\n\n /**\n *\n * Returns a function which returns the the figure which must handle the selection handling.\n *\n * @param {Function} [adapter] function which returns the figure which handles the selection handling\n */\n setSelectionAdapter: function setSelectionAdapter(adapter) {\n if (adapter == null) {\n this.selectionAdapter = this.defaultSelectionAdapter;\n } else {\n this.selectionAdapter = adapter;\n }\n\n return this;\n },\n\n /**\n *\n *\n * @returns {Function}\n */\n getSelectionAdapter: function getSelectionAdapter() {\n return this.selectionAdapter;\n },\n\n /**\n *\n * Returns true if the figure part of the current canvas selection.\n *\n * @since 5.5.6\n *\n * @returns {Boolean}\n */\n isSelected: function isSelected() {\n if (this.canvas !== null) {\n return this.canvas.getSelection().contains(this);\n }\n\n return false;\n },\n\n /**\n *\n * Allows a user to attach (or remove) data to an element, without needing to create a custom figure or shape.\n * The data must be a valid JSON object.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * userData: object\n * });\n *\n * @since 2.7.2\n * @param {Object} object\n */\n setUserData: function setUserData(object) {\n this.userData = object;\n this.fireEvent(\"change:userData\", { value: object });\n return this;\n },\n\n /**\n *\n * Returns any user data set previously on the given figure by setUserData.\n *\n * @since 2.7.2\n * @returns {Object}\n */\n getUserData: function getUserData() {\n return this.userData;\n },\n\n /**\n *\n * Return the UUID of this element.\n *\n * @returns {String}\n */\n getId: function getId() {\n return this.id;\n },\n\n /**\n *\n * Set the id of this element.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * id: newId\n * });\n *\n * @param {String} newId the new id for this figure\n */\n setId: function setId(newId) {\n this.id = newId;\n\n return this;\n },\n\n /**\n *\n * Return the css styling class name of the element.\n *\n *\n * @returns {String}\n */\n getCssClass: function getCssClass() {\n return this.cssClass;\n },\n\n /**\n *\n * Set the css class of the node.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * \"cssClass\": \"red_border_figure\"\n * });\n *\n * @param {String} cssClass the new css class name of the node\n * @since 2.9.0\n */\n setCssClass: function setCssClass(cssClass) {\n this.cssClass = cssClass === null ? null : cssClass.trim();\n\n if (this.shape === null) {\n return this;\n }\n\n if (this.cssClass === null) {\n this.shape.node.removeAttribute(\"class\");\n } else {\n this.shape.node.setAttribute(\"class\", this.cssClass);\n }\n this.fireEvent(\"change:cssClass\", { value: this.cssClass });\n\n return this;\n },\n\n /**\n *\n * The method will return true if the class is assigned to the element, even if other classes also are.\n *\n * @param {String} className the class name to check\n * @since 2.9.0\n */\n hasCssClass: function hasCssClass(className) {\n if (this.cssClass === null) {\n return false;\n }\n\n return new RegExp(' ' + className.trim() + ' ').test(' ' + this.cssClass + ' ');\n },\n\n /**\n *\n * Add a CSS class to the figure.<br>\n * It's important to note that this method does not replace a class. It simply adds the class,\n * appending it to any which may already be assigned to the elements.\n *\n * @param {String} className\n * @since 2.9.0\n */\n addCssClass: function addCssClass(className) {\n className = className.trim();\n if (!this.hasCssClass(className)) {\n if (this.cssClass === null) {\n this.setCssClass(className);\n } else {\n this.setCssClass(this.cssClass + ' ' + className);\n }\n this.fireEvent(\"change:cssClass\", { value: this.cssClass });\n }\n\n return this;\n },\n\n /**\n *\n *\n * Remove the given css class name from the figure\n *\n * @param {String} className the css class name to add\n */\n removeCssClass: function removeCssClass(className) {\n className = className.trim();\n var newClass = ' ' + this.cssClass.replace(/[\\t\\r\\n]/g, ' ') + ' ';\n if (this.hasCssClass(className)) {\n while (newClass.indexOf(' ' + className + ' ') >= 0) {\n newClass = newClass.replace(' ' + className + ' ', ' ');\n }\n this.setCssClass(newClass.replace(/^\\s+|\\s+$/g, ''));\n this.fireEvent(\"change:cssClass\", { value: this.cssClass });\n }\n\n return this;\n },\n\n /**\n *\n *\n * Add or remove the given css class name from the figure\n *\n * @param {String} className the class name to toggle\n */\n toggleCssClass: function toggleCssClass(className) {\n className = className.trim();\n var newClass = ' ' + this.cssClass.replace(/[\\t\\r\\n]/g, ' ') + ' ';\n if (this.hasCssClass(className)) {\n while (newClass.indexOf(' ' + className + ' ') >= 0) {\n newClass = newClass.replace(' ' + className + ' ', ' ');\n }\n this.setCssClass(newClass.replace(/^\\s+|\\s+$/g, ''));\n } else {\n this.setCssClass(this.cssClass + ' ' + className);\n }\n this.fireEvent(\"change:cssClass\", { value: this.cssClass });\n\n return this;\n },\n\n /**\n *\n * Set the canvas element of this figures. This can be used to determine whenever an element\n * is added or removed to the canvas.\n *\n * @param {draw2d.Canvas} canvas the new parent of the figure or null\n */\n setCanvas: function setCanvas(canvas) {\n // remove the shape if we reset the canvas and the element\n // was already drawn\n if (canvas === null && this.shape !== null) {\n if (this.isSelected()) {\n this.unselect();\n }\n this.shape.remove();\n this.shape = null;\n }\n\n this.canvas = canvas;\n\n if (this.canvas !== null) {\n this.getShapeElement();\n }\n\n // reset the attribute cache. We must start by paint all attributes\n //\n this.lastAppliedAttributes = {};\n\n if (canvas === null) {\n this.stopTimer();\n } else {\n if (this.timerInterval >= this.MIN_TIMER_INTERVAL) {\n this.startTimer(this.timerInterval);\n }\n }\n\n this.children.each(function (i, e) {\n e.figure.setCanvas(canvas);\n });\n\n return this;\n },\n\n /**\n *\n * Return the current assigned canvas container.\n *\n * @returns {draw2d.Canvas}\n */\n getCanvas: function getCanvas() {\n return this.canvas;\n },\n\n /**\n *\n * Start a timer which calls the onTimer method in the given interval.\n *\n * @param {Number} milliSeconds\n */\n startTimer: function startTimer(milliSeconds) {\n var _this3 = this;\n\n this.stopTimer();\n this.timerInterval = Math.max(this.MIN_TIMER_INTERVAL, milliSeconds);\n\n if (this.canvas !== null) {\n this.timerId = window.setInterval(function () {\n _this3.onTimer();\n _this3.fireEvent(\"timer\");\n }, this.timerInterval);\n }\n\n return this;\n },\n\n /**\n *\n * Stop the internal timer.\n *\n */\n stopTimer: function stopTimer() {\n if (this.timerId >= 0) {\n window.clearInterval(this.timerId);\n this.timerId = -1;\n }\n\n return this;\n },\n\n /**\n *\n * Callback method for the internal timer handling<br>\n * Inherit classes must override this method if they want use the timer feature.\n *\n * // Alternatively you can register for this event with\n * figure.on(\"timer\", function(emitter){\n * alert(\"timer fired\");\n * });\n *\n * @template\n */\n onTimer: function onTimer() {},\n\n /**\n *\n * Moves the element so it is the closest to the viewer’s eyes, on top of other elements. Additional\n * the internal model changed as well.\n *\n * Optional: Inserts current object in front of the given one.\n *\n * @param {draw2d.Figure} [figure] move current object in front of the given one.\n * @since 3.0.0\n */\n toFront: function toFront(figure) {\n var _this4 = this;\n\n // ensure that the z-oder is still correct if the figure is assigned\n // to a StrongComposite\n //\n if (this.composite instanceof _packages2.default.shape.composite.StrongComposite && typeof figure !== \"undefined\") {\n var indexFigure = figure.getZOrder();\n var indexComposite = this.composite.getZOrder();\n if (indexFigure < indexComposite) {\n figure = this.composite;\n }\n }\n\n if (typeof figure === \"undefined\") {\n this.getShapeElement().toFront();\n\n if (this.canvas !== null) {\n var figures = this.canvas.getFigures();\n var lines = this.canvas.getLines();\n if (figures.remove(this) !== null) {\n figures.add(this);\n } else if (lines.remove(this) !== null) {\n lines.add(this);\n }\n }\n } else {\n this.getShapeElement().insertAfter(figure.getTopLevelShapeElement());\n\n if (this.canvas !== null) {\n var _figures = this.canvas.getFigures();\n var _lines = this.canvas.getLines();\n if (_figures.remove(this) !== null) {\n var index = _figures.indexOf(figure);\n _figures.insertElementAt(this, index + 1);\n } else if (_lines.remove(this) !== null) {\n _lines.add(this);\n }\n }\n }\n\n // bring all children in front of the parent\n this.children.each(function (i, child) {\n child.figure.toFront(_this4);\n });\n\n // and last but not lease the ResizeHandles if any present\n //\n this.selectionHandles.each(function (i, handle) {\n handle.toFront();\n });\n\n return this;\n },\n\n /**\n *\n * Moves the element to the background. Additional\n * the internal model changed as well.\n *\n * @since 4.7.2\n */\n toBack: function toBack(figure) {\n // it is not allowed that a figure is behind an assigned composite\n //\n if (this.composite instanceof _packages2.default.shape.composite.StrongComposite) {\n this.toFront(this.composite);\n return;\n }\n\n if (this.canvas !== null) {\n var figures = this.canvas.getFigures();\n var lines = this.canvas.getLines();\n if (figures.remove(this) !== null) {\n figures.insertElementAt(this, 0);\n } else if (lines.remove(this) !== null) {\n lines.insertElementAt(this, 0);\n }\n if (typeof figure !== \"undefined\") {\n this.getShapeElement().insertBefore(figure.getShapeElement());\n } else {\n this.getShapeElement().toBack();\n }\n }\n\n // Bring all children in front of \"this\" figure\n //\n var _this = this;\n this.children.each(function (i, child) {\n child.figure.toFront(_this);\n }, true);\n\n return this;\n },\n\n /**\n *\n * Install a new edit policy to the figure. Each editpolicy is able to focus on a single editing\n * task or group of related tasks. This also allows editing behavior to be selectively reused across\n * different figure implementations. Also, behavior can change dynamically, such as when the layouts\n * or routing methods change.\n *\n * Example for limited DragDrop behavior can be a draw2d.layout.constraint.RegionConstriantPolicy.\n *\n * @param {draw2d.policy.EditPolicy} policy\n */\n installEditPolicy: function installEditPolicy(policy) {\n var _this5 = this;\n\n // it is only possible to install one SelectionFeedbackPolicy at once\n //\n if (policy instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy) {\n this.editPolicy.grep(function (p) {\n var stay = !(p instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy);\n if (!stay) {\n p.onUninstall(_this5);\n }\n return stay;\n });\n }\n\n // It is only allowed to install a policy of the same type once\n //\n this.editPolicy.grep(function (p) {\n var stay = p.__proto__ !== policy.__proto__;\n if (!stay) {\n p.onUninstall(_this5);\n }\n return stay;\n });\n\n policy.onInstall(this);\n this.editPolicy.add(policy);\n\n return this;\n },\n\n /**\n *\n *\n * UnInstall the edit policy from the figure. Either the instance itself if found\n * or all kind of the given edit policies.\n *\n *\n * @param {draw2d.policy.EditPolicy} policy\n * @since 4.81\n */\n uninstallEditPolicy: function uninstallEditPolicy(policy) {\n var removedPolicy = this.editPolicy.remove(policy);\n\n // we found the policy and we are happy\n //\n if (removedPolicy !== null) {\n removedPolicy.onUninstall(this);\n return;\n }\n\n // The policy isn'T part of the figure. In this case we \"think\" the user want\n // deinstall all instances of the policy\n //\n var _this = this;\n var name = typeof policy === \"string\" ? policy : policy.NAME;\n this.editPolicy.grep(function (p) {\n if (p.NAME === name) {\n p.onUninstall(_this);\n return false;\n }\n return true;\n });\n },\n\n /**\n * Add a child figure to the figure. The hands over figure doesn't support drag&drop\n * operations. It's only a decorator for the connection.<br>\n * Mainly for labels or other decorations\n *\n *\n * let start = new draw2d.shape.node.Start({x:80, y:150});\n * start.add(new draw2d.shape.basic.Label({text:\"Test Label\"}), new draw2d.layout.locator.TopLocator());\n *\n * canvas.add( start);\n *\n *\n * @param {draw2d.Figure} child the figure to add as decoration to the connection.\n * @param {draw2d.layout.locator.Locator} locator the locator for the child.\n * @param {Number} [index] optional index where to insert the figure\n * @returns {this}\n **/\n add: function add(child, locator, index) {\n if (typeof locator === \"undefined\" || locator === null) {\n throw \"Second parameter 'locator' is required for method 'Figure#add'\";\n }\n\n // the child is now a slave of the parent\n //\n child.setParent(this);\n\n // inform the locator that a new child is bounded to the parent\n // The call must happen after parent assignment. Reason: the locator\n // can override some behaviours which are propagated from the parent.\n //\n locator.bind(this, child);\n\n child.on(\"resize\", this.relocateChildrenEventCallback);\n\n if (!isNaN(parseInt(index))) {\n this.children.insertElementAt({ figure: child, locator: locator }, index);\n } else {\n this.children.add({ figure: child, locator: locator });\n }\n\n if (this.canvas !== null) {\n child.setCanvas(this.canvas);\n }\n\n this.repaint();\n\n return this;\n },\n\n /**\n *\n * Remove the child figure from this figure and the canvas\n *\n * @param {draw2d.Figure} child the figure to remove.\n *\n * @returns {Object} the removed tupple of figure/locator or null if the child isn't found\n * @returns {draw2d.Figure} return.figure The removed figure\n * @returns {draw2d.shape.layout.Layout} return.locator The used locator of the figure\n *\n * @since 5.0.0\n **/\n remove: function remove(child) {\n if (typeof child === \"undefined\" || child === null) {\n debug.warn(\"The parameter child is required for Figure.remove\");\n return null;\n }\n\n var removed = null;\n this.children.grep(function (e) {\n var stay = e.figure !== child;\n if (!stay) {\n removed = e;\n }\n return stay;\n });\n\n if (removed !== null) {\n child.setParent(null);\n child.setCanvas(null);\n removed.locator.unbind(this, child);\n child.off(this.relocateChildrenEventCallback);\n\n this.repaint();\n return removed;\n }\n\n return null;\n },\n\n /**\n *\n * Return all children/decorations of this shape which has been added with\n * draw2d.Figure.add\n *\n * @returns {draw2d.util.ArrayList}\n */\n getChildren: function getChildren() {\n return this.children.clone().map(function (e) {\n return e.figure;\n });\n },\n\n /**\n *\n * Remove all children/decorations of this shape\n *\n */\n resetChildren: function resetChildren() {\n this.children.each(function (i, e) {\n e.figure.setCanvas(null);\n });\n this.children = new _packages2.default.util.ArrayList();\n this.repaint();\n\n return this;\n },\n\n /**\n *\n * return the current SVG shape element or create it on demand.\n *\n * @protected\n */\n getShapeElement: function getShapeElement() {\n if (this.shape !== null) {\n return this.shape;\n }\n\n this.shape = this.createShapeElement();\n if (!this.isVisible()) {\n this.shape.hide();\n }\n\n // add CSS class to enable styling of the element with CSS rules/files\n //\n if (this.cssClass !== null) {\n this.shape.node.setAttribute(\"class\", this.cssClass);\n }\n\n return this.shape;\n },\n\n /**\n *\n * Get the top level shape element. May the figure has a set of SVG elements. In this case this\n * method must return the top level node.<br>\n * This method is used for the toFront/toBack method to order the nodes in the correct way.\n *\n * @since 5.0.0\n * @private\n */\n getTopLevelShapeElement: function getTopLevelShapeElement() {\n return this.getShapeElement();\n },\n\n /**\n *\n * Inherited classes must override this method to implement it's own draw functionality.\n *\n * @template\n * @abstract\n */\n createShapeElement: function createShapeElement() {\n throw \"Inherited class [\" + this.NAME + \"] must override the abstract method createShapeElement\";\n },\n\n /**\n *\n * propagate all attributes like color, stroke,... to the shape element\n *\n * @param {Object} [attributes] the style attributes for the SVG shape\n * @private\n **/\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return this;\n }\n var _this = this;\n attributes = attributes || {};\n\n if (this.visible === true) {\n if (this.shape.isVisible() === false) {\n if (!isNaN(parseFloat(attributes.visibleDuration))) {\n $(this.shape.node).fadeIn(attributes.visibleDuration, function () {\n _this.shape.show();\n });\n } else {\n this.shape.show();\n }\n }\n } else {\n if (this.shape.isVisible() === true) {\n if (!isNaN(parseFloat(attributes.visibleDuration))) {\n $(this.shape.node).fadeOut(attributes.visibleDuration, function () {\n _this.shape.hide();\n });\n } else {\n this.shape.hide();\n }\n }\n return this;\n }\n\n // enrich with common properties\n attributes.opacity = this.alpha;\n\n // performance improvement\n // Only apply attributes which has changed. This ends in a big performance improvement\n // because the raphael shape isn't redraw at all.\n //\n attributes = _JSONUtil2.default.flatDiff(attributes, this.lastAppliedAttributes);\n this.lastAppliedAttributes = attributes;\n\n if (Object.getOwnPropertyNames(attributes).length > 0) {\n this.shape.attr(attributes);\n }\n\n this.applyTransformation();\n\n // Relocate all children of the figure if the dimension or location of the\n // shape has changed\n //\n if (\"x\" in attributes || \"width\" in attributes || \"cx\" in attributes || \"path\" in attributes) {\n this.children.each(function (i, e) {\n e.locator.relocate(i, e.figure);\n });\n }\n\n return this;\n },\n\n /**\n *\n * apply a transformation to the shape like rotation, translate,..\n *\n * @private\n * @template\n */\n applyTransformation: function applyTransformation() {\n return this;\n },\n\n /**\n *\n * Highlight the element or remove the highlighting\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * glow: flag\n * });\n *\n * @param {Boolean} flag indicates glow/noGlow\n * @template\n */\n setGlow: function setGlow(flag) {\n // do nothing in the base class.\n // Subclasses must implement this method.\n\n return this;\n },\n\n /**\n *\n * Allow dragging only when the cursor is over a specific part of the figure.\n * <br>\n * Override this method to specify the bounding box of an element or a draw2d.util.ArrayList\n * of draw2d.geo.Rectangle of bounding boxes used to drag the figure. The returned coordinates\n * are absolute coordinates to the canvas.\n * <br>\n * <br>\n * Default implementation returns <b>null</b> to indicate to use the complete figures as\n * drag handle.\n *\n * @since 5.6.0\n * @returns {draw2d.geo.Rectangle|draw2d.util.ArrayList}\n */\n getHandleBBox: function getHandleBBox() {\n return null;\n },\n\n /**\n *\n * Called if the drag and drop action begins. You can return [false] if you\n * want avoid that the figure can be move.\n *\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @returns {Boolean} true if the figure accepts dragging\n **/\n onDragStart: function onDragStart(x, y, shiftKey, ctrlKey) {\n this.isInDragDrop = false;\n\n // Check whenever the figures has a drag-handle. Allow drag&drop\n // operation only if the x/y is inside this area.\n //\n // @since 5.6.0\n var bbox = this.getHandleBBox();\n if (bbox !== null && bbox.translate(this.getAbsolutePosition().scale(-1)).hitTest(x, y) === false) {\n // design failure: we must catch the figure below the mouse to forward\n // the panning event to this figure. Special handling to provide sliders\n // and other UI elements which requires the panning event. Hack.\n this.panningDelegate = this.getBestChild(this.getX() + x, this.getY() + y);\n if (this.panningDelegate !== null) {\n // transform x/y relative to the panning figure and request the dragStart event\n this.panningDelegate.onDragStart(x - this.panningDelegate.x, y - this.panningDelegate.y, shiftKey, ctrlKey);\n }\n return false;\n }\n\n this.command = this.createCommand(new _packages2.default.command.CommandType(_packages2.default.command.CommandType.MOVE));\n\n if (this.command !== null) {\n this.ox = this.getX();\n this.oy = this.getY();\n this.isInDragDrop = true;\n\n // notify all installed policies\n //\n var _this = this;\n var canStartDrag = true;\n\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n canStartDrag = canStartDrag && e.onDragStart(_this.canvas, _this, x, y, shiftKey, ctrlKey);\n }\n });\n\n if (canStartDrag) {\n // fire an event\n // @since 5.3.3\n this.fireEvent(\"dragstart\", { x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n }\n return canStartDrag;\n }\n\n return false;\n },\n\n /**\n *\n * Don't call them manually. This will be done by the framework.<br>\n * Will be called if the object are moved via drag and drop.\n * Sub classes can override this method to implement additional stuff. Don't forget to call\n * the super implementation via <code>this._super(dx, dy, dx2, dy2);</code>\n *\n * @private\n * @param {Number} dx the x difference between the start of the drag drop operation and now\n * @param {Number} dy the y difference between the start of the drag drop operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n **/\n onDrag: function onDrag(dx, dy, dx2, dy2, shiftKey, ctrlKey) {\n var _this6 = this;\n\n // apply all EditPolicy for DragDrop Operations. This is something like\n // an policy that forces that an object can only move vertical, horizontal or in a given\n // rectangle.\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n var _newPos = e.adjustPosition(_this6, _this6.ox + dx, _this6.oy + dy);\n if (_newPos) {\n dx = _newPos.x - _this6.ox;\n dy = _newPos.y - _this6.oy;\n }\n }\n });\n var newPos = new _packages2.default.geo.Point(this.ox + dx, this.oy + dy);\n\n // Adjust the new location if the object can snap to a helper\n // like grid, geometry, ruler,...\n //\n if (this.getCanSnapToHelper()) {\n newPos = this.getCanvas().snapToHelper(this, newPos);\n }\n\n this.setPosition(newPos);\n\n // notify all installed policies that the object has moved.\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.onDrag(_this6.canvas, _this6);\n }\n });\n\n // notify all installed listener that th object has moved\n // @since 5.3.3\n this.fireEvent(\"drag\", { dx: dx, dy: dy, dx2: dx2, dy2: dy2, shiftKey: shiftKey, ctrlKey: ctrlKey });\n },\n\n /**\n *\n * Called by the framework if the figure returns false for the drag operation. In this\n * case we send a \"panning\" event - mouseDown + mouseMove. This is very useful for\n * UI-Widget like slider, spinner,...\n *\n * // You can alternatively register an event handler with:\n * figure.on(\"panning\", function(emitter, eventData){\n * alert(\"panning of the figure called\");\n * });\n *\n * @param {Number} dx the x difference between the mouse down operation and now\n * @param {Number} dy the y difference between the mouse down operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n */\n onPanning: function onPanning(dx, dy, dx2, dy2, shiftKey, ctrlKey) {},\n\n /**\n *\n * Called by the framework if the panning event of the figures ends. This happens\n * after the mous up event if the panning is active.\n *\n * // You can alternatively register an event handler with:\n * figure.on(\"panningEnd\", function(emitter){\n * alert(\"panning of the figure called\");\n * });\n *\n */\n onPanningEnd: function onPanningEnd() {},\n\n /**\n *\n * Will be called after a drag and drop action.<br>\n * Sub classes can override this method to implement additional stuff. Don't forget to call\n * the super implementation via <code>this._super();</code>\n *\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n **/\n onDragEnd: function onDragEnd(x, y, shiftKey, ctrlKey) {\n var _this7 = this;\n\n // Element ist zwar schon an seine Position, das Command muss aber trotzdem\n // in dem CommandStack gelegt werden damit das Undo funktioniert.\n //\n if (this.command !== null) {\n this.command.setPosition(this.x, this.y);\n this.canvas.getCommandStack().execute(this.command);\n this.command = null;\n }\n this.isInDragDrop = false;\n this.panningDelegate = null;\n\n // notify all installed policies\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.onDragEnd(_this7.canvas, _this7, x, y, shiftKey, ctrlKey);\n }\n });\n\n this.fireEvent(\"move\", { x: this.getX(), y: this.getY(), dx: 0, dy: 0 });\n this.fireEvent(\"change:x\", { x: this.getX(), dx: 0 });\n this.fireEvent(\"change:y\", { y: this.getY(), dy: 0 });\n\n // fire an event\n // @since 5.3.3\n this.fireEvent(\"dragend\", { x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n },\n\n /**\n *\n * Called by the framework during drag&drop operations if the user drag a figure over this figure\n *\n * @param {draw2d.Figure} draggedFigure The figure which is currently dragging\n *\n * @returns {draw2d.Figure} the figure which should receive the drop event or null if the element didn't want a drop event\n * @since 6.1.0\n * @private\n **/\n delegateTarget: function delegateTarget(draggedFigure) {\n var _this8 = this;\n\n var delegate = draggedFigure;\n this.getCanvas().getDropInterceptorPolicies().each(function (i, policy) {\n delegate = policy.delegateTarget(draggedFigure, _this8);\n if (delegate !== null) {\n return false; // break the loop\n }\n });\n\n return delegate;\n },\n\n /**\n *\n * Called by the framework during drag&drop operations if the user drag a figure over this figure\n *\n * @param {draw2d.Figure} draggedFigure The figure which is currently dragging\n *\n * @template\n **/\n onDragEnter: function onDragEnter(draggedFigure) {},\n\n /**\n *\n * Called if the DragDrop object leaving the current hover figure.\n *\n * @param {draw2d.Figure} draggedFigure The figure which is currently dragging\n * @template\n **/\n onDragLeave: function onDragLeave(draggedFigure) {},\n\n /**\n *\n * Called if the user drop this element onto the dropTarget. This event is ONLY fired if the\n * shape return \"this\" in the {@link draw2d.Figure#onDragEnter} method.\n *\n *\n * @param {draw2d.Figure} dropTarget The drop target.\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n **/\n onDrop: function onDrop(dropTarget, x, y, shiftKey, ctrlKey) {},\n\n /**\n *\n * Called if the user dropped an figure onto this element. This event is ONLY fired if the\n * in the canvas installed {@link draw2d.policy.canvas.DropInterceptorPolicy} allow this.\n *\n *\n * @param {draw2d.Figure} droppedFigure The dropped figure.\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n * @since 4.8.0\n **/\n onCatch: function onCatch(droppedFigure, x, y, shiftKey, ctrlKey) {},\n\n /**\n *\n * Callback method for the mouse enter event. Usefull for mouse hover-effects.\n * Override this method for your own effects. Don't call them manually.\n *\n * @template\n **/\n onMouseEnter: function onMouseEnter() {},\n\n /**\n *\n * Callback method for the mouse leave event. Useful for mouse hover-effects.\n *\n * @template\n **/\n onMouseLeave: function onMouseLeave() {},\n\n /**\n *\n * Called when a user dbl clicks on the element\n *\n * // Alternatively you can register an event with:\n * //\n * figure.on(\"dblclick\", function(emitter, event){\n * alert(\"user dbl click on the figure\");\n * });\n *\n * @template\n */\n onDoubleClick: function onDoubleClick() {},\n\n /**\n *\n * Called when a user clicks on the element.\n *\n * // You can alternatively register an event handler with:\n * figure.on(\"click\", function(emitter, event){\n * alert(\"user click on the figure\");\n * });\n *\n * @template\n * @deprecated\n */\n onClick: function onClick() {},\n\n /**\n *\n * called by the framework if the figure should show the context menu.<br>\n * The strategy to show the context menu depends on the platform. Either looong press or\n * right click with the mouse.\n *\n * // Alternatively you register for this event with:\n * figure.on(\"contextmenu\", function(emitter, event){\n * alert(\"user press the right mouse button for a context menu\");\n * });\n *\n * @param {Number} x the x-coordinate to show the menu\n * @param {Number} y the y-coordinate to show the menu\n * @since 1.1.0\n * @template\n */\n onContextMenu: function onContextMenu(x, y) {},\n\n /**\n *\n * Set the alpha blending of this figure.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * \"alpha\": percent\n * });\n *\n * // ...or:\n * figure.attr({\n * \"opacity\": percent\n * });\n *\n * @param {Number} percent value between [0..1].\n **/\n setAlpha: function setAlpha(percent) {\n percent = Math.min(1, Math.max(0, parseFloat(percent)));\n if (percent === this.alpha) {\n return;\n }\n\n this.alpha = percent;\n this.repaint();\n this.fireEvent(\"change:opacity\", { value: this.alpha });\n\n return this;\n },\n\n /**\n *\n * Return the alpha blending of the figure\n *\n * @returns {Number} the current alpha blending\n */\n getAlpha: function getAlpha() {\n return this.alpha;\n },\n\n /**\n *\n * Set the rotation angle in degree [0..356]<br>\n * <b>Only steps of 90 degree is working well</b>\n * <br>\n * // Alternatively you can use the attr method:\n * figure.attr({\n * angle: angle\n * });\n *\n * @param {Number} angle the rotation angle in degree\n */\n setRotationAngle: function setRotationAngle(angle) {\n var _this9 = this;\n\n this.rotationAngle = angle;\n\n // Update the resize handles if the user change the position of the element via an API call.\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this9.canvas, _this9);\n }\n });\n\n this.fireEvent(\"change:angle\", { value: this.rotationAngle });\n this.repaint();\n\n return this;\n },\n\n /**\n *\n * return the rotation angle of the figure in degree of [0..356].\n *\n * <br>\n * <b>NOTE: this method is pre alpha and not for production. Only steps of 90 degree is working well</b>\n * <br>\n * @returns {Number}\n */\n getRotationAngle: function getRotationAngle() {\n return this.rotationAngle;\n },\n\n /**\n *\n * Show/hide the element. The element didn't receive any mouse events (click, dblclick) if you hide the\n * figure.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * visible: flag\n * });\n *\n * @param {Boolean} flag\n * @param {Number} [duration] the optional number for the fadeIn /fadeOut of the figure\n * @since 1.1.0\n */\n setVisible: function setVisible(flag, duration) {\n flag = !!flag;\n if (flag === this.visible) {\n return;\n }\n this.visible = flag;\n\n this.repaint({ visibleDuration: duration });\n\n if (this.visible) {\n this.fireEvent(\"show\");\n } else {\n this.fireEvent(\"hide\");\n }\n this.fireEvent(\"change:visibility\", { value: this.visible });\n\n return this;\n },\n\n /**\n *\n * Return true if the figure visible.\n *\n * @returns {Boolean}\n * @since 1.1.0\n */\n isVisible: function isVisible() {\n return this.visible && this.shape !== null;\n },\n\n /**\n *\n * Guarantee, that the figure width/height will not be distorted. Applicable before calling setDimension().\n * It is false by default.\n *\n * @since 4.1.0\n * @param {Boolean} flag boolean flag if the figure should respect the aspect ratio\n */\n setKeepAspectRatio: function setKeepAspectRatio(flag) {\n this.keepAspectRatio = flag;\n\n return this;\n },\n\n /**\n *\n * Return the flag if the shape keep the aspect ratio.\n *\n * @since 4.1.0\n */\n getKeepAspectRatio: function getKeepAspectRatio() {\n return this.keepAspectRatio;\n },\n\n /**\n *\n * Return the current z-index of the element. Currently this is an expensive method. The index will be calculated\n * all the time. Caching is not implemented at the moment.\n *\n * @returns {Number}\n */\n getZOrder: function getZOrder() {\n if (this.shape === null) {\n return -1;\n }\n\n var i = 0;\n var child = this.shape.node;\n while ((child = child.previousSibling) !== null) {\n i++;\n }\n return i;\n },\n\n /**\n *\n * Set the flag if this object can snap to grid or geometry.\n * A window of dialog should set this flag to false.\n *\n * @param {Boolean} flag The snap to grid/geometry enable flag.\n *\n **/\n setCanSnapToHelper: function setCanSnapToHelper(flag) {\n this.canSnapToHelper = !!flag;\n\n return this;\n },\n\n /**\n *\n * Returns true if the figure can snap to any helper like a grid, guide, geometrie\n * or something else.\n *\n * @returns {Boolean}\n **/\n getCanSnapToHelper: function getCanSnapToHelper() {\n return this.canSnapToHelper;\n },\n\n /**\n *\n * @returns {draw2d.geo.Point}\n **/\n getSnapToGridAnchor: function getSnapToGridAnchor() {\n return this.snapToGridAnchor;\n },\n\n /**\n *\n * Set the hot spot for all snapTo### operations.\n *\n * @param {draw2d.geo.Point} point\n **/\n setSnapToGridAnchor: function setSnapToGridAnchor(point) {\n this.snapToGridAnchor = point;\n\n return this;\n },\n\n /**\n *\n * Set the width of the figure and consider the minWidth attribute\n *\n * @param {Number} width the new width of the figure\n * @since 5.1.0\n */\n setWidth: function setWidth(width) {\n this.setDimension(parseFloat(width), this.getHeight());\n this.fireEvent(\"change:width\", { value: this.width });\n\n return this;\n },\n\n /**\n *\n * The current width of the figure.\n *\n * @type {Number}\n **/\n getWidth: function getWidth() {\n return this.width;\n },\n\n /**\n *\n * Set the heigth of the figure and consider the minWidth attribute\n *\n * @param {Number} height the new height of the figure\n * @since 5.1.0\n */\n setHeight: function setHeight(height) {\n this.setDimension(this.getWidth(), parseFloat(height));\n this.fireEvent(\"change:height\", { value: this.height });\n\n return this;\n },\n\n /**\n *\n * The current height of the figure.\n *\n * @returns {Number}\n **/\n getHeight: function getHeight() {\n return this.height;\n },\n\n /**\n *\n * This value is relevant for the interactive resize of the figure.\n *\n * @returns {Number} Returns the min. width of this object.\n */\n getMinWidth: function getMinWidth() {\n return this.minWidth;\n },\n\n /**\n *\n * Set the minimum width of this figure\n *\n * @param {Number} w\n */\n setMinWidth: function setMinWidth(w) {\n this.minWidth = parseFloat(w);\n this.fireEvent(\"change:minWidth\", { value: this.minWidth });\n\n // fit the width with the new constraint\n this.setWidth(this.getWidth());\n\n return this;\n },\n\n /**\n *\n * This value is relevant for the interactive resize of the figure.\n *\n * @returns {Number} Returns the min. height of this object.\n */\n getMinHeight: function getMinHeight() {\n return this.minHeight;\n },\n\n /**\n *\n * Set the minimum height of the figure.\n *\n * @param {Number} h\n */\n setMinHeight: function setMinHeight(h) {\n this.minHeight = parseFloat(h);\n this.fireEvent(\"change:minHeight\", { value: this.minHeight });\n\n // fit the height with the new constraint\n this.setHeight(this.getHeight());\n\n return this;\n },\n\n /**\n *\n * the the x-offset related to the parent figure or canvas\n *\n * @param {Number} x the new x offset of the figure\n * @since 5.0.8\n */\n setX: function setX(x) {\n this.setPosition(parseFloat(x), this.y);\n return this;\n },\n\n /**\n *\n * The x-offset related to the parent figure or canvas.\n *\n * @returns {Number} the x-offset to the parent figure\n **/\n getX: function getX() {\n return this.x;\n },\n\n /**\n *\n * the the y-offset related to the parent figure or canvas\n *\n * @param {Number} y the new x offset of the figure\n * @since 5.0.8\n */\n setY: function setY(y) {\n this.setPosition(this.x, parseFloat(y));\n return this;\n },\n\n /**\n *\n * The y-offset related to the parent figure or canvas.\n *\n * @returns {Number} The y-offset to the parent figure.\n **/\n getY: function getY() {\n return this.y;\n },\n\n /**\n *\n * The x-offset related to the canvas.\n *\n * @returns {Number} the x-offset to the canvas\n **/\n getAbsoluteX: function getAbsoluteX() {\n if (!this.parent) {\n return this.getX();\n }\n\n return this.getX() + this.parent.getAbsoluteX();\n },\n\n /**\n *\n * The y-offset related to the canvas.\n *\n * @returns {Number} The y-offset to the canvas.\n **/\n getAbsoluteY: function getAbsoluteY() {\n if (!this.parent) {\n return this.getY();\n }\n return this.getY() + this.parent.getAbsoluteY();\n },\n\n /**\n *\n * Returns the absolute y-position of the port.\n *\n * @type {draw2d.geo.Point}\n **/\n getAbsolutePosition: function getAbsolutePosition() {\n return new _packages2.default.geo.Point(this.getAbsoluteX(), this.getAbsoluteY());\n },\n\n /**\n *\n * Returns the absolute y-position of the port.\n *\n * @returns {draw2d.geo.Rectangle}\n **/\n getAbsoluteBounds: function getAbsoluteBounds() {\n return new _packages2.default.geo.Rectangle(this.getAbsoluteX(), this.getAbsoluteY(), this.getWidth(), this.getHeight());\n },\n\n /**\n *\n * Set the position of the object.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * x: x,\n * y: y\n * });\n *\n * @param {Number|draw2d.geo.Point} x The new x coordinate of the figure or the x/y coordinate if it is an draw2d.geo.Point\n * @param {Number} [y] The new y coordinate of the figure\n **/\n setPosition: function setPosition(x, y) {\n var _this10 = this;\n\n if (typeof x === \"undefined\") {\n debugger;\n }\n\n var oldPos = { x: this.x, y: this.y };\n\n if (x instanceof _packages2.default.geo.Point) {\n this.x = x.x;\n this.y = x.y;\n } else {\n this.x = x;\n this.y = y;\n }\n\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n var newPos = e.adjustPosition(_this10, _this10.x, _this10.y);\n _this10.x = newPos.x;\n _this10.y = newPos.y;\n }\n });\n\n this.repaint();\n\n // Update the resize handles if the user change the position of the\n // element via an API call.\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this10.canvas, _this10);\n }\n });\n\n var event = {\n x: this.x,\n y: this.y,\n dx: this.x - oldPos.x,\n dy: this.y - oldPos.y\n };\n this.fireEvent(\"move\", event);\n this.fireEvent(\"change:x\", event);\n this.fireEvent(\"change:y\", event);\n\n return this;\n },\n\n /**\n *\n * Get the current position of the figure\n *\n * @returns {draw2d.geo.Point}\n * @since 2.0.0\n */\n getPosition: function getPosition() {\n return new _packages2.default.geo.Point(this.getX(), this.getY());\n },\n\n /**\n *\n * Translate the figure with the given x/y offset.\n *\n * @param {Number} dx The x offset to translate\n * @param {Number} dy The y offset to translate\n **/\n translate: function translate(dx, dy) {\n this.setPosition(this.getX() + dx, this.getY() + dy);\n\n return this;\n },\n\n /**\n *\n * Set the new width and height of the figure.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * width: w,\n * height: h\n * });\n *\n * @param {Number} w The new width of the figure\n * @param {Number} h The new height of the figure\n **/\n setDimension: function setDimension(w, h) {\n var _this11 = this;\n\n var old = { width: this.width, height: this.height };\n\n w = Math.max(this.getMinWidth(), w);\n h = Math.max(this.getMinHeight(), h);\n\n if (this.width === w && this.height === h) {\n // required if an inherit figure changed the w/h to a given constraint.\n // In this case the Resize handles must be informed that the shape didn't resized.\n // because the minWidth/minHeight did have a higher prio.\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this11.canvas, _this11);\n }\n });\n return this;\n }\n\n // apply all EditPolicy to adjust/modify the new dimension\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n var newDim = e.adjustDimension(_this11, w, h);\n w = newDim.w;\n h = newDim.h;\n }\n });\n\n // respect the aspect ratio if required\n //\n if (this.keepAspectRatio === true) {\n if (w >= this.getMinWidth()) {\n // scale the height to the given ratio\n h = this.getHeight() * (w / this.getWidth());\n // and apply the new dimension only if the values are in range of the given constraints\n if (h >= this.getMinHeight()) {\n this.width = w;\n this.height = h;\n }\n }\n } else {\n this.width = Math.max(this.getMinWidth(), w);\n this.height = Math.max(this.getMinHeight(), h);\n }\n\n this.repaint();\n\n this.fireEvent(\"resize\");\n this.fireEvent(\"change:dimension\", { height: this.height, width: this.width, old: old });\n\n // Update the resize handles if the user change the position of the element via an API call.\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this11.canvas, _this11);\n }\n });\n\n return this;\n },\n\n /**\n *\n * Set the bounding box of the figure\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * width: w,\n * height: h,\n * x: x,\n * y: y\n * });\n *\n * // or\n * figure.attr({\n * boundingBox: {x:1, y:100, width:30, height:30}\n * });\n *\n * @param {draw2d.geo.Rectangle} rect\n * @since 4.8.0\n */\n setBoundingBox: function setBoundingBox(rect) {\n rect = new _packages2.default.geo.Rectangle(rect);\n\n var orig = this.repaintBlocked;\n this.repaintBlocked = true;\n this.setPosition(rect.x, rect.y);\n this.repaintBlocked = orig;\n this.setDimension(rect.w, rect.h);\n\n return this;\n },\n\n /**\n *\n * Returns the bounding box of the figure in absolute position to the canvas.\n *\n * @returns {draw2d.geo.Rectangle}\n **/\n getBoundingBox: function getBoundingBox() {\n return new _packages2.default.geo.Rectangle(this.getAbsoluteX(), this.getAbsoluteY(), this.getWidth(), this.getHeight());\n },\n\n /**\n *\n * Returns the bounding box of the figure in absolute position to the canvas. All child shapes included.\n * The result BoundingBox spans the parent figured plus all children.\n *\n * @returns {draw2d.geo.Rectangle}\n **/\n getOuterBoundingBox: function getOuterBoundingBox() {\n var parentBB = new _packages2.default.geo.Rectangle(this.getAbsoluteX(), this.getAbsoluteY(), this.getWidth(), this.getHeight());\n this.getChildren().each(function (i, child) {\n var childBB = child.getOuterBoundingBox();\n parentBB.merge(childBB);\n });\n return parentBB;\n },\n\n /**\n *\n * Detect whenever the hands over coordinate is inside the figure.\n * The default implementation is a simple bounding box test.\n *\n * @param {Number} iX\n * @param {Number} iY\n * @param {Number} [corona]\n *\n * @returns {Boolean}\n */\n hitTest: function hitTest(iX, iY, corona) {\n if (typeof corona === \"number\") {\n return this.getBoundingBox().scale(corona, corona).hitTest(iX, iY);\n }\n return this.getBoundingBox().hitTest(iX, iY);\n },\n\n /**\n *\n * Switch on/off the drag drop behaviour of this object\n *\n * @param {Boolean} flag The new drag drop indicator\n **/\n setDraggable: function setDraggable(flag) {\n this.draggable = !!flag;\n\n return this;\n },\n\n /**\n *\n * Get the Drag drop enable flag\n *\n * @returns {Boolean} The new drag drop indicator\n **/\n isDraggable: function isDraggable() {\n // delegate to the composite if given\n if (this.composite !== null) {\n return this.composite.isMemberDraggable(this, this.draggable);\n }\n\n return this.draggable;\n },\n\n /**\n *\n * Returns the true if the figure can be resized.\n *\n * @returns {Boolean}\n **/\n isResizeable: function isResizeable() {\n return this.resizeable;\n },\n\n /**\n *\n * You can change the resizeable behaviour of this object. Hands over [false] and\n * the figure has no resizehandles if you select them with the mouse.<br>\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * resizeable: flag\n * });\n *\n * @param {Boolean} flag The resizeable flag.\n **/\n setResizeable: function setResizeable(flag) {\n this.resizeable = !!flag;\n this.fireEvent(\"change:resizeable\", { value: this.resizeable });\n\n return this;\n },\n\n /**\n *\n * Indicates whenever the element is selectable by user interaction or API.\n *\n * @returns {Boolean}\n **/\n isSelectable: function isSelectable() {\n // delegate to the composite if given\n if (this.composite !== null) {\n return this.composite.isMemberSelectable(this, this.selectable);\n }\n\n return this.selectable;\n },\n\n /**\n *\n * You can change the selectable behavior of this object. Hands over [false] and\n * the figure has no selection handles if you try to select them with the mouse.<br>\n *\n * @param {Boolean} flag The selectable flag.\n **/\n setSelectable: function setSelectable(flag) {\n this.selectable = !!flag;\n this.fireEvent(\"change:selectable\", { value: this.selectable });\n\n return this;\n },\n\n /**\n *\n * Return true if the object doesn't care about the aspect ratio.\n * You can change the height and width independent.<br>\n *\n * Replaced with \"getKeepAspectRatio\"\n * @returns {Boolean}\n * @deprecated\n */\n isStrechable: function isStrechable() {\n return !this.getKeepAspectRatio();\n },\n\n /**\n *\n * Return false if you avoid that the user can delete your figure.\n * Sub class can override this method.\n *\n * @returns {Boolean}\n **/\n isDeleteable: function isDeleteable() {\n return this.deleteable;\n },\n\n /**\n *\n * Set the flag if the shape is deleteable.\n *\n * @param {Boolean} flag enable or disable flag for the delete operation\n **/\n setDeleteable: function setDeleteable(flag) {\n this.deleteable = !!flag;\n this.fireEvent(\"change:deleteable\", { value: this.deleteable });\n\n return this;\n },\n\n /**\n *\n * Set the parent of this figure.\n * Don't call them manually.\n *\n * @param {draw2d.Figure} parent The new parent of this figure\n * @private\n **/\n setParent: function setParent(parent) {\n this.parent = parent;\n\n if (parent !== null) {\n // inherit the selection handling impl from the parent\n this.setSelectionAdapter(parent.getSelectionAdapter());\n } else {\n // use default\n this.setSelectionAdapter(null);\n }\n\n return this;\n },\n\n /**\n *\n * Get the parent of this figure.\n *\n * @returns {draw2d.Figure}\n **/\n getParent: function getParent() {\n return this.parent;\n },\n\n /**\n *\n * Check to see if a figure is a descendant of another figure.\n * <br>\n * The contains() method returns true if the figure provided by the argument is a descendant of this figure,\n * whether it is a direct child or nested more deeply. Otherwise, it returns false.\n *\n * @param {draw2d.Figure} containedFigure The figure that may be contained by (a descendant of) this figure.\n * @since 5.5.4\n */\n contains: function contains(containedFigure) {\n if (containedFigure.getParent() === this) {\n return true;\n }\n\n for (var i = 0, len = this.children.getSize(); i < len; i++) {\n var child = this.children.get(i).figure;\n if (child.contains(containedFigure)) {\n return true;\n }\n }\n return false;\n },\n\n /**\n *\n * Get the top most parent of this figure. This can be an layout figure or parent container\n *\n * @returns {draw2d.Figure}\n * @since 5.0.6\n **/\n getRoot: function getRoot() {\n var root = this.parent;\n while (root !== null && root.parent !== null) {\n root = root.parent;\n }\n return root;\n },\n\n /**\n *\n * Set the assigned composite of this figure.\n *\n * @param {draw2d.shape.composite.StrongComposite} composite The assigned composite of this figure\n * @since 4.8.0\n **/\n setComposite: function setComposite(composite) {\n if (composite !== null && !(composite instanceof _packages2.default.shape.composite.StrongComposite)) {\n throw \"'composite must inherit from 'draw2d.shape.composite.StrongComposite'\";\n }\n\n this.composite = composite;\n\n return this;\n },\n\n /**\n *\n * Get the assigned composite of this figure.\n *\n * @returns {draw2d.shape.composite.StrongComposite}\n * @since 4.8.0\n **/\n getComposite: function getComposite() {\n return this.composite;\n },\n\n /**\n *\n * Execute all handlers and behaviors attached to the figure for the given event type.\n *\n *\n * @param {String} event the event to trigger\n * @param {Object} [args] optional parameters for the triggered event callback\n *\n * @since 5.0.0\n */\n fireEvent: function fireEvent(event, args) {\n try {\n if (typeof this.eventSubscriptions[event] === 'undefined') {\n return;\n }\n\n // avoid recursion\n if (this._inEvent === true) {\n return;\n }\n this._inEvent = true;\n var subscribers = this.eventSubscriptions[event];\n for (var i = 0; i < subscribers.length; i++) {\n subscribers[i](this, args);\n }\n } catch (exc) {\n console.log(exc);\n throw exc;\n } finally {\n this._inEvent = false;\n\n // fire a generic change event if an attribute has changed\n // required for some DataBinding frameworks or for the Backbone.Model compatibility\n // the event \"change\" with the corresponding attribute name as additional parameter\n if (event.substring(0, 7) === \"change:\") {\n this.fireEvent(\"change\", event.substring(7));\n }\n }\n },\n\n /**\n *\n * Attach an event handler function for one or more events to the figure.\n * To remove events bound with .on(), see {@link #off}.\n *\n * possible events are:<br>\n * <ul>\n * <li>click</li>\n * <li>dblclick</li>\n * <li>move</li>\n * <li>resize</li>\n * <li>timer</li>\n * <li>contextmenu</li>\n * <li>show</li>\n * <li>hide</li>\n * <li>added</li>\n * <li>removed</li>\n * <li>change:[attr]</li>\n * </ul>\n *\n * @param {String} event One or more space-separated event types\n * @param {Function} callback A function to execute when the event is triggered.\n * @param {draw2d.Figure} callback.emitter the emitter of the event\n * @param {Object} [callback.obj] optional event related data\n * @param {Object} [context] optional context of the function callback.\n * @since 5.0.0\n */\n on: function on(event, callback, context) {\n var events = event.split(\" \");\n if (typeof callback === \"undefined\") {\n debugger;\n }\n // the \"context\" param is add to be compatible with Backbone.Model.\n // The project \"backbone.ModelBinder\" requires this signature and we want to be nice.\n //\n if (context) {\n callback = callback.bind(context);\n callback.___originalCallback = callback;\n }\n\n for (var i = 0; i < events.length; i++) {\n if (typeof this.eventSubscriptions[events[i]] === 'undefined') {\n this.eventSubscriptions[events[i]] = [];\n }\n // avoid duplicate registration for the same event with the same callback method\n if (-1 !== $.inArray(callback, this.eventSubscriptions[events[i]])) {\n // debugger\n } else {\n this.eventSubscriptions[events[i]].push(callback);\n }\n }\n return this;\n },\n\n /**\n *\n * The .off() method removes event handlers that were attached with {@link #on}.<br>\n * Calling .off() with no arguments removes all handlers attached to the elements.<br>\n * <br>\n * If a simple event name such as \"move\" is provided, all events of that type are removed from the figure.\n *\n *\n * @param {String|Function} eventOrFunction the event name of the registerd function or the function itself\n * @since 5.0.0\n */\n off: function off(eventOrFunction) {\n if (typeof eventOrFunction === \"undefined\") {\n this.eventSubscriptions = {};\n } else if (typeof eventOrFunction === 'string') {\n this.eventSubscriptions[eventOrFunction] = [];\n } else {\n for (var event in this.eventSubscriptions) {\n this.eventSubscriptions[event] = this.eventSubscriptions[event].filter(function (callback) {\n if (typeof callback.___originalCallback !== \"undefined\") {\n return callback.___originalCallback !== eventOrFunction;\n }\n return callback !== eventOrFunction;\n });\n }\n }\n\n return this;\n },\n\n /**\n *\n * Returns the best figure at the location [x,y]. It is a simple hit test. Keep in mind that only visible objects\n * are returned.\n *\n * @param {Number} x The x position.\n * @param {Number} y The y position.\n * @param {draw2d.Figure|Array} [figureToIgnore] The figures which should be ignored.\n **/\n getBestChild: function getBestChild(x, y, figureToIgnore) {\n if (!Array.isArray(figureToIgnore)) {\n if (figureToIgnore instanceof _packages2.default.Figure) {\n figureToIgnore = [figureToIgnore];\n } else {\n figureToIgnore = [];\n }\n }\n\n var result = null;\n\n // tool method to check recursive a figure for hitTest\n //\n var checkRecursive = function checkRecursive(children) {\n children.each(function (i, e) {\n var c = e.figure;\n checkRecursive(c.children);\n if (result === null && c.isVisible() === true && c.hitTest(x, y) === true && $.inArray(c, figureToIgnore) === -1) {\n result = c;\n }\n return result === null; // break the each-loop if we found an element\n });\n };\n\n checkRecursive(this.children);\n\n return result;\n },\n\n /**\n *\n * Returns the Command to perform the specified Request or null.\n *\n * @param {draw2d.command.CommandType} request describes the Command being requested\n * @returns {draw2d.command.Command} null or a Command\n * @private\n **/\n createCommand: function createCommand(request) {\n if (request === null) {\n return null;\n }\n\n if (request.getPolicy() === _packages2.default.command.CommandType.MOVE) {\n if (!this.isDraggable()) {\n return null;\n }\n return new _packages2.default.command.CommandMove(this);\n }\n\n if (request.getPolicy() === _packages2.default.command.CommandType.DELETE) {\n if (!this.isDeleteable()) {\n return null;\n }\n return new _packages2.default.command.CommandDelete(this);\n }\n\n if (request.getPolicy() === _packages2.default.command.CommandType.RESIZE) {\n if (!this.isResizeable()) {\n return null;\n }\n return new _packages2.default.command.CommandResize(this);\n }\n\n return null;\n },\n\n /**\n *\n * Clone the figure. <br>\n * You must override and implement the methods <b>getPersistentAttributes</b> and <b>setPersistentAttributes</b> for your custom\n * figures if the have special attributes.\n *\n * The clone() method performs a deep copy of the object, meaning that it copies the children, ports and decorations\n * per default. You can control the clone procedure with the 'cloneMetaData'.\n *\n *\n * @param {Object} [cloneMetaData] controls the clone procedure\n * @param {Boolean} [cloneMetaData.excludeChildren] set it to true if you want exclude the children.\n *\n * @since 4.1.0\n * @experimental\n */\n clone: function clone(cloneMetaData) {\n cloneMetaData = (0, _extend2.default)({ excludeChildren: false }, cloneMetaData);\n\n var clone = eval(\"new \" + this.NAME + \"();\");\n var initialId = clone.id;\n\n clone.setPersistentAttributes(this.getPersistentAttributes());\n\n clone.id = initialId;\n\n // add all decorations to the memento\n //\n if (cloneMetaData.excludeChildren === false) {\n clone.resetChildren();\n this.children.each(function (i, entry) {\n var child = entry.figure.clone();\n // we can ignore the locator if this didn't provide a \"correct\" name, this can happen in some\n // Layout shapes like VerticalLayout or Horziontal Layout. This figures injects it own kind\n // of layouter...so didn'T care about this.\n\n var locator = entry.locator.NAME ? eval(\"new \" + entry.locator.NAME + \"();\") : null;\n clone.add(child, locator);\n });\n }\n\n return clone;\n },\n\n /**\n *\n * Return an objects with all important attributes for XML or JSON serialization\n *\n * @return {Object} all attributes of the figure required for the persistency\n */\n getPersistentAttributes: function getPersistentAttributes() {\n // force deep copy of userData to avoid side effects in the clone method.\n //\n var memento = {\n type: this.NAME,\n id: this.id,\n x: this.getX(),\n y: this.getY(),\n width: this.width,\n height: this.height,\n alpha: this.alpha,\n selectable: this.selectable,\n draggable: this.draggable,\n angle: this.rotationAngle,\n userData: (0, _extend2.default)(true, {}, this.userData)\n };\n\n if (this.cssClass !== null) {\n memento.cssClass = this.cssClass;\n }\n\n if (this.composite !== null) {\n memento.composite = this.composite.getId();\n }\n\n return memento;\n },\n\n /**\n *\n * Read all attributes from the serialized properties and transfer them into the shape.\n *\n * @param {Object} memento\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this.id = memento.id;\n this.setPosition(parseFloat(memento.x), parseFloat(memento.y));\n\n // width and height are optional parameter for the JSON stuff.\n // We use the defaults if the attributes not present\n if (typeof memento.width !== \"undefined\") {\n this.width = parseFloat(memento.width);\n }\n\n if (typeof memento.height !== \"undefined\") {\n this.height = parseFloat(memento.height);\n }\n\n if (typeof memento.userData !== \"undefined\") {\n this.userData = memento.userData;\n }\n\n if (typeof memento.selectable !== \"undefined\") {\n this.selectable = memento.selectable;\n }\n\n if (typeof memento.draggable !== \"undefined\") {\n this.draggable = memento.draggable;\n }\n\n if (typeof memento.cssClass !== \"undefined\") {\n this.setCssClass(memento.cssClass);\n }\n\n if (typeof memento.alpha !== \"undefined\") {\n this.setAlpha(parseFloat(memento.alpha));\n }\n\n if (typeof memento.angle !== \"undefined\") {\n this.rotationAngle = parseFloat(memento.angle);\n }\n\n return this;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/HeadlessCanvas.js\":\n/*!*******************************!*\\\n !*** ./src/HeadlessCanvas.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Required for Node.js draw2d model read/write operations.\n *\n * @inheritable\n * @author Andreas Herz\n */\n\n_packages2.default.HeadlessCanvas = Class.extend(\n/** @lends draw2d.HeadlessCanvas.prototype */\n\n/** @lends draw2d.HeadlessCanvas.prototype */\n{\n\n NAME: \"draw2d.HeadlessCanvas\",\n\n /**\n * Create a new canvas with the given HTML DOM references.\n *\n * @param {String} canvasId the id of the DOM element to use a parent container\n */\n init: function init() {\n // internal document with all figures, ports, ....\n //\n this.figures = new _packages2.default.util.ArrayList();\n this.lines = new _packages2.default.util.ArrayList(); // crap - why are connections not just figures. Design by accident\n this.commonPorts = new _packages2.default.util.ArrayList();\n\n this.eventSubscriptions = {};\n\n // The CommandStack for undo/redo operations\n //\n this.commandStack = new _packages2.default.command.CommandStack();\n },\n\n /**\n * \n * Reset the canvas and delete all model elements.<br>\n * You can now reload another model to the canvas with a {@link draw2d.io.Reader}\n *\n * @since 1.1.0\n */\n clear: function clear() {\n // internal document with all figures, ports, ....\n //\n this.figures = new _packages2.default.util.ArrayList();\n this.lines = new _packages2.default.util.ArrayList();\n this.commonPorts = new _packages2.default.util.ArrayList();\n\n this.commandStack.markSaveLocation();\n\n return this;\n },\n\n calculateConnectionIntersection: function calculateConnectionIntersection() {},\n\n /**\n * \n * Callback for any kind of image export tools to trigger the canvas to hide all unwanted\n * decorations. The method is called e.g. from the draw2d.io.png.Writer\n *\n * @since 4.0.0\n * @template\n */\n hideDecoration: function hideDecoration() {},\n\n /**\n * \n * callback method for any image export writer to reactivate the decoration\n * of the canvas. e.g. grids, rulers,...\n *\n *\n * @since 4.0.0\n * @template\n */\n showDecoration: function showDecoration() {},\n\n /**\n * \n * Add a figure at the given x/y coordinate. This method fires an event.\n *\n * Example:\n *\n * canvas.on(\"figure:add\", function(emitter, event){\n * alert(\"figure added:\");\n * });\n *\n * // or more general if you want catch all figure related events\n * //\n * canvas.on(\"figure\", function(emitter, event){\n * // use event.figure.getCanvas()===null to determine if the\n * // figure part of the canvas\n *\n * alert(\"figure added or removed:\");\n * });\n *\n * @param {draw2d.Figure} figure The figure to add.\n * @param {Number/draw2d.geo.Point} [x] The new x coordinate of the figure or the x/y coordinate if it is an draw2d.geo.Point\n * @param {Number} [y] The y position.\n **/\n add: function add(figure, x, y) {\n if (figure.getCanvas() === this) {\n return;\n }\n\n if (figure instanceof _packages2.default.shape.basic.Line) {\n this.lines.add(figure);\n } else {\n this.figures.add(figure);\n }\n figure.canvas = this;\n\n return this;\n },\n\n /**\n * \n * Returns all lines/connections in this workflow/canvas.<br>\n *\n * @protected\n * @returns {draw2d.util.ArrayList}\n **/\n getLines: function getLines() {\n return this.lines;\n },\n\n /**\n * \n * Returns the internal figures.<br>\n *\n * @protected\n * @returns {draw2d.util.ArrayList}\n **/\n getFigures: function getFigures() {\n return this.figures;\n },\n\n /**\n * \n * Returns the line or connection with the given id.\n *\n * @param {String} id The id of the line.\n *\n * @returns {draw2d.shape.basic.Line}\n **/\n getLine: function getLine(id) {\n var count = this.lines.getSize();\n for (var i = 0; i < count; i++) {\n var line = this.lines.get(i);\n if (line.getId() === id) {\n return line;\n }\n }\n return null;\n },\n\n /**\n * \n * Returns the figure with the given id.\n *\n * @param {String} id The id of the figure.\n * @returns {draw2d.Figure}\n **/\n getFigure: function getFigure(id) {\n var figure = null;\n this.figures.each(function (i, e) {\n if (e.id === id) {\n figure = e;\n return false;\n }\n });\n return figure;\n },\n\n /**\n * \n * Register a port to the canvas. This is required for other ports to find a valid drop target.\n *\n * @param {draw2d.Port} port The new port which has been added to the Canvas.\n **/\n registerPort: function registerPort(port) {\n // All elements have the same drop targets.\n //\n if (!this.commonPorts.contains(port)) {\n this.commonPorts.add(port);\n }\n\n return this;\n },\n\n /**\n * \n * Return all ports in the canvas\n *\n */\n getAllPorts: function getAllPorts() {\n return this.commonPorts;\n },\n\n /**\n * \n * Returns the command stack for the Canvas. Required for undo/redo support.\n *\n * @returns {draw2d.command.CommandStack}\n **/\n getCommandStack: function getCommandStack() {\n return this.commandStack;\n },\n\n // NEW EVENT HANDLING SINCE VERSION 5.0.0\n /**\n * \n * Execute all handlers and behaviors attached to the canvas for the given event type.\n *\n *\n * @param {String} event the event to trigger\n * @param {Object} [args] optional parameters for the triggered event callback\n *\n * @since 5.0.0\n */\n fireEvent: function fireEvent(event, args) {\n if (typeof this.eventSubscriptions[event] === 'undefined') {\n return;\n }\n\n var subscribers = this.eventSubscriptions[event];\n for (var i = 0; i < subscribers.length; i++) {\n try {\n subscribers[i](this, args);\n } catch (exc) {\n console.log(exc);\n console.log(subscribers[i]);\n debugger;\n }\n }\n },\n\n /**\n * \n * Attach an event handler function for one or more events to the canvas.\n * To remove events bound with .on(), see {@link #off}.\n *\n * possible events are:<br>\n * <ul>\n * <li>reset</li>\n * <li>select</li>\n * </ul>\n *\n * Example:\n *\n * canvas.on(\"clear\", function(emitter, event){\n * alert(\"canvas.clear() called.\");\n * });\n *\n * canvas.on(\"select\", function(emitter,event){\n * if(event.figure!==null){\n * alert(\"figure selected\");\n * }\n * else{\n * alert(\"selection cleared\");\n * }\n * });\n *\n * @param {String} event One or more space-separated event types\n * @param {Function} callback A function to execute when the event is triggered.\n * @param {draw2d.Canvas} callback.emitter the emitter of the event\n * @param {Object} [callback.obj] optional event related data\n *\n * @since 5.0.0\n */\n on: function on(event, callback) {\n var events = event.split(\" \");\n for (var i = 0; i < events.length; i++) {\n if (typeof this.eventSubscriptions[events[i]] === 'undefined') {\n this.eventSubscriptions[events[i]] = [];\n }\n this.eventSubscriptions[events[i]].push(callback);\n }\n return this;\n },\n\n /**\n * \n * The .off() method removes event handlers that were attached with {@link #on}.<br>\n * Calling .off() with no arguments removes all handlers attached to the canvas.<br>\n * <br>\n * If a simple event name such as \"reset\" is provided, all events of that type are removed from the canvas.\n *\n *\n * @param {String|Function} eventOrFunction the event name of the registerd function\n * @since 5.0.0\n */\n off: function off(eventOrFunction) {\n if (typeof eventOrFunction === \"undefined\") {\n this.eventSubscriptions = {};\n } else if (typeof eventOrFunction === 'string') {\n this.eventSubscriptions[eventOrFunction] = [];\n } else {\n for (var event in this.eventSubscriptions) {\n this.eventSubscriptions[event] = this.eventSubscriptions[event].filter(function (callback) {\n return callback !== eventOrFunction;\n });\n }\n }\n\n return this;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/HybridPort.js\":\n/*!***************************!*\\\n !*** ./src/HybridPort.js ***!\n \\***************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * A HybridPort can work as Input and as Output port in the same way for a {@link draw2d.Connection}.\n *\n * @author Andreas Herz\n * @extends draw2d.Port\n */\n_packages2.default.HybridPort = _packages2.default.Port.extend(\n/** @lends draw2d.HybridPort.prototype */\n{\n NAME: \"draw2d.HybridPort\",\n\n /**\n * Create a new HybridPort element\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n // responsive for the arrangement of the port\n // calculates the x/y coordinates in relation to the parent node\n this.locator = new _packages2.default.layout.locator.InputPortLocator();\n },\n\n /**\n * @param {draw2d.command.CommandType} request The requested operation to perform on the object\n * @returns {draw2d.command.Command} The matching command to the requested operation.\n */\n createCommand: function createCommand(request) {\n // Connect request between two ports\n //\n if (request.getPolicy() === _packages2.default.command.CommandType.CONNECT) {\n\n if (request.source.getParent().getId() === request.target.getParent().getId()) {\n return null;\n }\n\n if (request.source instanceof _packages2.default.InputPort) {\n // This is the difference to the InputPort implementation of createCommand.\n return new _packages2.default.command.CommandConnect(request.target, request.source, request.source);\n } else if (request.source instanceof _packages2.default.OutputPort) {\n // This is the different to the OutputPort implementation of createCommand\n return new _packages2.default.command.CommandConnect(request.source, request.target, request.source);\n } else if (request.source instanceof _packages2.default.HybridPort) {\n // This is the different to the OutputPort implementation of createCommand\n return new _packages2.default.command.CommandConnect(request.target, request.source, request.source);\n }\n\n return null;\n }\n\n // ...else call the base class\n return this._super(request);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/InputPort.js\":\n/*!**************************!*\\\n !*** ./src/InputPort.js ***!\n \\**************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * A InputPort is the start anchor for a {@link draw2d.Connection}.\n *\n * @author Andreas Herz\n * @extend draw2d.Port\n */\n_packages2.default.InputPort = _packages2.default.Port.extend(\n/** @lends draw2d.InputPort.prototype */\n{\n\n NAME: \"draw2d.InputPort\",\n\n /**\n * Create a new InputPort element\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n // responsive for the arrangement of the port\n // calculates the x/y coordinates in relation to the parent node\n this.locator = new _packages2.default.layout.locator.InputPortLocator();\n },\n\n /**\n * @inheritdoc\n */\n createCommand: function createCommand(request) {\n // Connect request between two ports\n //\n if (request.getPolicy() === _packages2.default.command.CommandType.CONNECT) {\n return new _packages2.default.command.CommandConnect(request.source, request.target, request.source);\n }\n\n // ...else call the base class\n return this._super(request);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/OutputPort.js\":\n/*!***************************!*\\\n !*** ./src/OutputPort.js ***!\n \\***************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * A OutputPort is the start anchor for a {@link draw2d.Connection}.\n *\n * @author Andreas Herz\n * @extends draw2d.Port\n */\n_packages2.default.OutputPort = _packages2.default.Port.extend(\n/** @lends draw2d.OutputPort.prototype */\n{\n\n NAME: \"draw2d.OutputPort\",\n\n /**\n * Create a new OutputPort element\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n // responsive for the arrangement of the port\n // calculates the x/y coordinates in relation to the parent node\n this.locator = new _packages2.default.layout.locator.OutputPortLocator();\n },\n\n /**\n * @inheritdoc\n */\n createCommand: function createCommand(request) {\n // Connect request between two ports\n //\n if (request.getPolicy() === _packages2.default.command.CommandType.CONNECT) {\n // source and target are changed.\n return new _packages2.default.command.CommandConnect(request.target, request.source, request.source);\n }\n\n // ...else call the base class\n return this._super(request);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/Port.js\":\n/*!*********************!*\\\n !*** ./src/Port.js ***!\n \\*********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ./util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * A port is an object that is used to establish a connection between a node and a {@link draw2d.Connection}. The port can\n * be placed anywhere within a node ( see {@link draw2d.layout.locator.PortLocator} for details)\n *\n *\n * @author Andreas Herz\n * @param {Object} [attr] the configuration of the shape\n * @extends draw2d.shape.basic.Circle\n */\n\n_packages2.default.Port = _packages2.default.shape.basic.Circle.extend(\n/** @lends draw2d.Port.prototype */\n{\n\n NAME: \"draw2d.Port\",\n\n DEFAULT_BORDER_COLOR: new _packages2.default.util.Color(\"#1B1B1B\"),\n\n init: function init(attr, setter, getter) {\n var _this2 = this;\n\n this.locator = null;\n this.lighterBgColor = null;\n this.name = null;\n this.coronaWidth = 5; // the corona width for the hitTest method. Useful during drag&drop of ports. Better SnapTo behavior.\n\n this._super((0, _extend2.default)({\n bgColor: \"#4f6870\",\n stroke: 1,\n diameter: 10,\n color: \"#1B1B1B\",\n selectable: false\n }, attr), (0, _extend2.default)({\n coronaWidth: this.setCoronaWidth,\n semanticGroup: this.setSemanticGroup\n }, setter), (0, _extend2.default)({\n coronaWidth: this.getCoronaWidth,\n semanticGroup: this.getSemanticGroup\n }, getter));\n\n // status vars for user interaction\n //\n this.ox = this.x;\n this.oy = this.y;\n this.corona = null; // draw2d.shape.basic.Circle\n this.useGradient = true;\n\n this.preferredConnectionDirection = null;\n\n // current attached connections\n this.connections = new _packages2.default.util.ArrayList();\n\n this.moveListener = function (emitter, event) {\n _this2.repaint();\n // Falls sich der parent bewegt hat, dann muss der Port dies seinen\n // Connections mitteilen\n _this2.fireEvent(\"move\", { figure: _this2, dx: 0, dy: 0 });\n };\n\n this.connectionAnchor = new _packages2.default.layout.anchor.ConnectionAnchor(this);\n\n // for dynamic diagrams. A Port can have a value which is set by a connector\n //\n this.value = null;\n this.maxFanOut = Number.MAX_SAFE_INTEGER;\n\n // semantic group. Only ports in the same semantic group can be connected\n //\n this.semanticGroup = \"global\";\n\n this.setCanSnapToHelper(false);\n\n // uninstall all default selection policies. This is not required for Ports\n this.editPolicy.each(function (i, policy) {\n return _this2.uninstallEditPolicy(policy);\n });\n\n this.installEditPolicy(new _packages2.default.policy.port.IntrusivePortsFeedbackPolicy());\n // this.installEditPolicy(new draw2d.policy.port.ElasticStrapFeedbackPolicy());\n\n // a port handles the selection handling always by its own regardless if\n // the port is part of an composite, node, group or whatever.\n this.portSelectionAdapter = function () {\n return _this2;\n };\n },\n\n getSelectionAdapter: function getSelectionAdapter() {\n return this.portSelectionAdapter;\n },\n\n /**\n *\n * set the maximal possible count of connections for this port.<br>\n * This method din't delete any connection if you reduce the number and a bunch of\n * connection are bounded already.\n *\n * @param {Number} count the maximal number of connection related to this port\n * @returns {this}\n */\n setMaxFanOut: function setMaxFanOut(count) {\n this.maxFanOut = Math.max(1, count);\n this.fireEvent(\"change:maxFanOut\", { value: this.maxFanOut });\n\n return this;\n },\n\n /**\n *\n * return the maximal possible connections (in+out) for this port.\n *\n * @returns {Number}\n */\n getMaxFanOut: function getMaxFanOut() {\n return this.maxFanOut;\n },\n\n /**\n *\n * Set the semantic group of this port. Only ports in the same semantic group\n * can be connected.\n *\n * The default for all ports is \"global\"\n *\n * @param {String} group the semantic group of this port\n * @returns {this}\n */\n setSemanticGroup: function setSemanticGroup(group) {\n this.semanticGroup = group;\n this.fireEvent(\"change:semanticGroup\", { value: this.semanticGroup });\n\n return this;\n },\n\n /**\n *\n * Get the semantic group of this port. Only ports in the same semantic group\n * can be connected.\n *\n * The default for all ports is \"global\"\n *\n * @returns {String}\n */\n getSemanticGroup: function getSemanticGroup() {\n return this.semanticGroup;\n },\n\n /**\n *\n * Set the Anchor for this object. An anchor is responsible for the endpoint calculation\n * of an connection. just visible representation.\n *\n * @param {draw2d.layout.anchor.ConnectionAnchor} [anchor] the new source anchor for the connection or \"null\" to use the default anchor.\n * @returns {this}\n **/\n setConnectionAnchor: function setConnectionAnchor(anchor) {\n // set some good defaults.\n if (typeof anchor === \"undefined\" || anchor === null) {\n anchor = new _packages2.default.layout.anchor.ConnectionAnchor();\n }\n\n this.connectionAnchor = anchor;\n this.connectionAnchor.setOwner(this);\n\n // the anchor has changed. In this case all connections needs an change event to recalculate\n // the anchor and the routing itself\n this.fireEvent(\"move\", { figure: this, dx: 0, dy: 0 });\n\n return this;\n },\n\n getConnectionAnchorLocation: function getConnectionAnchorLocation(referencePoint, inquiringConnection) {\n return this.connectionAnchor.getLocation(referencePoint, inquiringConnection);\n },\n\n getConnectionAnchorReferencePoint: function getConnectionAnchorReferencePoint(inquiringConnection) {\n return this.connectionAnchor.getReferencePoint(inquiringConnection);\n },\n\n /**\n *\n * Returns the **direction** for the connection in relation to the given port and it's parent.\n *\n * <p>\n * Possible values:\n * <ul>\n * <li>draw2d.geo.Rectangle.DIRECTION_UP</li>\n * <li>draw2d.geo.Rectangle.DIRECTION_RIGHT</li>\n * <li>draw2d.geo.Rectangle.DIRECTION_DOWN</li>\n * <li>draw2d.geo.Rectangle.DIRECTION_LEFT</li>\n * </ul>\n * <p>\n *\n * @param {draw2d.Port} peerPort the counterpart port\n *\n * @returns {Number} the direction.\n */\n getConnectionDirection: function getConnectionDirection(peerPort) {\n // return the calculated connection direction if the port didn't have set any\n //\n if (typeof this.preferredConnectionDirection === \"undefined\" || this.preferredConnectionDirection === null) {\n return this.getParent().getBoundingBox().getDirection(this.getAbsolutePosition());\n }\n\n return this.preferredConnectionDirection;\n },\n\n /**\n *\n * Set the **direction** for the connection in relation to the given port and it's parent.\n *\n * <p>\n * Possible values:\n * <ul>\n * <li>up -> 0</li>\n * <li>right -> 1</li>\n * <li>down -> 2</li>\n * <li>left -> 3</li>\n * <li>calculated -> null</li>\n * </ul>\n * <p>\n *\n * @since 5.2.1\n * @param {Number} direction the preferred connection direction.\n * @returns {this}\n */\n setConnectionDirection: function setConnectionDirection(direction) {\n this.preferredConnectionDirection = direction;\n\n // needs an change event to recalculate the route\n this.fireEvent(\"move\", { figure: this, dx: 0, dy: 0 });\n\n return this;\n },\n\n /**\n *\n * Set the locator/layouter of the port. A locator is responsive for the x/y arrangement of the\n * port in relation to the parent node.\n *\n * @param {draw2d.layout.locator.Locator} locator\n * @returns {this}\n */\n setLocator: function setLocator(locator) {\n this.locator = locator;\n\n return this;\n },\n\n /**\n *\n * Get the locator/layouter of the port. A locator is responsive for the x/y arrangement of the\n * port in relation to the parent node.\n *\n * @since 4.2.0\n */\n getLocator: function getLocator() {\n return this.locator;\n },\n\n /**\n *\n * Set the new background color of the figure. It is possible to hands over\n * <code>null</code> to set the background transparent.\n *\n * @param {draw2d.util.Color|String} color The new background color of the figure\n * @returns {this}\n **/\n setBackgroundColor: function setBackgroundColor(color) {\n this.lighterBgColor = new _packages2.default.util.Color(color).lighter(0.3).rgba();\n this._super(color);\n\n return this;\n },\n\n /**\n *\n * Set a value for the port. This is useful for interactive/dynamic diagrams like circuits, simulator,...\n *\n * @param {Object} value the new value for the port\n * @returns {this}\n */\n setValue: function setValue(value) {\n\n if (value === this.value) {\n return this;\n }\n var old = this.value;\n this.value = value;\n if (this.getParent() !== null) {\n this.getParent().onPortValueChanged(this);\n }\n this.fireEvent(\"change:value\", { value: this.value, old: old });\n\n return this;\n },\n\n /**\n *\n * Return the user defined value of the port.\n *\n * @returns {Object}\n */\n getValue: function getValue() {\n return this.value;\n },\n\n /**\n * @private\n */\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n attributes = attributes || {};\n\n // a port did have the 0/0 coordinate in the center and not in the top/left corner\n //\n attributes.cx = this.getAbsoluteX();\n attributes.cy = this.getAbsoluteY();\n attributes.rx = this.width / 2;\n attributes.ry = attributes.rx;\n attributes.cursor = \"move\";\n\n if (this.getAlpha() < 0.9 || this.useGradient === false) {\n attributes.fill = this.bgColor.rgba();\n } else {\n attributes.fill = [\"90\", this.bgColor.hash(), this.lighterBgColor].join(\"-\");\n }\n\n this._super(attributes);\n },\n\n /**\n * @inheritdoc\n *\n **/\n onMouseEnter: function onMouseEnter() {\n this._oldstroke = this.getStroke();\n this.setStroke(2);\n },\n\n /**\n * @inheritdoc\n *\n **/\n onMouseLeave: function onMouseLeave() {\n this.setStroke(this._oldstroke);\n },\n\n /**\n *\n * Returns a {@link draw2d.util.ArrayList} of {@link draw2d.Connection}s of all related connections to this port.\n *\n * @returns {draw2d.util.ArrayList}\n **/\n getConnections: function getConnections() {\n return this.connections;\n },\n\n /**\n * @private\n */\n setParent: function setParent(parent) {\n if (this.parent !== null) {\n this.parent.off(this.moveListener);\n }\n\n this._super(parent);\n\n if (this.parent !== null) {\n this.parent.on(\"move\", this.moveListener);\n }\n },\n\n /**\n *\n * Returns the corona width of the Port. The corona width will be used during the\n * drag&drop of a port.\n *\n * @returns {Number}\n **/\n getCoronaWidth: function getCoronaWidth() {\n return this.coronaWidth;\n },\n\n /**\n *\n * Set the corona width of the Port. The corona width will be used during the\n * drag&drop of a port. You can drop a port in the corona of this port to create\n * a connection. It is not necessary to drop exactly on the port.\n *\n * @param {Number} width The new corona width of the port\n * @returns {this}\n **/\n setCoronaWidth: function setCoronaWidth(width) {\n this.coronaWidth = width;\n\n return this;\n },\n\n /**\n * @inheritdoc\n *\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @returns {Boolean}\n * @private\n **/\n onDragStart: function onDragStart(x, y, shiftKey, ctrlKey) {\n // just allow the DragOperation if the port didn't have reached the max fanOut\n // limit.\n if (this.getConnections().getSize() >= this.maxFanOut) {\n return false;\n }\n\n var _this = this;\n\n // this.getShapeElement().insertAfter(this.parent.getShapeElement());\n // don't call the super method. This creates a command and this is not necessary for a port\n this.ox = this.x;\n this.oy = this.y;\n\n var canStartDrag = true;\n\n // notify all installed policies\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n // DragStart operation can send a veto for the dragStart\n // @since 6.1.0\n canStartDrag = canStartDrag && e.onDragStart(_this.canvas, _this, x, y, shiftKey, ctrlKey);\n }\n });\n\n return canStartDrag;\n },\n\n /**\n * @inheritdoc\n *\n * @param {Number} dx the x difference between the start of the drag drop operation and now\n * @param {Number} dy the y difference between the start of the drag drop operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n *\n * @private\n **/\n onDrag: function onDrag(dx, dy, dx2, dy2, shiftKey, ctrlKey) {\n // TODO: warum wurde diese methode überschrieben?!\n this._super(dx, dy);\n },\n\n /**\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @private\n **/\n onDragEnd: function onDragEnd(x, y, shiftKey, ctrlKey) {\n // Don't call the parent implementation. This will create an CommandMove object\n // and store them o the CommandStack for the undo operation. This makes no sense for a\n // port.\n // draw2d.shape.basic.Rectangle.prototype.onDragEnd.call(this); DON'T call the super implementation!!!\n\n this.setAlpha(1.0);\n\n // 1.) Restore the old Position of the node\n //\n this.setPosition(this.ox, this.oy);\n },\n\n /**\n *\n * Called if the user drop this element onto the dropTarget\n *\n * @param {draw2d.Figure} dropTarget The drop target.\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @@private\n **/\n onDrop: function onDrop(dropTarget, x, y, shiftKey, ctrlKey) {},\n\n /**\n *\n * Callback method if a new connection has created with this port\n *\n * // Alternatively you register for this event with:\n * port.on(\"connect\", function(emitterPort, connection){\n * alert(\"port connected\");\n * });\n *\n * @param {draw2d.Connection} connection The connection which has been created\n * @since 2.5.1\n *\n * @template\n **/\n onConnect: function onConnect(connection) {},\n\n /**\n *\n * Callback method if a new connection has created with this port\n *\n * // Alternatively you register for this event with:\n * port.on(\"connect\", function(emitterPort, connection){\n * alert(\"port disconnected\");\n * });\n *\n * @param {draw2d.Connection} connection The connection which has been deleted\n * @since 2.5.1\n *\n * @template\n **/\n onDisconnect: function onDisconnect(connection) {},\n\n /**\n *\n * Return the name of this port.\n *\n * @returns {String}\n **/\n getName: function getName() {\n return this.name;\n },\n\n /**\n *\n * Set the name of this port. The name of the port can be referenced by the lookup of\n * ports in the node.\n *\n *\n * @param {String} name The new name of this port.\n * @returns {this}\n **/\n setName: function setName(name) {\n this.name = name;\n\n return this;\n },\n\n /**\n *\n * Hit test for ports. This method respect the corona diameter of the port for the hit test.\n * The corona width can be set with {@link draw2d.Port#setCoronaWidth}\n *\n * @param {Number} iX\n * @param {Number} iY\n * @param {Number} [corona]\n * @returns {Boolean}\n */\n hitTest: function hitTest(iX, iY, corona) {\n var x = this.getAbsoluteX() - this.coronaWidth - this.getWidth() / 2;\n var y = this.getAbsoluteY() - this.coronaWidth - this.getHeight() / 2;\n var iX2 = x + this.getWidth() + this.coronaWidth * 2;\n var iY2 = y + this.getHeight() + this.coronaWidth * 2;\n\n return iX >= x && iX <= iX2 && iY >= y && iY <= iY2;\n },\n\n /**\n *\n * Highlight this port\n *\n * @param {Boolean} flag indicator if the figure should glow.\n * @returns {this}\n */\n setGlow: function setGlow(flag) {\n if (flag === true && this.corona === null) {\n this.corona = new _packages2.default.Corona();\n this.corona.setDimension(this.getWidth() + this.getCoronaWidth() * 2, this.getWidth() + this.getCoronaWidth() * 2);\n this.corona.setPosition(this.getAbsoluteX() - this.getCoronaWidth() - this.getWidth() / 2, this.getAbsoluteY() - this.getCoronaWidth() - this.getHeight() / 2);\n\n this.corona.setCanvas(this.getCanvas());\n\n // important inital\n this.corona.getShapeElement();\n this.corona.repaint();\n } else if (flag === false && this.corona !== null) {\n this.corona.setCanvas(null);\n this.corona = null;\n }\n\n return this;\n },\n\n /**\n *\n * Set the diameter of the port. The center of the circle will be retained.\n *\n * @param {Number} d The new diameter of the circle.\n * @since 4.0.0\n * @returns {this}\n **/\n setDiameter: function setDiameter(d) {\n //let center = this.getCenter()\n this.setDimension(d, d);\n // the port has its center in the middle. In this case there is no need to shift the center of the circle\n // like it is done in the base implementation.\n //this.setCenter(center)\n this.fireEvent(\"change:diameter\", { value: d });\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n createCommand: function createCommand(request) {\n // the port has its own implementation of the CommandMove\n //\n if (request.getPolicy() === _packages2.default.command.CommandType.MOVE) {\n if (!this.isDraggable()) {\n return null;\n }\n return new _packages2.default.command.CommandMovePort(this);\n }\n\n return null;\n },\n\n /**\n *\n * Called from the figure itself when any position changes happens. All listener\n * will be informed.\n * <br>\n * DON'T fire this event if the Port is during a Drag&Drop operation. This can happen\n * if we try to connect two ports\n *\n * @private\n **/\n fireEvent: function fireEvent(event, args) {\n if (this.isInDragDrop === true && event !== \"drag\") {\n return;\n }\n\n this._super(event, args);\n },\n\n /**\n *\n * Return an objects with all important attributes for XML or JSON serialization\n *\n * @return {Object} all attributes required for the persistency\n */\n getPersistentAttributes: function getPersistentAttributes() {\n var memento = this._super();\n\n memento.maxFanOut = this.maxFanOut;\n memento.name = this.name;\n memento.semanticGroup = this.semanticGroup;\n\n // defined by the locator. Don't persist\n //\n delete memento.x;\n delete memento.y;\n\n // ports didn't have children ports. In this case we\n // delete this attribute as well to avoid confusions.\n //\n delete memento.ports;\n\n return memento;\n },\n\n /**\n *\n * Read all attributes from the serialized properties and transfer them into the shape.\n *\n * @param {Object} memento\n * @returns {this}\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this._super(memento);\n\n if (typeof memento.maxFanOut !== \"undefined\") {\n // Big bug in the past.\n // I used Number.MAX_VALUE as maxFanOut which is 1.7976931348623157e+308\n // parseInt creates \"1\" during the reading of the JSON - which is crap.\n // BIG BIG BUG!!! my fault.\n // Now check if the memento.maxFanOut is a number and take this without crappy parsing.\n if (typeof memento.maxFanOut === \"number\") {\n this.maxFanOut = memento.maxFanOut;\n } else {\n this.maxFanOut = Math.max(1, parseInt(memento.maxFanOut));\n }\n }\n\n if (typeof memento.name !== \"undefined\") {\n this.setName(memento.name);\n }\n\n if (typeof memento.semanticGroup !== \"undefined\") {\n this.setSemanticGroup(memento.semanticGroup);\n }\n\n return this;\n }\n});\n\n/**\n * @class\n * Glow effect for ports. Just for internal use.\n *\n * @private\n * @extend draw2d.shape.basic.Circle\n */\n_packages2.default.Corona = _packages2.default.shape.basic.Circle.extend(\n/** @lends draw2d.shape.basic.Circle.prototype */\n{\n\n init: function init() {\n this._super();\n this.setAlpha(0.3);\n this.setBackgroundColor(new _packages2.default.util.Color(178, 225, 255));\n this.setColor(new _packages2.default.util.Color(102, 182, 252));\n },\n\n /**\n *\n * the the opacity of the element.\n *\n * @param {Number} percent\n */\n setAlpha: function setAlpha(percent) {\n this._super(Math.min(0.3, percent));\n this.setDeleteable(false);\n this.setDraggable(false);\n this.setResizeable(false);\n this.setSelectable(false);\n\n return this;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/ResizeHandle.js\":\n/*!*****************************!*\\\n !*** ./src/ResizeHandle.js ***!\n \\*****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ./util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * The Resizehandles for Figures.\n\n * <pre>\n * Possible Type:\n *\n * 1 2 3\n * O-----------O-------------O\n * | |\n * | |\n * 8 O + 9 O 4\n * | |\n * | |\n * O-----------O-------------O\n * 7 6 5\n * </pre>\n *\n * @author Andreas Herz\n * @extends draw2d.shape.basic.Rectangle\n */\n_packages2.default.ResizeHandle = _packages2.default.shape.basic.Rectangle.extend(\n/** @lends draw2d.ResizeHandle.prototype */\n{\n\n NAME: \"draw2d.ResizeHandle\",\n\n /**\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {draw2d.Figure} the owner if the resize handle\n * @param {Number} type the type of the ResizeHandle.\n */\n init: function init(attr, setter, getter) {\n var _this = this;\n\n this.zoomCallback = function () {\n _this.attr({\n width: _this.origWidth * _this.getCanvas().getZoom(),\n height: _this.origHeight * _this.getCanvas().getZoom(),\n radius: _this.origRadius * _this.getCanvas().getZoom(),\n stroke: _this.origStroke * _this.getCanvas().getZoom()\n });\n\n // size of the ResizeHandle has changed. Force a reposition of handle\n //\n if (!_this.blockEvent) _this.owner.fireEvent(\"move\", {});\n };\n\n this._super((0, _extend2.default)({\n // set some good defaults\n bgColor: \"#FDFDFD\",\n stroke: 0.5,\n width: 10,\n height: 10,\n minWidth: 0.3,\n minHeight: 0.3,\n color: \"#a0a0a0\",\n radius: 1,\n selectable: false\n // and allow to override them\n }, attr), (0, _extend2.default)({\n owner: this.setOwner,\n type: this.setType\n }, setter), (0, _extend2.default)({\n owner: this.getOwner,\n type: this.getType\n }, getter));\n\n // required in the SelectionEditPolicy to indicate the type of figure\n // which the user clicks\n this.isResizeHandle = true;\n\n this.command = null;\n this.commandMove = null;\n this.commandResize = null;\n this.useGradient = true;\n\n this.origRadius = this.radius;\n this.origWidth = this.width;\n this.origHeight = this.height;\n this.origStroke = this.stroke;\n },\n\n /**\n *\n * The edge of the rectangle for the snapTo mechanism.\n *\n * @return {draw2d.SnapToHelper} enum of the direction (NORTH, NORTH_WEST, EAST,...)\n */\n getSnapToDirection: function getSnapToDirection() {\n switch (this.type) {\n case 1:\n return _packages2.default.SnapToHelper.NORTH_WEST;\n case 2:\n return _packages2.default.SnapToHelper.NORTH;\n case 3:\n return _packages2.default.SnapToHelper.NORTH_EAST;\n case 4:\n return _packages2.default.SnapToHelper.EAST;\n case 5:\n return _packages2.default.SnapToHelper.SOUTH_EAST;\n case 6:\n return _packages2.default.SnapToHelper.SOUTH;\n case 7:\n return _packages2.default.SnapToHelper.SOUTH_WEST;\n case 8:\n return _packages2.default.SnapToHelper.WEST;\n case 9:\n return _packages2.default.SnapToHelper.NSEW;\n default:\n return _packages2.default.SnapToHelper.EAST;\n }\n },\n\n /**\n * @inheritdoc\n */\n createShapeElement: function createShapeElement() {\n this.shape = this._super();\n\n this.shape.node.setAttribute(\"type\", this.type);\n this.updateCursor(this.shape);\n\n return this.shape;\n },\n\n /**\n *\n * Returns the current used SVG as string\n *\n * @returns {String}\n */\n getOwner: function getOwner() {\n return this.owner;\n },\n\n setOwner: function setOwner(owner) {\n this.owner = owner;\n\n return this;\n },\n\n /**\n *\n * Returns the current used SVG as string\n *\n * @returns {String}\n */\n getType: function getType() {\n return this.type;\n },\n\n setType: function setType(type) {\n this.type = type;\n\n return this;\n },\n\n /**\n *\n * calculate and set the cursor of the reize handle\n * @private\n */\n updateCursor: function updateCursor(shape) {\n if (shape === null) {\n return this;\n }\n\n if (this.isDraggable() === false) {\n shape.attr({ \"cursor\": \"default\" });\n return this;\n }\n\n switch (this.type) {\n case 1:\n shape.attr({ \"cursor\": \"nw-resize\" });\n break;\n case 2:\n shape.attr({ \"cursor\": \"n-resize\" });\n break;\n case 3:\n shape.attr({ \"cursor\": \"ne-resize\" });\n break;\n case 4:\n shape.attr({ \"cursor\": \"e-resize\" });\n break;\n case 5:\n shape.attr({ \"cursor\": \"se-resize\" });\n break;\n case 6:\n shape.attr({ \"cursor\": \"s-resize\" });\n break;\n case 7:\n shape.attr({ \"cursor\": \"sw-resize\" });\n break;\n case 8:\n shape.attr({ \"cursor\": \"w-resize\" });\n break;\n default:\n shape.attr({ \"cursor\": \"move\" });\n break;\n }\n return this;\n },\n\n /**\n *\n * Adjust the draggable flag of the resize handle and update the cursor of the shape in relation\n * to the type of resize handle. north, south,west,..\n *\n * @param flag\n * @returns {this}\n */\n setDraggable: function setDraggable(flag) {\n this._super(flag);\n this.updateCursor(this.shape);\n\n return this;\n },\n\n /**\n *\n * Will be called if the drag and drop action beginns. You can return [false] if you\n * want avoid that the figure can be move.\n *\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @returns {Boolean} true whenever the drag drop operation is allowed.\n **/\n onDragStart: function onDragStart(x, y, shiftKey, ctrlKey) {\n // This happens if the selected figure has set the \"nonResizeable\" flag\n // In this case the ResizeHandle can't be dragged. => no resize\n //\n if (!this.isDraggable()) {\n return false;\n }\n\n this.ox = this.getAbsoluteX();\n this.oy = this.getAbsoluteY();\n\n this.commandMove = this.owner.createCommand(new _packages2.default.command.CommandType(_packages2.default.command.CommandType.MOVE));\n this.commandResize = this.owner.createCommand(new _packages2.default.command.CommandType(_packages2.default.command.CommandType.RESIZE));\n\n return true;\n },\n\n /**\n *\n * Called by the framework if the figure is moved by user interaction.\n *\n * @param {Number} dx the move x offset\n * @param {Number} dy the move y offset\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n *\n */\n onDrag: function onDrag(dx, dy, dx2, dy2) {\n if (this.isDraggable() === false) {\n return;\n }\n\n var oldX = this.getAbsoluteX();\n var oldY = this.getAbsoluteY();\n\n // call the super.drag method with all snapTo### handler and adjustments\n this._super(dx, dy, dx2, dy2);\n\n var diffX = this.getAbsoluteX() - oldX;\n var diffY = this.getAbsoluteY() - oldY;\n\n var obj = this.owner;\n var objPosX = obj.getAbsoluteX();\n var objPosY = obj.getAbsoluteY();\n var objWidth = obj.getWidth();\n var objHeight = obj.getHeight();\n\n var newX = null;\n var newY = null;\n var corrPos = null;\n switch (this.type) {\n case 1:\n obj.setDimension(objWidth - diffX, objHeight - diffY);\n newX = objPosX + (objWidth - obj.getWidth());\n newY = objPosY + (objHeight - obj.getHeight());\n obj.setPosition(newX, newY);\n break;\n case 2:\n obj.setDimension(objWidth, objHeight - diffY);\n newX = objPosX;\n newY = objPosY + (objHeight - obj.getHeight());\n obj.setPosition(newX, newY);\n break;\n case 3:\n obj.setDimension(objWidth + diffX, objHeight - diffY);\n newX = objPosX;\n newY = objPosY + (objHeight - obj.getHeight());\n obj.setPosition(newX, newY);\n break;\n case 4:\n obj.setDimension(objWidth + diffX, objHeight);\n break;\n case 5:\n obj.setDimension(objWidth + diffX, objHeight + diffY);\n break;\n case 6:\n obj.setDimension(objWidth, objHeight + diffY);\n break;\n case 7:\n obj.setDimension(objWidth - diffX, objHeight + diffY);\n newX = objPosX + (objWidth - obj.getWidth());\n newY = objPosY;\n obj.setPosition(newX, newY);\n break;\n case 8:\n obj.setDimension(objWidth - diffX, objHeight);\n newX = objPosX + (objWidth - obj.getWidth());\n newY = objPosY;\n obj.setPosition(newX, newY);\n break;\n }\n\n if (newX !== null) {\n // may the setPosition has changed regarding any constraint or edit policies. In this case\n // we must adjust the dimension with the related correction\n //\n corrPos = obj.getPosition();\n if (corrPos.x !== newX || corrPos.y !== newY) {\n obj.setDimension(obj.getWidth() - (corrPos.x - newX), obj.getHeight() - (corrPos.y - newY));\n }\n }\n },\n\n /**\n *\n * Will be called after a drag and drop action.<br>\n *\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @private\n **/\n onDragEnd: function onDragEnd(x, y, shiftKey, ctrlKey) {\n if (!this.isDraggable()) {\n return;\n }\n\n // An non draggable resizeHandle doesn't create a move/resize command.\n // This happens if the selected figure has set the \"nonResizeable\" flag.\n //\n if (this.commandMove !== null) {\n this.commandMove.setPosition(this.owner.getX(), this.owner.getY());\n this.canvas.getCommandStack().execute(this.commandMove);\n this.commandMove = null;\n }\n\n if (this.commandResize !== null) {\n this.commandResize.setDimension(this.owner.getWidth(), this.owner.getHeight());\n this.canvas.getCommandStack().execute(this.commandResize);\n this.commandResize = null;\n }\n },\n\n /**\n * Set the position of the object.<br>\n * The ResizeHandle overrides the Figure.setPosition method. The base\n * class updates the resize handles during the update of the Dimension/Position. This\n * is not neccessary for the ResizeHandles. Performance issue.\n *\n * @param {Number|draw2d.geo.Point} x The new x coordinate of the figure\n * @param {Number} y The new y coordinate of the figure\n **/\n setPosition: function setPosition(x, y) {\n // don't call base implementation. Base implementation will show\n // ResizeHandles...but I'm the ResizeHandle\n if (x instanceof _packages2.default.geo.Point) {\n this.x = x.x;\n this.y = x.y;\n } else {\n this.x = x;\n this.y = y;\n }\n\n if (this.repaintBlocked === true || this.shape === null) {\n return this;\n }\n\n // performance improvement by setting the coordinates direct.\n this.shape.attr({ x: this.x, y: this.y });\n\n this.applyTransformation();\n },\n\n /**\n *\n * Set the new dimension of the the ResizeHandle. If you didn't pass any width/height the best default for the\n * platform will be used.\n *\n * Additional the \"snapTo\" anchor is re-calculated in relation to the type of ResizeHandle\n *\n * @param {Number} [width] new width of the resize handle\n * @param {Number} [height] new width of the resize handle\n */\n setDimension: function setDimension(width, height) {\n\n if (typeof height !== \"undefined\") {\n this._super(width, height);\n } else {\n if (_packages2.default.isTouchDevice) {\n this._super(15, 15);\n } else {\n this._super(8, 8);\n }\n }\n\n var offset = this.getWidth();\n var offset2 = offset / 2;\n\n switch (this.type) {\n case 1:\n this.setSnapToGridAnchor(new _packages2.default.geo.Point(offset, offset));\n break;\n case 2:\n this.setSnapToGridAnchor(new _packages2.default.geo.Point(offset2, offset));\n break;\n case 3:\n this.setSnapToGridAnchor(new _packages2.default.geo.Point(0, offset));\n break;\n case 4:\n this.setSnapToGridAnchor(new _packages2.default.geo.Point(0, offset2));\n break;\n case 5:\n this.setSnapToGridAnchor(new _packages2.default.geo.Point(0, 0));\n break;\n case 6:\n this.setSnapToGridAnchor(new _packages2.default.geo.Point(offset2, 0));\n break;\n case 7:\n this.setSnapToGridAnchor(new _packages2.default.geo.Point(offset, 0));\n break;\n case 8:\n this.setSnapToGridAnchor(new _packages2.default.geo.Point(offset, offset2));\n break;\n case 9:\n this.setSnapToGridAnchor(new _packages2.default.geo.Point(offset2, offset2));\n break;\n }\n\n return this;\n },\n\n /**\n *\n * Show the ResizeHandle and add it to the canvas.<br>\n * Additional bring it in to the front of other figures if we didn't use\n * an overlayCanvas.\n *\n * If the ResizeHandle is place inside an overlayCanvas it is automatically on top.\n *\n * @param {draw2d.Canvas} canvas the canvas to use\n **/\n show: function show(canvas) {\n // don't call the parent function. The parent functions delete this object\n // and a resize handle can't be deleted.\n this.setCanvas(canvas);\n\n this.canvas.resizeHandles.add(this);\n this.shape.insertAfter(this.owner.getShapeElement());\n\n try {\n this.blockEvent = true;\n this.zoomCallback();\n } finally {\n this.blockEvent = false;\n }\n this.repaint();\n\n return this;\n },\n\n /**\n *\n * Hide the resize handle and remove it from the canvas.\n *\n **/\n hide: function hide() {\n // don't call the parent function. The parent functions delete this object\n // and a resize handle shouldn't be deleted.\n if (this.shape === null) {\n return;\n }\n\n this.canvas.resizeHandles.remove(this);\n this.setCanvas(null);\n\n return this;\n },\n\n setCanvas: function setCanvas(canvas) {\n\n if (this.canvas !== null) {\n this.canvas.off(this.zoomCallback);\n }\n\n this._super(canvas);\n\n if (this.canvas !== null) {\n this.canvas.on(\"zoom\", this.zoomCallback);\n }\n },\n\n /**\n *\n * Set the new background color of the figure. It is possible to hands over\n * <code>null</code> to set the background transparent.\n *\n * @param {draw2d.util.Color} color The new background color of the figure\n **/\n setBackgroundColor: function setBackgroundColor(color) {\n color = new _packages2.default.util.Color(color);\n\n this.bgGradient = \"90-\" + color.darker(0.2).hash() + \"-\" + color.hash();\n this._super(color);\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n repaint: function repaint(attributes) {\n\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n attributes = attributes || {};\n\n if (this.bgColor.hash() === \"none\") {\n attributes.fill = \"none\";\n } else if (this.getAlpha() < 0.9 || this.useGradient === false) {\n attributes.fill = this.bgColor.rgba();\n } else {\n attributes.fill = this.bgGradient;\n }\n\n this._super(attributes);\n },\n\n /**\n *\n * return true if the element can be used in combination with the\n * SnapToHelper feature.\n *\n * @returns {Boolean}\n **/\n supportsSnapToHelper: function supportsSnapToHelper() {\n return true;\n },\n\n /**\n *\n * Override this method and redirect them to the cavas. A ResizeHandle didn't support\n * Keyboard interaction at the moment.\n *\n * @param {Number} keyCode the id of the pressed key\n * @param {Boolean} ctrl true if the user has pressed the CTRL/STRG key as well.\n **/\n onKeyDown: function onKeyDown(keyCode, ctrl) {\n // don't call the parent function. The parent functions delete this object\n // and a resize handle can't be deleted.\n this.canvas.onKeyDown(keyCode, ctrl);\n },\n\n /**\n * @inheritdoc\n */\n fireEvent: function fireEvent(event, args) {\n // A resizeHandle doesn't fire this event.\n // Normally this set the document dirty. This is not necessary for a ResizeHandle.\n }\n});\n\n/***/ }),\n\n/***/ \"./src/SVGFigure.js\":\n/*!**************************!*\\\n !*** ./src/SVGFigure.js ***!\n \\**************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Abstract class which can handle plain SVG content.\n *\n * @author Andreas Herz\n * @extends draw2d.SetFigure\n */\n_packages2.default.SVGFigure = _packages2.default.SetFigure.extend(\n/** @lends draw2d.SVGFigure.prototype */\n{\n\n NAME: \"draw2d.SVGFigure\",\n\n /**\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this.svg = null;\n\n this._super((0, _extend2.default)({}, attr), (0, _extend2.default)({\n svg: this.setSVG\n }, setter), (0, _extend2.default)({\n svg: this.getSVG\n }, getter));\n },\n\n /**\n * @inheritdoc\n */\n createSet: function createSet() {\n // legacy behaviour. Legacy code of Draw2D didn't have the \"svg\" attribute.\n // in this case we must call the overridden method \"getSVG\" to retrieve the SVG from inherit\n // the inherit class.\n //\n if (this.svg === null) {\n this.svg = this.getSVG();\n }\n\n return this.importSVG(this.canvas, this.svg);\n },\n\n /**\n * \n * Returns the current used SVG as string\n * @returns {String}\n */\n getSVG: function getSVG() {\n return this.svg;\n },\n\n /**\n * \n * Set the SVG of this shape\n *\n * @param {String} svg The new SVG to render as String\n * @param {Number} [duration] the optional duration for the change of the SVG of the figure\n *\n * @returns {draw2d.SVGFigure}\n */\n setSVG: function setSVG(svg, duration) {\n this.svg = svg;\n\n // SVG has changed. Update the rendering\n //\n if (this.canvas !== null && this.svgNodes !== null) {\n var newSVGNodes = this.createSet();\n if (!isNaN(parseFloat(duration))) {\n newSVGNodes.hide();\n newSVGNodes.insertAfter(this.svgNodes);\n var oldSVG = this.svgNodes;\n this.svgNodes = newSVGNodes;\n this.applyTransformation();\n oldSVG.forEach(function (shape) {\n $(shape.node).fadeOut(duration, function () {\n shape.remove();\n });\n });\n newSVGNodes.forEach(function (shape) {\n $(shape.node).fadeIn(duration);\n });\n } else {\n newSVGNodes.insertAfter(this.svgNodes);\n this.svgNodes.remove();\n this.svgNodes = newSVGNodes;\n this.applyTransformation();\n }\n }\n\n return this;\n },\n\n /**\n * \n * Helper method to transform the SVG string into a raphaelJS set.\n *\n * @private\n */\n importSVG: function importSVG(canvas, rawSVG) {\n\n var set = canvas.paper.set();\n\n try {\n if (typeof rawSVG === 'undefined') {\n throw 'No data was provided.';\n }\n\n // Override the dimension from the JSON if the SVG contains any\n //\n var svgDOM = $(rawSVG);\n\n // set the dimension of the element if the JSON import didn't provide\n // a dimension already\n //\n if (typeof this._dimensionReadFromJSON === \"undefined\") {\n if (svgDOM.attr(\"width\") && svgDOM.attr(\"height\")) {\n this.setDimension(parseFloat(svgDOM.attr(\"width\")), parseFloat(svgDOM.attr(\"height\")));\n }\n delete this._dimensionReadFromJSON;\n }\n\n var findStyle = new RegExp('([a-z0-9\\-]+) ?: ?([^ ;]+)[ ;]?', 'gi');\n\n svgDOM.children().each(function (i, element) {\n //element = $(element);\n var shape = null;\n var style = null;\n var attr = {};\n var node = element.tagName;\n\n // remove the namespace of the node if existing. This can happen in IE8\n //\n var index = node.indexOf(\":\");\n if (index != -1) node = node.substr(index + 1);\n\n // map some element to Raphael specifix attributes or ignore some unknown attributes\n //\n $(element.attributes).each(function () {\n switch (this.nodeName) {\n case 'stroke-dasharray':\n attr[this.nodeName] = '- ';\n break;\n case 'style':\n style = this.nodeValue;\n break;\n case 'id':\n case 'xml:space':\n // just to ignore\n break;\n default:\n if (this.value) {\n attr[this.nodeName] = this.value;\n } else {\n // @deprecated\n attr[this.nodeName] = this.nodeValue;\n }\n break;\n }\n });\n\n if (style !== null) {\n while (findStyle.exec(style)) {\n attr[RegExp.$1] = RegExp.$2;\n }\n }\n\n // set some good defaults if the element didn't provide a stroke-width but has a \"stroke\" attribute\n //\n if (typeof attr['stroke-width'] === 'undefined') {\n attr['stroke-width'] = typeof attr.stroke === 'undefined' ? 0 : 1.2;\n }\n\n switch (node) {\n case 'rect':\n shape = canvas.paper.rect();\n\n // transfer rx-SVG attribute to the \"r\" attribute of raphael\n if (typeof attr[\"rx\"] !== \"undefined\") {\n attr.r = parseInt(attr.rx);\n delete attr.rx;\n }\n break;\n case 'circle':\n shape = canvas.paper.circle();\n break;\n case 'ellipse':\n shape = canvas.paper.ellipse();\n break;\n case 'path':\n attr.fill = \"none\";\n shape = canvas.paper.path(attr.d);\n break;\n case 'line':\n attr.d = \"M \" + attr.x1 + \" \" + attr.y1 + \"L\" + attr.x2 + \" \" + attr.y2;\n attr.fill = \"none\";\n shape = canvas.paper.path(attr.d);\n break;\n case 'polyline':\n var path = attr.points;\n attr.d = \"M \" + path.replace(\" \", \" L\");\n shape = canvas.paper.path(attr.d);\n break;\n case 'polygon':\n shape = canvas.paper.polygon(attr.points);\n break;\n case 'image':\n shape = canvas.paper.image();\n break;\n case 'tspan':\n case 'text':\n if (element.childNodes.length > 0) {\n var child = element.firstChild;\n do {\n switch (child.nodeType) {\n case 2: //ATTRIBUTE_NODE\n case 4: //CDATA_SECTION_NODE\n case 5: //ENTITY_REFERENCE_NODE\n case 6: //ENTITY_NODE\n case 7: //PROCESSING_INSTRUCTION_NODE\n case 8: //COMMENT_NODE\n case 9: //DOCUMENT_NODE\n case 10: //DOCUMENT_TYPE_NODE\n case 11: //DOCUMENT_FRAGMENT_NODE\n case 12:\n //NOTATION_NODE\n return;\n case 3:\n //TEXT_NODE\n // redirect to the parent node if we found a simple TEXT without any attributes\n child = element;\n break;\n case 1: //ELEMENT_NODE\n }\n var subShape = canvas.paper.text(0, 0, $(child).text());\n var subAttr = { \"x\": parseFloat(child.attributes.x.value), \"y\": parseFloat(child.attributes.y.value) };\n subAttr[\"text-anchor\"] = \"start\";\n if (typeof child.attributes[\"text-anchor\"] !== \"undefined\") {\n subAttr[\"text-anchor\"] = child.attributes[\"text-anchor\"].value;\n } else if (typeof attr[\"text-anchor\"] !== \"undefined\") {\n subAttr[\"text-anchor\"] = attr[\"text-anchor\"];\n }\n\n if (typeof child.attributes[\"font-size\"] !== \"undefined\") {\n subAttr[\"font-size\"] = parseInt(child.attributes[\"font-size\"].value);\n } else if (typeof attr[\"font-size\"] !== \"undefined\") {\n // inherit the font size from the parent node\n subAttr[\"font-size\"] = parseInt(attr[\"font-size\"]);\n }\n\n if (typeof child.attributes[\"font-family\"] !== \"undefined\") {\n subAttr[\"font-family\"] = child.attributes[\"font-family\"].value;\n } else if (typeof attr[\"font-family\"] !== \"undefined\") {\n // inherit the font size from the parent node\n subAttr[\"font-family\"] = attr[\"font-family\"];\n }\n\n subAttr[\"fill\"] = \"#000000\";\n if (typeof child.attributes[\"fill\"] !== \"undefined\") {\n subAttr[\"fill\"] = child.attributes[\"fill\"].value;\n } else if (typeof attr[\"fill\"] !== \"undefined\") {\n // inherit the font size from the parent node\n subAttr[\"fill\"] = attr[\"fill\"];\n }\n\n subAttr.y = subAttr.y + subShape.getBBox().height / 2;\n\n subShape.attr(subAttr);\n set.push(subShape);\n child = child.nextSibling;\n } while (child && child.nodeType === 3); // 3= TEXT_NODE\n } else {\n shape = canvas.paper.text(0, 0, $(element).html());\n if (typeof attr[\"fill\"] === \"undefined\") attr[\"fill\"] = \"#000000\";\n if (typeof attr[\"text-anchor\"] === \"undefined\") attr[\"text-anchor\"] = \"start\";\n if (typeof attr[\"font-size\"] !== \"undefined\") attr[\"font-size\"] = parseInt(attr[\"font-size\"]);\n if (typeof attr[\"font-family\"] !== \"undefined\") attr[\"font-family\"] = parseInt(attr[\"font-family\"]);\n attr.y = parseFloat(attr.y) + shape.getBBox().height / 2;\n }\n break;\n }\n if (shape !== null) {\n shape.attr(attr);\n set.push(shape);\n }\n });\n } catch (error) {\n alert('The SVG data you entered was invalid! (' + error + ')');\n }\n\n return set;\n },\n\n /**\n * \n * Read all attributes from the serialized properties and transfer them into the shape.\n *\n * @param {Object} memento\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this._super(memento);\n\n // keep a temp flag to indicate the we have read the dimension of the\n // element from the JSON struct. In this case we didn't care about the dimension\n // from the SVG data\n //\n if (typeof memento.width !== \"undefined\") {\n this._dimensionReadFromJSON = true;\n } else if (typeof memento.height !== \"undefined\") {\n this._dimensionReadFromJSON = true;\n }\n\n return this;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/Selection.js\":\n/*!**************************!*\\\n !*** ./src/Selection.js ***!\n \\**************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Represents the current selection in the canvas. The selection element is a pure passive element which\n * manage/store the selection.\n *\n *\n * @author Andreas Herz\n */\n_packages2.default.Selection = Class.extend(\n/** @lends draw2d.Selection.prototype */\n{\n\n NAME: \"draw2d.Selection\",\n\n /**\n * Creates a new figure element which are not assigned to any canvas.\n *\n */\n init: function init() {\n this.primary = null;\n this.all = new _packages2.default.util.ArrayList();\n },\n\n /**\n * \n * Reset the current selection\n *\n */\n clear: function clear() {\n this.primary = null;\n this.all = new _packages2.default.util.ArrayList();\n\n return this;\n },\n\n /**\n * \n * Return the primary selection. This can only one figure at once.\n *\n * @returns {draw2d.Figure} the primary selected figure\n */\n getPrimary: function getPrimary() {\n return this.primary;\n },\n\n /**\n * \n * Set the primary selection.\n *\n * @param {draw2d.Figure} figure The new primary selection\n */\n setPrimary: function setPrimary(figure) {\n this.primary = figure;\n this.add(figure);\n\n return this;\n },\n\n /**\n * \n * Remove the given figure from the selection (primary,all)\n *\n * @param {draw2d.Figure} figure\n */\n remove: function remove(figure) {\n this.all.remove(figure);\n if (this.primary === figure) {\n this.primary = null;\n }\n\n return this;\n },\n\n /**\n * \n * Add a figure to the selection. No events are fired or update the selection handle. This method just\n * add the figure to the internal management data structure.\n *\n * @param figure\n * @private\n */\n add: function add(figure) {\n if (figure !== null && !this.all.contains(figure)) {\n this.all.add(figure);\n }\n\n return this;\n },\n\n /**\n * \n * return true if the given figure part of the selection.\n *\n * @param {draw2d.Figure} figure The figure to check\n * @param {Boolean} [checkDescendant] Check if the figure provided by the argument is a descendant of the selection whether it is a direct child or nested more deeply.\n *\n * @since 2.2.0\n * @returns {Boolean}\n */\n contains: function contains(figure, checkDescendant) {\n if (checkDescendant) {\n for (var i = 0; i < this.all.getSize(); i++) {\n var figureToCheck = this.all.get(i);\n if (figureToCheck === figure || figureToCheck.contains(figure)) {\n return true;\n }\n }\n return false;\n }\n return this.all.contains(figure);\n },\n\n /**\n * \n * Return the size of the selection\n *\n * @since 4.8.0\n */\n getSize: function getSize() {\n return this.all.getSize();\n },\n\n /**\n * \n * Return the complete selection - including the primary selection.\n *\n * @param {Boolean} [expand] expand all StrongComposite and WeakComposite to get all figures. Didn't expand any SetFigures or LayoutFigures\n * @returns {draw2d.util.ArrayList}\n *\n */\n getAll: function getAll(expand) {\n if (expand === true) {\n var result = new _packages2.default.util.ArrayList();\n var addRecursive = function addRecursive(figures) {\n result.addAll(figures, true);\n figures.each(function (index, figure) {\n if (figure instanceof _packages2.default.shape.composite.StrongComposite) {\n addRecursive(figure.getAssignedFigures());\n }\n });\n };\n addRecursive(this.all);\n\n return result;\n }\n\n return this.all.clone();\n },\n\n /**\n * \n * Iterates over the current selection with <b>func</b> as callback handler.\n *\n * @param {Function} func the callback function to call for each element\n * @param {Number} func.i index of the element in iteration\n * @param {Object} func.value value of the element in iteration.\n * @param {Boolean} [reverse] optional parameter. Iterate the collection reverse if it set to <b>true</b>\n */\n each: function each(func, reverse) {\n this.all.each(func, reverse);\n\n return this;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/SetFigure.js\":\n/*!**************************!*\\\n !*** ./src/SetFigure.js ***!\n \\**************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A SetFigure is a composition of different SVG elements.\n *\n * @author Andreas Herz\n * @extends draw2d.shape.basic.Rectangle\n */\n_packages2.default.SetFigure = _packages2.default.shape.basic.Rectangle.extend(\n/** @lends draw2d.SetFigure.prototype */\n{\n\n NAME: \"draw2d.SetFigure\",\n\n /**\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n // collection of SVG DOM nodes\n this.svgNodes = null;\n\n this.originalWidth = null;\n this.originalHeight = null;\n\n this.scaleX = 1;\n this.scaleY = 1;\n\n this.strokeScale = true; // scale the stroke width of the children nodes if the parent resize\n\n this._super((0, _extend2.default)({ stroke: 0, bgColor: null }, attr), setter, getter);\n },\n\n /**\n * \n * Set/Reset the canvas for the element.\n *\n * @param {draw2d.Canvas} canvas the canvas to use\n */\n setCanvas: function setCanvas(canvas) {\n // remove the shape if we reset the canvas and the element\n // was already drawn\n if (canvas === null && this.svgNodes !== null) {\n this.svgNodes.remove();\n this.svgNodes = null;\n }\n\n this._super(canvas);\n },\n\n /**\n * \n * Set the css class if the node.\n *\n * @param {String} cssClass the new css class name of the node\n * @since 2.9.0\n */\n setCssClass: function setCssClass(cssClass) {\n this._super(cssClass);\n\n if (this.svgNodes === null) {\n return this;\n }\n\n if (this.cssClass === null) {\n this.svgNodes.forEach(function (e) {\n e.node.removeAttribute(\"class\");\n });\n } else {\n this.svgNodes.forEach(function (e) {\n e.node.setAttribute(\"class\", cssClass);\n });\n }\n\n return this;\n },\n\n /**\n * \n * propagate all attributes like color, stroke,... to the shape element and\n * repaint them.\n *\n * @protected\n **/\n repaint: function repaint(attributes) {\n // repaint can be blocked during deserialization and if the shape\n // not part of any canvas.\n //\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n if (this.originalWidth !== null) {\n this.scaleX = this.width / this.originalWidth;\n this.scaleY = this.height / this.originalHeight;\n }\n\n attributes = attributes || {};\n\n this.applyAlpha();\n\n this._super(attributes);\n },\n\n /**\n * @inheritdoc\n */\n setVisible: function setVisible(flag, duration) {\n this._super(flag, duration);\n\n if (this.svgNodes !== null) {\n if (duration) {\n if (this.visible === true) {\n this.svgNodes.forEach(function (shape) {\n $(shape.node).fadeIn(duration, function () {\n return shape.show();\n });\n });\n } else {\n this.svgNodes.forEach(function (shape) {\n $(shape.node).fadeOut(duration, function () {\n return shape.hide();\n });\n });\n }\n } else {\n if (this.visible === true) {\n this.svgNodes.show();\n } else {\n this.svgNodes.hide();\n }\n }\n }\n },\n\n /**\n * \n * Apply the opacity to all child set elements. Override this if you want to avoid opacity changes.\n * @private\n *\n */\n applyAlpha: function applyAlpha() {\n this.svgNodes.attr({ opacity: this.alpha });\n },\n\n /**\n * @private\n */\n applyTransformation: function applyTransformation() {\n var s = \"S\" + this.scaleX + \",\" + this.scaleY + \",0,0 \" + \"R\" + this.rotationAngle + \",\" + (this.getWidth() / 2 | 0) + \",\" + (this.getHeight() / 2 | 0) + \"T\" + this.getAbsoluteX() + \",\" + this.getAbsoluteY() + \"\";\n this.svgNodes.transform(s);\n if (this.rotationAngle === 90 || this.rotationAngle === 270) {\n var before = this.svgNodes.getBBox(true);\n var ratio = before.height / before.width;\n var reverseRatio = before.width / before.height;\n var rs = \"...S\" + ratio + \",\" + reverseRatio + \",\" + (this.getAbsoluteX() + this.getWidth() / 2) + \",\" + (this.getAbsoluteY() + this.getHeight() / 2);\n this.svgNodes.transform(rs);\n }\n\n return this;\n },\n\n /**\n * \n * Moves the element so it is the closest to the viewer’s eyes, on top of other elements. Additional\n * the internal model changed as well.\n *\n * Optional: Inserts current object in front of the given one.\n *\n * @param {draw2d.Figure} [figure] move current object in front of the given one.\n * @since 3.0.0\n */\n toFront: function toFront(figure) {\n ////////////////////////////////////////////////////////////////////\n // NOTE: the code has a complete different order of draw2d.Figure.\n // we must respect the svgNodes here\n ////////////////////////////////////////////////////////////////////\n\n // ensure that the z-oder is still correct if the figure is assigned\n // to a StrongComposite\n //\n if (this.composite instanceof _packages2.default.shape.composite.StrongComposite && typeof figure !== \"undefined\") {\n var indexFigure = figure.getZOrder();\n var indexComposite = this.composite.getZOrder();\n if (indexFigure < indexComposite) {\n figure = this.composite;\n }\n }\n\n if (typeof figure === \"undefined\") {\n // bring the outer frame in front...\n this.getShapeElement().toFront();\n\n // and all inner children\n //\n if (this.svgNodes !== null) {\n this.svgNodes.toFront();\n }\n\n if (this.canvas !== null) {\n var figures = this.canvas.getFigures();\n var lines = this.canvas.getLines();\n if (figures.remove(this) !== null) {\n figures.add(this);\n } else if (lines.remove(this) !== null) {\n lines.add(this);\n }\n }\n } else {\n // Bring the SVG shapes between the \"figure\" and the container of this shape\n //\n if (this.svgNodes !== null) {\n this.svgNodes.insertAfter(figure.getTopLevelShapeElement());\n }\n this.getShapeElement().insertAfter(figure.getTopLevelShapeElement());\n\n if (this.canvas !== null) {\n var _figures = this.canvas.getFigures();\n var _lines = this.canvas.getLines();\n if (_figures.remove(this) !== null) {\n var index = _figures.indexOf(figure);\n _figures.insertElementAt(this, index + 1);\n } else if (_lines.remove(this) !== null) {\n _lines.add(this);\n }\n }\n }\n\n // bring all children in front of the parent\n //\n this.children.each(function (i, child) {\n child.figure.toFront(figure);\n });\n\n // the ports are always on top\n //\n var _this = this;\n this.getPorts().each(function (i, port) {\n port.getConnections().each(function (i, connection) {\n connection.toFront(figure);\n });\n // a port should always be in front of the shape doesn't matter what the\n // \"figure\" parameter says.\n //\n port.toFront(_this);\n });\n\n // and last but not lease the ResizeHandles if any present\n //\n this.selectionHandles.each(function (i, handle) {\n handle.toFront();\n });\n\n return this;\n },\n\n /**\n * \n * Moves the element to the background. Additional\n * the internal model changed as well.\n *\n * Optional: Inserts current object in front of the given one.\n *\n * @param {draw2d.Figure} [figure] move current object in front of the given one.\n * @since 4.7.2\n */\n toBack: function toBack(figure) {\n // it is not allowed that a figure is behind the assigned composite\n //\n if (this.composite instanceof _packages2.default.shape.composite.StrongComposite) {\n this.toFront(this.composite);\n return;\n }\n\n // sort the JSON Doc\n //\n if (this.canvas !== null) {\n var figures = this.canvas.getFigures();\n var lines = this.canvas.getLines();\n if (figures.remove(this) !== null) {\n figures.insertElementAt(this, 0);\n } else if (lines.remove(this) !== null) {\n lines.insertElementAt(this, 0);\n }\n }\n\n // bring all children figures in front of the parent\n // run reverse to the collection to care about the z-order of the children)\n this.children.each(function (i, child) {\n child.figure.toBack(figure);\n }, true);\n\n if (this.svgNodes !== null) {\n if (typeof figure !== \"undefined\") {\n this.svgNodes.insertBefore(figure.getShapeElement());\n } else {\n this.svgNodes.toBack();\n }\n }\n\n if (this.canvas !== null) {\n if (typeof figure !== \"undefined\") {\n this.getShapeElement().insertBefore(figure.getShapeElement());\n } else {\n this.getShapeElement().toBack();\n }\n }\n\n // and last but not least - the ports are always on top\n //\n var _this = this;\n this.getPorts().each(function (i, port) {\n port.getConnections().each(function (i, connection) {\n connection.toFront(_this);\n });\n // a port should always be in front of the shape doesn't matter what the\n // \"figure\" parameter says.\n //\n port.toFront(_this);\n });\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n getTopLevelShapeElement: function getTopLevelShapeElement() {\n if (this.svgNodes.length === 0) {\n return this.shape;\n }\n return this.svgNodes;\n },\n\n /**\n * @private\n */\n createShapeElement: function createShapeElement() {\n // NOTE: don't change the order of the two calls. This defines the z-oder in the canvas.\n // The \"set\" must always be on top.\n var shape = this.canvas.paper.rect(this.getX(), this.getY(), this.getWidth(), this.getHeight());\n this.svgNodes = this.createSet();\n\n // check if the element is a \"set\" or a simple raphael shape. otherwise we wrap them into a set\n //\n if (typeof this.svgNodes.forEach === \"undefined\") {\n var set = this.canvas.paper.set();\n set.push(this.svgNodes);\n this.svgNodes = set;\n }\n\n this.svgNodes.attr({ \"stroke-scale\": this.strokeScale });\n\n // update the visibility of the children\n this.setVisible(this.visible);\n\n // propagate the CSS style to all set elements\n this.setCssClass(this.cssClass);\n\n var bb = this.svgNodes.getBBox();\n this.originalWidth = bb.width;\n this.originalHeight = bb.height;\n\n return shape;\n },\n\n /**\n * \n * Override this method to add your own SVG elements. See {@link draw2d.shape.basic.Label} as example.\n *\n * @template\n */\n createSet: function createSet() {\n return this.canvas.paper.set(); // return empty set as default;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/VectorFigure.js\":\n/*!*****************************!*\\\n !*** ./src/VectorFigure.js ***!\n \\*****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _JSONUtil = __webpack_require__(/*! util/JSONUtil */ \"./src/util/JSONUtil.js\");\n\nvar _JSONUtil2 = _interopRequireDefault(_JSONUtil);\n\nvar _extend = __webpack_require__(/*! util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * The base class for all vector based figures like {@link draw2d.shape.basic.Rectangle} or {@link draw2d.shape.basic.Oval}\n * inside a canvas.\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.node.Node\n */\n_packages2.default.VectorFigure = _packages2.default.shape.node.Node.extend(\n/** @lends draw2d.VectorFigure.prototype */\n{\n\n NAME: \"draw2d.VectorFigure\",\n\n /**\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this.stroke = 1;\n this.radius = 0;\n this.bgColor = new _packages2.default.util.Color(\"#ffffff\");\n this.color = new _packages2.default.util.Color(\"#303030\");\n this.dasharray = null;\n\n // memento for the stroke if we reset the glow effect of this shape\n //\n this.strokeBeforeGlow = this.stroke;\n this.glowIsActive = false;\n\n this._super(attr, (0, _extend2.default)({\n // @attr {String} dasharray the line pattern see {@link draw2d.shape.basic.Line#setDashArray} for more information*/\n dasharray: this.setDashArray,\n // @attr {Number} radius the radius to render the line edges */\n radius: this.setRadius,\n // @attr {String|draw2d.util.Color} bgColor the background color of the shape */\n bgColor: this.setBackgroundColor,\n // @attr {String|draw2d.util.Color} color the main color of the shape */\n color: this.setColor,\n // @attr {Number} stroke the stroke width */\n stroke: this.setStroke\n }, setter), (0, _extend2.default)({\n dasharray: this.getDashArray,\n radius: this.getRadius,\n bgColor: this.getBackgroundColor,\n color: this.getColor,\n stroke: this.getStroke\n }, getter));\n },\n\n /**\n * \n * Sets the corner radius or the edges.\n *\n * @param {Number} radius\n * @since 4.2.1\n */\n setRadius: function setRadius(radius) {\n this.radius = radius;\n this.repaint();\n this.fireEvent(\"change:radius\", { value: this.radius });\n\n return this;\n },\n\n /**\n * \n * Get the corner radius of the edges.\n *\n * @returns {Number}\n * @since 4.2.1\n */\n getRadius: function getRadius() {\n return this.radius;\n },\n\n /**\n * \n * Set the line style for this object.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * dash: dashPattern\n * });\n *\n * @param {String} dash can be one of this [\"\", \"-\", \".\", \"-.\", \"-..\", \". \", \"- \", \"--\", \"- .\", \"--.\", \"--..\"]\n */\n setDashArray: function setDashArray(dashPattern) {\n this.dasharray = dashPattern;\n this.repaint();\n\n this.fireEvent(\"change:dashArray\", { value: this.dasharray });\n\n return this;\n },\n\n /**\n * \n * Get the line style for this object.\n *\n * // Alternatively you can use the attr method:\n * figure.attr(\"dash\");\n *\n * @since 5.1.0\n */\n getDashArray: function getDashArray() {\n return this.dasharray;\n },\n\n /**\n * \n * Highlight the element or remove the highlighting\n *\n * @param {Boolean} flag indicates glow/noGlow\n */\n setGlow: function setGlow(flag) {\n\n if (flag === this.glowIsActive) {\n return this;\n }\n\n this.glowIsActive = flag;\n if (flag === true) {\n this.strokeBeforeGlow = this.getStroke();\n this.setStroke(this.strokeBeforeGlow * 2.5);\n } else {\n this.setStroke(this.strokeBeforeGlow);\n }\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n attributes = attributes || {};\n\n attributes.x = this.getAbsoluteX();\n attributes.y = this.getAbsoluteY();\n\n if (typeof attributes.stroke === \"undefined\") {\n if (this.color === null || this.stroke === 0) {\n attributes.stroke = \"none\";\n } else {\n attributes.stroke = this.color.rgba();\n }\n }\n\n _JSONUtil2.default.ensureDefault(attributes, \"stroke-width\", this.stroke);\n _JSONUtil2.default.ensureDefault(attributes, \"fill\", this.bgColor.rgba());\n _JSONUtil2.default.ensureDefault(attributes, \"dasharray\", this.dasharray);\n _JSONUtil2.default.ensureDefault(attributes, \"stroke-dasharray\", this.dasharray);\n\n this._super(attributes);\n\n return this;\n },\n\n /**\n * \n * Set the new background color of the figure. It is possible to hands over\n * <code>null</code> to set the background transparent.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * \"bgColor\": \"#f0f0f0\"\n * });\n *\n * @param {String|draw2d.util.Color} color The new background color of the figure\n **/\n setBackgroundColor: function setBackgroundColor(color) {\n this.bgColor = new _packages2.default.util.Color(color);\n\n this.repaint();\n this.fireEvent(\"change:bgColor\", { value: this.bgColor });\n\n return this;\n },\n\n /**\n * \n * The current used background color.\n *\n * // Alternatively you can use the attr method:\n * var color =figure.attr(\"bgColor\");\n *\n * @returns {draw2d.util.Color}\n */\n getBackgroundColor: function getBackgroundColor() {\n return this.bgColor;\n },\n\n /**\n * \n * Set the stroke to use.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * \"stroke\": 2\n * });\n *\n * @param {Number} w The new line width of the figure\n **/\n setStroke: function setStroke(w) {\n this.stroke = w;\n this.repaint();\n this.fireEvent(\"change:stroke\", { value: this.stroke });\n\n return this;\n },\n\n /**\n * \n * The used line width.\n *\n * @returns {Number}\n **/\n getStroke: function getStroke() {\n return this.stroke;\n },\n\n /**\n * \n * Set the foreground color of the figure.\n * This method fires a <i>document dirty</i> event.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * \"color\": \"#f3f3f3\"\n * });\n *\n * @param {String|draw2d.util.Color} color The new color of the line.\n **/\n setColor: function setColor(color) {\n this.color = new _packages2.default.util.Color(color);\n this.repaint();\n this.fireEvent(\"change:color\", { value: this.color });\n\n return this;\n },\n\n /**\n * \n * Get the current used foreground color\n *\n *\n * @returns {draw2d.util.Color}\n */\n getColor: function getColor() {\n return this.color;\n },\n\n /**\n * @inheritdoc\n */\n getPersistentAttributes: function getPersistentAttributes() {\n return (0, _extend2.default)(this._super(), {\n bgColor: this.bgColor.rgba(),\n color: this.color.rgba(),\n stroke: this.stroke,\n radius: this.radius,\n dasharray: this.dasharray\n });\n },\n\n /**\n * @inheritdoc\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this._super(memento);\n\n if (typeof memento.radius !== \"undefined\") {\n this.setRadius(memento.radius);\n }\n\n if (typeof memento.bgColor !== \"undefined\") {\n this.setBackgroundColor(memento.bgColor);\n }\n\n if (typeof memento.color !== \"undefined\") {\n this.setColor(memento.color);\n }\n\n if (typeof memento.stroke !== \"undefined\") {\n this.setStroke(memento.stroke === null ? 0 : parseFloat(memento.stroke));\n }\n\n if (typeof memento.dasharray === \"string\") {\n this.dasharray = memento.dasharray;\n }\n\n return this;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/command/Command.js\":\n/*!********************************!*\\\n !*** ./src/command/Command.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Commands are passed around throughout editing. They are used to encapsulate and combine\n * changes to the application's model. An application has a single command stack. Commands must\n * be executed using the command stack rather than directly calling execute.\n * <br>\n * This is required for a generic support for the undo/redo concept within draw2d.<br>\n *\n * @inheritable\n * @author Andreas Herz\n */\n_packages2.default.command.Command = Class.extend(\n/** @lends draw2d.command.Command.prototype */\n{\n\n NAME: \"draw2d.command.Command\",\n\n /**\n * Create a new Command objects which can be execute via the CommandStack.\n *\n * @param {String} label\n */\n init: function init(label) {\n this.label = label;\n },\n\n /**\n * \n * Returns a label of the Command. e.g. `move figure`.\n *\n * @returns {String} the label for this command\n **/\n getLabel: function getLabel() {\n return this.label;\n },\n\n /**\n * \n * Returns [true] if the command can be execute and the execution of the\n * command modifies the model. e.g.: a CommandMove with [startX,startX] == [endX,endY] should\n * return false. The execution of this Command doesn't modify the model.\n *\n * @returns {Boolean} return try if the command modify the model or make any relevant changes\n **/\n canExecute: function canExecute() {\n return true;\n },\n\n /**\n * \n * Execute the command the first time.\n * Sup-classes must implement this method.\n *\n * @template\n **/\n execute: function execute() {},\n\n /**\n * \n * Will be called if the user cancel the operation.\n *\n * @template\n **/\n cancel: function cancel() {},\n\n /**\n * \n * Undo the command.\n * Sup-classes must implement this method.\n *\n * @template\n **/\n undo: function undo() {},\n\n /**\n * \n * Redo the command after the user has undo this command.\n * Sup-classes must implement this method.\n *\n * @template\n **/\n redo: function redo() {}\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandAdd.js\":\n/*!***********************************!*\\\n !*** ./src/command/CommandAdd.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Command to add a figure with CommandStack support.\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandAdd = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandAdd.prototype */\n{\n\n NAME: \"draw2d.command.CommandAdd\",\n\n /**\n * Create a add command for the given figure.\n *\n * @param {draw2d.Canvas} canvas the canvas to use\n * @param {draw2d.Figure} figure the figure to add\n * @param {Number|draw2d.geo.Point} x the x-coordinate or a complete point where to place the figure\n * @param {Number} [y] the y-coordinate if x is a number and not a complete point\n */\n init: function init(canvas, figure, x, y) {\n this._super(_packages2.default.Configuration.i18n.command.addShape);\n this.figure = figure;\n this.canvas = canvas;\n this.pos = new _packages2.default.geo.Point(x, y);\n },\n\n /**\n * \n * Returns [true] if the command can be execute and the execution of the\n * command modifies the model. e.g.: a CommandMove with [startX,startX] == [endX,endY] should\n * return false. The execution of this Command doesn't modify the model.\n *\n * @returns {Boolean} return try if the command modify the model or make any relevant changes\n **/\n canExecute: function canExecute() {\n // we can only add the figure once to the canvas\n return this.figure.getCanvas() === null;\n },\n\n /**\n * \n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.canvas.add(this.figure, this.pos.x, this.pos.y);\n },\n\n /**\n * \n * Redo the command after the user has undo this command\n *\n **/\n redo: function redo() {\n this.execute();\n },\n\n /**\n * \n * Undo the command\n *\n **/\n undo: function undo() {\n this.canvas.remove(this.figure);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandAddVertex.js\":\n/*!*****************************************!*\\\n !*** ./src/command/CommandAddVertex.js ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Add a vertex to a polyline or polygon\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandAddVertex = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandAddVertex.prototype */\n{\n\n NAME: \"draw2d.command.CommandAddVertex\",\n\n /**\n * Create a new Command objects which add a vertex to a PolyLine / Polygon.\n *\n * @param {draw2d.shape.basic.PolyLine} line the related line\n * @param {Number} index the index where to add\n * @param {Number} x the x coordinate for the new vertex\n * @param {Number} y the y coordinate for the new vertex\n */\n init: function init(line, index, x, y) {\n this._super(_packages2.default.Configuration.i18n.command.addVertex);\n\n this.line = line;\n this.index = index;\n this.newPoint = new _packages2.default.geo.Point(x, y);\n },\n\n /**\n *\n * Returns [true] if the command can be execute and the execution of the\n * command modify the model. A CommandMove with [startX,startX] == [endX,endY] should\n * return false. <br>\n * the execution of the Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // return false if we doesn't modify the model => NOP Command\n return true;\n },\n\n /**\n *\n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n *\n *\n * Undo the move command\n *\n **/\n undo: function undo() {\n this.line.removeVertexAt(this.index);\n },\n\n /**\n *\n *\n * Redo the move command after the user has undo this command\n *\n **/\n redo: function redo() {\n this.line.insertVertexAt(this.index, this.newPoint.x, this.newPoint.y);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandAssignFigure.js\":\n/*!********************************************!*\\\n !*** ./src/command/CommandAssignFigure.js ***!\n \\********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Assign a figure to a compiste\n *\n * @author Andreas Herz\n *\n * @extends draw2d.command.Command\n * @since 4.9.0\n */\n_packages2.default.command.CommandAssignFigure = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandAssignFigure.prototype */\n{\n\n NAME: \"draw2d.command.CommandAssignFigure\",\n\n /**\n * Create a new Command objects which can be execute via the CommandStack.\n *\n * @param {draw2d.Figure} figure the figure to assign\n * @param {draw2d.Figure} composite the composite where the figure should assign\n */\n init: function init(figure, composite) {\n this._super(_packages2.default.Configuration.i18n.command.assignShape);\n\n this.figure = figure;\n this.composite = composite;\n this.assignedConnections = new _packages2.default.util.ArrayList();\n this.isNode = this.figure instanceof _packages2.default.shape.node.Node;\n this.oldBoundingBox = composite.getBoundingBox();\n },\n\n /**\n *\n * Returns [true] if the command can be execute and the execution of the\n * command modify the model. A CommandMove with [startX,startX] == [endX,endY] should\n * return false. <br>\n * the execution of the Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // return false if we doesn't modify the model => NOP Command\n return true;\n },\n\n /**\n *\n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.composite.assignFigure(this.figure);\n\n // get all connections of the shape and check if source/target node\n // part of the composite. In this case the connection will be part of\n // the composite as well\n if (this.isNode === true) {\n var connections = this.figure.getConnections();\n var _this = this;\n connections.each(function (i, connection) {\n if (connection.getSource().getParent().getComposite() === _this.composite && connection.getTarget().getParent().getComposite() === _this.composite) {\n if (connection.getComposite() !== _this.composite) {\n _this.assignedConnections.add({ oldComposite: connection.getComposite(), connection: connection });\n _this.composite.assignFigure(connection);\n }\n }\n });\n }\n },\n\n /**\n *\n *\n * Undo the move command\n *\n **/\n undo: function undo() {\n this.composite.unassignFigure(this.figure);\n this.assignedConnections.each(function (i, entry) {\n if (entry.oldComposite !== null) {\n entry.oldComposite.assignFigure(entry.connection);\n } else {\n entry.connection.getComposite().unassignFigure(entry.connection);\n }\n });\n this.composite.stickFigures = true;\n this.composite.setBoundingBox(this.oldBoundingBox);\n this.composite.stickFigures = false;\n },\n\n /**\n *\n *\n * Redo the move command after the user has undo this command\n *\n **/\n redo: function redo() {\n var _this2 = this;\n\n this.composite.setBoundingBox(this.oldBoundingBox);\n this.composite.assignFigure(this.figure);\n this.assignedConnections.each(function (i, entry) {\n return _this2.composite.assignFigure(entry.connection);\n });\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandAttr.js\":\n/*!************************************!*\\\n !*** ./src/command/CommandAttr.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *Command to change attributes of a shape with undo/redo support\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandAttr = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandAttr.prototype */\n{\n\n NAME: \"draw2d.command.CommandAttr\",\n\n /**\n * Create a new Command objects which provides undo/redo for attributes.\n *\n * @param {draw2d.Figure} figure the figure to handle\n * @param {Object} attributes new attributes to set\n */\n init: function init(figure, newAttributes) {\n var _this = this;\n\n this._super(_packages2.default.Configuration.i18n.command.changeAttributes);\n\n this.figure = figure;\n this.newAttributes = newAttributes;\n this.oldAttributes = {};\n // Get the current attributes from the shape before we modify them.\n // Required for undo/redo\n Object.keys(newAttributes).forEach(function (key) {\n _this.oldAttributes[key] = figure.attr(key);\n });\n },\n\n /**\n * \n * Returns [true] if the command can be execute and the execution of the\n * command modify the model. A CommandMove with [startX,startX] == [endX,endY] should\n * return false. <br>\n * the execution of the Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // return false if we doesn't modify the model => NOP Command\n return true;\n },\n\n /**\n * \n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n * \n *\n * Undo the move command\n *\n **/\n undo: function undo() {\n this.figure.attr(this.oldAttributes);\n },\n\n /**\n * \n *\n * Redo the move command after the user has undo this command\n *\n **/\n redo: function redo() {\n this.figure.attr(this.newAttributes);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandBoundingBox.js\":\n/*!*******************************************!*\\\n !*** ./src/command/CommandBoundingBox.js ***!\n \\*******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Set the bounding box of a figure with undo/redo support\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandBoundingBox = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandResize.prototype */\n{\n\n NAME: \"draw2d.command.CommandResize\",\n\n /**\n * Create a new resize Command objects which can be execute via the CommandStack.\n *\n * @param {draw2d.Figure} figure the figure to resize\n * @param {draw2d.geo.Rectangle} boundingBox the new bounding box of the figure\n */\n init: function init(figure, boundingBox) {\n this._super(_packages2.default.Configuration.i18n.command.resizeShape);\n this.figure = figure;\n this.oldBoundingBox = this.figure.getBoundingBox();\n this.newBoundingBox = boundingBox;\n },\n\n /**\n *\n * Returns [true] if the command can be execute and the execution of the\n * command modify the model. A CommandMove with [startX,startX] == [endX,endY] should\n * return false. <br>\n * the execution of the Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // return false if we doesn't modify the model => NOP Command\n return !this.oldBoundingBox.equals(this.newBoundingBox);\n },\n\n /**\n *\n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n *\n * Undo the command\n *\n **/\n undo: function undo() {\n this.figure.setBoundingBox(this.oldBoundingBox);\n },\n\n /**\n *\n * Redo the command after the user has undo this command\n *\n **/\n redo: function redo() {\n this.figure.setBoundingBox(this.newBoundingBox);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandCollection.js\":\n/*!******************************************!*\\\n !*** ./src/command/CommandCollection.js ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A CommandCollection works as a single command. You can add more than one\n * Command to this CommandCollection and execute/undo them onto the CommandStack as a\n * single Command.\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandCollection = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandCollection.prototype */\n{\n\n NAME: \"draw2d.command.CommandCollection\",\n\n /**\n * Create a new CommandConnect objects which can be execute via the CommandStack.\n *\n * @param {String} [commandLabel] the label to show on the command stack for the undo/redo operation\n */\n init: function init(commandLabel) {\n this._super(typeof commandLabel === 'undefined' ? _packages2.default.Configuration.i18n.command.collection : commandLabel);\n\n this.commands = new _packages2.default.util.ArrayList();\n },\n\n /**\n *\n * Returns a label of the Command. e.g. \"move figure\".\n *\n * @returns {String} the label for this command\n **/\n getLabel: function getLabel() {\n //return the label of the one and only command\n //\n if (this.commands.getSize() === 1) {\n return this.commands.first().getLabel();\n }\n\n // return a common label if all commands have the same label.\n //\n if (this.commands.getSize() > 1) {\n var labels = this.commands.clone().map(function (e) {\n return e.getLabel();\n });\n labels.unique();\n if (labels.getSize() === 1) {\n return labels.first();\n }\n }\n\n // return the all purpose label.\n return this._super();\n },\n\n /**\n *\n * Add a command to the collection.\n *\n * @param {draw2d.command.Command} command\n */\n add: function add(command) {\n this.commands.add(command);\n },\n\n /**\n *\n * Returns [true] if the command can be execute and the execution of the\n * command modifies the model. e.g.: a CommandMove with [startX,startX] == [endX,endY] should\n * return false. The execution of this Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // We ask all cmd's if they make any changes.\n // Keep in mind: the command will be execute if at least ONE command return [true]!!!!\n // doesn't matter if the other commands return [false].\n // The method should be renamed into: modifiesTheModel()....design flaw.\n var canExec = false;\n this.commands.each(function (i, cmd) {\n canExec = canExec || cmd.canExecute();\n });\n return canExec;\n },\n\n /**\n *\n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.commands.each(function (i, cmd) {\n cmd.execute();\n });\n },\n\n /**\n *\n * Redo the command after the user has undo this command.\n *\n **/\n redo: function redo() {\n this.commands.each(function (i, cmd) {\n cmd.redo();\n });\n },\n\n /**\n *\n * Undo the command.\n *\n **/\n undo: function undo() {\n // execute the undo operation in reverse direction.\n\n this.commands.reverse();\n this.commands.each(function (i, cmd) {\n cmd.undo();\n });\n this.commands.reverse();\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandConnect.js\":\n/*!***************************************!*\\\n !*** ./src/command/CommandConnect.js ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Connects two ports with a connection.\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandConnect = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandConnect.prototype */\n{\n\n NAME: \"draw2d.command.CommandConnect\",\n\n /**\n * Create a new CommandConnect objects which can be execute via the CommandStack.\n *\n * @param {draw2d.Port} source the source port for the connection to create\n * @param {draw2d.Port} target the target port for the connection to create\n * @param {draw2d.Port} [dropTarget] the port who has initiate the connection creation. mainly the drop target\n */\n init: function init(source, target, dropTarget) {\n this._super(_packages2.default.Configuration.i18n.command.connectPorts);\n this.canvas = target.getCanvas();\n this.source = source;\n this.target = target;\n this.connection = null;\n this.dropTarget = dropTarget; // optional\n },\n\n /**\n *\n * set the connection to use. called by the ConnectionCreatePolicy\n */\n setConnection: function setConnection(connection) {\n this.connection = connection;\n },\n\n /**\n *\n * Returns the fresh created connection if available. Used in the\n * ClickConnectionCreatePolicy to customize the router and vertices.\n *\n * @returns {null|draw2d.Connection}\n * @since 6.1.0\n */\n getConnection: function getConnection() {\n return this.connection;\n },\n\n /**\n *\n * Execute the command the first time\n *\n **/\n execute: function execute() {\n var _this = this;\n\n var optionalCallback = function optionalCallback(conn) {\n _this.connection = conn;\n _this.connection.setSource(_this.source);\n _this.connection.setTarget(_this.target);\n _this.canvas.add(_this.connection);\n };\n\n // the createConnection must return either a connection or \"undefined\". If the method return \"undefined\"\n // the asynch callback must be called. Usefull if the createConnection shows a selection dialog\n //\n if (this.connection === null) {\n // deprecated call!!!!\n //\n var result = _packages2.default.Configuration.factory.createConnection(this.source, this.target, optionalCallback, this.dropTarget);\n debugger;\n // will be handled by the optional callback\n if (typeof result === \"undefined\") {\n return;\n }\n\n this.connection = result;\n }\n\n optionalCallback(this.connection);\n },\n\n /**\n *\n * Redo the command after the user has undo this command.\n *\n **/\n redo: function redo() {\n this.canvas.add(this.connection);\n this.connection.reconnect();\n },\n\n /**\n *\n * Undo the command.\n *\n **/\n undo: function undo() {\n this.canvas.remove(this.connection);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandDelete.js\":\n/*!**************************************!*\\\n !*** ./src/command/CommandDelete.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Command to remove a figure with CommandStack support.\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandDelete = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandDelete.prototype */\n{\n NAME: \"draw2d.command.CommandDelete\",\n\n /**\n * Create a delete command for the given figure.\n *\n * @param {draw2d.Figure} figure\n */\n init: function init(figure) {\n this._super(_packages2.default.Configuration.i18n.command.deleteShape);\n\n this.parent = figure.getParent();\n this.figure = figure;\n this.canvas = figure.getCanvas();\n this.connections = null;\n this.removedParentEntry = null; // can be null if the figure didn't have any parent shape assigned\n this.indexOfChild = -1;\n },\n\n /**\n * \n * Returns [true] if the command can be execute and the execution of the\n * command modifies the model. e.g.: a CommandMove with [startX,startX] == [endX,endY] should\n * return false. The execution of this Command doesn't modify the model.\n *\n * @returns {Boolean} return try if the command modify the model or make any relevant changes\n **/\n canExecute: function canExecute() {\n // we can only delete the figure if its part of the canvas.\n return this.figure.getCanvas() !== null;\n },\n\n /**\n * \n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n * \n * Undo the command\n *\n **/\n undo: function undo() {\n if (this.parent !== null) {\n this.parent.add(this.removedParentEntry.figure, this.removedParentEntry.locator, this.indexOfChild);\n this.canvas.setCurrentSelection(this.parent);\n } else {\n this.canvas.add(this.figure);\n this.canvas.setCurrentSelection(this.figure);\n }\n\n if (this.figure instanceof _packages2.default.Connection) {\n this.figure.reconnect();\n }\n\n for (var i = 0; i < this.connections.getSize(); ++i) {\n this.canvas.add(this.connections.get(i));\n this.connections.get(i).reconnect();\n }\n },\n\n /**\n * \n *\n * Redo the command after the user has undo this command\n *\n **/\n redo: function redo() {\n this.canvas.setCurrentSelection(null);\n\n // Collect all connections that are bounded to the figure to delete. This connections\n // must be deleted too.\n //\n if (this.connections === null) {\n if (this.figure instanceof _packages2.default.shape.node.Node) {\n this.connections = this.figure.getConnections();\n } else {\n this.connections = new _packages2.default.util.ArrayList();\n }\n }\n\n // already done in the canvas.remove(..) method\n // if(this.figure instanceof draw2d.Connection){\n // this.figure.disconnect();\n // }\n\n\n // remove all connections\n //\n for (var i = 0; i < this.connections.getSize(); ++i) {\n this.canvas.remove(this.connections.get(i));\n }\n\n // remove this figure from the parent\n //\n if (this.parent !== null) {\n // determine the index of the child before remove\n this.indexOfChild = this.parent.getChildren().indexOf(this.figure);\n this.removedParentEntry = this.parent.remove(this.figure);\n }\n // or from the canvas\n else {\n this.canvas.remove(this.figure);\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandDeleteGroup.js\":\n/*!*******************************************!*\\\n !*** ./src/command/CommandDeleteGroup.js ***!\n \\*******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Command to remove a group with all related children.\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandDeleteGroup = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandDeleteGroup.prototype */\n{\n\n NAME: \"draw2d.command.CommandDeleteGroup\",\n\n /**\n * Create a delete command for the given figure.\n *\n * @param {draw2d.shape.composite.Group} group\n */\n init: function init(group) {\n this._super(_packages2.default.Configuration.i18n.command.deleteShape);\n\n this.parent = group.getParent();\n this.group = group;\n this.canvas = group.getCanvas();\n this.batchDelete = null;\n },\n\n /**\n * \n * Returns [true] if the command can be execute and the execution of the\n * command modifies the model. e.g.: a CommandMove with [startX,startX] == [endX,endY] should\n * return false. The execution of this Command doesn't modify the model.\n *\n * @returns {Boolean} return try if the command modify the model or make any relevant changes\n **/\n canExecute: function canExecute() {\n // we can only delete the shape if a children can be deleted\n //\n var children = this.group.getAssignedFigures();\n for (var i = 0; i < children.getSize(); i++) {\n if (children.get(i).isDeleteable() === false) {\n return false;\n }\n }\n\n // we can only delete the figure if its part of the canvas.\n return this.group.getCanvas() !== null;\n },\n\n /**\n * \n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n * \n * Undo the command\n *\n **/\n undo: function undo() {\n this.batchDelete.undo();\n this.canvas.setCurrentSelection(this.group);\n },\n\n /**\n * \n *\n * Redo the command after the user has undo this command\n *\n **/\n redo: function redo() {\n if (this.batchDelete === null) {\n this.batchDelete = new _packages2.default.command.CommandCollection();\n\n // remove the assignment of the children to the group before we delete the group\n //\n this.batchDelete.add(new _packages2.default.command.CommandUngroup(this.canvas, this.group));\n\n // add the delete command of the children to the batch\n //\n var children = this.group.getAssignedFigures();\n for (var i = 0; i < children.getSize(); i++) {\n var child = children.get(i);\n // request a delete Command from the child instead of create one by my own. May the child\n // provides its own implementation\n var cmd = child.createCommand(new _packages2.default.command.CommandType(_packages2.default.command.CommandType.DELETE));\n this.batchDelete.add(cmd);\n }\n }\n\n this.batchDelete.execute();\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandGroup.js\":\n/*!*************************************!*\\\n !*** ./src/command/CommandGroup.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Command to group a given set of figures\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandGroup = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandGroup.prototype */\n{\n\n NAME: \"draw2d.command.CommandGroup\",\n\n /**\n * Create a group command for the given figure.\n *\n * @param {draw2d.util.ArrayList} figures the figures to group\n */\n init: function init(canvas, figures) {\n this._super(_packages2.default.Configuration.i18n.command.groupShapes);\n if (figures instanceof _packages2.default.Selection) {\n this.figures = figures.getAll();\n } else {\n this.figures = figures;\n }\n\n // figures which already part of an non \"Group\" composite will be removed from the set.\n // It is not possible to assign a figure to two different composites.\n //\n this.figures.grep(function (figure) {\n return figure.getComposite() === null;\n });\n\n this.canvas = canvas;\n this.group = new _packages2.default.shape.composite.Group();\n },\n\n /**\n * \n * Returns [true] if the command can be execute and the execution of the\n * command modifies the model. e.g.: a CommandMove with [startX,startX] == [endX,endY] should\n * return false. The execution of this Command doesn't modify the model.\n *\n * @returns {Boolean} return try if the command modify the model or make any relevant changes\n **/\n canExecute: function canExecute() {\n return !this.figures.isEmpty();\n },\n\n /**\n * \n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n * \n * Undo the command\n *\n **/\n undo: function undo() {\n var _this = this;\n this.figures.each(function (i, figure) {\n _this.group.unassignFigure(figure);\n });\n\n this.canvas.remove(this.group);\n this.canvas.setCurrentSelection(this.figures);\n },\n\n /**\n * \n * Redo the command after the user has undo this command\n *\n **/\n redo: function redo() {\n var _this = this;\n this.figures.each(function (i, figure) {\n _this.group.assignFigure(figure);\n });\n\n this.canvas.add(this.group);\n this.canvas.setCurrentSelection(this.group);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandMove.js\":\n/*!************************************!*\\\n !*** ./src/command/CommandMove.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Command for the movement of figures.\n *\n * @author Andreas Herz\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandMove = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandMove.prototype */\n{\n NAME: \"draw2d.command.CommandMove\",\n\n /**\n * Create a new Command objects which can be execute via the CommandStack.\n *\n * @param {draw2d.Figure} figure the figure to move\n * @param {Number} [x] the current x position\n * @param {Number} [y] the current y position\n */\n init: function init(figure, x, y) {\n this._super(_packages2.default.Configuration.i18n.command.moveShape);\n this.figure = figure;\n if (typeof x === \"undefined\") {\n this.oldX = figure.getX();\n this.oldY = figure.getY();\n } else {\n this.oldX = x;\n this.oldY = y;\n }\n },\n\n /**\n * \n * Set the initial position of the element\n *\n * @param {Number} x the new initial x position\n * @param {Number} y the new initial y position\n **/\n setStartPosition: function setStartPosition(x, y) {\n this.oldX = x;\n this.oldY = y;\n },\n\n /**\n * \n * Set the target/final position of the figure move command.\n *\n * @param {Number} x the new x position\n * @param {Number} y the new y position\n **/\n setPosition: function setPosition(x, y) {\n this.newX = x;\n this.newY = y;\n },\n\n /**\n * \n * Returns [true] if the command can be execute and the execution of the\n * command modify the model. A CommandMove with [startX,startX] == [endX,endY] should\n * return false. <br>\n * the execution of the Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // return false if we doesn't modify the model => NOP Command\n return this.newX !== this.oldX || this.newY !== this.oldY;\n },\n\n /**\n * \n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n * \n *\n * Undo the move command\n *\n **/\n undo: function undo() {\n this.figure.setPosition(this.oldX, this.oldY);\n },\n\n /**\n * \n *\n * Redo the move command after the user has undo this command\n *\n **/\n redo: function redo() {\n this.figure.setPosition(this.newX, this.newY);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandMoveConnection.js\":\n/*!**********************************************!*\\\n !*** ./src/command/CommandMoveConnection.js ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Command for the movement of figures.\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandMoveConnection = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandMoveConnection.prototype */\n{\n\n NAME: \"draw2d.command.CommandMoveConnection\",\n\n /**\n * Create a new Command objects which can be execute via the CommandStack.\n *\n * @param {draw2d.Connection} figure the connection to move\n */\n init: function init(figure) {\n this._super(_packages2.default.Configuration.i18n.command.moveLine);\n this.line = figure;\n this.dx = 0;\n this.dy = 0;\n },\n\n /**\n * \n * set the offset of the line translation\n *\n * @param {Number} dx\n * @param {Number} dy\n */\n setTranslation: function setTranslation(dx, dy) {\n this.dx = dx;\n this.dy = dy;\n },\n\n /**\n * Returns [true] if the command can be execute and the execution of the\n * command modify the model. A CommandMove with [startX,startX] == [endX,endY] should\n * return false. <br>\n * the execution of the Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // return false if we doesn't modify the model => NOP Command\n return this.dx !== 0 && this.dy !== 0;\n },\n\n /**\n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n * Undo the command\n *\n **/\n undo: function undo() {\n var _this = this;\n this.line.getVertices().each(function (i, e) {\n e.translate(-_this.dx, -_this.dy);\n });\n this.line.svgPathString = null;\n // required to update resize handles and the painting of the line\n this.line.setPosition(this.line.getStartPosition());\n },\n\n /**\n * Redo the command after the user has undo this command\n *\n **/\n redo: function redo() {\n var _this = this;\n this.line.getVertices().each(function (i, e) {\n e.translate(_this.dx, _this.dy);\n });\n this.line.svgPathString = null;\n\n // required to update resize handles and the painting of the line\n this.line.setPosition(this.line.getStartPosition());\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandMoveLine.js\":\n/*!****************************************!*\\\n !*** ./src/command/CommandMoveLine.js ***!\n \\****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Command for the movement of figures.\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandMoveLine = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandMoveLine.prototype */\n{\n\n NAME: \"draw2d.command.CommandMoveLine\",\n\n /**\n * Create a new Command objects which can be execute via the CommandStack.\n *\n * @param {draw2d.shape.basic.Line} figure the line to move\n */\n init: function init(figure) {\n this._super(_packages2.default.Configuration.i18n.command.moveLine);\n this.line = figure;\n this.dx = 0;\n this.dy = 0;\n },\n\n /**\n *\n * set the offset of the line translation\n *\n * @param {Number} dx\n * @param {Number} dy\n */\n setTranslation: function setTranslation(dx, dy) {\n this.dx = dx;\n this.dy = dy;\n },\n\n /**\n * Returns [true] if the command can be execute and the execution of the\n * command modify the model. A CommandMove with [startX,startX] == [endX,endY] should\n * return false. <br>\n * the execution of the Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // return false if we doesn't modify the model => NOP Command\n return this.dx !== 0 && this.dy !== 0;\n },\n\n /**\n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n * Undo the command\n *\n **/\n undo: function undo() {\n var _this = this;\n this.line.getVertices().each(function (i, e) {\n e.translate(-_this.dx, -_this.dy);\n });\n this.line.svgPathString = null;\n // required to update resize handles and the painting of the line\n this.line.setPosition(this.line.getStartPosition());\n },\n\n /**\n * Redo the command after the user has undo this command\n *\n **/\n redo: function redo() {\n var _this = this;\n this.line.getVertices().each(function (i, e) {\n e.translate(_this.dx, _this.dy);\n });\n this.line.svgPathString = null;\n\n // required to update resize handles and the painting of the line\n this.line.setPosition(this.line.getStartPosition());\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandMoveVertex.js\":\n/*!******************************************!*\\\n !*** ./src/command/CommandMoveVertex.js ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Command for the vertex movement of a polyline/polygon.\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandMoveVertex = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandMoveVertex.prototype */\n{\n\n NAME: \"draw2d.command.CommandMoveVertex\",\n\n /**\n * Create a new Command objects which can be execute via the CommandStack.\n *\n * @param {draw2d.shape.basic.PolyLine} line the related line\n */\n init: function init(line) {\n this._super(_packages2.default.Configuration.i18n.command.moveVertex);\n\n this.line = line;\n this.index = -1;\n this.newPoint = null;\n },\n\n /**\n * \n * Set the index of the vertex of the polyline/polygon to modify.\n *\n * @param {Number} index the related index of the vertex\n **/\n setIndex: function setIndex(index) {\n this.index = index;\n this.origPoint = this.line.getVertices().get(this.index).clone();\n },\n\n updatePosition: function updatePosition(x, y) {\n this.newPoint = new _packages2.default.geo.Point(x, y);\n },\n\n /**\n * \n * Returns [true] if the command can be execute and the execution of the\n * command modify the model. A CommandMove with [startX,startX] == [endX,endY] should\n * return false. <br>\n * the execution of the Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // return false if we doesn't modify the model => NOP Command\n return this.index !== -1 && this.newPoint !== null;\n },\n\n /**\n * \n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n * \n *\n * Undo the move command\n *\n **/\n undo: function undo() {\n this.line.setVertex(this.index, this.origPoint.x, this.origPoint.y);\n },\n\n /**\n * \n *\n * Redo the move command after the user has undo this command\n *\n **/\n redo: function redo() {\n this.line.setVertex(this.index, this.newPoint.x, this.newPoint.y);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandMoveVertices.js\":\n/*!********************************************!*\\\n !*** ./src/command/CommandMoveVertices.js ***!\n \\********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Command for the vertices movement of a polyline/polygon.\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandMoveVertices = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandMoveVertices.prototype */\n{\n\n NAME: \"draw2d.command.CommandMoveVertices\",\n\n /**\n * Create a new Command objects which can be execute via the CommandStack.\n *\n * @param {draw2d.shape.basic.PolyLine} line the related line\n */\n init: function init(line) {\n this._super(_packages2.default.Configuration.i18n.command.moveVertices);\n\n this.line = line;\n this.oldVertices = line.getVertices().clone(true);\n this.newVertices = null;\n },\n\n updateVertices: function updateVertices(newVertices) {\n this.newVertices = newVertices;\n },\n\n /**\n *\n * Returns [true] if the command can be execute and the execution of the\n * command modify the model. A CommandMove with [startX,startX] == [endX,endY] should\n * return false. <br>\n * the execution of the Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // return false if we doesn't modify the model => NOP Command\n return this.newVertices !== null;\n },\n\n /**\n *\n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n *\n *\n * Undo the move command\n *\n **/\n undo: function undo() {\n this.line.setVertices(this.oldVertices);\n },\n\n /**\n *\n *\n * Redo the move command after the user has undo this command\n *\n **/\n redo: function redo() {\n this.line.setVertices(this.newVertices);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandReconnect.js\":\n/*!*****************************************!*\\\n !*** ./src/command/CommandReconnect.js ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Reconnects two ports. This command is used during the DragDrop operation of a draw2d.Connection.\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandReconnect = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandReconnect.prototype */\n{\n\n NAME: \"draw2d.command.CommandReconnect\",\n\n /**\n * Create a new Command objects which can be execute via the CommandStack.\n *\n * @param {draw2d.Connection} conn the related Connection which is currently in the drag&drop operation\n */\n init: function init(conn) {\n this._super(_packages2.default.Configuration.i18n.command.connectPorts);\n this.con = conn;\n this.oldSourcePort = conn.getSource();\n this.oldTargetPort = conn.getTarget();\n },\n\n /**\n *\n * Returns [true] if the command can be execute and the execution of the\n * command modify the model. A CommandMove with [startX,startX] == [endX,endY] should\n * return false. <br>\n * the execution of the Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // return false if we doesn't modify the model => NOP Command\n return true;\n },\n\n /**\n *\n * The new ports to use during the execute of this command.\n *\n * @param {draw2d.Port} source\n * @param {draw2d.Port} target\n */\n setNewPorts: function setNewPorts(source, target) {\n this.newSourcePort = source;\n this.newTargetPort = target;\n },\n\n setIndex: function setIndex(index) {\n // do nothing....but method is required for LineResizeHandle\n // With this common interface the ResizeHandle can handle Lines and Connections\n // with the same code\n },\n\n /**\n * compatibily method to the CommandMoveVertex to handle Line and Connections\n * transparent in the ResizeHandles\n *\n * @param x\n * @param y\n */\n updatePosition: function updatePosition(x, y) {\n // do nothing....but method is required for LineResizeHandle\n // With this common interface the ResizeHandle can handle Lines and Connections\n // with the same code\n },\n\n /**\n *\n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n *\n * Execute the command the first time\n *\n **/\n cancel: function cancel() {\n this.con.setSource(this.oldSourcePort);\n this.con.setTarget(this.oldTargetPort);\n\n // force a routing of the connection and DON'T set the old reouter again because this reset all manual added\n // vertices\n this.con.routingRequired = true;\n this.con.repaint();\n },\n\n /**\n *\n * Undo the command\n *\n **/\n undo: function undo() {\n this.con.setSource(this.oldSourcePort);\n this.con.setTarget(this.oldTargetPort);\n // force a routing of the connection and DON'T set the old reouter again because this reset all manual added\n // vertices\n this.con.routingRequired = true;\n this.con.repaint();\n },\n\n /**\n *\n * Redo the command after the user has undo this command\n *\n **/\n redo: function redo() {\n this.con.setSource(this.newSourcePort);\n this.con.setTarget(this.newTargetPort);\n // force a routing of the connection and DON'T set the old reouter again because this reset all manual added\n // vertices\n this.con.routingRequired = true;\n this.con.repaint();\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandRemoveVertex.js\":\n/*!********************************************!*\\\n !*** ./src/command/CommandRemoveVertex.js ***!\n \\********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Remove a vertex from a polyline or polygon\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandRemoveVertex = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandRemoveVertex.prototype */\n{\n\n NAME: \"draw2d.command.CommandRemoveVertex\",\n\n /**\n * Create a new Command objects which add a vertex to a PloyLine.\n *\n * @param {draw2d.shape.basic.PolyLine} line the related line\n * @param {Number} index the index where to add\n */\n init: function init(line, index) {\n this._super(_packages2.default.Configuration.i18n.command.deleteVertex);\n\n this.line = line;\n this.index = index;\n this.oldPoint = line.getVertices().get(index).clone();\n },\n\n /**\n *\n * Returns [true] if the command can be execute and the execution of the\n * command modify the model. A CommandMove with [startX,startX] == [endX,endY] should\n * return false. <br>\n * the execution of the Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // return false if we doesn't modify the model => NOP Command\n return true;\n },\n\n /**\n *\n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n *\n *\n * Undo the move command\n *\n **/\n undo: function undo() {\n this.line.insertVertexAt(this.index, this.oldPoint.x, this.oldPoint.y);\n },\n\n /**\n *\n *\n * Redo the move command after the user has undo this command\n *\n **/\n redo: function redo() {\n this.line.removeVertexAt(this.index);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandReplaceVertices.js\":\n/*!***********************************************!*\\\n !*** ./src/command/CommandReplaceVertices.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Replace the vertices of a polyline.\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandReplaceVertices = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandReplaceVertices.prototype */\n{\n\n NAME: \"draw2d.command.CommandReplaceVertices\",\n\n /**\n * Create a new Command objects which add a segment to a PolyLine / Polygon.\n *\n * @param {draw2d.shape.basic.PolyLine} line the related line\n * @param {draw2d.util.ArrayList} originalVertices the original vertices of the polyline\n * @param {draw2d.util.ArrayList} newVertices the new vertices of the polyline\n */\n init: function init(line, originalVertices, newVertices) {\n this._super(_packages2.default.Configuration.i18n.command.addSegment);\n\n this.line = line;\n this.originalVertices = originalVertices;\n this.newVertices = newVertices;\n },\n\n /**\n * \n * Returns [true] if the command can be execute and the execution of the\n * command modify the model. A CommandMove with [startX,startX] == [endX,endY] should\n * return false. <br>\n * the execution of the Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // return false if we doesn't modify the model => NOP Command\n return true;\n },\n\n /**\n * \n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n * \n *\n * Undo the move command\n *\n **/\n undo: function undo() {\n this.line.setVertices(this.originalVertices);\n },\n\n /**\n * \n *\n * Redo the move command after the user has undo this command\n *\n **/\n redo: function redo() {\n this.line.setVertices(this.newVertices);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandResize.js\":\n/*!**************************************!*\\\n !*** ./src/command/CommandResize.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Resize command for figures. Can be execute/undo/redo via a CommandStack.\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandResize = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandResize.prototype */\n{\n\n NAME: \"draw2d.command.CommandResize\",\n\n /**\n * Create a new resize Command objects which can be execute via the CommandStack.\n *\n * @param {draw2d.Figure} figure the figure to resize\n * @param {Number} [width] the current width\n * @param {Number} [height] the current height\n */\n init: function init(figure, width, height) {\n this._super(_packages2.default.Configuration.i18n.command.resizeShape);\n this.figure = figure;\n\n if (typeof width === \"undefined\") {\n this.oldWidth = figure.getWidth();\n this.oldHeight = figure.getHeight();\n } else {\n this.oldWidth = width;\n this.oldHeight = height;\n }\n },\n\n /**\n * \n * Set the new dimension of the element.\n *\n * @param {Number} width the new width.\n * @param {Number} height the new height of the element.\n **/\n setDimension: function setDimension(width, height) {\n this.newWidth = width | 0;\n this.newHeight = height | 0;\n },\n\n /**\n * \n * Returns [true] if the command can be execute and the execution of the\n * command modify the model. A CommandMove with [startX,startX] == [endX,endY] should\n * return false. <br>\n * the execution of the Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // return false if we doesn't modify the model => NOP Command\n return this.newWidth !== this.oldWidth || this.newHeight !== this.oldHeight;\n },\n\n /**\n * \n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n * \n * Undo the command\n *\n **/\n undo: function undo() {\n this.figure.setDimension(this.oldWidth, this.oldHeight);\n },\n\n /**\n * \n * Redo the command after the user has undo this command\n *\n **/\n redo: function redo() {\n this.figure.setDimension(this.newWidth, this.newHeight);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandRotate.js\":\n/*!**************************************!*\\\n !*** ./src/command/CommandRotate.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Set the rotation angle of the given figure\n *\n * @since 4.4.1\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.command.Command\n */\n_packages2.default.command.CommandRotate = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandRotate.prototype */\n{\n\n NAME: \"draw2d.command.CommandRotate\",\n\n /**\n * Create a new resize Command objects which can be execute via the CommandStack.\n *\n * @param {draw2d.Figure} figure the figure to resize\n * @param {Number} angle the angle to rotate\n */\n init: function init(figure, angle) {\n this._super(_packages2.default.Configuration.i18n.command.rotateShape);\n this.figure = figure;\n\n this.oldAngle = figure.getRotationAngle();\n this.newAngle = angle;\n },\n\n /**\n *\n * Returns [true] if the command can be execute and the execution of the\n * command modify the model. A CommandMove with [startX,startX] == [endX,endY] should\n * return false. <br>\n * the execution of the Command doesn't modify the model.\n *\n * @returns {Boolean}\n **/\n canExecute: function canExecute() {\n // return false if we doesn't modify the model => NOP Command\n return this.oldAngle !== this.newAngle;\n },\n\n /**\n *\n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n *\n * Undo the command\n *\n **/\n undo: function undo() {\n this.rotate(this.oldAngle);\n },\n\n /**\n *\n * Redo the command after the user has undo this command\n *\n **/\n redo: function redo() {\n this.rotate(this.newAngle);\n },\n\n rotate: function rotate(angle) {\n var w = this.figure.getWidth();\n var h = this.figure.getHeight();\n\n this.figure.setRotationAngle(angle);\n\n this.figure.setDimension(h, w);\n\n this.figure.portRelayoutRequired = true;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandStack.js\":\n/*!*************************************!*\\\n !*** ./src/command/CommandStack.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * An implementation of a command stack. A stack manages the executing, undoing, and redoing of Commands. Executed\n * commands are pushed onto a a stack for undoing later. Commands which are undone are pushed onto a redo stack.\n * Whenever a new command is executed, the redo stack is flushed.\n *\n * You can retrieve the current used CommandStack just by calling <code>canvas.getCommandStack()</code>\n *\n */\n_packages2.default.command.CommandStack = Class.extend(\n/** @lends draw2d.command.CommandStack.prototype */\n{\n\n NAME: \"draw2d.command.CommandStack\",\n\n /**\n * Create a new CommandStack objects which can be execute via the CommandStack.\n *\n */\n init: function init() {\n this.undostack = [];\n this.redostack = [];\n this.maxundo = 50;\n this.transactionCommand = null;\n this.eventListeners = new _packages2.default.util.ArrayList();\n },\n\n /**\n *\n * Set the maximal undo stack size. Entries will be remove if the max. stack\n * size has been reached.\n *\n * @param {Number} count The maximal undo stack size.\n * @returns {this}\n **/\n setUndoLimit: function setUndoLimit(count) {\n this.maxundo = count;\n\n return this;\n },\n\n /**\n *\n * Remove the undo / redo history. This is useful if the user has been save the\n * document.\n *\n * @returns {this}\n **/\n markSaveLocation: function markSaveLocation() {\n this.undostack = [];\n this.redostack = [];\n\n // fire an empty command to inform all listener that the stack has been changed\n this.notifyListeners(new _packages2.default.command.Command(), _packages2.default.command.CommandStack.POST_EXECUTE);\n\n return this;\n },\n\n /**\n *\n *\n * Executes the specified Command if possible. Prior to executing the command, a\n * draw2d.command.CommandStackEvent for {@link #PRE_EXECUTE} will be fired to event listeners.\n * Similarly, after attempting to execute the command, an event for {@link #POST_EXECUTE}\n * will be fired.\n *\n * @param {draw2d.command.Command} command The command to execute.\n * @returns {this}\n **/\n execute: function execute(command) {\n if (typeof command === \"undefined\") throw \"Missing parameter [command] for method call CommandStack.execute\";\n\n // nothing to do\n if (command === null) return this; //silently\n\n // return if the command can't execute or it doesn't change the model\n // => Empty command\n if (command.canExecute() === false) return this;\n\n // A command stack transaction is open.\n // The execution will be postpone until the transaction will commit\n //\n if (this.transactionCommand !== null) {\n this.transactionCommand.add(command);\n return this;\n }\n\n this.notifyListeners(command, _packages2.default.command.CommandStack.PRE_EXECUTE, \"PRE_EXECUTE\");\n\n this.undostack.push(command);\n command.execute();\n\n // cleanup the redo stack if the user execute a new command.\n // I think this will create a \"clean\" behaviour of the unde/redo mechanism.\n //\n this.redostack = [];\n\n // monitor only the max. undo stack size\n //\n if (this.undostack.length > this.maxundo) {\n this.undostack = this.undostack.slice(this.undostack.length - this.maxundo);\n }\n this.notifyListeners(command, _packages2.default.command.CommandStack.POST_EXECUTE, \"POST_EXECUTE\");\n\n return this;\n },\n\n /**\n *\n * Opens a transaction for further multiple commands. If you execute a command all\n * {@ #execute} calls will be ignored until you commit the current transaction.\n *\n * @param {String} [commandLabel] the label to show for the undo/redo operation\n * @returns {this}\n * @since 4.0.0\n */\n startTransaction: function startTransaction(commandLabel) {\n if (this.transactionCommand !== null) {\n debugger;\n throw \"CommandStack is already within transactional mode. Don't call 'startTransaction\";\n }\n\n this.transactionCommand = new _packages2.default.command.CommandCollection(commandLabel);\n\n return this;\n },\n\n /**\n *\n * Returns true if the Command Stack has an open transaction.\n * You can start or stop a transaction with `startTransaction`and `commitTransaction`.\n *\n * A transaction is one undo/redo operation.\n *\n * @returns {Boolean}\n */\n isInTransaction: function isInTransaction() {\n return this.transactionCommand !== null;\n },\n\n /**\n *\n * Commit the running transaction. All commands between the start/end of a transaction\n * can be undo/redo in a single step.\n *\n * @since 4.0.0\n * @returns {this}\n */\n commitTransaction: function commitTransaction() {\n if (this.transactionCommand === null) {\n return this; //silently\n }\n\n var cmd = this.transactionCommand;\n this.transactionCommand = null;\n // we can drop the CommandCollection if the collection contains only one command.\n if (cmd.commands.getSize() === 1) {\n this.execute(cmd.commands.first());\n } else {\n this.execute(cmd);\n }\n\n return this;\n },\n\n /**\n *\n * Undo on command from the stack and store them on the redo command stack.\n * @returns {this}\n **/\n undo: function undo() {\n var command = this.undostack.pop();\n if (command) {\n this.notifyListeners(command, _packages2.default.command.CommandStack.PRE_UNDO);\n this.redostack.push(command);\n command.undo();\n this.notifyListeners(command, _packages2.default.command.CommandStack.POST_UNDO);\n }\n\n return this;\n },\n\n /**\n *\n * Redo a command after the user has undo a command\n *\n * @returns {this}\n **/\n redo: function redo() {\n var command = this.redostack.pop();\n\n if (command) {\n this.notifyListeners(command, _packages2.default.command.CommandStack.PRE_REDO);\n this.undostack.push(command);\n command.redo();\n this.notifyListeners(command, _packages2.default.command.CommandStack.POST_REDO);\n }\n\n return this;\n },\n\n /**\n *\n * Return the label of the next REDO command.\n *\n * @returns {String}\n **/\n getRedoLabel: function getRedoLabel() {\n if (this.redostack.length === 0) return \"\";\n\n var command = this.redostack[this.redostack.length - 1];\n\n if (command) {\n return command.getLabel();\n }\n return \"\";\n },\n\n /**\n *\n * Return the label of the next UNDO command.\n *\n * @returns {String}\n **/\n getUndoLabel: function getUndoLabel() {\n if (this.undostack.length === 0) return \"\";\n\n var command = this.undostack[this.undostack.length - 1];\n\n if (command) {\n return command.getLabel();\n }\n return \"\";\n },\n\n /**\n *\n * Indicates whenever a REDO is possible.\n *\n * @returns {Boolean} <code>true</code> if it is appropriate to call {@link #redo()}.\n */\n canRedo: function canRedo() {\n return this.redostack.length > 0;\n },\n\n /**\n *\n * indicator whenever a undo is possible.\n *\n * @returns {Boolean} <code>true</code> if {@link #undo()} can be called\n **/\n canUndo: function canUndo() {\n return this.undostack.length > 0;\n },\n\n /**\n *\n * Adds a listener to the command stack, which will be notified whenever a command has been processed on the stack.\n * @deprecated use on/off to register events\n * @param {draw2d.command.CommandStackEventListener|Function} listener the listener to add.\n * @returns {this}\n */\n addEventListener: function addEventListener(listener) {\n return this.on(\"change\", listener);\n },\n /**\n * Adds a listener to the command stack, which will be notified whenever a command has been processed on the stack.\n *\n * @param event\n * @param func\n * @returns {this}\n */\n on: function on(event, listener) {\n if (event !== \"change\") throw \"only event of kind 'change' is supported\";\n\n if (listener instanceof _packages2.default.command.CommandStackEventListener) {\n this.eventListeners.add(listener);\n } else if (typeof listener.stackChanged === \"function\") {\n this.eventListeners.add(listener);\n } else if (typeof listener === \"function\") {\n this.eventListeners.add({ stackChanged: listener });\n } else {\n throw \"Object doesn't implement required callback interface [draw2d.command.CommandStackListener]\";\n }\n\n return this;\n },\n\n /**\n *\n * Removes a listener from the command stack.\n *\n * @deprecated use on/off to register events\n * @param {draw2d.command.CommandStackEventListener} listener the listener to remove.\n * @returns {this}\n */\n removeEventListener: function removeEventListener(listener) {\n this.off(listener);\n\n return this;\n },\n\n /**\n *\n * @param listener\n * @returns {this}\n */\n off: function off(listener) {\n this.eventListeners.grep(function (entry) {\n return entry === listener || entry.stackChanged === listener;\n });\n /*\n let size = this.eventListeners.getSize()\n for (let i = 0; i < size; i++) {\n let entry = this.eventListeners.get(i)\n if (entry === listener || entry.stackChanged === listener) {\n this.eventListeners.remove(entry)\n return\n }\n }\n */\n return this;\n },\n\n /**\n *\n * Notifies command stack event listeners that the command stack has changed to the\n * specified state.\n *\n * @param {draw2d.command.Command} command the command\n * @param {Number} state the current stack state\n * @private\n **/\n notifyListeners: function notifyListeners(command, state, action) {\n var event = new _packages2.default.command.CommandStackEvent(this, command, state, action);\n var size = this.eventListeners.getSize();\n\n for (var i = 0; i < size; i++) {\n this.eventListeners.get(i).stackChanged(event);\n }\n }\n});\n\n// Constant indicating notification prior to executing a command (value is 1).\n_packages2.default.command.CommandStack.PRE_EXECUTE = 1;\n// Constant indicating notification prior to redoing a command (value is 2).\n_packages2.default.command.CommandStack.PRE_REDO = 2;\n// Constant indicating notification prior to undoing a command (value is 4).\n_packages2.default.command.CommandStack.PRE_UNDO = 4;\n// Constant indicating notification after a command has been executed (value is 8).\n_packages2.default.command.CommandStack.POST_EXECUTE = 8;\n// Constant indicating notification after a command has been redone (value is 16).\n_packages2.default.command.CommandStack.POST_REDO = 16;\n// Constant indicating notification after a command has been undone (value is 32).\n_packages2.default.command.CommandStack.POST_UNDO = 32;\n// Constant indicating notification after the stack has been (re)init (value is 64).\n_packages2.default.command.CommandStack.POST_INIT = 64;\n\n_packages2.default.command.CommandStack.POST_MASK = _packages2.default.command.CommandStack.POST_EXECUTE | _packages2.default.command.CommandStack.POST_UNDO | _packages2.default.command.CommandStack.POST_REDO;\n_packages2.default.command.CommandStack.PRE_MASK = _packages2.default.command.CommandStack.PRE_EXECUTE | _packages2.default.command.CommandStack.PRE_UNDO | _packages2.default.command.CommandStack.PRE_REDO;\n\n/***/ }),\n\n/***/ \"./src/command/CommandStackEvent.js\":\n/*!******************************************!*\\\n !*** ./src/command/CommandStackEvent.js ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Event class which will be fired for every CommandStack operation. Required for CommandStackListener.\n */\n_packages2.default.command.CommandStackEvent = Class.extend(\n/** @lends draw2d.command.CommandStackEvent.prototype */\n{\n\n NAME: \"draw2d.command.CommandStackEvent\",\n\n /**\n * Create a new CommandStack objects which can be execute via the CommandStack.\n *\n * @param {draw2d.command.Command} command the related command\n * @param {Number} details the current state of the command execution\n *\n */\n init: function init(stack, command, details, action) {\n this.stack = stack;\n this.command = command;\n this.details = details; // deprecated\n this.action = action;\n },\n\n /**\n *\n * Return the corresponding stack of the event.\n *\n * @returns {draw2d.command.CommandStack}\n **/\n getStack: function getStack() {\n return this.stack;\n },\n\n /**\n *\n * Returns null or a Command if a command is relevant to the current event.\n *\n * @returns {draw2d.command.Command}\n **/\n getCommand: function getCommand() {\n return this.command;\n },\n\n /**\n *\n * Returns an integer identifying the type of event which has occurred.\n * Defined by {@link draw2d.command.CommandStack}.\n *\n * @returns {Number}\n **/\n getDetails: function getDetails() {\n return this.details;\n },\n\n /**\n *\n * Returns true if this event is fired after the stack having changed.\n *\n * @returns {Boolean} true if post-change event\n **/\n isPostChangeEvent: function isPostChangeEvent() {\n return 0 !== (this.getDetails() & _packages2.default.command.CommandStack.POST_MASK);\n },\n\n /**\n *\n * Returns true if this event is fired prior to the stack changing.\n *\n * @returns {Boolean} true if pre-change event\n **/\n isPreChangeEvent: function isPreChangeEvent() {\n return 0 !== (this.getDetails() & _packages2.default.command.CommandStack.PRE_MASK);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandStackEventListener.js\":\n/*!**************************************************!*\\\n !*** ./src/command/CommandStackEventListener.js ***!\n \\**************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Event class which will be fired for every CommandStack operation. Required for CommandStackListener.\n * @author Andreas Herz\n */\n\n_packages2.default.command.CommandStackEventListener = Class.extend(\n/** @lends draw2d.command.CommandStackEventListener.prototype */\n{\n\n NAME: \"draw2d.command.CommandStackEventListener\",\n\n /**\n * Creates a new Listener Object\n *\n */\n init: function init() {},\n\n /**\n *\n * Sent when an event occurs on the command stack. draw2d.command.CommandStackEvent.getDetail()\n * can be used to identify the type of event which has occurred.\n *\n * @template\n *\n * @param {draw2d.command.CommandStackEvent} event\n **/\n stackChanged: function stackChanged(event) {}\n\n});\n\n/***/ }),\n\n/***/ \"./src/command/CommandType.js\":\n/*!************************************!*\\\n !*** ./src/command/CommandType.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * EditPolicies should determine an Figures editing capabilities.\n * It is possible to implement an Figure such that it handles all editing\n * responsibility.<br>\n * However, it is much more flexible and object-oriented to use\n * EditPolicies. Using policies, you can pick and choose the editing behavior for\n * an Figure without being bound to its class hierarchy. Code reuse is increased,\n * and code management is easier.\n *\n * @author Andreas Herz\n */\n\n_packages2.default.command.CommandType = Class.extend(\n/** @lends draw2d.command.CommandType.prototype */\n{\n\n NAME: \"draw2d.command.CommandType\",\n\n /**\n * Create a new edit policy object\n *\n * @param {String} policy\n */\n init: function init(policy) {\n this.policy = policy;\n },\n\n /**\n * \n * Return the String representation of the policy\n *\n * @returns {String}\n **/\n getPolicy: function getPolicy() {\n return this.policy;\n }\n});\n\n_packages2.default.command.CommandType.DELETE = \"DELETE\";\n_packages2.default.command.CommandType.MOVE = \"MOVE\";\n_packages2.default.command.CommandType.CONNECT = \"CONNECT\";\n_packages2.default.command.CommandType.MOVE_BASEPOINT = \"MOVE_BASEPOINT\";\n_packages2.default.command.CommandType.MOVE_VERTEX = \"MOVE_VERTEX\";\n_packages2.default.command.CommandType.MOVE_VERTICES = \"MOVE_VERTICES\";\n_packages2.default.command.CommandType.MOVE_GHOST_VERTEX = \"MOVE_GHOST_VERTEX\";\n_packages2.default.command.CommandType.RESIZE = \"RESIZE\";\n_packages2.default.command.CommandType.RESET = \"RESET\";\n_packages2.default.command.CommandType.ROTATE = \"ROTATE\";\n\n/***/ }),\n\n/***/ \"./src/command/CommandUngroup.js\":\n/*!***************************************!*\\\n !*** ./src/command/CommandUngroup.js ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Command to ungroup a given group figures\n *\n * @extends draw2d.command.Command\n */\n\n_packages2.default.command.CommandUngroup = _packages2.default.command.Command.extend(\n/** @lends draw2d.command.CommandUngroup.prototype */\n{\n\n NAME: \"draw2d.command.CommandUngroup\",\n\n /**\n * Create a group command for the given figure.\n *\n * @param {draw2d.Canvas} canvas the responsible canvas\n * @param {draw2d.util.ArrayList|draw2d.Selection} group the figures to group\n */\n init: function init(canvas, group) {\n this._super(_packages2.default.Configuration.i18n.command.ungroupShapes);\n if (group instanceof _packages2.default.Selection) {\n this.group = group.getAll().first();\n } else {\n this.group = group;\n }\n\n this.canvas = canvas;\n this.figures = this.group.getAssignedFigures().clone();\n },\n\n /**\n *\n * Returns [true] if the command can be execute and the execution of the\n * command modifies the model. e.g.: a CommandMove with [startX,startX] == [endX,endY] should\n * return false. The execution of this Command doesn't modify the model.\n *\n * @returns {Boolean} return try if the command modify the model or make any relevant changes\n **/\n canExecute: function canExecute() {\n return !this.figures.isEmpty();\n },\n\n /**\n *\n * Execute the command the first time\n *\n **/\n execute: function execute() {\n this.redo();\n },\n\n /**\n *\n * Undo the command\n *\n **/\n undo: function undo() {\n var _this = this;\n this.figures.each(function (i, figure) {\n _this.group.assignFigure(figure);\n });\n this.canvas.add(this.group);\n this.canvas.setCurrentSelection(this.group);\n },\n\n /**\n *\n * Redo the command after the user has undo this command\n *\n **/\n redo: function redo() {\n var _this = this;\n this.figures.each(function (i, figure) {\n _this.group.unassignFigure(figure);\n });\n\n this.canvas.setCurrentSelection(this.figures);\n this.canvas.remove(this.group);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/css/contextmenu.css\":\n/*!*********************************!*\\\n !*** ./src/css/contextmenu.css ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\nvar content = __webpack_require__(/*! !../../node_modules/css-loader!./contextmenu.css */ \"./node_modules/css-loader/index.js!./src/css/contextmenu.css\");\n\nif(typeof content === 'string') content = [[module.i, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! ../../node_modules/style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n/***/ }),\n\n/***/ \"./src/decoration/connection/ArrowDecorator.js\":\n/*!*****************************************************!*\\\n !*** ./src/decoration/connection/ArrowDecorator.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @example\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * var start = new draw2d.shape.node.Start();\n * var end = new draw2d.shape.node.End();\n * // ...add it to the canvas\n * canvas.add( start, 50,50);\n * canvas.add( end, 230,80);\n *\n * // Create a Connection and connect the Start and End node\n * //\n * var c = new draw2d.Connection();\n *\n * // toggle from ManhattenRouter to DirectRouter to show the rotation of decorations\n * c.setRouter(new draw2d.layout.connection.DirectRouter());\n *\n * // Set the endpoint decorations for the connection\n * //\n * c.setSourceDecorator(new draw2d.decoration.connection.ArrowDecorator());\n * c.setTargetDecorator(new draw2d.decoration.connection.ArrowDecorator());\n *\n * // Connect the endpoints with the start and end port\n * //\n * c.setSource(start.getOutputPort(0));\n * c.setTarget(end.getInputPort(0));\n *\n * // and finally add the connection to the canvas\n * canvas.add(c);\n *\n *\n * @author Andreas Herz\n * @param {Number} [width] the width of the arrow\n * @param {Number} [height] the height of the arrow\n * @extend draw2d.decoration.connection.Decorator\n */\n_packages2.default.decoration.connection.ArrowDecorator = _packages2.default.decoration.connection.Decorator.extend(\n/** @lends draw2d.decoration.connection.ArrowDecorator */\n{\n NAME: \"draw2d.decoration.connection.ArrowDecorator\",\n\n init: function init(width, height) {\n this._super(width, height);\n },\n\n /**\n * Draws a filled arrow decoration.\n *\n *\n * ```\n * ---+ [length , width/2]\n * ------- |\n * [0,0] -------- |\n * +--- |==========================\n * -------- |\n * ------- |\n * ---+ [length ,-width/2]\n *\n * ```\n *\n * @param {RaphaelPaper} paper the raphael paper object for the paint operation\n * @returns {RaphaelPath}\n * @private\n **/\n paint: function paint(paper) {\n var st = paper.set();\n\n st.push(paper.path([\"M0 0\", \"L\", this.width, \" \", -this.height / 2, \"L\", this.width, \" \", this.height / 2, \"L0 0\"].join(\"\")));\n\n st.attr({ fill: this.backgroundColor.rgba() });\n\n return st;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/decoration/connection/BarDecorator.js\":\n/*!***************************************************!*\\\n !*** ./src/decoration/connection/BarDecorator.js ***!\n \\***************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @example\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * var start = new draw2d.shape.node.Start();\n * var end = new draw2d.shape.node.End();\n\n * // ...add it to the canvas\n * canvas.add( start, 50,50);\n * canvas.add( end, 230,80);\n *\n * // Create a Connection and connect the Start and End node\n * //\n * var c = new draw2d.Connection();\n *\n * // toggle from ManhattenRouter to DirectRouter to show the rotation of decorations\n * c.setRouter(new draw2d.layout.connection.DirectRouter());\n *\n * // Set the endpoint decorations for the connection\n * //\n * c.setSourceDecorator(new draw2d.decoration.connection.BarDecorator());\n * c.setTargetDecorator(new draw2d.decoration.connection.BarDecorator());\n * // Connect the endpoints with the start and end port\n * //\n * c.setSource(start.getOutputPort(0));\n * c.setTarget(end.getInputPort(0));\n *\n * // and finally add the connection to the canvas\n * canvas.add(c);\n *\n * @author Andreas Herz\n * @param {Number} [width] the width of the bar\n * @param {Number} [height] the height of the bar\n * @extend draw2d.decoration.connection.Decorator\n */\n_packages2.default.decoration.connection.BarDecorator = _packages2.default.decoration.connection.Decorator.extend(\n/** @lends draw2d.decoration.connection.BarDecorator */\n{\n\n NAME: \"draw2d.decoration.connection.BarDecorator\",\n\n init: function init(width, height) {\n this._super(width, height);\n },\n\n /**\n * Draw a bar decoration.\n *\n * ```\n *\n * | [length , width/2]\n * |\n * [0,0] | (Connection)\n * +==========|==========================\n * |\n * |\n * | [length ,-width/2]\n *\n * ```\n *\n * @param {RaphaelPaper} paper the raphael paper object for the paint operation\n * @returns {RaphaelPath}\n * @private\n **/\n paint: function paint(paper) {\n var st = paper.set();\n var path = [\"M\", this.width / 2, \" \", -this.height / 2]; // Go to the top center..\n path.push(\"L\", this.width / 2, \" \", this.height / 2); // ...bottom center...\n\n st.push(paper.path(path.join(\"\")));\n st.attr({ fill: this.backgroundColor.rgba() });\n return st;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/decoration/connection/CircleDecorator.js\":\n/*!******************************************************!*\\\n !*** ./src/decoration/connection/CircleDecorator.js ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @example\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * var start = new draw2d.shape.node.Start();\n * var end = new draw2d.shape.node.End();\n\n * // ...add it to the canvas\n * canvas.add( start, 50,50);\n * canvas.add( end, 230,80);\n *\n * // Create a Connection and connect the Start and End node\n * //\n * var c = new draw2d.Connection();\n *\n * // toggle from ManhattenRouter to DirectRouter to show the rotation of decorations\n * c.setRouter(new draw2d.layout.connection.DirectRouter());\n *\n * // Set the endpoint decorations for the connection\n * //\n * c.setSourceDecorator(new draw2d.decoration.connection.CircleDecorator());\n * c.setTargetDecorator(new draw2d.decoration.connection.CircleDecorator());\n * // Connect the endpoints with the start and end port\n * //\n * c.setSource(start.getOutputPort(0));\n * c.setTarget(end.getInputPort(0));\n *\n * // and finally add the connection to the canvas\n * canvas.add(c);\n *\n * @author Andreas Herz\n * @param {Number} [width] the width of the arrow\n * @param {Number} [height] the height of the arrow\n * @extend draw2d.decoration.connection.Decorator\n */\n_packages2.default.decoration.connection.CircleDecorator = _packages2.default.decoration.connection.Decorator.extend(\n/** @lends draw2d.decoration.connection.CircleDecorator */\n{\n\n NAME: \"draw2d.decoration.connection.CircleDecorator\",\n\n init: function init(width, height) {\n this._super(width, height);\n },\n\n /**\n * Draw a filled circle decoration.\n *\n * @param {RaphaelPaper} paper the raphael paper object for the paint operation\n * @returns {RaphaelPath}\n * @private\n **/\n paint: function paint(paper) {\n var st = paper.set();\n\n st.push(paper.circle(0, 0, this.width / 2));\n st.attr({ fill: this.backgroundColor.rgba() });\n\n return st;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/decoration/connection/Decorator.js\":\n/*!************************************************!*\\\n !*** ./src/decoration/connection/Decorator.js ***!\n \\************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _Color = __webpack_require__(/*! ../../util/Color */ \"./src/util/Color.js\");\n\nvar _Color2 = _interopRequireDefault(_Color);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Base class for any kind of Connection end/start decorations like arrows, bullets, circles, bars,...\n *\n * @author Andreas Herz\n */\n_packages2.default.decoration.connection.Decorator = Class.extend(\n/** @lends draw2d.decoration.connection.Decorator */\n{\n\n NAME: \"draw2d.decoration.connection.Decorator\",\n\n init: function init(width, height) {\n\n if (typeof width === \"undefined\" || width < 1) {\n this.width = 20;\n } else {\n this.width = width;\n }\n\n if (typeof height === \"undefined\" || height < 1) {\n this.height = 15;\n } else {\n this.height = height;\n }\n this.parent = null;\n this.color = null; // null => use the color of the connection\n this.backgroundColor = new _Color2.default(250, 250, 250);\n },\n\n /**\n *\n * Paint the decoration for a connector. The Connector starts always in\n * [0,0] and ends in [x,0].\n * It is not necessary to consider any rotation of the connection. This will be done by the\n * framework.\n *\n * <pre>\n * | -Y\n * |\n * |\n * --------------+-----------------------------> +X\n * |\n * |\n * |\n * V +Y\n *\n *\n * </pre>\n *\n * See in ArrowConnectionDecorator for example implementation.\n * @param {RaphaelPaper} paper\n * @private\n */\n paint: function paint(paper) {\n // do nothing per default\n },\n\n /**\n *\n * @param {draw2d.Connection} parent\n * @private\n */\n setParent: function setParent(parent) {\n this.parent = parent;\n },\n\n /**\n *\n * Set the stroke color for the decoration\n *\n * @param {draw2d.util.Color|String} c\n * @returns {this}\n */\n setColor: function setColor(c) {\n this.color = new _Color2.default(c);\n if (this.parent !== null) {\n this.parent.repaint();\n }\n return this;\n },\n\n /**\n * Get the line color of the decoration\n *\n * @returns {drawd.util.Color} the current line color of null if the Decoration should use the color of the host connection\n */\n getColor: function getColor() {\n return this.color;\n },\n\n /**\n *\n * Set the background color for the decoration\n *\n * @param {draw2d.util.Color|String} c\n * @returns {this}\n */\n setBackgroundColor: function setBackgroundColor(c) {\n this.backgroundColor = new _Color2.default(c);\n if (this.parent !== null) {\n this.parent.repaint();\n }\n\n return this;\n },\n\n /**\n * Returns the fill color\n *\n * @returns {draw2d.util.Color}\n */\n getBackgroundColor: function getBackgroundColor() {\n return this.backgroundColor;\n },\n\n /**\n *\n * Change the dimension of the decoration shape\n *\n * @param {Number} width The new width of the decoration\n * @param {Number} height The new height of the decoration\n * @returns {this}\n **/\n setDimension: function setDimension(width, height) {\n this.width = width;\n this.height = height;\n\n return this;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/decoration/connection/DiamondDecorator.js\":\n/*!*******************************************************!*\\\n !*** ./src/decoration/connection/DiamondDecorator.js ***!\n \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * @example\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * var start = new draw2d.shape.node.Start();\n * var end = new draw2d.shape.node.End();\n\n * // ...add it to the canvas\n * canvas.add( start, 50,50);\n * canvas.add( end, 230,80);\n *\n * // Create a Connection and connect the Start and End node\n * //\n * var c = new draw2d.Connection();\n *\n * // toggle from ManhattenRouter to DirectRouter to show the rotation of decorations\n * c.setRouter(new draw2d.layout.connection.DirectRouter());\n *\n * // Set the endpoint decorations for the connection\n * //\n * c.setSourceDecorator(new draw2d.decoration.connection.DiamondDecorator());\n * c.setTargetDecorator(new draw2d.decoration.connection.DiamondDecorator());\n * // Connect the endpoints with the start and end port\n * //\n * c.setSource(start.getOutputPort(0));\n * c.setTarget(end.getInputPort(0));\n *\n * // and finally add the connection to the canvas\n * canvas.add(c);\n *\n *\n * @author Andreas Herz\n * @param {Number} [width] the width of the arrow\n * @param {Number} [height] the height of the arrow\n * @extend draw2d.decoration.connection.Decorator\n */\n\n_packages2.default.decoration.connection.DiamondDecorator = _packages2.default.decoration.connection.Decorator.extend(\n/** @lends draw2d.decoration.connection.DiamondDecorator */\n{\n\n NAME: \"draw2d.decoration.connection.DiamondDecorator\",\n\n init: function init(width, height) {\n this._super(width, height);\n },\n\n /**\n * Draw a filled diamond decoration.\n *\n * It's not your work to rotate the arrow. The draw2d do this job for you.\n *\n * @param {RaphaelPaper} paper the raphael paper object for the paint operation\n * @returns {RaphaelPath}\n * @private\n **/\n paint: function paint(paper) {\n var st = paper.set();\n\n st.push(paper.path([\"M\", this.width / 2, \" \", -this.height / 2, // Go to the top center..\n \"L\", this.width, \" \", 0, // ...draw line to the right middle\n \"L\", this.width / 2, \" \", this.height / 2, // ...bottom center...\n \"L\", 0, \" \", 0, // ...left middle...\n \"L\", this.width / 2, \" \", -this.height / 2, // and close the path\n \"Z\"].join(\"\")));\n\n st.attr({ fill: this.backgroundColor.rgba() });\n return st;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/geo/Line.js\":\n/*!*************************!*\\\n !*** ./src/geo/Line.js ***!\n \\*************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Static util function to determine the minimal distance of point(px,py) on the line(x1,y1,x2,y2)\n *\n *\n * @returns {Number}\n * @static\n * @private\n * @param {Number} X1 x coordinate of the start point of the line\n * @param {Number} Y1 y coordinate of the start point of the line\n * @param {Number} X2 x coordinate of the end point of the line\n * @param {Number} Y2 y coordinate of the end point of the line\n * @param {Number} px x coordinate of the point to test\n * @param {Number} py y coordinate of the point to test\n **/\n_packages2.default.geo.Line = {\n\n /**\n * Returns the relative position of the point on the line between [0..1]\n * The point \"p\" must be part of the line!!\n *\n * 0 => given point is on the start location\n * ..=> given point is in between\n * 1 => given point is at the end\n *\n * @returns {Number}\n */\n inverseLerp: function inverseLerp(X1, Y1, X2, Y2, px, py) {\n var nenner = Math.abs(X2 - X1);\n var zaehler = Math.abs(X2 - px);\n if (nenner === 0) {\n nenner = Math.abs(Y2 - Y1);\n zaehler = Math.abs(Y2 - py);\n if (nenner === 0) {\n return 1;\n }\n }\n\n return zaehler / nenner;\n },\n\n /**\n *\n * Returns the projection of the point onto the line.\n *\n * @param {Number} px the x coordinate of the test point\n * @param {Number} py the y coordinate of the test point\n * @returns {draw2d.geo.Point}\n **/\n pointProjection: function pointProjection(X1, Y1, X2, Y2, px, py) {\n var r = new _packages2.default.geo.Point(0, 0);\n if (X1 === X2 && Y1 === Y2) X1 -= 0.00001;\n\n var U = (px - X1) * (X2 - X1) + (py - Y1) * (Y2 - Y1);\n\n var Udenom = Math.pow(X2 - X1, 2) + Math.pow(Y2 - Y1, 2);\n\n U /= Udenom;\n\n r.x = X1 + U * (X2 - X1);\n r.y = Y1 + U * (Y2 - Y1);\n\n var minx = void 0,\n maxx = void 0,\n miny = void 0,\n maxy = void 0;\n\n minx = Math.min(X1, X2);\n maxx = Math.max(X1, X2);\n\n miny = Math.min(Y1, Y2);\n maxy = Math.max(Y1, Y2);\n\n var isValid = r.x >= minx && r.x <= maxx && r.y >= miny && r.y <= maxy;\n\n return isValid ? r : null;\n },\n\n distance: function distance(X1, Y1, X2, Y2, px, py) {\n // Adjust vectors relative to X1,Y1\n // X2,Y2 becomes relative vector from X1,Y1 to end of segment\n X2 -= X1;\n Y2 -= Y1;\n // px,py becomes relative vector from X1,Y1 to test point\n px -= X1;\n py -= Y1;\n var dotprod = px * X2 + py * Y2;\n var projlenSq = void 0;\n if (dotprod <= 0.0) {\n // px,py is on the side of X1,Y1 away from X2,Y2\n // distance to segment is length of px,py vector\n // \"length of its (clipped) projection\" is now 0.0\n projlenSq = 0.0;\n } else {\n // switch to backwards vectors relative to X2,Y2\n // X2,Y2 are already the negative of X1,Y1=>X2,Y2\n // to get px,py to be the negative of px,py=>X2,Y2\n // the dot product of two negated vectors is the same\n // as the dot product of the two normal vectors\n px = X2 - px;\n py = Y2 - py;\n dotprod = px * X2 + py * Y2;\n if (dotprod <= 0.0) {\n // px,py is on the side of X2,Y2 away from X1,Y1\n // distance to segment is length of (backwards) px,py vector\n // \"length of its (clipped) projection\" is now 0.0\n projlenSq = 0.0;\n } else {\n // px,py is between X1,Y1 and X2,Y2\n // dotprod is the length of the px,py vector\n // projected on the X2,Y2=>X1,Y1 vector times the\n // length of the X2,Y2=>X1,Y1 vector\n projlenSq = dotprod * dotprod / (X2 * X2 + Y2 * Y2);\n }\n }\n // Distance to line is now the length of the relative point\n // vector minus the length of its projection onto the line\n // (which is zero if the projection falls outside the range\n // of the line segment).\n var lenSq = px * px + py * py - projlenSq;\n if (lenSq < 0) {\n lenSq = 0;\n }\n return Math.sqrt(lenSq);\n }\n};\n\n/***/ }),\n\n/***/ \"./src/geo/Point.js\":\n/*!**************************!*\\\n !*** ./src/geo/Point.js ***!\n \\**************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Represents a point (x, y) in 2-dimensional space.\n *\n * @class\n */\n\n_packages2.default.geo.Point = Class.extend(\n/** @lends draw2d.geo.Point.prototype */\n{\n\n NAME: \"draw2d.geo.Point\",\n\n /**\n * Creates a new Point object with the hands over coordinates.\n *\n * @param {Number|draw2d.geo.Point} x\n * @param {Number} y\n */\n init: function init(x, y) {\n if (x instanceof _packages2.default.geo.Point) {\n this.x = x.x;\n this.y = x.y;\n } else if (!isNaN(parseFloat(x.x)) && !isNaN(parseFloat(x.y))) {\n this.x = x.x;\n this.y = x.y;\n } else {\n this.x = x;\n this.y = y;\n }\n\n // limit for the maxi/minimum boundary of this rectangle\n // It is not possible that the rect leave the boundary if set.\n this.bx = null;\n this.by = null;\n this.bw = null;\n this.bh = null;\n },\n\n /**\n * \n * Ensure the boundary of the rectangle. If set, the rectangle keeps always inside\n * the boundary. It is like a virtual fence.\n *\n * @returns {this}\n */\n setBoundary: function setBoundary(bx, by, bw, bh) {\n if (bx instanceof _packages2.default.geo.Rectangle) {\n this.bx = bx.x;\n this.by = bx.y;\n this.bw = bx.w;\n this.bh = bx.h;\n } else {\n this.bx = bx;\n this.by = by;\n this.bw = bw;\n this.bh = bh;\n }\n this.adjustBoundary();\n\n return this;\n },\n\n /**\n * \n * @private\n * @returns {this}\n */\n adjustBoundary: function adjustBoundary() {\n if (this.bx === null) {\n return this;\n }\n this.x = Math.min(Math.max(this.bx, this.x), this.bw);\n this.y = Math.min(Math.max(this.by, this.y), this.bh);\n\n return this;\n },\n\n /**\n * \n * Moves this Rectangle horizontally by dx and vertically by dy, then returns\n * this Rectangle for convenience.<br>\n * <br>\n * The method return the object itself. This allows you to do command chaining, where\n * you can perform multiple methods on the same elements.\n *\n * @param {Number} dx Shift along X axis\n * @param {Number} dy Shift along Y axis\n * @returns {this}\n **/\n translate: function translate(dx, dy) {\n this.x += dx;\n this.y += dy;\n this.adjustBoundary();\n\n return this;\n },\n\n /**\n * \n * The X value of the point\n *\n * @since 0.1\n * @returns {Number} The x coordinate of the top left corner\n */\n getX: function getX() {\n return this.x;\n },\n\n /**\n * \n * The y value of the point\n *\n * @returns {Number} The y coordinate of the top left corner\n */\n getY: function getY() {\n return this.y;\n },\n\n /**\n * \n * Set the new X value of the point\n *\n * @param {Number} x the new x coordinate of the rect\n * @returns {this}\n */\n setX: function setX(x) {\n this.x = x;\n this.adjustBoundary();\n\n return this;\n },\n\n /**\n * \n * Set the new Y value of the point\n *\n * @param {Number} y the new y coordinate of the rect\n * @returns {this}\n */\n setY: function setY(y) {\n this.y = y;\n this.adjustBoundary();\n\n return this;\n },\n\n /**\n * \n * Set the new x/y coordinates of this point\n *\n * @param {Number|draw2d.geo.Point} x\n * @param {Number} [y]\n * @returns {this}\n */\n setPosition: function setPosition(x, y) {\n if (x instanceof _packages2.default.geo.Point) {\n this.x = x.x;\n this.y = x.y;\n } else {\n this.x = x;\n this.y = y;\n }\n this.adjustBoundary();\n\n return this;\n },\n\n /**\n * \n * Calculates the relative position of the specified Point to this Point.\n *\n * @param {draw2d.geo.Point} p The reference Point\n * @returns {Number} NORTH, SOUTH, EAST, or WEST, as defined in {@link draw2d.geo.PositionConstants}\n */\n getPosition: function getPosition(p) {\n var dx = p.x - this.x;\n var dy = p.y - this.y;\n if (Math.abs(dx) > Math.abs(dy)) {\n if (dx < 0) return _packages2.default.geo.PositionConstants.WEST;\n return _packages2.default.geo.PositionConstants.EAST;\n }\n if (dy < 0) {\n return _packages2.default.geo.PositionConstants.NORTH;\n }\n return _packages2.default.geo.PositionConstants.SOUTH;\n },\n\n /**\n * \n * Compares two points and return [true] if x and y are equals.\n *\n * @param {draw2d.geo.Point} p the point to compare with\n *\n * @returns {Boolean} True if the given p[x,y] has an exact match with the point\n */\n equals: function equals(p) {\n return this.x === p.x && this.y === p.y;\n },\n\n /**\n * \n * Return the distance between this point and the hands over.\n *\n * @param {draw2d.geo.Point} other the point to use\n * @returns {Number} The distance to the given point\n */\n distance: function distance(other) {\n return Math.sqrt((this.x - other.x) * (this.x - other.x) + (this.y - other.y) * (this.y - other.y));\n },\n /* @deprecated */\n getDistance: function getDistance(other) {\n return this.distance(other);\n },\n\n /**\n * \n * Return the length of the vector measured from [0,0]\n *\n * @returns {Number} The length of the vector [0,0][x,y]\n * @since 2.10.0\n */\n length: function length() {\n return Math.sqrt(this.x * this.x + this.y * this.y);\n },\n\n /**\n * \n * Return a new Point translated with the x/y values of the hands over point.\n *\n * @param {draw2d.geo.Point|Number} x the x translation or the complete point to translate\n * @param {Number} [y] the y translation. Required if x is a simple number instead of a draw2d.geo.Point\n * @returns {draw2d.geo.Point} A instance of a translated point.\n */\n translated: function translated(x, y) {\n var other = new _packages2.default.geo.Point(x, y);\n return new _packages2.default.geo.Point(this.x + other.x, this.y + other.y);\n },\n\n /**\n * \n * Scales this point with the handover factor\n *\n * @param {Number} factor the factor to scaled the point.\n * @returns {this}\n */\n scale: function scale(factor) {\n this.x *= factor;\n this.y *= factor;\n this.adjustBoundary();\n\n return this;\n },\n\n /**\n * \n * Return a **new** Point scaled with the givben factor\n *\n * @param {Number} factor the factor to scaled the new point.\n * @returns {draw2d.geo.Point} The new translated point.\n */\n scaled: function scaled(factor) {\n return new _packages2.default.geo.Point(this.x * factor, this.y * factor);\n },\n\n /* @deprecated */\n getScaled: function getScaled(factor) {\n return this.scaled(factor);\n },\n\n /**\n * \n * Return an objects with all important attributes for XML or JSON serialization\n *\n * @returns {Object}\n */\n getPersistentAttributes: function getPersistentAttributes() {\n return {\n x: this.x,\n y: this.y\n };\n },\n\n /**\n * \n * Read all attributes from the serialized properties and transfer them into the shape.\n *\n * @param {Object} memento\n * @returns {this}\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this.x = memento.x;\n this.y = memento.y;\n\n return this;\n },\n\n /**\n * \n * substract the given point and return the **new** point.\n *\n * @param that\n * @returns {draw2d.geo.Point}\n */\n subtract: function subtract(that) {\n return new _packages2.default.geo.Point(this.x - that.x, this.y - that.y);\n },\n\n dot: function dot(that) {\n return this.x * that.x + this.y * that.y;\n },\n\n cross: function cross(that) {\n return this.x * that.y - this.y * that.x;\n },\n\n lerp: function lerp(that, t) {\n return new _packages2.default.geo.Point(this.x + (that.x - this.x) * t, this.y + (that.y - this.y) * t);\n },\n\n /**\n * \n * Return a cloned point\n *\n * @returns {draw2d.geo.Point}\n */\n clone: function clone() {\n return new _packages2.default.geo.Point(this.x, this.y);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/geo/PositionConstants.js\":\n/*!**************************************!*\\\n !*** ./src/geo/PositionConstants.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Static values for point orientation.\n * \n */\n_packages2.default.geo.PositionConstants = {\n /**\n *\n */\n NORTH: 1,\n SOUTH: 4,\n WEST: 8,\n EAST: 16\n};\n\n/***/ }),\n\n/***/ \"./src/geo/Ray.js\":\n/*!************************!*\\\n !*** ./src/geo/Ray.js ***!\n \\************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Represents a vector within 2-dimensional Euclidean space.\n * \n * @inheritable\n * @extends draw2d.geo.Point\n * @author Andreas Herz\n */\n_packages2.default.geo.Ray = _packages2.default.geo.Point.extend(\n/** @lends draw2d.geo.Ray.prototype */\n{\n\n NAME: \"draw2d.geo.Ray\",\n\n /**\n * Creates a ray object.\n *\n * @param {Number} x\n * @param {Number} y\n */\n init: function init(x, y) {\n this._super(x, y);\n },\n\n isHorizontal: function isHorizontal() {\n return this.x != 0;\n },\n\n similarity: function similarity(otherRay) {\n return Math.abs(this.dot(otherRay));\n },\n\n getAveraged: function getAveraged(otherRay) {\n return new _packages2.default.geo.Ray((this.x + otherRay.x) / 2, (this.y + otherRay.y) / 2);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/geo/Rectangle.js\":\n/*!******************************!*\\\n !*** ./src/geo/Rectangle.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Represents a Rectangle(x, y, width, height).\n *\n * @author Andreas Herz\n * @extends draw2d.geo.Point\n */\n_packages2.default.geo.Rectangle = _packages2.default.geo.Point.extend(\n/** @lends draw2d.geo.Rectangle.prototype */\n{\n\n NAME: \"draw2d.geo.Rectangle\",\n\n /**\n * Creates a new Point object with the hands over coordinates.\n * <br>\n * The constructor consumes almost any kind of rectangel definitions\n * like:\n * let rect0 = new draw2d.geo.Rectangle({x:0,y:0,width:20,height:20});\n * let rect1 = new draw2d.geo.Rectangle({x:0,y:0,w:20,h:20});\n * let rect2 = new draw2d.geo.Rectangle($(\"#divid\")[0].getBoundingClientRect());\n * let rect3 = new draw2d.geo.Rectangle(rect1);\n *\n * The rectangle class is usefull for any kind of intersection, hitTest, contains,...calculation\n * or to set the bounding box of any shape.\n *\n * @param {Number|draw2d.geo.Rectangle} x\n * @param {Number} y\n * @param {Number} w\n * @param {Number} h\n */\n init: function init(x, y, w, h) {\n // try to consume any kind rectangle definitions\n //\n if (x instanceof _packages2.default.geo.Rectangle) {\n y = x.y;\n w = x.w;\n h = x.h;\n x = x.x;\n } else if (typeof x.x === \"number\" && typeof x.y === \"number\") {\n y = x.y;\n w = x.w | x.width;\n h = x.h | x.height;\n x = x.x;\n } else if (typeof x.top === \"number\" && typeof x.left === \"number\") {\n y = x.top;\n w = x.w | x.width;\n h = x.h | x.height;\n x = x.left;\n }\n this._super(x, y);\n this.w = w;\n this.h = h;\n },\n\n /**\n *\n * @private\n */\n adjustBoundary: function adjustBoundary() {\n if (this.bx === null) {\n return;\n }\n this.x = Math.min(Math.max(this.bx, this.x), this.bw - this.w);\n this.y = Math.min(Math.max(this.by, this.y), this.bh - this.h);\n this.w = Math.min(this.w, this.bw);\n this.h = Math.min(this.h, this.bh);\n },\n\n /**\n *\n * Resizes this Rectangle by the values supplied as input and returns this for\n * convenience. This Rectangle's width will become this.width + dw. This\n * Rectangle's height will become this.height + dh.\n * <br>\n * The method return the object itself. This allows you to do command chaining, where\n * you can perform multiple methods on the same elements.\n *\n *\n * @param {Number} dw Amount by which width is to be resized\n * @param {Number} dh Amount by which height is to be resized\n * @returns {this}\n **/\n resize: function resize(dw, dh) {\n this.w += dw;\n this.h += dh;\n this.adjustBoundary();\n\n return this;\n },\n\n /**\n * Adds the specified padding to the rectangle's bounds. This Rectangle's width\n * will become this.width + dw. The Rectangle's height will become this.height + dh.\n * The top left corner moves -dw/2, -dh/2\n *\n * @param {Number} dw Amount by which width is to be resized\n * @param {Number} dh Amount by which height is to be resized\n * @returns {this}\n **/\n scale: function scale(dw, dh) {\n this.w += dw;\n this.h += dh;\n this.x -= dw / 2;\n this.y -= dh / 2;\n this.adjustBoundary();\n\n return this;\n },\n\n /**\n * Translate the rectangle with the given x/y coordiante.\n *\n * @param {draw2d.geo.Point|Number} x the x translation or the complete point to translate\n * @param {Number} [y] the y translation. Required if x is a simple number instead of a draw2d.geo.Point\n *\n *\n * @since 5.6.0\n * @returns {this}\n */\n translate: function translate(x, y) {\n var other = new _packages2.default.geo.Point(x, y);\n this.x += other.x;\n this.y += other.y;\n this.adjustBoundary();\n\n return this;\n },\n\n /**\n *\n * Returns a copy of the translated rectangle\n *\n * @param {draw2d.geo.Point|Number} x the x translation or the complete point to translate\n * @param {Number} [y] the y translation. Required if x is a simple number instead of a draw2d.geo.Point\n *\n * @returns {draw2d.geo.Rectangle} The new translated rectangle.\n * @since 5.6.0\n */\n translated: function translated(x, y) {\n var other = new _packages2.default.geo.Point(x, y);\n return new _packages2.default.geo.Rectangle(this.x + other.x, this.y + other.y, this.w, this.h);\n },\n\n /**\n * Sets the parameters of this Rectangle from the Rectangle passed in and\n * returns this for convenience.<br>\n * <br>\n * The method return the object itself. This allows you to do command chaining, where\n * you can perform multiple methods on the same elements.\n *\n * @param {draw2d.geo.Rectangle} Rectangle providing the bounding values\n * @returns {this}\n */\n setBounds: function setBounds(rect) {\n this.setPosition(rect.x, rect.y);\n\n this.w = rect.w;\n this.h = rect.h;\n\n return this;\n },\n\n /**\n *\n * Returns <code>true</code> if this Rectangle's width or height is less than or\n * equal to 0.\n *\n * @returns {Boolean}\n */\n isEmpty: function isEmpty() {\n return this.w <= 0 || this.h <= 0;\n },\n\n /**\n *\n * The width of the dimension element.\n *\n * @returns {Number}\n **/\n getWidth: function getWidth() {\n return this.w;\n },\n\n /**\n *\n * Set the new width of the rectangle.\n *\n * @param {Number} w the new width of the rectangle\n * @returns {this}\n */\n setWidth: function setWidth(w) {\n this.w = w;\n this.adjustBoundary();\n\n return this;\n },\n\n /**\n *\n * The height of the dimension element.\n *\n * @returns {Number}\n **/\n getHeight: function getHeight() {\n return this.h;\n },\n\n /**\n *\n * Set the new height of the rectangle.\n *\n * @param {Number} h the new height of the rectangle\n * @returns {this}\n */\n setHeight: function setHeight(h) {\n this.h = h;\n this.adjustBoundary();\n\n return this;\n },\n\n /**\n *\n * The x coordinate of the left corner.\n *\n * @returns {Number}\n **/\n getLeft: function getLeft() {\n return this.x;\n },\n\n /**\n *\n * The x coordinate of the right corner.\n *\n * @returns {Number}\n **/\n getRight: function getRight() {\n return this.x + this.w;\n },\n\n /**\n *\n * The y coordinate of the top.\n *\n *@return {Number}\n **/\n getTop: function getTop() {\n return this.y;\n },\n\n /**\n *\n * The y coordinate of the bottom.\n *\n *@return {Number}\n **/\n getBottom: function getBottom() {\n return this.y + this.h;\n },\n\n /**\n *\n * The top left corner of the dimension object.\n *\n * @returns {draw2d.geo.Point} a new point objects which holds the coordinates\n **/\n getTopLeft: function getTopLeft() {\n return new _packages2.default.geo.Point(this.x, this.y);\n },\n\n /**\n *\n * The top center coordinate of the dimension object.\n *\n * @returns {draw2d.geo.Point} a new point objects which holds the coordinates\n **/\n getTopCenter: function getTopCenter() {\n return new _packages2.default.geo.Point(this.x + this.w / 2, this.y);\n },\n\n /**\n *\n * The top right corner of the dimension object.\n *\n * @returns {draw2d.geo.Point} a new point objects which holds the coordinates\n **/\n getTopRight: function getTopRight() {\n return new _packages2.default.geo.Point(this.x + this.w, this.y);\n },\n\n /**\n *\n * The center left of the dimension object.\n *\n * @returns {draw2d.geo.Point} a new point objects which holds the coordinates\n **/\n getCenterLeft: function getCenterLeft() {\n return new _packages2.default.geo.Point(this.x, this.y + this.h / 2);\n },\n\n /**\n *\n * The center right of the dimension object.\n *\n * @returns {draw2d.geo.Point} a new point objects which holds the coordinates\n **/\n getCenterRight: function getCenterRight() {\n return new _packages2.default.geo.Point(this.x + this.w, this.y + this.h / 2);\n },\n\n /**\n *\n * The bottom left corner of the dimension object.\n *\n * @returns {draw2d.geo.Point} a new point objects which holds the coordinates\n **/\n getBottomLeft: function getBottomLeft() {\n return new _packages2.default.geo.Point(this.x, this.y + this.h);\n },\n\n /**\n *\n * The bottom center coordinate of the dimension object.\n *\n * @returns {draw2d.geo.Point} a new point objects which holds the coordinates\n **/\n getBottomCenter: function getBottomCenter() {\n return new _packages2.default.geo.Point(this.x + this.w / 2, this.y + this.h);\n },\n\n /**\n *\n * The center of the dimension object\n *\n * @returns {draw2d.geo.Point} a new point which holds the center of the object\n **/\n getCenter: function getCenter() {\n return new _packages2.default.geo.Point(this.x + this.w / 2, this.y + this.h / 2);\n },\n\n /**\n *\n * Bottom right corner of the object\n *\n * @returns {draw2d.geo.Point} a new point which holds the bottom right corner\n **/\n getBottomRight: function getBottomRight() {\n return new _packages2.default.geo.Point(this.x + this.w, this.y + this.h);\n },\n\n /**\n *\n * Return all points of the rectangle as array. Starting at topLeft and the\n * clockwise.\n *\n * @returns {draw2d.util.ArrayList} the points starting at top/left and the clockwise\n */\n getVertices: function getVertices() {\n var result = new _packages2.default.util.ArrayList();\n // don't change the order. We expect always that the top left corner has index[0]\n // and goes clock wise\n //\n result.add(this.getTopLeft());\n result.add(this.getTopRight());\n result.add(this.getBottomRight());\n result.add(this.getBottomLeft());\n\n return result;\n },\n\n /**\n *\n * Return a new rectangle which fits into this rectangle. <b>ONLY</b> the x/y coordinates\n * will be changed. Not the dimension of the given rectangle.\n *\n * @param {draw2d.geo.Rectangle} rect the rectangle to adjust\n * @returns the new shifted rectangle\n */\n moveInside: function moveInside(rect) {\n var newRect = new _packages2.default.geo.Rectangle(rect.x, rect.y, rect.w, rect.h);\n // shift the coordinate right/down if coordinate not inside the rect\n //\n newRect.x = Math.max(newRect.x, this.x);\n newRect.y = Math.max(newRect.y, this.y);\n\n // ensure that the right border is inside this rect (if possible). \n //\n if (newRect.w < this.w) {\n newRect.x = Math.min(newRect.x + newRect.w, this.x + this.w) - newRect.w;\n } else {\n newRect.x = this.x;\n }\n\n // ensure that the bottom is inside this rectangle\n //\n if (newRect.h < this.h) {\n newRect.y = Math.min(newRect.y + newRect.h, this.y + this.h) - newRect.h;\n } else {\n newRect.y = this.y;\n }\n\n return newRect;\n },\n\n /**\n *\n * Return the minimum distance of this rectangle to the given {@link draw2d.geo.Point} or\n * {link draw2d.geo.Rectangle}.\n *\n * @param {draw2d.geo.Point|draw2d.geo.Rectangle} pointOrRectangle the reference point/rectangle for the distance calculation\n */\n getDistance: function getDistance(pointOrRectangle) {\n var cx = this.x;\n var cy = this.y;\n var cw = this.w;\n var ch = this.h;\n\n var ox = pointOrRectangle.getX();\n var oy = pointOrRectangle.getY();\n var ow = 1;\n var oh = 1;\n\n if (pointOrRectangle instanceof _packages2.default.geo.Rectangle) {\n ow = pointOrRectangle.getWidth();\n oh = pointOrRectangle.getHeight();\n }\n var oct = 9;\n\n // Determin Octant\n //\n // 0 | 1 | 2\n // __|___|__\n // 7 | 9 | 3\n // __|___|__\n // 6 | 5 | 4\n\n if (cx + cw <= ox) {\n if (cy + ch <= oy) {\n oct = 0;\n } else if (cy >= oy + oh) {\n oct = 6;\n } else {\n oct = 7;\n }\n } else if (cx >= ox + ow) {\n if (cy + ch <= oy) {\n oct = 2;\n } else if (cy >= oy + oh) {\n oct = 4;\n } else {\n oct = 3;\n }\n } else if (cy + ch <= oy) {\n oct = 1;\n } else if (cy >= oy + oh) {\n oct = 5;\n } else {\n return 0;\n }\n\n // Determine Distance based on Quad\n //\n switch (oct) {\n case 0:\n cx = cx + cw - ox;\n cy = cy + ch - oy;\n return -(cx + cy);\n case 1:\n return -(cy + ch - oy);\n case 2:\n cx = ox + ow - cx;\n cy = cy + ch - oy;\n return -(cx + cy);\n case 3:\n return -(ox + ow - cx);\n case 4:\n cx = ox + ow - cx;\n cy = oy + oh - cy;\n return -(cx + cy);\n case 5:\n return -(oy + oh - cy);\n case 6:\n cx = cx + cw - ox;\n cy = oy + oh - cy;\n return -(cx + cy);\n case 7:\n return -(cx + cw - ox);\n }\n\n throw \"Unknown data type of parameter for distance calculation in draw2d.geo.Rectangle.getDistance(..)\";\n },\n\n /**\n *\n * Determin the octant of r2 in relation to this rectangle.\n * <pre>\n *\n * 0 | 1 | 2\n * __|___|__\n * 7 | 8 | 3\n * __|___|__\n * 6 | 5 | 4\n * </pre>\n *\n * @param {draw2d.geo.Rectangle} r2\n *\n */\n determineOctant: function determineOctant(r2) {\n var HISTERESE = 3; // Toleranz um diese vermieden wird, dass der Octant \"8\" zurückgegeben wird\n\n var ox = this.x + HISTERESE;\n var oy = this.y + HISTERESE;\n var ow = this.w - HISTERESE * 2;\n var oh = this.h - HISTERESE * 2;\n\n var cx = r2.x;\n var cy = r2.y;\n var cw = 2;\n var ch = 2;\n if (r2 instanceof _packages2.default.geo.Rectangle) {\n cw = r2.w;\n ch = r2.h;\n }\n\n var oct = 0;\n\n if (cx + cw <= ox) {\n if (cy + ch <= oy) {\n oct = 0;\n } else if (cy >= oy + oh) {\n oct = 6;\n } else {\n oct = 7;\n }\n } else if (cx >= ox + ow) {\n if (cy + ch <= oy) {\n oct = 2;\n } else if (cy >= oy + oh) {\n oct = 4;\n } else {\n oct = 3;\n }\n } else if (cy + ch <= oy) {\n oct = 1;\n } else if (cy >= oy + oh) {\n oct = 5;\n } else {\n oct = 8;\n }\n\n return oct;\n },\n\n /**\n *\n * Returns the direction the point <i>p</i> is in relation to the given rectangle.\n * Util method for inherit router implementations.\n *\n * <p>\n * Possible values:\n * <ul>\n * <li>up -> 0</li>\n * <li>right -> 1</li>\n * <li>down -> 2</li>\n * <li>left -> 3</li>\n * </ul>\n * <p>\n *\n * @param {draw2d.geo.Point} other the point in relation to the given rectangle\n *\n * @returns {Number} the direction from <i>r</i> to <i>p</i>\n */\n getDirection: function getDirection(other) {\n var current = this.getTopLeft();\n switch (this.determineOctant(other)) {\n case 0:\n if (current.x - other.x < current.y - other.y) return _packages2.default.geo.Rectangle.DIRECTION_UP;\n return _packages2.default.geo.Rectangle.DIRECTION_LEFT;\n case 1:\n return _packages2.default.geo.Rectangle.DIRECTION_UP;\n case 2:\n current = this.getTopRight();\n if (other.x - current.x < current.y - other.y) return _packages2.default.geo.Rectangle.DIRECTION_UP;\n return _packages2.default.geo.Rectangle.DIRECTION_RIGHT;\n case 3:\n return _packages2.default.geo.Rectangle.DIRECTION_RIGHT;\n case 4:\n current = this.getBottomRight();\n if (other.x - current.x < other.y - current.y) return _packages2.default.geo.Rectangle.DIRECTION_DOWN;\n return _packages2.default.geo.Rectangle.DIRECTION_RIGHT;\n case 5:\n return _packages2.default.geo.Rectangle.DIRECTION_DOWN;\n case 6:\n current = this.getBottomLeft();\n if (current.x - other.x < other.y - current.y) return _packages2.default.geo.Rectangle.DIRECTION_DOWN;\n return _packages2.default.geo.Rectangle.DIRECTION_LEFT;\n case 7:\n return _packages2.default.geo.Rectangle.DIRECTION_LEFT;\n case 8:\n if (other.y > this.y) {\n return _packages2.default.geo.Rectangle.DIRECTION_DOWN;\n }\n return _packages2.default.geo.Rectangle.DIRECTION_UP;\n\n }\n return _packages2.default.geo.Rectangle.DIRECTION_UP;\n },\n\n /**\n *\n * Compares two rectangle objects\n *\n * @param {draw2d.geo.Rectangle} o\n *\n * @returns {Boolean}\n **/\n equals: function equals(o) {\n return this.x == o.x && this.y == o.y && this.w == o.w && this.h == o.h;\n },\n\n /**\n *\n * Detect whenever the hands over coordinate is inside the rectangle.\n *\n * @param {Number/draw2d.geo.Point} iX\n * @param {Number} iY\n * @returns {Boolean}\n */\n hitTest: function hitTest(iX, iY) {\n if (iX instanceof _packages2.default.geo.Point) {\n iY = iX.y;\n iX = iX.x;\n }\n var iX2 = this.x + this.getWidth();\n var iY2 = this.y + this.getHeight();\n return iX >= this.x && iX <= iX2 && iY >= this.y && iY <= iY2;\n },\n\n /**\n *\n * return true if this rectangle inside the hand over rectangle\n *\n *\n * @param {draw2d.geo.Rectangle} rect\n * @returns {Boolean}\n */\n isInside: function isInside(rect) {\n return rect.hitTest(this.getTopLeft()) && rect.hitTest(this.getTopRight()) && rect.hitTest(this.getBottomLeft()) && rect.hitTest(this.getBottomRight());\n },\n\n /**\n *\n * return true if this rectangle contains the hand over rectangle.\n *\n *\n * @param {draw2d.geo.Rectangle} rect\n * @returns {Boolean}\n * @since 4.7.2\n */\n contains: function contains(rect) {\n return this.hitTest(rect.getTopLeft()) && this.hitTest(rect.getTopRight()) && this.hitTest(rect.getBottomLeft()) && this.hitTest(rect.getBottomRight());\n },\n\n /**\n *\n * checks whenever the rectangles has an intersection.\n *\n * @param {draw2d.geo.Rectangle} rect\n * @returns {Boolean}\n */\n intersects: function intersects(rect) {\n var x11 = rect.x,\n y11 = rect.y,\n x12 = rect.x + rect.w,\n y12 = rect.y + rect.h,\n x21 = this.x,\n y21 = this.y,\n x22 = this.x + this.w,\n y22 = this.y + this.h;\n\n var x_overlap = Math.max(0, Math.min(x12, x22) - Math.max(x11, x21));\n var y_overlap = Math.max(0, Math.min(y12, y22) - Math.max(y11, y21));\n\n return x_overlap * y_overlap !== 0;\n },\n\n /**\n * Merge this rectangle with the given one.\n *\n * @param {draw2d.geo.Rectangle} rect\n * @since 4.8.0\n * @returns {this}\n */\n merge: function merge(rect) {\n var r = Math.max(rect.getRight(), this.getRight());\n var b = Math.max(rect.getBottom(), this.getBottom());\n\n this.setPosition(Math.min(this.x, rect.x), Math.min(this.y, rect.y));\n\n this.w = r - this.x;\n this.h = b - this.y;\n\n return this;\n },\n\n /**\n *\n * returns the intersection points with the given line if any exists\n *\n * @param {draw2d.geo.Point} start\n * @param {draw2d.geo.Point} end\n */\n intersectionWithLine: function intersectionWithLine(start, end) {\n var result = new _packages2.default.util.ArrayList();\n var v = this.getVertices();\n v.add(v.first());\n var p1 = v.first();\n var p2 = null;\n for (var i = 1; i < 5; i++) {\n p2 = v.get(i);\n p1 = _packages2.default.shape.basic.Line.intersection(start, end, p1, p2);\n if (p1 !== null) {\n result.add(p1);\n }\n p1 = p2;\n }\n return result;\n },\n\n /**\n *\n * Returns a copy of this rectangle\n *\n *\n * @returns {draw2d.geo.Rectangle}\n * @since 5.6.0\n */\n clone: function clone() {\n return new _packages2.default.geo.Rectangle(this.x, this.y, this.w, this.h);\n },\n\n /**\n *\n * converts the rectangle to JSON representation. required for the draw2d.io.Writer\n *\n * @returns {Object}\n */\n toJSON: function toJSON() {\n return {\n width: this.w,\n height: this.h,\n x: this.x,\n y: this.y\n };\n }\n\n});\n\n/**\n * ENUM for Direction\n */\n_packages2.default.geo.Rectangle.DIRECTION_UP = 0;\n_packages2.default.geo.Rectangle.DIRECTION_RIGHT = 1;\n_packages2.default.geo.Rectangle.DIRECTION_DOWN = 2;\n_packages2.default.geo.Rectangle.DIRECTION_LEFT = 3;\n\n/***/ }),\n\n/***/ \"./src/geo/Util.js\":\n/*!*************************!*\\\n !*** ./src/geo/Util.js ***!\n \\*************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Geometric utils functions used in ray, point and some routers.\n *\n * @author Andreas Herz\n */\n_packages2.default.geo.Util = {\n\n /**\n *\n * @param start {draw2d.geo.Point} start point of a line\n * @param end {draw2d.geo.Point} end point of a line\n * @param distanceFromStart {Number} distance from the start point to extrapolate a new point\n * @returns {{x: *, y: *}|*} a new point with the distance *distanceFromStart* from the start point\n */\n insetPoint: function insetPoint(start, end, distanceFromStart) {\n if (start.equals(end)) {\n return start;\n }\n var vx = start.x - end.x;\n var vy = start.y - end.y;\n var length = Math.sqrt(vx * vx + vy * vy);\n var localDistance = Math.min(length / 2, distanceFromStart);\n return {\n x: end.x + vx / length * (length - localDistance),\n y: end.y + vy / length * (length - localDistance)\n };\n }\n};\n\n/***/ }),\n\n/***/ \"./src/index.js\":\n/*!**********************!*\\\n !*** ./src/index.js ***!\n \\**********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _raphaelExec = __webpack_require__(/*! lib/raphael.exec.js */ \"./src/lib/raphael.exec.js\");\n\nvar _raphaelExec2 = _interopRequireDefault(_raphaelExec);\n\nvar _ClassExec = __webpack_require__(/*! lib/Class.exec.js */ \"./src/lib/Class.exec.js\");\n\nvar _ClassExec2 = _interopRequireDefault(_ClassExec);\n\nvar _pathfindingExec = __webpack_require__(/*! lib/pathfinding.exec.js */ \"./src/lib/pathfinding.exec.js\");\n\nvar _pathfindingExec2 = _interopRequireDefault(_pathfindingExec);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = _packages2.default;\n\n__webpack_require__(/*! ./util/raphael_ext */ \"./src/util/raphael_ext.js\");\n__webpack_require__(/*! ./util/Polyfill */ \"./src/util/Polyfill.js\");\n__webpack_require__(/*! ./util/Base64 */ \"./src/util/Base64.js\");\n__webpack_require__(/*! ./util/Debug */ \"./src/util/Debug.js\");\n// require('./util/Color');\n\n__webpack_require__(/*! ./util/ArrayList */ \"./src/util/ArrayList.js\");\n__webpack_require__(/*! ./util/SVGUtil */ \"./src/util/SVGUtil.js\");\n//require('./util/JSONUtil');\n//require('./util/UUID');\n__webpack_require__(/*! ./util/spline/Spline */ \"./src/util/spline/Spline.js\");\n__webpack_require__(/*! ./util/spline/CubicSpline */ \"./src/util/spline/CubicSpline.js\");\n__webpack_require__(/*! ./util/spline/CatmullRomSpline */ \"./src/util/spline/CatmullRomSpline.js\");\n__webpack_require__(/*! ./util/spline/BezierSpline */ \"./src/util/spline/BezierSpline.js\");\n__webpack_require__(/*! ./geo/PositionConstants */ \"./src/geo/PositionConstants.js\");\n__webpack_require__(/*! ./geo/Point */ \"./src/geo/Point.js\");\n__webpack_require__(/*! ./geo/Rectangle */ \"./src/geo/Rectangle.js\");\n__webpack_require__(/*! ./geo/Util */ \"./src/geo/Util.js\");\n__webpack_require__(/*! ./geo/Ray */ \"./src/geo/Ray.js\");\n__webpack_require__(/*! ./geo/Line */ \"./src/geo/Line.js\");\n__webpack_require__(/*! ./command/CommandType */ \"./src/command/CommandType.js\");\n__webpack_require__(/*! ./command/Command */ \"./src/command/Command.js\");\n__webpack_require__(/*! ./command/CommandCollection */ \"./src/command/CommandCollection.js\");\n__webpack_require__(/*! ./command/CommandStack */ \"./src/command/CommandStack.js\");\n__webpack_require__(/*! ./command/CommandStackEvent */ \"./src/command/CommandStackEvent.js\");\n__webpack_require__(/*! ./command/CommandStackEventListener */ \"./src/command/CommandStackEventListener.js\");\n__webpack_require__(/*! ./command/CommandMove */ \"./src/command/CommandMove.js\");\n__webpack_require__(/*! ./command/CommandAttr */ \"./src/command/CommandAttr.js\");\n__webpack_require__(/*! ./command/CommandMoveLine */ \"./src/command/CommandMoveLine.js\");\n__webpack_require__(/*! ./command/CommandMoveConnection */ \"./src/command/CommandMoveConnection.js\");\n__webpack_require__(/*! ./command/CommandMoveVertex */ \"./src/command/CommandMoveVertex.js\");\n__webpack_require__(/*! ./command/CommandMoveVertices */ \"./src/command/CommandMoveVertices.js\");\n__webpack_require__(/*! ./command/CommandResize */ \"./src/command/CommandResize.js\");\n__webpack_require__(/*! ./command/CommandRotate */ \"./src/command/CommandRotate.js\");\n__webpack_require__(/*! ./command/CommandConnect */ \"./src/command/CommandConnect.js\");\n__webpack_require__(/*! ./command/CommandReconnect */ \"./src/command/CommandReconnect.js\");\n__webpack_require__(/*! ./command/CommandDelete */ \"./src/command/CommandDelete.js\");\n__webpack_require__(/*! ./command/CommandDeleteGroup */ \"./src/command/CommandDeleteGroup.js\");\n__webpack_require__(/*! ./command/CommandAdd */ \"./src/command/CommandAdd.js\");\n__webpack_require__(/*! ./command/CommandGroup */ \"./src/command/CommandGroup.js\");\n__webpack_require__(/*! ./command/CommandUngroup */ \"./src/command/CommandUngroup.js\");\n__webpack_require__(/*! ./command/CommandAddVertex */ \"./src/command/CommandAddVertex.js\");\n__webpack_require__(/*! ./command/CommandAssignFigure */ \"./src/command/CommandAssignFigure.js\");\n__webpack_require__(/*! ./command/CommandBoundingBox */ \"./src/command/CommandBoundingBox.js\");\n__webpack_require__(/*! ./command/CommandRemoveVertex */ \"./src/command/CommandRemoveVertex.js\");\n__webpack_require__(/*! ./command/CommandReplaceVertices */ \"./src/command/CommandReplaceVertices.js\");\n__webpack_require__(/*! ./layout/connection/ConnectionRouter */ \"./src/layout/connection/ConnectionRouter.js\");\n__webpack_require__(/*! ./layout/connection/DirectRouter */ \"./src/layout/connection/DirectRouter.js\");\n__webpack_require__(/*! ./layout/connection/RubberbandRouter */ \"./src/layout/connection/RubberbandRouter.js\");\n__webpack_require__(/*! ./layout/connection/VertexRouter */ \"./src/layout/connection/VertexRouter.js\");\n__webpack_require__(/*! ./layout/connection/ManhattanConnectionRouter */ \"./src/layout/connection/ManhattanConnectionRouter.js\");\n__webpack_require__(/*! ./layout/connection/ManhattanBridgedConnectionRouter */ \"./src/layout/connection/ManhattanBridgedConnectionRouter.js\");\n__webpack_require__(/*! ./layout/connection/InteractiveManhattanConnectionRouter */ \"./src/layout/connection/InteractiveManhattanConnectionRouter.js\");\n__webpack_require__(/*! ./layout/connection/CircuitConnectionRouter */ \"./src/layout/connection/CircuitConnectionRouter.js\");\n__webpack_require__(/*! ./layout/connection/SplineConnectionRouter */ \"./src/layout/connection/SplineConnectionRouter.js\");\n__webpack_require__(/*! ./layout/connection/FanConnectionRouter */ \"./src/layout/connection/FanConnectionRouter.js\");\n__webpack_require__(/*! ./layout/connection/MazeConnectionRouter */ \"./src/layout/connection/MazeConnectionRouter.js\");\n__webpack_require__(/*! ./layout/connection/MuteableManhattanConnectionRouter */ \"./src/layout/connection/MuteableManhattanConnectionRouter.js\");\n__webpack_require__(/*! ./layout/connection/SketchConnectionRouter */ \"./src/layout/connection/SketchConnectionRouter.js\");\n__webpack_require__(/*! ./layout/mesh/MeshLayouter */ \"./src/layout/mesh/MeshLayouter.js\");\n__webpack_require__(/*! ./layout/mesh/ExplodeLayouter */ \"./src/layout/mesh/ExplodeLayouter.js\");\n__webpack_require__(/*! ./layout/mesh/ProposedMeshChange */ \"./src/layout/mesh/ProposedMeshChange.js\");\n__webpack_require__(/*! ./layout/locator/Locator */ \"./src/layout/locator/Locator.js\");\n__webpack_require__(/*! ./layout/locator/PortLocator */ \"./src/layout/locator/PortLocator.js\");\n__webpack_require__(/*! ./layout/locator/DraggableLocator */ \"./src/layout/locator/DraggableLocator.js\");\n__webpack_require__(/*! ./layout/locator/SmartDraggableLocator */ \"./src/layout/locator/SmartDraggableLocator.js\");\n__webpack_require__(/*! ./layout/locator/XYAbsPortLocator */ \"./src/layout/locator/XYAbsPortLocator.js\");\n__webpack_require__(/*! ./layout/locator/XYRelPortLocator */ \"./src/layout/locator/XYRelPortLocator.js\");\n__webpack_require__(/*! ./layout/locator/InputPortLocator */ \"./src/layout/locator/InputPortLocator.js\");\n__webpack_require__(/*! ./layout/locator/OutputPortLocator */ \"./src/layout/locator/OutputPortLocator.js\");\n__webpack_require__(/*! ./layout/locator/ConnectionLocator */ \"./src/layout/locator/ConnectionLocator.js\");\n__webpack_require__(/*! ./layout/locator/ManhattanMidpointLocator */ \"./src/layout/locator/ManhattanMidpointLocator.js\");\n__webpack_require__(/*! ./layout/locator/PolylineMidpointLocator */ \"./src/layout/locator/PolylineMidpointLocator.js\");\n__webpack_require__(/*! ./layout/locator/ParallelMidpointLocator */ \"./src/layout/locator/ParallelMidpointLocator.js\");\n__webpack_require__(/*! ./layout/locator/TopLocator */ \"./src/layout/locator/TopLocator.js\");\n__webpack_require__(/*! ./layout/locator/BottomLocator */ \"./src/layout/locator/BottomLocator.js\");\n__webpack_require__(/*! ./layout/locator/LeftLocator */ \"./src/layout/locator/LeftLocator.js\");\n__webpack_require__(/*! ./layout/locator/RightLocator */ \"./src/layout/locator/RightLocator.js\");\n__webpack_require__(/*! ./layout/locator/CenterLocator */ \"./src/layout/locator/CenterLocator.js\");\n__webpack_require__(/*! ./policy/EditPolicy */ \"./src/policy/EditPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/CanvasPolicy */ \"./src/policy/canvas/CanvasPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/ZoomPolicy */ \"./src/policy/canvas/ZoomPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/WheelZoomPolicy */ \"./src/policy/canvas/WheelZoomPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/KeyboardPolicy */ \"./src/policy/canvas/KeyboardPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/DefaultKeyboardPolicy */ \"./src/policy/canvas/DefaultKeyboardPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/ExtendedKeyboardPolicy */ \"./src/policy/canvas/ExtendedKeyboardPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/SelectionPolicy */ \"./src/policy/canvas/SelectionPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/SingleSelectionPolicy */ \"./src/policy/canvas/SingleSelectionPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/GhostMoveSelectionPolicy */ \"./src/policy/canvas/GhostMoveSelectionPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/PanningSelectionPolicy */ \"./src/policy/canvas/PanningSelectionPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/BoundingboxSelectionPolicy */ \"./src/policy/canvas/BoundingboxSelectionPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/ReadOnlySelectionPolicy */ \"./src/policy/canvas/ReadOnlySelectionPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/DecorationPolicy */ \"./src/policy/canvas/DecorationPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/FadeoutDecorationPolicy */ \"./src/policy/canvas/FadeoutDecorationPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/CoronaDecorationPolicy */ \"./src/policy/canvas/CoronaDecorationPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/SnapToEditPolicy */ \"./src/policy/canvas/SnapToEditPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/ShowDimetricGridEditPolicy */ \"./src/policy/canvas/ShowDimetricGridEditPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/SnapToDimetricGridEditPolicy */ \"./src/policy/canvas/SnapToDimetricGridEditPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/ShowGridEditPolicy */ \"./src/policy/canvas/ShowGridEditPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/SnapToGridEditPolicy */ \"./src/policy/canvas/SnapToGridEditPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/ShowDotEditPolicy */ \"./src/policy/canvas/ShowDotEditPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/ShowChessboardEditPolicy */ \"./src/policy/canvas/ShowChessboardEditPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/SnapToGeometryEditPolicy */ \"./src/policy/canvas/SnapToGeometryEditPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/SnapToVerticesEditPolicy */ \"./src/policy/canvas/SnapToVerticesEditPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/SnapToInBetweenEditPolicy */ \"./src/policy/canvas/SnapToInBetweenEditPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/SnapToCenterEditPolicy */ \"./src/policy/canvas/SnapToCenterEditPolicy.js\");\n__webpack_require__(/*! ./policy/canvas/DropInterceptorPolicy */ \"./src/policy/canvas/DropInterceptorPolicy.js\");\n__webpack_require__(/*! ./policy/connection/ConnectionCreatePolicy */ \"./src/policy/connection/ConnectionCreatePolicy.js\");\n__webpack_require__(/*! ./policy/connection/ComposedConnectionCreatePolicy */ \"./src/policy/connection/ComposedConnectionCreatePolicy.js\");\n__webpack_require__(/*! ./policy/connection/ClickConnectionCreatePolicy */ \"./src/policy/connection/ClickConnectionCreatePolicy.js\");\n__webpack_require__(/*! ./policy/connection/OrthogonalConnectionCreatePolicy */ \"./src/policy/connection/OrthogonalConnectionCreatePolicy.js\");\n__webpack_require__(/*! ./policy/connection/DragConnectionCreatePolicy */ \"./src/policy/connection/DragConnectionCreatePolicy.js\");\n__webpack_require__(/*! ./policy/figure/FigureEditPolicy */ \"./src/policy/figure/FigureEditPolicy.js\");\n__webpack_require__(/*! ./policy/figure/DragDropEditPolicy */ \"./src/policy/figure/DragDropEditPolicy.js\");\n__webpack_require__(/*! ./policy/figure/RegionEditPolicy */ \"./src/policy/figure/RegionEditPolicy.js\");\n__webpack_require__(/*! ./policy/figure/HorizontalEditPolicy */ \"./src/policy/figure/HorizontalEditPolicy.js\");\n__webpack_require__(/*! ./policy/figure/VerticalEditPolicy */ \"./src/policy/figure/VerticalEditPolicy.js\");\n__webpack_require__(/*! ./policy/figure/SelectionPolicy */ \"./src/policy/figure/SelectionPolicy.js\");\n__webpack_require__(/*! ./policy/figure/SelectionFeedbackPolicy */ \"./src/policy/figure/SelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/figure/ResizeSelectionFeedbackPolicy */ \"./src/policy/figure/ResizeSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/figure/RectangleSelectionFeedbackPolicy */ \"./src/policy/figure/RectangleSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/figure/BigRectangleSelectionFeedbackPolicy */ \"./src/policy/figure/BigRectangleSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/figure/RoundRectangleSelectionFeedbackPolicy */ \"./src/policy/figure/RoundRectangleSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/figure/BusSelectionFeedbackPolicy */ \"./src/policy/figure/BusSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/figure/WidthSelectionFeedbackPolicy */ \"./src/policy/figure/WidthSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/figure/VBusSelectionFeedbackPolicy */ \"./src/policy/figure/VBusSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/figure/HBusSelectionFeedbackPolicy */ \"./src/policy/figure/HBusSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/figure/AntSelectionFeedbackPolicy */ \"./src/policy/figure/AntSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/figure/GlowSelectionFeedbackPolicy */ \"./src/policy/figure/GlowSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/figure/SlimSelectionFeedbackPolicy */ \"./src/policy/figure/SlimSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/figure/VertexSelectionFeedbackPolicy */ \"./src/policy/figure/VertexSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/line/LineSelectionFeedbackPolicy */ \"./src/policy/line/LineSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/line/VertexSelectionFeedbackPolicy */ \"./src/policy/line/VertexSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/line/OrthogonalSelectionFeedbackPolicy */ \"./src/policy/line/OrthogonalSelectionFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/port/PortFeedbackPolicy */ \"./src/policy/port/PortFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/port/ElasticStrapFeedbackPolicy */ \"./src/policy/port/ElasticStrapFeedbackPolicy.js\");\n__webpack_require__(/*! ./policy/port/IntrusivePortsFeedbackPolicy */ \"./src/policy/port/IntrusivePortsFeedbackPolicy.js\");\n__webpack_require__(/*! ./Configuration */ \"./src/Configuration.js\");\n__webpack_require__(/*! ./HeadlessCanvas */ \"./src/HeadlessCanvas.js\");\n__webpack_require__(/*! ./Canvas */ \"./src/Canvas.js\");\n__webpack_require__(/*! ./Selection */ \"./src/Selection.js\");\n__webpack_require__(/*! ./Figure */ \"./src/Figure.js\");\n__webpack_require__(/*! ./shape/node/Node */ \"./src/shape/node/Node.js\");\n__webpack_require__(/*! ./VectorFigure */ \"./src/VectorFigure.js\");\n__webpack_require__(/*! ./shape/basic/Rectangle */ \"./src/shape/basic/Rectangle.js\");\n__webpack_require__(/*! ./SetFigure */ \"./src/SetFigure.js\");\n__webpack_require__(/*! ./SVGFigure */ \"./src/SVGFigure.js\");\n__webpack_require__(/*! ./shape/node/Hub */ \"./src/shape/node/Hub.js\");\n__webpack_require__(/*! ./shape/node/HorizontalBus */ \"./src/shape/node/HorizontalBus.js\");\n__webpack_require__(/*! ./shape/node/VerticalBus */ \"./src/shape/node/VerticalBus.js\");\n__webpack_require__(/*! ./shape/node/Fulcrum */ \"./src/shape/node/Fulcrum.js\");\n__webpack_require__(/*! ./shape/basic/Arc */ \"./src/shape/basic/Arc.js\");\n__webpack_require__(/*! ./shape/basic/Oval */ \"./src/shape/basic/Oval.js\");\n__webpack_require__(/*! ./shape/basic/Circle */ \"./src/shape/basic/Circle.js\");\n__webpack_require__(/*! ./shape/basic/Label */ \"./src/shape/basic/Label.js\");\n__webpack_require__(/*! ./shape/basic/Text */ \"./src/shape/basic/Text.js\");\n__webpack_require__(/*! ./shape/basic/Line */ \"./src/shape/basic/Line.js\");\n__webpack_require__(/*! ./shape/basic/PolyLine */ \"./src/shape/basic/PolyLine.js\");\n__webpack_require__(/*! ./shape/basic/Image */ \"./src/shape/basic/Image.js\");\n__webpack_require__(/*! ./shape/basic/Polygon */ \"./src/shape/basic/Polygon.js\");\n__webpack_require__(/*! ./shape/basic/Diamond */ \"./src/shape/basic/Diamond.js\");\n__webpack_require__(/*! ./shape/dimetric/Rectangle */ \"./src/shape/dimetric/Rectangle.js\");\n__webpack_require__(/*! ./shape/composite/Composite */ \"./src/shape/composite/Composite.js\");\n__webpack_require__(/*! ./shape/composite/StrongComposite */ \"./src/shape/composite/StrongComposite.js\");\n__webpack_require__(/*! ./shape/composite/Group */ \"./src/shape/composite/Group.js\");\n__webpack_require__(/*! ./shape/composite/Jailhouse */ \"./src/shape/composite/Jailhouse.js\");\n__webpack_require__(/*! ./shape/composite/WeakComposite */ \"./src/shape/composite/WeakComposite.js\");\n__webpack_require__(/*! ./shape/composite/Raft */ \"./src/shape/composite/Raft.js\");\n__webpack_require__(/*! ./Connection */ \"./src/Connection.js\");\n__webpack_require__(/*! ./VectorFigure */ \"./src/VectorFigure.js\");\n__webpack_require__(/*! ./ResizeHandle */ \"./src/ResizeHandle.js\");\n__webpack_require__(/*! ./shape/basic/LineResizeHandle */ \"./src/shape/basic/LineResizeHandle.js\");\n__webpack_require__(/*! ./shape/basic/LineStartResizeHandle */ \"./src/shape/basic/LineStartResizeHandle.js\");\n__webpack_require__(/*! ./shape/basic/LineEndResizeHandle */ \"./src/shape/basic/LineEndResizeHandle.js\");\n__webpack_require__(/*! ./shape/basic/VertexResizeHandle */ \"./src/shape/basic/VertexResizeHandle.js\");\n__webpack_require__(/*! ./shape/basic/GhostVertexResizeHandle */ \"./src/shape/basic/GhostVertexResizeHandle.js\");\n__webpack_require__(/*! ./Port */ \"./src/Port.js\");\n__webpack_require__(/*! ./InputPort */ \"./src/InputPort.js\");\n__webpack_require__(/*! ./OutputPort */ \"./src/OutputPort.js\");\n__webpack_require__(/*! ./HybridPort */ \"./src/HybridPort.js\");\n__webpack_require__(/*! ./layout/anchor/ConnectionAnchor */ \"./src/layout/anchor/ConnectionAnchor.js\");\n__webpack_require__(/*! ./layout/anchor/ChopboxConnectionAnchor */ \"./src/layout/anchor/ChopboxConnectionAnchor.js\");\n__webpack_require__(/*! ./layout/anchor/FanConnectionAnchor */ \"./src/layout/anchor/FanConnectionAnchor.js\");\n__webpack_require__(/*! ./layout/anchor/ShortesPathConnectionAnchor */ \"./src/layout/anchor/ShortesPathConnectionAnchor.js\");\n__webpack_require__(/*! ./layout/anchor/CenterEdgeConnectionAnchor */ \"./src/layout/anchor/CenterEdgeConnectionAnchor.js\");\n__webpack_require__(/*! ./shape/arrow/CalligrapherArrowLeft */ \"./src/shape/arrow/CalligrapherArrowLeft.js\");\n__webpack_require__(/*! ./shape/arrow/CalligrapherArrowDownLeft */ \"./src/shape/arrow/CalligrapherArrowDownLeft.js\");\n__webpack_require__(/*! ./shape/node/Start */ \"./src/shape/node/Start.js\");\n__webpack_require__(/*! ./shape/node/End */ \"./src/shape/node/End.js\");\n__webpack_require__(/*! ./shape/node/Between */ \"./src/shape/node/Between.js\");\n__webpack_require__(/*! ./shape/note/PostIt */ \"./src/shape/note/PostIt.js\");\n__webpack_require__(/*! ./shape/flowchart/Document */ \"./src/shape/flowchart/Document.js\");\n__webpack_require__(/*! ./shape/widget/Widget */ \"./src/shape/widget/Widget.js\");\n__webpack_require__(/*! ./shape/widget/Slider */ \"./src/shape/widget/Slider.js\");\n__webpack_require__(/*! ./shape/diagram/Diagram */ \"./src/shape/diagram/Diagram.js\");\n__webpack_require__(/*! ./shape/diagram/Pie */ \"./src/shape/diagram/Pie.js\");\n__webpack_require__(/*! ./shape/diagram/Sparkline */ \"./src/shape/diagram/Sparkline.js\");\n__webpack_require__(/*! ./shape/analog/OpAmp */ \"./src/shape/analog/OpAmp.js\");\n__webpack_require__(/*! ./shape/analog/ResistorBridge */ \"./src/shape/analog/ResistorBridge.js\");\n__webpack_require__(/*! ./shape/analog/ResistorVertical */ \"./src/shape/analog/ResistorVertical.js\");\n__webpack_require__(/*! ./shape/analog/VoltageSupplyHorizontal */ \"./src/shape/analog/VoltageSupplyHorizontal.js\");\n__webpack_require__(/*! ./shape/analog/VoltageSupplyVertical */ \"./src/shape/analog/VoltageSupplyVertical.js\");\n__webpack_require__(/*! ./shape/layout/Layout */ \"./src/shape/layout/Layout.js\");\n__webpack_require__(/*! ./shape/layout/HorizontalLayout */ \"./src/shape/layout/HorizontalLayout.js\");\n__webpack_require__(/*! ./shape/layout/VerticalLayout */ \"./src/shape/layout/VerticalLayout.js\");\n__webpack_require__(/*! ./shape/layout/TableLayout */ \"./src/shape/layout/TableLayout.js\");\n__webpack_require__(/*! ./shape/layout/FlexGridLayout */ \"./src/shape/layout/FlexGridLayout.js\");\n__webpack_require__(/*! ./shape/layout/StackLayout */ \"./src/shape/layout/StackLayout.js\");\n__webpack_require__(/*! ./shape/icon/Icon */ \"./src/shape/icon/Icon.js\");\n__webpack_require__(/*! ./shape/icon/Thunder */ \"./src/shape/icon/Thunder.js\");\n__webpack_require__(/*! ./shape/icon/Snow */ \"./src/shape/icon/Snow.js\");\n__webpack_require__(/*! ./shape/icon/Hail */ \"./src/shape/icon/Hail.js\");\n__webpack_require__(/*! ./shape/icon/Rain */ \"./src/shape/icon/Rain.js\");\n__webpack_require__(/*! ./shape/icon/Cloudy */ \"./src/shape/icon/Cloudy.js\");\n__webpack_require__(/*! ./shape/icon/Sun */ \"./src/shape/icon/Sun.js\");\n__webpack_require__(/*! ./shape/icon/Undo */ \"./src/shape/icon/Undo.js\");\n__webpack_require__(/*! ./shape/icon/Detour */ \"./src/shape/icon/Detour.js\");\n__webpack_require__(/*! ./shape/icon/Merge */ \"./src/shape/icon/Merge.js\");\n__webpack_require__(/*! ./shape/icon/Split */ \"./src/shape/icon/Split.js\");\n__webpack_require__(/*! ./shape/icon/Fork */ \"./src/shape/icon/Fork.js\");\n__webpack_require__(/*! ./shape/icon/ForkAlt */ \"./src/shape/icon/ForkAlt.js\");\n__webpack_require__(/*! ./shape/icon/Exchange */ \"./src/shape/icon/Exchange.js\");\n__webpack_require__(/*! ./shape/icon/Shuffle */ \"./src/shape/icon/Shuffle.js\");\n__webpack_require__(/*! ./shape/icon/Refresh */ \"./src/shape/icon/Refresh.js\");\n__webpack_require__(/*! ./shape/icon/Ccw */ \"./src/shape/icon/Ccw.js\");\n__webpack_require__(/*! ./shape/icon/Acw */ \"./src/shape/icon/Acw.js\");\n__webpack_require__(/*! ./shape/icon/Contract */ \"./src/shape/icon/Contract.js\");\n__webpack_require__(/*! ./shape/icon/Expand */ \"./src/shape/icon/Expand.js\");\n__webpack_require__(/*! ./shape/icon/Stop */ \"./src/shape/icon/Stop.js\");\n__webpack_require__(/*! ./shape/icon/End */ \"./src/shape/icon/End.js\");\n__webpack_require__(/*! ./shape/icon/Start */ \"./src/shape/icon/Start.js\");\n__webpack_require__(/*! ./shape/icon/Ff */ \"./src/shape/icon/Ff.js\");\n__webpack_require__(/*! ./shape/icon/Rw */ \"./src/shape/icon/Rw.js\");\n__webpack_require__(/*! ./shape/icon/ArrowRight */ \"./src/shape/icon/ArrowRight.js\");\n__webpack_require__(/*! ./shape/icon/ArrowLeft */ \"./src/shape/icon/ArrowLeft.js\");\n__webpack_require__(/*! ./shape/icon/ArrowUp */ \"./src/shape/icon/ArrowUp.js\");\n__webpack_require__(/*! ./shape/icon/ArrowDown */ \"./src/shape/icon/ArrowDown.js\");\n__webpack_require__(/*! ./shape/icon/ArrowLeft2 */ \"./src/shape/icon/ArrowLeft2.js\");\n__webpack_require__(/*! ./shape/icon/ArrowRight2 */ \"./src/shape/icon/ArrowRight2.js\");\n__webpack_require__(/*! ./shape/icon/Smile2 */ \"./src/shape/icon/Smile2.js\");\n__webpack_require__(/*! ./shape/icon/Smile */ \"./src/shape/icon/Smile.js\");\n__webpack_require__(/*! ./shape/icon/Alarm */ \"./src/shape/icon/Alarm.js\");\n__webpack_require__(/*! ./shape/icon/Clock */ \"./src/shape/icon/Clock.js\");\n__webpack_require__(/*! ./shape/icon/StopWatch */ \"./src/shape/icon/StopWatch.js\");\n__webpack_require__(/*! ./shape/icon/History */ \"./src/shape/icon/History.js\");\n__webpack_require__(/*! ./shape/icon/Future */ \"./src/shape/icon/Future.js\");\n__webpack_require__(/*! ./shape/icon/GlobeAlt2 */ \"./src/shape/icon/GlobeAlt2.js\");\n__webpack_require__(/*! ./shape/icon/GlobeAlt */ \"./src/shape/icon/GlobeAlt.js\");\n__webpack_require__(/*! ./shape/icon/Globe */ \"./src/shape/icon/Globe.js\");\n__webpack_require__(/*! ./shape/icon/Warning */ \"./src/shape/icon/Warning.js\");\n__webpack_require__(/*! ./shape/icon/Code */ \"./src/shape/icon/Code.js\");\n__webpack_require__(/*! ./shape/icon/Pensil */ \"./src/shape/icon/Pensil.js\");\n__webpack_require__(/*! ./shape/icon/Pen */ \"./src/shape/icon/Pen.js\");\n__webpack_require__(/*! ./shape/icon/Plus */ \"./src/shape/icon/Plus.js\");\n__webpack_require__(/*! ./shape/icon/Minus */ \"./src/shape/icon/Minus.js\");\n__webpack_require__(/*! ./shape/icon/TShirt */ \"./src/shape/icon/TShirt.js\");\n__webpack_require__(/*! ./shape/icon/Sticker */ \"./src/shape/icon/Sticker.js\");\n__webpack_require__(/*! ./shape/icon/Page2 */ \"./src/shape/icon/Page2.js\");\n__webpack_require__(/*! ./shape/icon/Page */ \"./src/shape/icon/Page.js\");\n__webpack_require__(/*! ./shape/icon/Landscape1 */ \"./src/shape/icon/Landscape1.js\");\n__webpack_require__(/*! ./shape/icon/Landscape2 */ \"./src/shape/icon/Landscape2.js\");\n__webpack_require__(/*! ./shape/icon/Plugin */ \"./src/shape/icon/Plugin.js\");\n__webpack_require__(/*! ./shape/icon/Bookmark */ \"./src/shape/icon/Bookmark.js\");\n__webpack_require__(/*! ./shape/icon/Hammer */ \"./src/shape/icon/Hammer.js\");\n__webpack_require__(/*! ./shape/icon/Users */ \"./src/shape/icon/Users.js\");\n__webpack_require__(/*! ./shape/icon/User */ \"./src/shape/icon/User.js\");\n__webpack_require__(/*! ./shape/icon/Customer */ \"./src/shape/icon/Customer.js\");\n__webpack_require__(/*! ./shape/icon/Employee */ \"./src/shape/icon/Employee.js\");\n__webpack_require__(/*! ./shape/icon/Anonymous */ \"./src/shape/icon/Anonymous.js\");\n__webpack_require__(/*! ./shape/icon/Skull */ \"./src/shape/icon/Skull.js\");\n__webpack_require__(/*! ./shape/icon/Mail */ \"./src/shape/icon/Mail.js\");\n__webpack_require__(/*! ./shape/icon/Picture */ \"./src/shape/icon/Picture.js\");\n__webpack_require__(/*! ./shape/icon/Bubble */ \"./src/shape/icon/Bubble.js\");\n__webpack_require__(/*! ./shape/icon/CodeTalk */ \"./src/shape/icon/CodeTalk.js\");\n__webpack_require__(/*! ./shape/icon/Talkq */ \"./src/shape/icon/Talkq.js\");\n__webpack_require__(/*! ./shape/icon/Talke */ \"./src/shape/icon/Talke.js\");\n__webpack_require__(/*! ./shape/icon/Home */ \"./src/shape/icon/Home.js\");\n__webpack_require__(/*! ./shape/icon/Lock */ \"./src/shape/icon/Lock.js\");\n__webpack_require__(/*! ./shape/icon/Clip */ \"./src/shape/icon/Clip.js\");\n__webpack_require__(/*! ./shape/icon/Star */ \"./src/shape/icon/Star.js\");\n__webpack_require__(/*! ./shape/icon/StarOff */ \"./src/shape/icon/StarOff.js\");\n__webpack_require__(/*! ./shape/icon/Star2 */ \"./src/shape/icon/Star2.js\");\n__webpack_require__(/*! ./shape/icon/Star2Off */ \"./src/shape/icon/Star2Off.js\");\n__webpack_require__(/*! ./shape/icon/Star3 */ \"./src/shape/icon/Star3.js\");\n__webpack_require__(/*! ./shape/icon/Star3Off */ \"./src/shape/icon/Star3Off.js\");\n__webpack_require__(/*! ./shape/icon/Chat */ \"./src/shape/icon/Chat.js\");\n__webpack_require__(/*! ./shape/icon/Quote */ \"./src/shape/icon/Quote.js\");\n__webpack_require__(/*! ./shape/icon/Gear2 */ \"./src/shape/icon/Gear2.js\");\n__webpack_require__(/*! ./shape/icon/Gear */ \"./src/shape/icon/Gear.js\");\n__webpack_require__(/*! ./shape/icon/Wrench */ \"./src/shape/icon/Wrench.js\");\n__webpack_require__(/*! ./shape/icon/Wrench2 */ \"./src/shape/icon/Wrench2.js\");\n__webpack_require__(/*! ./shape/icon/Wrench3 */ \"./src/shape/icon/Wrench3.js\");\n__webpack_require__(/*! ./shape/icon/ScrewDriver */ \"./src/shape/icon/ScrewDriver.js\");\n__webpack_require__(/*! ./shape/icon/HammerAndScrewDriver */ \"./src/shape/icon/HammerAndScrewDriver.js\");\n__webpack_require__(/*! ./shape/icon/Magic */ \"./src/shape/icon/Magic.js\");\n__webpack_require__(/*! ./shape/icon/Download */ \"./src/shape/icon/Download.js\");\n__webpack_require__(/*! ./shape/icon/View */ \"./src/shape/icon/View.js\");\n__webpack_require__(/*! ./shape/icon/Noview */ \"./src/shape/icon/Noview.js\");\n__webpack_require__(/*! ./shape/icon/Cloud */ \"./src/shape/icon/Cloud.js\");\n__webpack_require__(/*! ./shape/icon/Cloud2 */ \"./src/shape/icon/Cloud2.js\");\n__webpack_require__(/*! ./shape/icon/CloudDown */ \"./src/shape/icon/CloudDown.js\");\n__webpack_require__(/*! ./shape/icon/CloudUp */ \"./src/shape/icon/CloudUp.js\");\n__webpack_require__(/*! ./shape/icon/Location */ \"./src/shape/icon/Location.js\");\n__webpack_require__(/*! ./shape/icon/Volume0 */ \"./src/shape/icon/Volume0.js\");\n__webpack_require__(/*! ./shape/icon/Volume1 */ \"./src/shape/icon/Volume1.js\");\n__webpack_require__(/*! ./shape/icon/Volume2 */ \"./src/shape/icon/Volume2.js\");\n__webpack_require__(/*! ./shape/icon/Volume3 */ \"./src/shape/icon/Volume3.js\");\n__webpack_require__(/*! ./shape/icon/Key */ \"./src/shape/icon/Key.js\");\n__webpack_require__(/*! ./shape/icon/Ruler */ \"./src/shape/icon/Ruler.js\");\n__webpack_require__(/*! ./shape/icon/Power */ \"./src/shape/icon/Power.js\");\n__webpack_require__(/*! ./shape/icon/Unlock */ \"./src/shape/icon/Unlock.js\");\n__webpack_require__(/*! ./shape/icon/Flag */ \"./src/shape/icon/Flag.js\");\n__webpack_require__(/*! ./shape/icon/Tag */ \"./src/shape/icon/Tag.js\");\n__webpack_require__(/*! ./shape/icon/Search */ \"./src/shape/icon/Search.js\");\n__webpack_require__(/*! ./shape/icon/ZoomOut */ \"./src/shape/icon/ZoomOut.js\");\n__webpack_require__(/*! ./shape/icon/ZoomIn */ \"./src/shape/icon/ZoomIn.js\");\n__webpack_require__(/*! ./shape/icon/Cross */ \"./src/shape/icon/Cross.js\");\n__webpack_require__(/*! ./shape/icon/Check */ \"./src/shape/icon/Check.js\");\n__webpack_require__(/*! ./shape/icon/Settings */ \"./src/shape/icon/Settings.js\");\n__webpack_require__(/*! ./shape/icon/SettingsAlt */ \"./src/shape/icon/SettingsAlt.js\");\n__webpack_require__(/*! ./shape/icon/Feed */ \"./src/shape/icon/Feed.js\");\n__webpack_require__(/*! ./shape/icon/Bug */ \"./src/shape/icon/Bug.js\");\n__webpack_require__(/*! ./shape/icon/Link */ \"./src/shape/icon/Link.js\");\n__webpack_require__(/*! ./shape/icon/Calendar */ \"./src/shape/icon/Calendar.js\");\n__webpack_require__(/*! ./shape/icon/Picker */ \"./src/shape/icon/Picker.js\");\n__webpack_require__(/*! ./shape/icon/No */ \"./src/shape/icon/No.js\");\n__webpack_require__(/*! ./shape/icon/CommandLine */ \"./src/shape/icon/CommandLine.js\");\n__webpack_require__(/*! ./shape/icon/Photo */ \"./src/shape/icon/Photo.js\");\n__webpack_require__(/*! ./shape/icon/Printer */ \"./src/shape/icon/Printer.js\");\n__webpack_require__(/*! ./shape/icon/Export */ \"./src/shape/icon/Export.js\");\n__webpack_require__(/*! ./shape/icon/Import */ \"./src/shape/icon/Import.js\");\n__webpack_require__(/*! ./shape/icon/Run */ \"./src/shape/icon/Run.js\");\n__webpack_require__(/*! ./shape/icon/Magnet */ \"./src/shape/icon/Magnet.js\");\n__webpack_require__(/*! ./shape/icon/NoMagnet */ \"./src/shape/icon/NoMagnet.js\");\n__webpack_require__(/*! ./shape/icon/ReflectH */ \"./src/shape/icon/ReflectH.js\");\n__webpack_require__(/*! ./shape/icon/ReflectV */ \"./src/shape/icon/ReflectV.js\");\n__webpack_require__(/*! ./shape/icon/Resize2 */ \"./src/shape/icon/Resize2.js\");\n__webpack_require__(/*! ./shape/icon/Rotate */ \"./src/shape/icon/Rotate.js\");\n__webpack_require__(/*! ./shape/icon/Connect */ \"./src/shape/icon/Connect.js\");\n__webpack_require__(/*! ./shape/icon/Disconnect */ \"./src/shape/icon/Disconnect.js\");\n__webpack_require__(/*! ./shape/icon/Folder */ \"./src/shape/icon/Folder.js\");\n__webpack_require__(/*! ./shape/icon/Man */ \"./src/shape/icon/Man.js\");\n__webpack_require__(/*! ./shape/icon/Woman */ \"./src/shape/icon/Woman.js\");\n__webpack_require__(/*! ./shape/icon/People */ \"./src/shape/icon/People.js\");\n__webpack_require__(/*! ./shape/icon/Parent */ \"./src/shape/icon/Parent.js\");\n__webpack_require__(/*! ./shape/icon/Notebook */ \"./src/shape/icon/Notebook.js\");\n__webpack_require__(/*! ./shape/icon/Diagram */ \"./src/shape/icon/Diagram.js\");\n__webpack_require__(/*! ./shape/icon/BarChart */ \"./src/shape/icon/BarChart.js\");\n__webpack_require__(/*! ./shape/icon/PieChart */ \"./src/shape/icon/PieChart.js\");\n__webpack_require__(/*! ./shape/icon/LineChart */ \"./src/shape/icon/LineChart.js\");\n__webpack_require__(/*! ./shape/icon/Apps */ \"./src/shape/icon/Apps.js\");\n__webpack_require__(/*! ./shape/icon/Locked */ \"./src/shape/icon/Locked.js\");\n__webpack_require__(/*! ./shape/icon/Ppt */ \"./src/shape/icon/Ppt.js\");\n__webpack_require__(/*! ./shape/icon/Lab */ \"./src/shape/icon/Lab.js\");\n__webpack_require__(/*! ./shape/icon/Umbrella */ \"./src/shape/icon/Umbrella.js\");\n__webpack_require__(/*! ./shape/icon/Dry */ \"./src/shape/icon/Dry.js\");\n__webpack_require__(/*! ./shape/icon/Ipad */ \"./src/shape/icon/Ipad.js\");\n__webpack_require__(/*! ./shape/icon/Iphone */ \"./src/shape/icon/Iphone.js\");\n__webpack_require__(/*! ./shape/icon/Jigsaw */ \"./src/shape/icon/Jigsaw.js\");\n__webpack_require__(/*! ./shape/icon/Lamp */ \"./src/shape/icon/Lamp.js\");\n__webpack_require__(/*! ./shape/icon/Lamp_alt */ \"./src/shape/icon/Lamp_alt.js\");\n__webpack_require__(/*! ./shape/icon/Video */ \"./src/shape/icon/Video.js\");\n__webpack_require__(/*! ./shape/icon/Palm */ \"./src/shape/icon/Palm.js\");\n__webpack_require__(/*! ./shape/icon/Fave */ \"./src/shape/icon/Fave.js\");\n__webpack_require__(/*! ./shape/icon/Help */ \"./src/shape/icon/Help.js\");\n__webpack_require__(/*! ./shape/icon/Crop */ \"./src/shape/icon/Crop.js\");\n__webpack_require__(/*! ./shape/icon/BioHazard */ \"./src/shape/icon/BioHazard.js\");\n__webpack_require__(/*! ./shape/icon/WheelChair */ \"./src/shape/icon/WheelChair.js\");\n__webpack_require__(/*! ./shape/icon/Mic */ \"./src/shape/icon/Mic.js\");\n__webpack_require__(/*! ./shape/icon/MicMute */ \"./src/shape/icon/MicMute.js\");\n__webpack_require__(/*! ./shape/icon/IMac */ \"./src/shape/icon/IMac.js\");\n__webpack_require__(/*! ./shape/icon/Pc */ \"./src/shape/icon/Pc.js\");\n__webpack_require__(/*! ./shape/icon/Cube */ \"./src/shape/icon/Cube.js\");\n__webpack_require__(/*! ./shape/icon/FullCube */ \"./src/shape/icon/FullCube.js\");\n__webpack_require__(/*! ./shape/icon/Font */ \"./src/shape/icon/Font.js\");\n__webpack_require__(/*! ./shape/icon/Trash */ \"./src/shape/icon/Trash.js\");\n__webpack_require__(/*! ./shape/icon/NewWindow */ \"./src/shape/icon/NewWindow.js\");\n__webpack_require__(/*! ./shape/icon/DockRight */ \"./src/shape/icon/DockRight.js\");\n__webpack_require__(/*! ./shape/icon/DockLeft */ \"./src/shape/icon/DockLeft.js\");\n__webpack_require__(/*! ./shape/icon/DockBottom */ \"./src/shape/icon/DockBottom.js\");\n__webpack_require__(/*! ./shape/icon/DockTop */ \"./src/shape/icon/DockTop.js\");\n__webpack_require__(/*! ./shape/icon/Pallete */ \"./src/shape/icon/Pallete.js\");\n__webpack_require__(/*! ./shape/icon/Cart */ \"./src/shape/icon/Cart.js\");\n__webpack_require__(/*! ./shape/icon/Glasses */ \"./src/shape/icon/Glasses.js\");\n__webpack_require__(/*! ./shape/icon/Package */ \"./src/shape/icon/Package.js\");\n__webpack_require__(/*! ./shape/icon/Book */ \"./src/shape/icon/Book.js\");\n__webpack_require__(/*! ./shape/icon/Books */ \"./src/shape/icon/Books.js\");\n__webpack_require__(/*! ./shape/icon/Icons */ \"./src/shape/icon/Icons.js\");\n__webpack_require__(/*! ./shape/icon/List */ \"./src/shape/icon/List.js\");\n__webpack_require__(/*! ./shape/icon/Db */ \"./src/shape/icon/Db.js\");\n__webpack_require__(/*! ./shape/icon/Paper */ \"./src/shape/icon/Paper.js\");\n__webpack_require__(/*! ./shape/icon/TakeOff */ \"./src/shape/icon/TakeOff.js\");\n__webpack_require__(/*! ./shape/icon/Landing */ \"./src/shape/icon/Landing.js\");\n__webpack_require__(/*! ./shape/icon/Plane */ \"./src/shape/icon/Plane.js\");\n__webpack_require__(/*! ./shape/icon/Phone */ \"./src/shape/icon/Phone.js\");\n__webpack_require__(/*! ./shape/icon/HangUp */ \"./src/shape/icon/HangUp.js\");\n__webpack_require__(/*! ./shape/icon/SlideShare */ \"./src/shape/icon/SlideShare.js\");\n__webpack_require__(/*! ./shape/icon/Twitter */ \"./src/shape/icon/Twitter.js\");\n__webpack_require__(/*! ./shape/icon/TwitterBird */ \"./src/shape/icon/TwitterBird.js\");\n__webpack_require__(/*! ./shape/icon/Skype */ \"./src/shape/icon/Skype.js\");\n__webpack_require__(/*! ./shape/icon/Windows */ \"./src/shape/icon/Windows.js\");\n__webpack_require__(/*! ./shape/icon/Apple */ \"./src/shape/icon/Apple.js\");\n__webpack_require__(/*! ./shape/icon/Linux */ \"./src/shape/icon/Linux.js\");\n__webpack_require__(/*! ./shape/icon/NodeJs */ \"./src/shape/icon/NodeJs.js\");\n__webpack_require__(/*! ./shape/icon/JQuery */ \"./src/shape/icon/JQuery.js\");\n__webpack_require__(/*! ./shape/icon/Sencha */ \"./src/shape/icon/Sencha.js\");\n__webpack_require__(/*! ./shape/icon/Vim */ \"./src/shape/icon/Vim.js\");\n__webpack_require__(/*! ./shape/icon/InkScape */ \"./src/shape/icon/InkScape.js\");\n__webpack_require__(/*! ./shape/icon/Aumade */ \"./src/shape/icon/Aumade.js\");\n__webpack_require__(/*! ./shape/icon/Firefox */ \"./src/shape/icon/Firefox.js\");\n__webpack_require__(/*! ./shape/icon/Ie */ \"./src/shape/icon/Ie.js\");\n__webpack_require__(/*! ./shape/icon/Ie9 */ \"./src/shape/icon/Ie9.js\");\n__webpack_require__(/*! ./shape/icon/Opera */ \"./src/shape/icon/Opera.js\");\n__webpack_require__(/*! ./shape/icon/Chrome */ \"./src/shape/icon/Chrome.js\");\n__webpack_require__(/*! ./shape/icon/Safari */ \"./src/shape/icon/Safari.js\");\n__webpack_require__(/*! ./shape/icon/LinkedIn */ \"./src/shape/icon/LinkedIn.js\");\n__webpack_require__(/*! ./shape/icon/Flickr */ \"./src/shape/icon/Flickr.js\");\n__webpack_require__(/*! ./shape/icon/GitHub */ \"./src/shape/icon/GitHub.js\");\n__webpack_require__(/*! ./shape/icon/GitHubAlt */ \"./src/shape/icon/GitHubAlt.js\");\n__webpack_require__(/*! ./shape/icon/Raphael */ \"./src/shape/icon/Raphael.js\");\n__webpack_require__(/*! ./shape/icon/GRaphael */ \"./src/shape/icon/GRaphael.js\");\n__webpack_require__(/*! ./shape/icon/Svg */ \"./src/shape/icon/Svg.js\");\n__webpack_require__(/*! ./shape/icon/Usb */ \"./src/shape/icon/Usb.js\");\n__webpack_require__(/*! ./shape/icon/Ethernet */ \"./src/shape/icon/Ethernet.js\");\n__webpack_require__(/*! ./shape/pert/Activity */ \"./src/shape/pert/Activity.js\");\n__webpack_require__(/*! ./shape/pert/Start */ \"./src/shape/pert/Start.js\");\n__webpack_require__(/*! ./shape/state/Start */ \"./src/shape/state/Start.js\");\n__webpack_require__(/*! ./shape/state/End */ \"./src/shape/state/End.js\");\n__webpack_require__(/*! ./shape/state/State */ \"./src/shape/state/State.js\");\n__webpack_require__(/*! ./shape/state/Connection */ \"./src/shape/state/Connection.js\");\n__webpack_require__(/*! ./ui/LabelEditor */ \"./src/ui/LabelEditor.js\");\n__webpack_require__(/*! ./ui/LabelInplaceEditor */ \"./src/ui/LabelInplaceEditor.js\");\n__webpack_require__(/*! ./decoration/connection/Decorator */ \"./src/decoration/connection/Decorator.js\");\n__webpack_require__(/*! ./decoration/connection/ArrowDecorator */ \"./src/decoration/connection/ArrowDecorator.js\");\n__webpack_require__(/*! ./decoration/connection/DiamondDecorator */ \"./src/decoration/connection/DiamondDecorator.js\");\n__webpack_require__(/*! ./decoration/connection/CircleDecorator */ \"./src/decoration/connection/CircleDecorator.js\");\n__webpack_require__(/*! ./decoration/connection/BarDecorator */ \"./src/decoration/connection/BarDecorator.js\");\n__webpack_require__(/*! ./io/Reader */ \"./src/io/Reader.js\");\n__webpack_require__(/*! ./io/Writer */ \"./src/io/Writer.js\");\n__webpack_require__(/*! ./io/svg/Writer */ \"./src/io/svg/Writer.js\");\n__webpack_require__(/*! ./io/png/Writer */ \"./src/io/png/Writer.js\");\n__webpack_require__(/*! ./io/json/Writer */ \"./src/io/json/Writer.js\");\n__webpack_require__(/*! ./io/json/Reader */ \"./src/io/json/Reader.js\");\n\n/***/ }),\n\n/***/ \"./src/io/Reader.js\":\n/*!**************************!*\\\n !*** ./src/io/Reader.js ***!\n \\**************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Template class for general import of a document into the canvas.\n *\n * @author andreas Herz\n */\n_packages2.default.io.Reader = Class.extend(\n/** @lends draw2d.io.Reader */\n{\n\n init: function init() {},\n\n /**\n *\n *\n * Restore the canvas from a given String.\n *\n * @param {draw2d.Canvas} canvas the canvas to restore\n * @param {Object} document the document to read\n *\n * @returns {draw2d.util.ArrayList} the added elements\n * @template\n */\n unmarshal: function unmarshal(canvas, document) {\n // do nothing. Inherit classes must implement this method\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/io/Writer.js\":\n/*!**************************!*\\\n !*** ./src/io/Writer.js ***!\n \\**************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Serialize the canvas to an external format. This is only a template/interface class.\n * Inherit classes must implement the export format.\n *\n * @author Andreas Herz\n */\n_packages2.default.io.Writer = Class.extend(\n/** @lends draw2d.io.Writer */\n\n{\n init: function init() {},\n\n /**\n * \n * Export the content to the implemented data format. Inherit class implements\n * content specific writer.\n * <br>\n * <br>\n *\n * Method signature has been changed from version 2.10.1 to version 3.0.0.<br>\n * The parameter <b>resultCallback</b> is required and new. The method calls\n * the callback instead of return the result.\n *\n * @template\n * @since 2.10.1\n * @param {draw2d.Canvas} canvas\n * @param {Function} resultCallback the method to call on success. The first argument is the result object, the second the base64 content of a corresponding file\n * @returns {Object}\n *\n */\n marshal: function marshal(canvas, resultCallback) {\n // I change the API signature from version 2.10.1 to 3.0.0. Throw an exception\n // if any application not care about this changes.\n if (typeof resultCallback !== \"function\") {\n throw \"Writer.marshal method signature has been change from version 2.10.1 to version 3.0.0. Please consult the API documentation about this issue.\";\n }\n\n resultCallback(\"\", \"\");\n },\n\n /**\n * \n * utility method to format a given XML string.\n *\n * @param xml\n * @returns {String}\n */\n formatXml: function formatXml(xml) {\n var formatted = '';\n var reg = new RegExp(\"(>)(<)(\\/*)\", \"g\");\n xml = xml.replace(reg, '$1\\r\\n$2$3');\n var pad = 0;\n xml.split('\\r\\n').forEach(function (node) {\n var indent = 0;\n if (node.match(new RegExp(\".+<\\/\\w[^>]*>$\"))) {\n indent = 0;\n } else if (node.match(new RegExp(\"^<\\/\\w\"))) {\n if (pad != 0) {\n pad -= 1;\n }\n } else if (node.match(new RegExp(\"^<\\w[^>]*[^\\/]>.*$\"))) {\n indent = 1;\n } else {\n indent = 0;\n }\n\n var padding = '';\n for (var i = 0; i < pad; i++) {\n padding += ' ';\n }\n\n formatted += padding + node + '\\r\\n';\n pad += indent;\n });\n\n return formatted;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/io/json/Reader.js\":\n/*!*******************************!*\\\n !*** ./src/io/json/Reader.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Read a JSON data and import them into the canvas. The JSON must be generated with the\n * {@link draw2d.io.json.Writer}.\n *\n * @example\n *\n * // Load a standard draw2d JSON object into the canvas\n * //\n * let jsonDocument =\n * [\n * {\n * \"type\": \"draw2d.shape.basic.Oval\",\n * \"id\": \"5b4c74 b0-96d1-1aa3-7eca-bbeaed5fffd7\",\n * \"x\": 237,\n * \"y\": 236,\n * \"width\": 93,\n * \"height\": 38\n * },\n * {\n * \"type\": \"draw2d.shape.basic.Rectangle\",\n * \"id\": \"354fa3b9-a834-0221-2009-abc2d6bd852a\",\n * \"x\": 225,\n * \"y\": 97,\n * \"width\": 201,\n * \"height\": 82,\n * \"radius\": 2\n * }\n * ];\n * // unmarshal the JSON document into the canvas\n * // (load)\n * let reader = new draw2d.io.json.Reader();\n * reader.unmarshal(canvas, jsonDocument);\n *\n *\n * @author Andreas Herz\n * @extends draw2d.io.Reader\n */\n_packages2.default.io.json.Reader = _packages2.default.io.Reader.extend(\n/** @lends draw2d.io.json.Reader.prototype */\n{\n NAME: \"draw2d.io.json.Reader\",\n\n init: function init() {\n this._super();\n },\n\n /**\n *\n *\n * Restore the canvas from a given JSON object.\n *\n * @param {draw2d.Canvas} canvas the canvas to restore\n * @param {Object|String} json the json object to load.\n */\n unmarshal: function unmarshal(canvas, json) {\n var _this = this;\n\n var result = new _packages2.default.util.ArrayList();\n\n if (typeof json === \"string\") {\n json = JSON.parse(json);\n }\n\n var node = null;\n json.forEach(function (element) {\n try {\n var o = _this.createFigureFromElement(element) || _this.createFigureFromType(element.type);\n var source = null;\n var target = null;\n for (var i in element) {\n var val = element[i];\n if (i === \"source\") {\n node = canvas.getFigure(val.node);\n if (node === null) {\n throw \"Source figure with id '\" + val.node + \"' not found\";\n }\n source = node.getPort(val.port);\n if (source === null) {\n throw \"Unable to find source port '\" + val.port + \"' at figure '\" + val.node + \"' to unmarschal '\" + element.type + \"'\";\n }\n } else if (i === \"target\") {\n node = canvas.getFigure(val.node);\n if (node === null) {\n throw \"Target figure with id '\" + val.node + \"' not found\";\n }\n target = node.getPort(val.port);\n if (target === null) {\n throw \"Unable to find target port '\" + val.port + \"' at figure '\" + val.node + \"' to unmarschal '\" + element.type + \"'\";\n }\n }\n }\n if (source !== null && target !== null) {\n // don't change the order or the source/target set.\n // TARGET must always be the second one because some applications needs the \"source\"\n // port in the \"connect\" event of the target.\n o.setSource(source);\n o.setTarget(target);\n }\n o.setPersistentAttributes(element);\n canvas.add(o);\n result.add(o);\n } catch (exc) {\n debug.error(element, \"Unable to instantiate figure type '\" + element.type + \"' with id '\" + element.id + \"' during unmarshal by \" + _this.NAME + \". Skipping figure..\");\n debug.error(exc);\n debug.warn(element);\n }\n });\n\n // restore group assignment\n //\n json.forEach(function (element) {\n if (typeof element.composite !== \"undefined\") {\n var figure = canvas.getFigure(element.id);\n if (figure === null) {\n figure = canvas.getLine(element.id);\n }\n var group = canvas.getFigure(element.composite);\n group.assignFigure(figure);\n }\n });\n\n // recalculate all crossings and repaint the connections with\n // possible crossing decoration\n canvas.calculateConnectionIntersection();\n canvas.getLines().each(function (i, line) {\n line.svgPathString = null;\n line.repaint();\n });\n canvas.linesToRepaintAfterDragDrop = canvas.getLines().clone();\n\n canvas.showDecoration();\n\n return result;\n },\n\n /**\n *\n * Factory method to create an instance of the given element type.\n *\n * @param {String} type\n * @returns {draw2d.Figure}\n */\n createFigureFromType: function createFigureFromType(type) {\n return eval(\"new \" + type + \"()\");\n },\n\n /**\n *\n * Factory method to create an instance of the given element.\n *\n * @param {Object} element\n * @returns {draw2d.Figure}\n */\n createFigureFromElement: function createFigureFromElement(element) {\n return null;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/io/json/Writer.js\":\n/*!*******************************!*\\\n !*** ./src/io/json/Writer.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Serialize the canvas document into a JSON object which can be read from the corresponding\n * {@link draw2d.io.json.Reader}.\n *\n * // Create a JSON writer and convert it into a JSON-String representation.\n * //\n * var writer = new draw2d.io.json.Writer();\n * writer.marshal(canvas, function(json){\n * // convert the json object into string representation\n * var jsonTxt = JSON.stringify(json,null,2);\n * \n * // insert the json string into a DIV for preview or post\n * // it via ajax to the server....\n * $(\"#json\").text(jsonTxt);\n * \n * });\n *\n *\n *\n * @author Andreas Herz\n * @extends draw2d.io.Writer\n */\n\n_packages2.default.io.json.Writer = _packages2.default.io.Writer.extend(\n/** @lends draw2d.io.json.Writer */\n{\n\n init: function init() {\n this._super();\n },\n\n /**\n *\n * Export the content to the implemented data format. Inherit class implements\n * content specific writer.\n * <br>\n * <br>\n *\n * Method signature has been changed from version 2.10.1 to version 3.0.0.<br>\n * The parameter <b>resultCallback</b> is required and new. The method calls\n * the callback instead of return the result.\n *\n * @param {draw2d.Canvas} canvas\n * @param {Function} resultCallback the method to call on success. The first argument is the result object, the second the base64 representation of the file content\n * @param {Object} resultCallback.json the canvas document as JSON object\n * @param {String} resultCallback.base64 the canvas document as base encoded JSON\n */\n marshal: function marshal(canvas, resultCallback) {\n // I change the API signature from version 2.10.1 to 3.0.0. Throw an exception\n // if any application not care about this changes.\n if (typeof resultCallback !== \"function\") {\n throw \"Writer.marshal method signature has been change from version 2.10.1 to version 3.0.0. Please consult the API documentation about this issue.\";\n }\n\n var result = [];\n\n canvas.getFigures().each(function (i, figure) {\n result.push(figure.getPersistentAttributes());\n });\n\n canvas.getLines().each(function (i, element) {\n result.push(element.getPersistentAttributes());\n });\n\n var base64Content = _packages2.default.util.Base64.encode(JSON.stringify(result, null, 2));\n\n resultCallback(result, base64Content);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/io/png/Writer.js\":\n/*!******************************!*\\\n !*** ./src/io/png/Writer.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar canvg = __webpack_require__(/*! canvg-browser */ \"./node_modules/canvg-browser/index.js\");\n\n/**\n * @class\n *\n * Converts the canvas document into a PNG Image.\n *\n * @example\n * // example how to create a PNG image and set an\n * // image src attribute.\n * //\n * let writer = new draw2d.io.png.Writer();\n * writer.marshal(canvas, function(png){\n * $(\"#preview\").attr(\"src\",png);\n * });\n *\n * @author Andreas Herz\n * @extends draw2d.io.Writer\n */\n_packages2.default.io.png.Writer = _packages2.default.io.Writer.extend(\n/** @lends draw2d.io.png.Writer */\n{\n\n init: function init() {\n this._super();\n },\n\n /**\n *\n * Export the content to a PNG image. The result can be set as <b>src=\"....\"</b> because\n * the result is encoded as data source url <b>data:image/png;base64....</b>\n * <br>\n * <br>\n *\n * Method signature has been changed from version 2.10.1 to version 3.0.0.<br>\n * The parameter <b>resultCallback</b> is required and new. The method calls\n * the callback instead of return the result.\n *\n * @param {draw2d.Canvas} canvas\n * @param {Function} resultCallback the method to call on success. The first argument is the dataUrl, the second is the base64 formated png image\n * @param {String} resultCallback.img The image as data source url <b>data:image/png;base64....</b>\n * @param {String} resultCallback.base64 the image encoded in base64\n * @param {draw2d.geo.Rectangle} cropBoundingBox optional cropping/clipping bounding box\n */\n marshal: function marshal(canvas, resultCallback, cropBoundingBox) {\n // I change the API signature from version 2.10.1 to 3.0.0. Throw an exception\n // if any application not care about this changes.\n if (typeof resultCallback !== \"function\") {\n throw \"Writer.marshal method signature has been change from version 2.10.1 to version 3.0.0. Please consult the API documentation about this issue.\";\n }\n\n var svg = \"\";\n var canvasState = false;\n\n // the png.Writer can create Snapshots of a single figure too.\n // Didn't work in IE <10\n // @status beta\n // @since 5.5.0\n if (canvas instanceof _packages2.default.Figure) {\n var figure = canvas;\n var origPos = figure.getPosition();\n figure.setPosition(1, 1);\n svg = \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" >\" + figure.shape.node.outerHTML + \"</svg>\";\n figure.setPosition(origPos);\n figure.initialWidth = figure.getWidth() + 2;\n figure.initialHeight = figure.getHeight() + 2;\n }\n // create a snapshot of a complete canvas\n //\n else {\n canvasState = {\n zoom: canvas.getZoom(),\n scrollLeft: canvas.getScrollLeft(),\n scrollTop: canvas.getScrollTop()\n };\n canvas.setZoom(1.0);\n canvas.hideDecoration();\n svg = new XMLSerializer().serializeToString(canvas.getHtmlContainer().find(\"svg\")[0]);\n }\n\n var canvasDomNode = $('<canvas id=\"canvas_png_export_for_draw2d\"></canvas>');\n $('body').append(canvasDomNode);\n var fullSizeCanvas = $(\"#canvas_png_export_for_draw2d\")[0];\n fullSizeCanvas.width = canvas.initialWidth;\n fullSizeCanvas.height = canvas.initialHeight;\n\n canvg(\"canvas_png_export_for_draw2d\", svg, {\n ignoreMouse: true,\n ignoreAnimation: true,\n renderCallback: function renderCallback() {\n try {\n if (canvas instanceof _packages2.default.Canvas) {\n if (canvasState) {\n canvas.setZoom(canvasState.zoom);\n canvas.setScrollLeft(canvasState.scrollLeft);\n canvas.setScrollTop(canvasState.scrollTop);\n }\n canvas.showDecoration();\n }\n\n if (typeof cropBoundingBox !== \"undefined\") {\n var sourceX = cropBoundingBox.x;\n var sourceY = cropBoundingBox.y;\n var sourceWidth = cropBoundingBox.w;\n var sourceHeight = cropBoundingBox.h;\n\n var croppedCanvas = document.createElement('canvas');\n croppedCanvas.width = sourceWidth;\n croppedCanvas.height = sourceHeight;\n\n croppedCanvas.getContext(\"2d\").drawImage(fullSizeCanvas, sourceX, sourceY, sourceWidth, sourceHeight, 0, 0, sourceWidth, sourceHeight);\n\n var dataUrl = croppedCanvas.toDataURL(\"image/png\");\n var base64Image = dataUrl.replace(\"data:image/png;base64,\", \"\");\n resultCallback(dataUrl, base64Image);\n } else {\n var img = fullSizeCanvas.toDataURL(\"image/png\");\n resultCallback(img, img.replace(\"data:image/png;base64,\", \"\"));\n }\n } finally {\n canvasDomNode.remove();\n }\n }\n });\n }\n});\n\n/***/ }),\n\n/***/ \"./src/io/svg/Writer.js\":\n/*!******************************!*\\\n !*** ./src/io/svg/Writer.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Serialize the canvas document into a SVG document.\n *\n * // Create a SVG writer and convert the canvas into a SVG document.\n * //\n * var writer = new draw2d.io.svg.Writer();\n * writer.marshal(canvas, function(svg){\n * // insert the svg string into a DIV for preview or post\n * // it via ajax to the server....\n * $(\"#svg\").text(svg);\n * });\n *\n *\n *\n * @author Andreas Herz\n * @extends draw2d.io.Writer\n */\n_packages2.default.io.svg.Writer = _packages2.default.io.Writer.extend(\n/** @lends draw2d.io.svg.Writer */\n{\n init: function init() {\n this._super();\n },\n\n /**\n *\n * Export the content of the canvas into SVG. The SVG document can be loaded with Inkscape or any other SVG Editor.\n * <br>\n * <br>\n *\n * Method signature has been changed from version 2.10.1 to version 3.0.0.<br>\n * The parameter <b>resultCallback</b> is required and new. The method calls\n * the callback instead of return the result.\n *\n *\n * @param {draw2d.Canvas} canvas the canvas to marshal\n * @param {Function} callback the method to call on success. The first argument is the SVG document\n * @param {String} callback.svg the SVG document\n * @param {String} callback.base64 the SVG document encoded in base64\n */\n marshal: function marshal(canvas, callback) {\n // I change the API signature from version 2.10.1 to 3.0.0. Throw an exception\n // if any application not care about this changes.\n if (typeof callback !== \"function\") {\n throw \"Writer.marshal method signature has been change from version 2.10.1 to version 3.0.0. Please consult the API documentation about this issue.\";\n }\n\n var s = canvas.getPrimarySelection();\n canvas.setCurrentSelection(null);\n var svg = canvas.getHtmlContainer().html().replace(/>\\s+/g, \">\").replace(/\\s+</g, \"<\");\n svg = this.formatXml(svg);\n svg = svg.replace(/<desc>.*<\\/desc>/g, \"<desc>Create with draw2d JS graph library and RaphaelJS</desc>\");\n\n canvas.setCurrentSelection(s);\n\n var base64Content = _packages2.default.util.Base64.encode(svg);\n callback(svg, base64Content);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/anchor/CenterEdgeConnectionAnchor.js\":\n/*!*********************************************************!*\\\n !*** ./src/layout/anchor/CenterEdgeConnectionAnchor.js ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * The CenterEdgeConnectionAnchor's location is found by calculating the intersection of a\n * line drawn from the center point of its owner's box (the parent of the\n * connection port) to a reference point on that box. A Connection using the\n * ChopBoxAnchor will be oriented such that they point to their port owner's\n * center.\n *\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.layout.anchor.ConnectionAnchor\n */\n\n_packages2.default.layout.anchor.CenterEdgeConnectionAnchor = _packages2.default.layout.anchor.ConnectionAnchor.extend(\n/** @lends draw2d.layout.anchor.CenterEdgeConnectionAnchor.prototype */\n{\n\n NAME: \"draw2d.layout.anchor.CenterEdgeConnectionAnchor\",\n\n /**\n *\n * @param {draw2d.Figure} [owner] the figure to use for the anchor calculation\n */\n init: function init(owner) {\n this._super(owner);\n },\n\n /**\n * \n *\n * Returns the location where the Connection should be anchored in\n * absolute coordinates. The anchor may use the given reference\n * Point to calculate this location.\n *\n * @param {draw2d.geo.Point} ref The reference Point in absolute coordinates\n * @param {draw2d.Connection} [inquiringConnection] the connection who ask for the location.\n *\n * @returns {draw2d.geo.Point} The anchor's location\n */\n getLocation: function getLocation(ref, inquiringConnection) {\n var r = this.getOwner().getParent().getBoundingBox();\n\n var dir = r.getDirection(ref);\n var center = r.getCenter();\n\n switch (dir) {\n case 0:\n center.y = r.y;\n break;\n case 1:\n center.x = r.x + r.w;\n break;\n case 2:\n center.y = r.y + r.h;\n break;\n case 3:\n center.x = r.x;\n }\n\n return center;\n },\n\n /**\n * Returns the bounds of this Anchor's owner. Subclasses can\n * override this method to adjust the box. Maybe you return the box\n * of the port parent (the parent figure)\n *\n * @returns {draw2d.geo.Rectangle} The bounds of this Anchor's owner\n */\n getBox: function getBox() {\n return this.getOwner().getParent().getBoundingBox();\n },\n\n /**\n * \n *\n * Returns the bounds of this Anchor's owner. Subclasses can\n * override this method to adjust the box. Maybe you return the box\n * of the port parent (the parent figure)\n *\n * @param {draw2d.Connection} [inquiringConnection] the connection who ask for the location.\n *\n * @returns {draw2d.geo.Point} The bounds of this Anchor's owner\n */\n getReferencePoint: function getReferencePoint(inquiringConnection) {\n return this.getBox().getCenter();\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/anchor/ChopboxConnectionAnchor.js\":\n/*!******************************************************!*\\\n !*** ./src/layout/anchor/ChopboxConnectionAnchor.js ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * The ChopboxAnchor's location is found by calculating the intersection of a\n * line drawn from the center point of its owner's box (the parent of the\n * connection port) to a reference point on that box. A Connection using the\n * ChopBoxAnchor will be oriented such that they point to their port owner's\n * center.\n *\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.layout.anchor.ConnectionAnchor\n */\n\n_packages2.default.layout.anchor.ChopboxConnectionAnchor = _packages2.default.layout.anchor.ConnectionAnchor.extend(\n/** @lends draw2d.layout.anchor.ChopboxConnectionAnchor.prototype */\n{\n\n NAME: \"draw2d.layout.anchor.ChopboxConnectionAnchor\",\n\n /**\n *\n * @param {draw2d.Figure} owner the figure to use for the anchor calculation\n */\n init: function init(owner) {\n this._super(owner);\n },\n\n /**\n *\n *\n * Returns the location where the Connection should be anchored in\n * absolute coordinates. The anchor may use the given reference\n * Point to calculate this location.\n *\n * @param {draw2d.geo.Point} reference The reference Point in absolute coordinates\n * @param {draw2d.Connection} [inquiringConnection] the connection who ask for the location.\n *\n * @returns {draw2d.geo.Point} The anchor's location\n */\n getLocation: function getLocation(reference, inquiringConnection) {\n var r = new _packages2.default.geo.Rectangle(0, 0);\n r.setBounds(this.getBox());\n r.translate(-1, -1);\n r.resize(1, 1);\n\n var center = r.getCenter();\n\n if (r.isEmpty() || reference.x === center.x && reference.y === center.y) {\n return center; // This avoids divide-by-zero\n }\n\n var dx = reference.x - center.x;\n var dy = reference.y - center.y;\n\n // r.width, r.height, dx, and dy are guaranteed to be non-zero.\n var scale = 0.5 / Math.max(Math.abs(dx) / r.w, Math.abs(dy) / r.h);\n\n dx *= scale;\n dy *= scale;\n center.translate(dx, dy);\n\n return center;\n },\n\n /**\n * Returns the bounds of this Anchor's owner. Subclasses can\n * override this method to adjust the box. Maybe you return the box\n * of the port parent (the parent figure)\n *\n * @returns {draw2d.geo.Rectangle} The bounds of this Anchor's owner\n */\n getBox: function getBox() {\n return this.getOwner().getParent().getBoundingBox();\n },\n\n /**\n *\n *\n * Returns the reference point for this anchor in absolute coordinates. This might be used\n * by another anchor to determine its own location.\n *\n * @param {draw2d.Connection} [inquiringConnection] the connection who ask for the location.\n * @returns {draw2d.geo.Point} The bounds of this Anchor's owner\n */\n getReferencePoint: function getReferencePoint(inquiringConnection) {\n return this.getBox().getCenter();\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/anchor/ConnectionAnchor.js\":\n/*!***********************************************!*\\\n !*** ./src/layout/anchor/ConnectionAnchor.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * An object to which a {@link draw2d.Connection} will be anchored.\n *\n * @inheritable\n * @author Andreas Herz\n */\n\n_packages2.default.layout.anchor.ConnectionAnchor = Class.extend(\n/** @lends draw2d.layout.anchor.ConnectionAnchor.prototype */\n{\n\n NAME: \"draw2d.layout.anchor.ConnectionAnchor\",\n\n /**\n *\n * @param {draw2d.Figure} owner the figure to use for the anchor calculation\n */\n init: function init(owner) {\n this.owner = owner;\n },\n\n /**\n * \n * Returns the location where the Connection should be anchored in absolute coordinates.\n * The anchor may use the given reference Point to calculate this location.\n *\n * @param {draw2d.geo.Point} reference the opposite reference point\n * @param {draw2d.Connection} inquiringConnection the connection who ask for the location.\n *\n * @returns {draw2d.geo.Point}\n */\n getLocation: function getLocation(reference, inquiringConnection) {\n // return the center of the owner/port.\n return this.getReferencePoint(inquiringConnection);\n },\n\n /**\n * \n * Returns the Figure that contains this ConnectionAnchor.\n *\n * @returns {draw2d.Figure} The Figure that contains this ConnectionAnchor\n */\n getOwner: function getOwner() {\n return this.owner;\n },\n\n /**\n * \n * Set the owner of the Anchor.\n *\n * @param {draw2d.Figure} owner the new owner of the anchor locator\n */\n setOwner: function setOwner(owner) {\n if (typeof owner === \"undefined\") {\n throw \"Missing parameter for 'owner' in ConnectionAnchor.setOwner\";\n }\n this.owner = owner;\n },\n\n /**\n * \n * Returns the bounds of this Anchor's owner. Subclasses can override this method\n * to adjust the box. Maybe you return the box of the port parent (the parent figure)\n *\n * @returns {draw2d.geo.Rectangle} The bounds of this Anchor's owner\n */\n getBox: function getBox() {\n return this.getOwner().getAbsoluteBounds();\n },\n\n /**\n * \n * Returns the reference point for this anchor in absolute coordinates. This might be used\n * by another anchor to determine its own location.\n *\n * @param {draw2d.Connection} [inquiringConnection] the connection who ask for the location.\n *\n * @returns {draw2d.geo.Point} The reference Point\n */\n getReferencePoint: function getReferencePoint(inquiringConnection) {\n return this.getOwner().getAbsolutePosition();\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/anchor/FanConnectionAnchor.js\":\n/*!**************************************************!*\\\n !*** ./src/layout/anchor/FanConnectionAnchor.js ***!\n \\**************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * The FanConnectionAnchor's location is found by calculating the intersection of a\n * line drawn from the center point of its owner's box (the parent of the\n * connection port) to a reference point on that box.\n * Additional the anchor resolves conflicts by spread the anchor if more than one\n * connection has the same reference point. <br>\n * In a case of a DirectRouter parallel connections are the result.\n *\n *\n * @inheritable\n * @author Andreas Herz\n * @since 4.6.0\n * @extends draw2d.layout.anchor.ConnectionAnchor\n */\n\n_packages2.default.layout.anchor.FanConnectionAnchor = _packages2.default.layout.anchor.ConnectionAnchor.extend(\n/** @lends draw2d.layout.anchor.FanConnectionAnchor.prototype */\n{\n\n NAME: \"draw2d.layout.anchor.FanConnectionAnchor\",\n\n /**\n *\n * @param {draw2d.Figure} owner the figure to use for the anchor calculation\n * @param {Number} [separation] the separation or fan distance between the concurrent/conflicting anchors\n */\n init: function init(owner, separation) {\n this._super(owner);\n\n if (separation) {\n this.separation = parseInt(separation);\n } else {\n this.separation = 10;\n }\n },\n\n /**\n * \n *\n * Returns the location where the Connection should be anchored in\n * absolute coordinates. The anchor may use the given reference\n * Point to calculate this location.\n *\n * @param {draw2d.geo.Point} reference The reference Point in absolute coordinates\n * @param {draw2d.Connection} inquiringConnection the connection who ask for the location.\n *\n * @returns {draw2d.geo.Point} The anchor's location\n */\n getLocation: function getLocation(reference, inquiringConnection) {\n\n var r = new _packages2.default.geo.Rectangle(0, 0);\n r.setBounds(this.getBox());\n r.translate(-1, -1);\n r.resize(1, 1);\n\n var center = r.getCenter();\n\n if (r.isEmpty() || reference.x === center.x && reference.y === center.y) {\n return center; // This avoids divide-by-zero\n }\n\n // translate the center if required\n //\n var s = inquiringConnection.getSource();\n var t = inquiringConnection.getTarget();\n var lines = this.getOwner().getConnections().clone();\n lines.grep(function (other) {\n return other.getTarget() === t && other.getSource() === s || other.getTarget() === s && other.getSource() === t;\n });\n var index = lines.indexOf(inquiringConnection) + 1;\n var position = center.getPosition(reference);\n var ray = void 0;\n if (position === _packages2.default.geo.PositionConstants.SOUTH || position === _packages2.default.geo.PositionConstants.EAST) {\n ray = new _packages2.default.geo.Point(reference.x - center.x, reference.y - center.y);\n } else {\n ray = new _packages2.default.geo.Point(center.x - reference.x, center.y - reference.y);\n }\n var length = Math.sqrt(ray.x * ray.x + ray.y * ray.y);\n if (index <= 2) {\n length *= 1.5;\n }\n var xSeparation = this.separation * ray.x / length;\n var ySeparation = this.separation * ray.y / length;\n if (index % 2 === 0) {\n center = new _packages2.default.geo.Point(center.x + index / 2 * (-1 * ySeparation), center.y + index / 2 * xSeparation);\n } else {\n center = new _packages2.default.geo.Point(center.x + index / 2 * ySeparation, center.y + index / 2 * (-1 * xSeparation));\n }\n\n var intersections = this.getBox().intersectionWithLine(center, reference);\n // perfect - one intersection mean that the shifted center point is inside the bounding box and has only one intersection with it.\n //\n switch (intersections.getSize()) {\n case 0:\n // calculate the edge of the bounding box which is nearest to the reference point\n //\n var v = this.getBox().getVertices();\n var first = v.first();\n first.distance = reference.distance(first);\n return v.asArray().reduce(function (previous, current) {\n current.distance = reference.distance(current);\n return current.distance < previous.distance ? current : previous;\n });\n case 1:\n return intersections.get(0);\n case 2:\n // get the nearest of these points\n var p0 = intersections.get(0);\n var p1 = intersections.get(1);\n var p0diff = reference.distance(p0);\n var p1diff = reference.distance(p1);\n if (p0diff < p1diff) {\n return p0;\n }\n return p1;\n }\n\n // we have 0 or 2 intersections with the bounding box. This means the shifted\n // calculate the intersection if the new \"center\" with the bounding box of the\n // shape (if any exists)\n },\n\n /**\n * Returns the bounds of this Anchor's owner. Subclasses can\n * override this method to adjust the box. Maybe you return the box\n * of the port parent (the parent figure)\n *\n * @returns {draw2d.geo.Rectangle} The bounds of this Anchor's owner\n */\n getBox: function getBox() {\n return this.getOwner().getParent().getBoundingBox();\n },\n\n /**\n * \n *\n * Returns the reference point for this anchor in absolute coordinates. This might be used\n * by another anchor to determine its own location.\n *\n * @param {draw2d.Connection} inquiringConnection the connection who ask for the location.\n *\n * @returns {draw2d.geo.Point} The bounds of this Anchor's owner\n */\n getReferencePoint: function getReferencePoint(inquiringConnection) {\n return this.getBox().getCenter();\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/anchor/ShortesPathConnectionAnchor.js\":\n/*!**********************************************************!*\\\n !*** ./src/layout/anchor/ShortesPathConnectionAnchor.js ***!\n \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * The ChopboxAnchor's location is found by calculating the intersection of a\n * line drawn from the center point of its owner's box (the parent of the\n * connection port) to a reference point on that box. A Connection using the\n * ChopBoxAnchor will be oriented such that they point to their port owner's\n * center.\n *\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.layout.anchor.ConnectionAnchor\n */\n\n_packages2.default.layout.anchor.ShortesPathConnectionAnchor = _packages2.default.layout.anchor.ConnectionAnchor.extend(\n/** @lends draw2d.layout.anchor.ShortesPathConnectionAnchor.prototype */\n{\n\n NAME: \"draw2d.layout.anchor.ShortesPathConnectionAnchor\",\n\n /**\n *\n * @param {draw2d.Figure} [owner] the figure to use for the anchor calculation\n */\n init: function init(owner) {\n this._super(owner);\n },\n\n /**\n * \n *\n * Returns the location where the Connection should be anchored in\n * absolute coordinates. The anchor may use the given reference\n * Point to calculate this location.\n *\n * @param {draw2d.geo.Point} ref The reference Point in absolute coordinates\n * @param {draw2d.Connection} inquiringConnection the connection who ask for the location.\n *\n * @returns {draw2d.geo.Point} The anchor's location\n */\n getLocation: function getLocation(ref, inquiringConnection) {\n var r = this.getOwner().getParent().getBoundingBox();\n var center = r.getCenter();\n\n // check if we can calculate with a circle/line intersection\n //\n if (this.getOwner().getParent() instanceof _packages2.default.shape.basic.Oval) {\n var result = this.getOwner().getParent().intersectionWithLine(ref, center);\n if (result.getSize() === 1) {\n return result.get(0);\n }\n }\n\n /* 0 | 1 | 2\n * __|___|__\n * 7 | 8 | 3\n * __|___|__\n * 6 | 5 | 4\n */\n var octant = r.determineOctant(new _packages2.default.geo.Rectangle(ref.x, ref.y, 2, 2));\n\n switch (octant) {\n case 0:\n return r.getTopLeft();\n case 1:\n return new _packages2.default.geo.Point(ref.x, r.getTop());\n case 2:\n return r.getTopRight();\n case 3:\n return new _packages2.default.geo.Point(r.getRight(), ref.y);\n case 4:\n return r.getBottomRight();\n case 5:\n return new _packages2.default.geo.Point(ref.x, r.getBottom());\n case 6:\n return r.getBottomLeft();\n case 7:\n return new _packages2.default.geo.Point(r.getLeft(), ref.y);\n }\n\n return r.getTopLeft();\n },\n\n /**\n * Returns the bounds of this Anchor's owner. Subclasses can\n * override this method to adjust the box. Maybe you return the box\n * of the port parent (the parent figure)\n *\n * @returns {draw2d.geo.Rectangle} The bounds of this Anchor's owner\n */\n getBox: function getBox() {\n return this.getOwner().getParent().getBoundingBox();\n },\n\n /**\n * \n *\n * Returns the bounds of this Anchor's owner. Subclasses can\n * override this method to adjust the box. Maybe you return the box\n * of the port parent (the parent figure)\n *\n * @param {draw2d.Connection} inquiringConnection the connection who ask for the location.\n *\n * @returns {draw2d.geo.Point} The bounds of this Anchor's owner\n */\n getReferencePoint: function getReferencePoint(inquiringConnection) {\n return this.getBox().getCenter();\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/connection/CircuitConnectionRouter.js\":\n/*!**********************************************************!*\\\n !*** ./src/layout/connection/CircuitConnectionRouter.js ***!\n \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Provides a {@link draw2d.Connection} with an orthogonal route between the Connection's source\n * and target anchors.\n * <br>\n * Additional a <b>bridge</b> is added to each connection which didn't have a common source or target\n * port.<br>\n * A <b>dot</b> is added at the crossing if the two connections have a common spurce or target port.\n *\n * <br>\n *\n * @example\n *\n * let createConnection=function(){\n * let con = new draw2d.Connection();\n * con.setRouter(new draw2d.layout.connection.CircuitConnectionRouter());\n * return con;\n * };\n *\n * // install a custom connection create policy\n * //\n * canvas.installEditPolicy( new draw2d.policy.connection.DragConnectionCreatePolicy({\n * createConnection: createConnection\n * }));\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * let f1 = new draw2d.shape.analog.OpAmp({x:10, y:10});\n * let f2 = new draw2d.shape.analog.ResistorVertical({angle:90, height:20, x:300, y:150});\n * let f3 = new draw2d.shape.analog.ResistorVertical({x:250, y:70});\n * let f4 = new draw2d.shape.analog.ResistorVertical({x:10, y:90});\n *\n * // ...add it to the canvas\n * //\n * canvas.add( f1);\n * canvas.add( f2);\n * canvas.add( f3);\n * canvas.add( f4);\n *\n * // first Connection\n * //\n * let c = createConnection();\n * c.setSource(f1.getOutputPort(0));\n * c.setTarget(f2.getHybridPort(0));\n * canvas.add(c);\n *\n * // second Connection between the other resistors\n * //\n * c = createConnection();\n * c.setSource(f3.getHybridPort(1));\n * c.setTarget(f4.getHybridPort(0));\n * canvas.add(c);\n *\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.layout.connection.ManhattanConnectionRouter\n */\n\n_packages2.default.layout.connection.CircuitConnectionRouter = _packages2.default.layout.connection.ManhattanConnectionRouter.extend(\n/** @lends draw2d.layout.connection.CircuitConnectionRouter.prototype */\n{\n\n NAME: \"draw2d.layout.connection.CircuitConnectionRouter\",\n\n /**\n * Creates a new Router object.\n *\n */\n init: function init() {\n this._super();\n this.setBridgeRadius(4);\n this.setVertexRadius(2);\n\n // experimental\n this.abortRoutingOnFirstVertexNode = false;\n },\n\n /**\n * \n * Callback method if the router has been assigned to a connection.\n *\n * @param {draw2d.Connection} connection The assigned connection\n * @template\n * @since 2.7.2\n */\n onInstall: function onInstall(connection) {\n connection.installEditPolicy(new _packages2.default.policy.line.LineSelectionFeedbackPolicy());\n },\n\n /**\n * \n * Callback method if the router has been removed from the connection. In the case of the CircuitRouter\n * all vertex nodes will be removed from the canvas.\n *\n * @param {draw2d.Connection} connection The related connection\n * @template\n * @since 2.7.2\n */\n onUninstall: function onUninstall(connection) {\n if (typeof connection.vertexNodes !== \"undefined\" && connection.vertexNodes !== null) {\n connection.vertexNodes.remove();\n connection.vertexNodes = null;\n }\n },\n\n /**\n * \n * Set the radius of the vertex circle.\n *\n * @param {Number} radius\n */\n setVertexRadius: function setVertexRadius(radius) {\n this.vertexRadius = radius;\n\n return this;\n },\n /** deprecated\n * @private\n * **/\n setJunctionRadius: function setJunctionRadius(radius) {\n this.vertexRadius = radius;\n },\n\n /**\n * \n * Set the radius or span of the bridge. A bridge will be drawn if two connections are crossing and didn't have any\n * common port.\n *\n * @param {Number} radius\n */\n setBridgeRadius: function setBridgeRadius(radius) {\n this.bridgeRadius = radius;\n this.bridge_LR = [\" r\", 0.5, -0.5, radius - radius / 2, -(radius - radius / 4), radius, -radius, radius + radius / 2, -(radius - radius / 4), radius * 2, \"0 \"].join(\" \");\n this.bridge_RL = [\" r\", -0.5, -0.5, -(radius - radius / 2), -(radius - radius / 4), -radius, -radius, -(radius + radius / 2), -(radius - radius / 4), -radius * 2, \"0 \"].join(\" \");\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n route: function route(conn, routingHints) {\n var _this = this;\n\n var fromPt = conn.getStartPoint();\n var fromDir = conn.getSource().getConnectionDirection(conn.getTarget());\n\n var toPt = conn.getEndPoint();\n var toDir = conn.getTarget().getConnectionDirection(conn.getSource());\n\n // calculate the lines between the two points with the standard ManhattanRouter.\n //\n this._route(conn, toPt, toDir, fromPt, fromDir);\n\n // get the intersections to the other connections\n //\n var intersectionsASC = conn.getCanvas().getIntersection(conn).sort(\"x\");\n var intersectionsDESC = intersectionsASC.clone().reverse();\n\n var intersectionForCalc = intersectionsASC;\n\n // add a ArrayList of all added vertex nodes to the connection\n //\n if (typeof conn.vertexNodes !== \"undefined\" && conn.vertexNodes !== null) {\n conn.vertexNodes.remove();\n }\n conn.vertexNodes = conn.canvas.paper.set();\n\n // ATTENTION: we cast all x/y coordinates to integer and add 0.5 to avoid subpixel rendering of\n // the connection. The 1px or 2px lines look much clearer than before.\n //\n var ps = conn.getVertices();\n var p = ps.get(0);\n var path = [\"M\", (p.x | 0) + 0.5, \" \", (p.y | 0) + 0.5];\n\n var oldP = p;\n var bridgeWidth = null;\n var bridgeCode = null;\n\n var lastVertexNode = null;\n\n for (var i = 1; i < ps.getSize(); i++) {\n p = ps.get(i);\n\n // line goes from right->left.\n if (oldP.x > p.x) {\n intersectionForCalc = intersectionsDESC;\n bridgeCode = this.bridge_RL;\n bridgeWidth = -this.bridgeRadius;\n }\n // line goes from left->right\n else {\n intersectionForCalc = intersectionsASC;\n bridgeCode = this.bridge_LR;\n bridgeWidth = this.bridgeRadius;\n }\n\n // add a bridge or a vertex node depending to the intersection connection\n //\n // bridge => the connections didn't have a common port\n // vertex => the connections did have a common source or target port\n //\n intersectionForCalc.each(function (ii, interP) {\n if (_packages2.default.shape.basic.Line.hit(1, oldP.x, oldP.y, p.x, p.y, interP.x, interP.y) === true) {\n\n // It is a vertex node..\n //\n if (conn.sharingPorts(interP.other)) {\n var other = interP.other;\n var otherZ = other.getZOrder();\n var connZ = conn.getZOrder();\n if (connZ < otherZ) {\n var vertexNode = conn.canvas.paper.ellipse(interP.x, interP.y, _this.vertexRadius, _this.vertexRadius).attr({ fill: conn.lineColor.rgba() });\n conn.vertexNodes.push(vertexNode);\n // we found a vertex node. In this case an already existing connection did draw the connection.\n //\n if (_this.abortRoutingOnFirstVertexNode === true) {\n if (conn.getSource() === other.getSource() || conn.getSource() === other.getTarget()) {\n path = [\"M\", (interP.x | 0) + 0.5, \" \", (interP.y | 0) + 0.5];\n if (lastVertexNode !== null) {\n lastVertexNode.remove();\n conn.vertexNodes.exclude(lastVertexNode);\n }\n }\n lastVertexNode = vertexNode;\n }\n }\n }\n // ..or a bridge. We draw only horizontal bridges. Just a design decision\n //\n else if (p.y === interP.y) {\n path.push(\" L\", (interP.x - bridgeWidth | 0) + 0.5, \" \", (interP.y | 0) + 0.5);\n path.push(bridgeCode);\n }\n }\n });\n\n path.push(\" L\", (p.x | 0) + 0.5, \" \", (p.y | 0) + 0.5);\n oldP = p;\n }\n conn.svgPathString = path.join(\"\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/connection/ConnectionRouter.js\":\n/*!***************************************************!*\\\n !*** ./src/layout/connection/ConnectionRouter.js ***!\n \\***************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Routes a {@link draw2d.Connection}, possibly using a constraint.\n *\n * @author Andreas Herz\n */\n\n_packages2.default.layout.connection.ConnectionRouter = Class.extend(\n/** @lends draw2d.layout.connection.ConnectionRouter.prototype */\n{\n\n NAME: \"draw2d.layout.connection.ConnectionRouter\",\n\n /**\n * Creates a new Router object\n */\n init: function init() {},\n\n /**\n *\n * Routes the Connection.\n *\n * @param {draw2d.Connection} connection The Connection to route\n * @param {Object} [routingHints] some helper attributes for the router\n * @param {Boolean} [routingHints.startMoved] is true if just the start location has moved\n * @param {Boolean} [routingHints.endMoved] is true if the destination location has changed\n * @param {draw2d.util.ArrayList} [routingHints.oldVertices] the vertices before the reroute has been triggered\n *\n * @template\n */\n route: function route(connection, routingHints) {\n throw \"subclasses must implement the method [ConnectionRouter.route]\";\n },\n\n _paint: function _paint(conn) {\n // calculate the path string for the SVG rendering\n // Important: to avoid subpixel error rendering we add 0.5 to each coordinate\n // With this offset the canvas can paint the line on a \"full pixel\" instead\n // of subpixel rendering.\n // let adjust = val => (val| 0) +0.5\n var adjust = function adjust(val) {\n return val;\n };\n\n var ps = conn.getVertices();\n var p = ps.get(0);\n var radius = conn.getRadius();\n var path = [\"M\", adjust(p.x), \" \", adjust(p.y)];\n var i = 1;\n var length = void 0,\n inset = void 0,\n p2 = void 0;\n if (radius > 0) {\n var lastP = p;\n length = ps.getSize() - 1;\n for (; i < length; i++) {\n p = ps.get(i);\n inset = _packages2.default.geo.Util.insetPoint(p, lastP, radius);\n path.push(\"L\", adjust(inset.x), \",\", adjust(inset.y));\n\n p2 = ps.get(i + 1);\n inset = _packages2.default.geo.Util.insetPoint(p, p2, radius);\n\n path.push(\"Q\", p.x, \",\", p.y, \" \", adjust(inset.x), \", \", adjust(inset.y));\n lastP = p;\n }\n p = ps.get(i);\n path.push(\"L\", adjust(p.x), \",\", adjust(p.y));\n } else {\n length = ps.getSize();\n for (; i < length; i++) {\n p = ps.get(i);\n path.push(\"L\", adjust(p.x), \",\", adjust(p.y));\n }\n }\n conn.svgPathString = path.join(\"\");\n },\n\n /**\n *\n * Callback method if the router has been assigned to a connection.\n *\n * @param {draw2d.shape.basic.PolyLine} connection The assigned connection\n * @template\n * @since 2.7.2\n */\n onInstall: function onInstall(connection) {},\n\n /**\n *\n * Callback method if the router has been removed from the connection.\n *\n * @param {draw2d.shape.basic.PolyLine} connection The related connection\n * @template\n * @since 2.7.2\n */\n onUninstall: function onUninstall(connection) {},\n\n /**\n *\n * Callback method for the PolyLine or Connection to check if it possible to remove a vertex from\n * the list. The router can send an veto for this.\n * Per default it is not possible to remove any vertex from the PolyLine exceptional if any interactive\n * router is installed.\n *\n * @param {Number} index\n * @since 4.2.3\n */\n canRemoveVertexAt: function canRemoveVertexAt(index) {\n return false;\n },\n\n /**\n * Callback method for the PolyLine or Connection to verify that a segment is deletable.\n *\n * @param {Number} index\n * @returns {Boolean}\n * @since 4.2.3\n */\n canRemoveSegmentAt: function canRemoveSegmentAt(index) {\n return false;\n },\n\n /**\n *\n * Tweak or enrich the polyline persistence data with routing information\n *\n * @since 2.10.0\n * @param {draw2d.shape.basic.PolyLine} line\n * @param {Object} memento The memento data of the polyline\n * @returns {Object}\n */\n getPersistentAttributes: function getPersistentAttributes(line, memento) {\n return memento;\n },\n\n /**\n *\n * set the attributes for the polyline with routing information\n *\n * @since 2.10.0\n * @param {draw2d.shape.basic.Line} line\n * @param {Object} memento the JSON data to read\n */\n setPersistentAttributes: function setPersistentAttributes(line, memento) {},\n\n /**\n *\n *\n * The draw2d.Connection delegates the drag operation to the router. The router can\n * handle the different constraints of the connection.\n *\n * @param {draw2d.shape.basic.Line} line\n * @param {Number} dx the x difference between the start of the drag drop operation and now\n * @param {Number} dy the y difference between the start of the drag drop operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n */\n onDrag: function onDrag(line, dx, dy, dx2, dy2) {},\n\n /**\n *\n * Called by the connection if the vertices set outside.\n * This enforce the router to avoid full autoroute. E.g. InteractiveManhattanRouter\n *\n * @protected\n * @param {draw2d.shape.basic.Line} line\n */\n verticesSet: function verticesSet(line) {}\n\n});\n\n/***/ }),\n\n/***/ \"./src/layout/connection/DirectRouter.js\":\n/*!***********************************************!*\\\n !*** ./src/layout/connection/DirectRouter.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Router for direct connections between two ports. Beeline\n * <br>\n * <br>\n *\n * @example\n *\n * let createConnection=function(){\n * let con = new draw2d.Connection();\n * con.setRouter(new draw2d.layout.connection.DirectRouter());\n * return con;\n * };\n *\n * // install a custom connection create policy\n * //\n * canvas.installEditPolicy( new draw2d.policy.connection.DragConnectionCreatePolicy({\n * createConnection: createConnection\n * }));\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * let start = new draw2d.shape.node.Start();\n * let end = new draw2d.shape.node.End();\n\n * // ...add it to the canvas\n * canvas.add( start, 50,50);\n * canvas.add( end, 230,80);\n *\n * // first Connection\n * //\n * let c = createConnection();\n * c.setSource(start.getOutputPort(0));\n * c.setTarget(end.getInputPort(0));\n * canvas.add(c);\n *\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.layout.connection.ConnectionRouter\n */\n\n_packages2.default.layout.connection.DirectRouter = _packages2.default.layout.connection.ConnectionRouter.extend(\n/** @lends draw2d.layout.connection.DirectRouter.prototype */\n{\n\n NAME: \"draw2d.layout.connection.DirectRouter\",\n\n /**\n * Creates a new Router object\n */\n init: function init() {\n this._super();\n },\n\n /**\n * \n * Callback method if the router has been assigned to a connection.\n *\n * @param {draw2d.Connection} connection The assigned connection\n * @template\n * @since 2.7.2\n */\n onInstall: function onInstall(connection) {\n connection.installEditPolicy(new _packages2.default.policy.line.LineSelectionFeedbackPolicy());\n },\n\n /**\n * \n * Invalidates the given Connection\n */\n invalidate: function invalidate() {},\n\n /**\n * @inheritdoc\n */\n route: function route(connection, routingHints) {\n var start = connection.getStartPosition();\n var end = connection.getEndPosition();\n\n // required for hit tests\n //\n connection.addPoint(start);\n connection.addPoint(end);\n\n // calculate the path\n var path = [\"M\", start.x, \" \", start.y];\n path.push(\"L\", end.x, \" \", end.y);\n\n connection.svgPathString = path.join(\"\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/connection/FanConnectionRouter.js\":\n/*!******************************************************!*\\\n !*** ./src/layout/connection/FanConnectionRouter.js ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Automatic router that spreads its {@link draw2d.Connection Connections} in a fan-like fashion upon collision.\n *\n *\n * @example\n *\n * let createConnection=function(){\n * // return my special kind of connection\n * let con = new draw2d.Connection({\n * radius: 14,\n * router: new draw2d.layout.connection.FanConnectionRouter()\n * });\n * return con;\n * };\n *\n * // install a custom connection create policy\n * //\n * canvas.installEditPolicy( new draw2d.policy.connection.DragConnectionCreatePolicy({\n * createConnection: createConnection\n * }));\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * let start = new draw2d.shape.node.Start();\n * let end = new draw2d.shape.node.End();\n\n * // ...add it to the canvas\n * canvas.add( start, 50,50);\n * canvas.add( end, 230,80);\n *\n * // first Connection\n * //\n * let c = createConnection();\n * c.setSource(start.getOutputPort(0));\n * c.setTarget(end.getInputPort(0));\n * canvas.add(c);\n *\n * // second Connection\n * //\n * c = createConnection();\n * c.setSource(start.getOutputPort(0));\n * c.setTarget(end.getInputPort(0));\n * canvas.add(c);\n *\n * // third Connection\n * //\n * c = createConnection();\n * c.setSource(start.getOutputPort(0));\n * c.setTarget(end.getInputPort(0));\n * canvas.add(c);\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.layout.connection.DirectRouter\n */\n\n_packages2.default.layout.connection.FanConnectionRouter = _packages2.default.layout.connection.DirectRouter.extend(\n/** @lends draw2d.layout.connection.FanConnectionRouter.prototype */\n{\n\n NAME: \"draw2d.layout.connection.FanConnectionRouter\",\n\n /**\n * Creates a new Router object.\n *\n */\n init: function init() {\n this._super();\n },\n\n /**\n * \n * Callback method if the router has been assigned to a connection.\n *\n * @param {draw2d.Connection} connection The assigned connection\n * @template\n * @since 2.7.2\n */\n onInstall: function onInstall(connection) {\n connection.installEditPolicy(new _packages2.default.policy.line.LineSelectionFeedbackPolicy());\n },\n\n /**\n * \n * Layout the hands over connection in a manhattan like layout\n *\n * @param {draw2d.Connection} conn\n * @param {draw2d.util.ArrayList} oldVertices old/existing vertices of the Connection\n * @param {Object} routingHints some helper attributes for the router\n * @param {Boolean} routingHints.startMoved is true if just the start location has moved\n * @param {Boolean} routingHints.destMoved is true if the destination location has changed\n */\n route: function route(conn, routingHints) {\n var lines = conn.getSource().getConnections().clone();\n lines.grep(function (other) {\n return other.getTarget() === conn.getTarget() || other.getSource() === conn.getTarget();\n });\n\n if (lines.getSize() > 1) {\n this.routeCollision(conn, lines.indexOf(conn));\n } else {\n this._super(conn, routingHints);\n }\n },\n\n /**\n * \n * route the connection if connections overlap. Two connections overlap if the combination\n * of source and target anchors are equal.\n *\n * @param {draw2d.Connection} conn\n * @param {Number} index\n */\n routeCollision: function routeCollision(conn, index) {\n index = index + 1;\n var start = conn.getStartPoint();\n var end = conn.getEndPoint();\n\n var separation = 15;\n\n var midPoint = new _packages2.default.geo.Point((end.x + start.x) / 2, (end.y + start.y) / 2);\n var position = end.getPosition(start);\n var ray = void 0;\n if (position === _packages2.default.geo.PositionConstants.SOUTH || position === _packages2.default.geo.PositionConstants.EAST) {\n ray = new _packages2.default.geo.Point(end.x - start.x, end.y - start.y);\n } else {\n ray = new _packages2.default.geo.Point(start.x - end.x, start.y - end.y);\n }\n\n var length = Math.sqrt(ray.x * ray.x + ray.y * ray.y);\n\n var xSeparation = separation * ray.x / length;\n var ySeparation = separation * ray.y / length;\n\n var bendPoint = void 0;\n\n if (index % 2 === 0) {\n bendPoint = new _packages2.default.geo.Point(midPoint.x + index / 2 * (-1 * ySeparation), midPoint.y + index / 2 * xSeparation);\n } else {\n bendPoint = new _packages2.default.geo.Point(midPoint.x + index / 2 * ySeparation, midPoint.y + index / 2 * (-1 * xSeparation));\n }\n\n // required for hit tests\n conn.addPoint(start);\n conn.addPoint(bendPoint);\n conn.addPoint(end);\n\n // calculate the path string for the SVG rendering\n //\n this._paint(conn);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/layout/connection/InteractiveManhattanConnectionRouter.js\":\n/*!***********************************************************************!*\\\n !*** ./src/layout/connection/InteractiveManhattanConnectionRouter.js ***!\n \\***********************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Route the connection in an Manhattan style and add resize handles to all vertex for interactive alignment of the\n * routing.\n *\n *\n * @example\n *\n * let createConnection=function(){\n * // return my special kind of connection\n * let con = new draw2d.Connection({\n * radius: 4,\n * router: new draw2d.layout.connection.InteractiveManhattanConnectionRouter()\n * });\n * return con;\n * };\n *\n * // install a custom connection create policy\n * //\n * canvas.installEditPolicy( new draw2d.policy.connection.DragConnectionCreatePolicy({\n * createConnection: createConnection\n * }));\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * let start = new draw2d.shape.node.Start();\n * let end = new draw2d.shape.node.End();\n\n * // ...add it to the canvas\n * canvas.add( start, 50,50);\n * canvas.add( end, 230,80);\n *\n * // first Connection\n * //\n * let c = createConnection();\n * c.setSource(start.getOutputPort(0));\n * c.setTarget(end.getInputPort(0));\n * canvas.add(c);\n *\n * // select the connection to show the selection handles\n * //\n * c.select();\n *\n *\n * @author Andreas Herz\n * @since 4.0.2\n * @extends draw2d.layout.connection.ManhattanConnectionRouter\n */\n\n_packages2.default.layout.connection.InteractiveManhattanConnectionRouter = _packages2.default.layout.connection.ManhattanConnectionRouter.extend(\n/** @lends draw2d.layout.connection.InteractiveManhattanConnectionRouter.prototype */\n{\n\n NAME: \"draw2d.layout.connection.InteractiveManhattanConnectionRouter\",\n\n /**\n * Creates a new Router object.\n *\n */\n init: function init() {\n this._super();\n },\n\n onInstall: function onInstall(conn) {\n conn.installEditPolicy(new _packages2.default.policy.line.OrthogonalSelectionFeedbackPolicy());\n if (!conn._routingMetaData) {\n conn._routingMetaData = {\n routedByUserInteraction: false,\n fromDir: -1,\n toDir: -1\n };\n }\n },\n\n onUninstall: function onUninstall(conn) {\n delete conn._routingMetaData;\n },\n\n /**\n * @inheritDoc\n */\n route: function route(conn, routingHints) {\n if (!routingHints.oldVertices) {\n debugger;\n }\n if (routingHints.oldVertices.getSize() === 0 || conn._routingMetaData.routedByUserInteraction === false) {\n this._super(conn, routingHints);\n conn._routingMetaData.fromDir = conn.getSource().getConnectionDirection(conn.getTarget());\n conn._routingMetaData.toDir = conn.getTarget().getConnectionDirection(conn.getSource());\n } else {\n this.halfRoute(conn, routingHints);\n this._paint(conn);\n }\n },\n\n /**\n * \n * The routing algorithm if the user has changed at least on of the vertices manually.\n * This kind of routing just align the start and end vertices to the new source/target port\n * location.\n * The vertices between keep untouched. Modification of this vertices are done by the\n * draw2d.policy.line.OrthogonalSelectionFeedbackPolicy\n *\n * @param {draw2d.Connection} conn the connection to route\n * @param {Object} routingHints some helper attributes for the router\n * @param {Boolean} routingHints.startMoved is true if just the start location has moved\n * @param {Boolean} routingHints.endMoved is true if the destination location has changed\n */\n halfRoute: function halfRoute(conn, routingHints) {\n var MINDIST = this.MINDIST;\n var max = Math.max;\n var min = Math.min;\n\n routingHints = routingHints || { oldVertices: new _packages2.default.util.ArrayList() };\n var oldVertices = routingHints.oldVertices;\n var vertexCount = oldVertices.getSize();\n\n var fromPt = conn.getStartPosition();\n var fromDir = conn.getSource().getConnectionDirection(conn.getTarget());\n\n var toPt = conn.getEndPosition();\n var toDir = conn.getTarget().getConnectionDirection(conn.getSource());\n\n // the port orientation has been changed. This can happen if the node rotates. In this case\n // we must recalculate the routing.\n if (conn._routingMetaData.fromDir !== fromDir || conn._routingMetaData.toDir !== toDir) {\n conn._routingMetaData.routedByUserInteraction = false;\n this.route(conn, routingHints);\n }\n\n // TODO: detection for switch back to autoroute isn't good enough.\n // Add more logic. e.g. if the fromDir!==1. This happens if\n // The ports are at bottom and top.\n // The code below covers only the classic workflow configuration left->right\n //\n // go back to the default if no routing is possible anymore\n //\n if (fromDir === _packages2.default.geo.Rectangle.DIRECTION_RIGHT && toDir === _packages2.default.geo.Rectangle.DIRECTION_LEFT && fromPt.x > toPt.x && vertexCount <= 4) {\n\n conn._routingMetaData.routedByUserInteraction = false;\n this.route(conn, routingHints);\n }\n // it makes no sense to have just 2 vertices and manual routing for Manhattan-style routing\n else if (conn.getVertices().getSize() === 2 && conn._routingMetaData.routedByUserInteraction === true) {\n conn._routingMetaData.routedByUserInteraction = false;\n this.route(conn, routingHints);\n }\n\n // transfer the old vertices into the connection\n //\n oldVertices.each(function (i, vertex) {\n conn.addPoint(vertex);\n });\n\n // all points are adjusted with the drag&drop operation. There is no need to move\n // start/end points twice\n if (conn.isInDragDrop) {\n return;\n }\n\n // The SOURCE port (labeled with p0) has been moved/changed.\n //\n if (routingHints.startMoved || !fromPt.equals(oldVertices.get(0))) {\n var p1 = oldVertices.get(1);\n var p2 = oldVertices.get(2); // optional. Happens if the connection has just 2 points\n conn.setVertex(0, fromPt);\n switch (fromDir) {\n // .\n // p0 . p1\n // x------+\n // .\n // .\n //\n case _packages2.default.geo.Rectangle.DIRECTION_RIGHT:\n conn.setVertex(1, max(fromPt.x + MINDIST, p1.x), fromPt.y); // p1\n if (p2) conn.setVertex(2, max(fromPt.x + MINDIST, p1.x), p2.y); // p2\n break;\n // .\n // . p1 p0\n // +------x\n // .\n // .\n //\n case _packages2.default.geo.Rectangle.DIRECTION_LEFT:\n conn.setVertex(1, min(fromPt.x - MINDIST, p1.x), fromPt.y); // p1\n if (p2) conn.setVertex(2, min(fromPt.x - MINDIST, p1.x), p2.y); // p2\n break;\n // ...+....\n // p1 |\n // |\n // |\n // p0 x\n //\n case _packages2.default.geo.Rectangle.DIRECTION_UP:\n conn.setVertex(1, fromPt.x, min(fromPt.y - MINDIST, p1.y)); // p1\n if (p2) conn.setVertex(2, p2.x, min(fromPt.y - MINDIST, p1.y)); // p2\n break;\n // x\n // p0 |\n // |\n // p1 |\n // ....+....\n //\n case _packages2.default.geo.Rectangle.DIRECTION_DOWN:\n conn.setVertex(1, fromPt.x, max(fromPt.y + MINDIST, p1.y)); // p1\n if (p2) conn.setVertex(2, p2.x, max(fromPt.y + MINDIST, p1.y)); // p2\n break;\n }\n }\n //////////////////////////////////////////////////////////////////\n // the TARGET port (labeled with p0) has moved\n //\n if (routingHints.endMoved || !toPt.equals(oldVertices.get(vertexCount - 1))) {\n var _p = oldVertices.get(vertexCount - 2);\n var _p2 = oldVertices.get(vertexCount - 3); // optional\n conn.setVertex(vertexCount - 1, toPt); // p0\n\n switch (toDir) {\n // .\n // p0 . p1\n // x----------+\n // .\n // .\n case _packages2.default.geo.Rectangle.DIRECTION_RIGHT:\n conn.setVertex(vertexCount - 2, max(toPt.x + MINDIST, _p.x), toPt.y); // p1\n if (_p2) conn.setVertex(vertexCount - 3, max(toPt.x + MINDIST, _p.x), _p2.y); // p2\n break;\n\n // .\n // .\n // . p1 p0\n // +----------x\n // .\n // .\n //\n case _packages2.default.geo.Rectangle.DIRECTION_LEFT:\n conn.setVertex(vertexCount - 2, min(toPt.x - MINDIST, _p.x), toPt.y); // p1\n if (_p2) conn.setVertex(vertexCount - 3, min(toPt.x - MINDIST, _p.x), _p2.y); // p2\n break;\n\n // ...+....\n // p1 |\n // |\n // |\n // p0 x\n //\n case _packages2.default.geo.Rectangle.DIRECTION_UP:\n conn.setVertex(vertexCount - 2, toPt.x, min(toPt.y - MINDIST, _p.y)); // p1\n if (_p2) conn.setVertex(vertexCount - 3, _p2.x, min(toPt.y - MINDIST, _p.y)); // p2\n break;\n\n // +\n // p0 |\n // |\n // p1 |\n // ...+...\n //\n case _packages2.default.geo.Rectangle.DIRECTION_DOWN:\n conn.setVertex(vertexCount - 2, toPt.x, max(toPt.y + MINDIST, _p.y)); // p1\n if (_p2) conn.setVertex(vertexCount - 3, _p2.x, max(toPt.y + MINDIST, _p.y)); // p2\n break;\n }\n }\n },\n\n /**\n * Callback method for the PolyLine or Connection to verify that a segment is deletable.\n * @param {draw2d.Connection} conn\n * @param {Number} index\n *\n * @returns {Boolean}\n * @since 4.2.3\n */\n canRemoveSegmentAt: function canRemoveSegmentAt(conn, index) {\n\n var segmentCount = conn.getVertices().getSize() - 1; // segmentCount is one less than vertex count\n\n // The first and last segment isn't deletable\n //\n if (index <= 0 || index + 1 >= segmentCount) {\n return false;\n }\n\n // a connection need at least three strokes\n //\n if (segmentCount < 4) {\n return false;\n }\n\n var fromPt = conn.getStartPosition();\n var fromDir = conn.getSource().getConnectionDirection(conn.getTarget());\n\n var toPt = conn.getEndPosition();\n var toDir = conn.getTarget().getConnectionDirection(conn.getSource());\n\n if (segmentCount <= 5) {\n // ___\n // | | From\n // | 1 |-----+\n // |___| |\n // |\n // +----------+\n // |\n // | ___\n // | | |\n // +---| 2 | To\n // |___|\n // the connection needs at least 5 segments if the routing is like this\n //\n if (fromDir === _packages2.default.geo.Rectangle.DIRECTION_RIGHT && toDir === _packages2.default.geo.Rectangle.DIRECTION_LEFT && fromPt.x >= toPt.x) {\n return false;\n }\n\n // ___\n // | | To\n // | 2 |-----+\n // |___| |\n // |\n // +----------+\n // |\n // | ___\n // | | |\n // +---| 1 | From\n // |___|\n // the connection needs at least 5 segments if the routing is like this\n //\n if (fromDir == _packages2.default.geo.Rectangle.DIRECTION_LEFT & toDir == _packages2.default.geo.Rectangle.DIRECTION_RIGHT && fromPt.x <= toPt.x) {\n return false;\n }\n\n // ___\n // +_______ | |\n // | from | | 2 |\n // _+_ | |___|\n // | | | To +\n // | 1 | |____________|\n // |___|\n // the connection needs at least 5 segments if the routing is like this\n //\n if (fromDir == _packages2.default.geo.Rectangle.DIRECTION_UP & toDir == _packages2.default.geo.Rectangle.DIRECTION_DOWN && fromPt.y <= toPt.y) {\n return false;\n }\n\n // ___\n // +_______ | |\n // | to | | 1 |\n // _+_ | |___|\n // | | | from +\n // | 2 | |____________|\n // |___|\n // the connection needs at least 5 segments if the routing is like this\n //\n if (fromDir == _packages2.default.geo.Rectangle.DIRECTION_DOWN & toDir == _packages2.default.geo.Rectangle.DIRECTION_UP && fromPt.y >= toPt.y) {\n return false;\n }\n\n // unable to make the decision on the easy way. calculate the route again with an\n // temporary connection and check if the segment count of the new routed connection\n // allows a removal\n //\n var tmpConn = new _packages2.default.Connection();\n tmpConn.lineSegments = new _packages2.default.util.ArrayList();\n tmpConn.vertices = new _packages2.default.util.ArrayList();\n tmpConn.sourcePort = conn.sourcePort;\n tmpConn.targetPort = conn.targetPort;\n tmpConn._routingMetaData = { routedByUserInteraction: false, fromDir: -1, toDir: -1 };\n this.route(tmpConn, { oldVertices: new _packages2.default.util.ArrayList() });\n var curSegmentCount = conn.getVertices().getSize() - 1;\n var minSegmentCount = tmpConn.getVertices().getSize() - 1;\n if (curSegmentCount <= minSegmentCount) {\n return false;\n }\n }\n\n return true;\n },\n\n /**\n * \n *\n * The draw2d.Connection delegates the drag operation to the router. The router can\n * handle the different constraints of the connection and just drag&drop a single segment\n * instead of the complete connection.\n *\n * @param {draw2d.shape.basic.Line} line the related line to handle\n * @param {Number} dx the x difference between the start of the drag drop operation and now\n * @param {Number} dy the y difference between the start of the drag drop operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n *\n * @since 6.1.0\n */\n onDrag: function onDrag(line, dx, dy, dx2, dy2) {\n var i = 0;\n // Connection is dragged by source and origin port movement\n // or MultiSelection in this case we drag the complete\n // connection\n if (line.draggedSegment === null) {\n var count = line.getVertices().getSize() - 1;\n for (i = 1; i < count; i++) {\n line.getVertex(i).translate(dx2, dy2);\n }\n return;\n }\n\n // don't drag start/end segments. This segments are bounded to the related\n // ports.\n if (line.draggedSegment.index === 0 || line.draggedSegment.index === line.getSegments().getSize() - 1) {\n return;\n }\n\n line._routingMetaData.routedByUserInteraction = true;\n\n var p0 = line.draggedSegment.start;\n var p1 = line.draggedSegment.end;\n i = line.draggedSegment.index;\n var lp0 = line.getVertices().first();\n var lp1 = line.getVertices().last();\n\n // horizontal segment movement\n // x Py\n // .\n // P0 .\n // +---------------------------+ P1\n // .\n // .\n // x Px\n //\n var distance = 0;\n if (p0.y === p1.y) {\n // ensure that the segment is the min distance away from the source/target port\n // (Px is endpoints of the connection and bounded to a port)\n if (i === 1) distance = p0.y - lp0.y;\n // (Py is endpoints of the connection and bounded to a port)\n if (i === line.getSegments().getSize() - 2) distance = p1.y - lp1.y;\n\n if (distance < 0 && dy2 > 0) {\n dy2 = Math.min(dy2, -distance - this.MINDIST);\n } else if (distance > 0 && dy2 < 0) {\n dy2 = -Math.min(-dy2, distance - this.MINDIST);\n }\n\n line.getVertex(i).translate(0, dy2);\n line.getVertex(i + 1).translate(0, dy2);\n }\n // vertical segment movement\n //\n else if (p0.x === p1.x) {\n // ensure that the segment is the min distance away from the source/target port\n //\n if (i === 1) {\n distance = p0.x - lp0.x;\n if (distance < 0 && dx2 > 0) {\n dx2 = Math.min(dx2, -distance - this.MINDIST);\n } else if (distance > 0 && dx2 < 0) {\n dx2 = -Math.min(-dx2, distance - this.MINDIST);\n }\n }\n\n // we need this additional test too. No \"else if\" because the special\n // case of \"index===1\". In this case the segment can be the last AND first\n // segment if the connection has only three segments at all.\n //\n if (i === line.getSegments().getSize() - 2) {\n distance = p1.x - lp1.x;\n if (distance < 0 && dx2 > 0) {\n dx2 = Math.min(dx2, -distance - this.MINDIST);\n } else if (distance > 0 && dx2 < 0) {\n dx2 = -Math.min(-dx2, distance - this.MINDIST);\n }\n }\n\n line.getVertex(i).translate(dx2, 0);\n line.getVertex(i + 1).translate(dx2, 0);\n }\n },\n\n /**\n * \n * Called by the connection if the vertices set outside.\n * This enforce the router to avoid full autoroute. E.g. InteractiveManhattanRouter\n *\n * @protected\n */\n verticesSet: function verticesSet(conn) {\n conn._routingMetaData.routedByUserInteraction = true;\n if (conn.getSource() !== null && conn.getTarget() !== null) {\n conn._routingMetaData.fromDir = conn.getSource().getConnectionDirection(conn.getTarget());\n conn._routingMetaData.toDir = conn.getTarget().getConnectionDirection(conn.getSource());\n }\n },\n\n /**\n * \n * Tweak or enrich the polyline persistence data with routing information\n *\n * @since 2.10.0\n * @param {draw2d.shape.basic.PolyLine} line\n * @param {Object} memento The memento data of the polyline\n *\n * @returns {Object}\n */\n getPersistentAttributes: function getPersistentAttributes(line, memento) {\n memento.vertex = [];\n\n line.getVertices().each(function (i, e) {\n memento.vertex.push({ x: e.x, y: e.y });\n });\n memento.routingMetaData = (0, _extend2.default)({}, line._routingMetaData);\n\n return memento;\n },\n\n /**\n * \n * set the attributes for the polyline with routing information of the interactive manhattan router.\n *\n * @since 4..0.0\n * @param {Object} memento\n */\n setPersistentAttributes: function setPersistentAttributes(line, memento) {\n // restore the points from the JSON data and add them to the polyline\n //\n if (Array.isArray(memento.vertex)) {\n\n line.oldPoint = null;\n line.lineSegments = new _packages2.default.util.ArrayList();\n\n line.setVertices(memento.vertex);\n\n /*\n line.vertices = new draw2d.util.ArrayList();\n $.each(memento.vertex, function(i,e){\n line.addPoint(e.x, e.y);\n });\n */\n }\n\n if (typeof memento.routingMetaData !== \"undefined\") {\n line._routingMetaData = (0, _extend2.default)({}, memento.routingMetaData);\n }\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/layout/connection/ManhattanBridgedConnectionRouter.js\":\n/*!*******************************************************************!*\\\n !*** ./src/layout/connection/ManhattanBridgedConnectionRouter.js ***!\n \\*******************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Provides a {@link draw2d.Connection} with an orthogonal route between the Connection's source\n * and target anchors.\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.layout.connection.ManhattanConnectionRouter\n */\n\n_packages2.default.layout.connection.ManhattanBridgedConnectionRouter = _packages2.default.layout.connection.ManhattanConnectionRouter.extend(\n/** @lends draw2d.layout.connection.ManhattanBridgedConnectionRouter.prototype */\n{\n\n NAME: \"draw2d.layout.connection.ManhattanBridgedConnectionRouter\",\n\n BRIDGE_HORIZONTAL_LR: \" r 0 0 3 -4 7 -4 10 0 13 0 \", // Left to right\n BRIDGE_HORIZONTAL_RL: \" r 0 0 -3 -4 -7 -4 -10 0 -13 0 \", // right to left\n\n /**\n * Creates a new Router object.\n *\n */\n init: function init() {\n this._super();\n },\n\n /**\n * \n * Callback method if the router has been assigned to a connection.\n *\n * @param {draw2d.Connection} connection The assigned connection\n * @template\n * @since 2.7.2\n */\n onInstall: function onInstall(connection) {\n connection.installEditPolicy(new _packages2.default.policy.line.LineSelectionFeedbackPolicy());\n },\n\n /**\n * @inheritdoc\n */\n route: function route(conn, routingHints) {\n var _this = this;\n\n var fromPt = conn.getStartPoint();\n var fromDir = conn.getSource().getConnectionDirection(conn.getTarget());\n\n var toPt = conn.getEndPoint();\n var toDir = conn.getTarget().getConnectionDirection(conn.getSource());\n\n // calculate the lines between the two points.\n //\n this._route(conn, toPt, toDir, fromPt, fromDir);\n\n // calculate the path string for the SVG rendering\n //\n var intersectionsASC = conn.getCanvas().getIntersection(conn).sort(\"x\");\n var intersectionsDESC = intersectionsASC.clone().reverse();\n\n var intersectionForCalc = intersectionsASC;\n\n // ATTENTION: we cast all x/y coordinates to int and add 0.5 to avoid subpixel rendering of\n // the connection. The 1px or 2px lines look much clearer than before.\n //\n var ps = conn.getVertices();\n var p = ps.get(0);\n var path = [\"M\", (p.x | 0) + 0.5, \" \", (p.y | 0) + 0.5];\n var oldP = p;\n\n var _loop = function _loop(i) {\n p = ps.get(i);\n\n // check for intersection and paint a bridge if required\n // line goes from left to right\n //\n var bridgeWidth = 5;\n var bridgeCode = _this.BRIDGE_HORIZONTAL_LR;\n\n // line goes from right->left. Inverse the bridge and the bridgeWidth\n //\n if (oldP.x > p.x) {\n intersectionForCalc = intersectionsDESC;\n bridgeCode = _this.BRIDGE_HORIZONTAL_RL;\n bridgeWidth = -bridgeWidth;\n }\n\n intersectionForCalc.each(function (ii, interP) {\n if (interP.justTouching === false && _packages2.default.shape.basic.Line.hit(1, oldP.x, oldP.y, p.x, p.y, interP.x, interP.y) === true) {\n // we draw only horizontal bridges. Just a design decision\n //\n if (p.y === interP.y) {\n path.push(\" L\", (interP.x - bridgeWidth | 0) + 0.5, \" \", (interP.y | 0) + 0.5);\n path.push(bridgeCode);\n }\n }\n });\n\n path.push(\" L\", (p.x | 0) + 0.5, \" \", (p.y | 0) + 0.5);\n oldP = p;\n };\n\n for (var i = 1; i < ps.getSize(); i++) {\n _loop(i);\n }\n conn.svgPathString = path.join(\"\");\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/layout/connection/ManhattanConnectionRouter.js\":\n/*!************************************************************!*\\\n !*** ./src/layout/connection/ManhattanConnectionRouter.js ***!\n \\************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Provides a {@link draw2d.Connection} with an orthogonal route between the Connection's source\n * and target anchors.\n *\n *\n * @example\n *\n * // Override the default connection type. This is used during drag&drop operations of ports.\n * //\n * let createConnection=function(sourcePort, targetPort){\n * // return my special kind of connection\n * let con = new draw2d.Connection();\n * con.setRouter(new draw2d.layout.connection.ManhattanConnectionRouter());\n * return con;\n * };\n *\n * // Install a special policy into the canvas to use my own implementation of connection\n * // if we drag&drop a port\n * //\n * canvas.installEditPolicy( new draw2d.policy.connection.DragConnectionCreatePolicy({\n * createConnection: createConnection\n * }));\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * let start = new draw2d.shape.node.Start();\n * let end = new draw2d.shape.node.End();\n\n * // ...add it to the canvas\n * canvas.add( start, 50,50);\n * canvas.add( end, 230,80);\n *\n * // first Connection\n * //\n * let c = createConnection();\n * c.setSource(start.getOutputPort(0));\n * c.setTarget(end.getInputPort(0));\n * canvas.add(c);\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.layout.connection.ConnectionRouter\n */\n\n_packages2.default.layout.connection.ManhattanConnectionRouter = _packages2.default.layout.connection.ConnectionRouter.extend(\n/** @lends draw2d.layout.connection.ManhattanConnectionRouter.prototype */\n{\n\n NAME: \"draw2d.layout.connection.ManhattanConnectionRouter\",\n\n MINDIST: 20,\n TOL: 0.1,\n TOLxTOL: 0.01,\n TOGGLE_DIST: 20,\n\n /**\n * Creates a new Router object.\n *\n */\n init: function init() {\n this._super();\n },\n\n /**\n *\n * Callback method if the router has been assigned to a connection.\n *\n * @param {draw2d.Connection} connection The assigned connection\n * @since 2.7.2\n */\n onInstall: function onInstall(connection) {\n connection.installEditPolicy(new _packages2.default.policy.line.LineSelectionFeedbackPolicy());\n },\n\n /**\n * @inheritdoc\n */\n route: function route(conn, routingHints) {\n var fromPt = conn.getStartPosition();\n var fromDir = conn.getSource().getConnectionDirection(conn.getTarget());\n\n var toPt = conn.getEndPosition();\n var toDir = conn.getTarget().getConnectionDirection(conn.getSource());\n\n // calculate the lines between the two points.\n //\n this._route(conn, toPt, toDir, fromPt, fromDir);\n this._paint(conn);\n },\n\n /**\n *\n * Internal routing algorithm.\n *\n * @private\n * @param {draw2d.Connection} conn\n * @param {draw2d.geo.Point} fromPt\n * @param {Number} fromDir\n * @param {draw2d.geo.Point} toPt\n * @param {Number} toDir\n */\n _route: function _route(conn, fromPt, fromDir, toPt, toDir) {\n // fromPt is an x,y to start from.\n // fromDir is an angle that the first link must\n //\n var UP = _packages2.default.geo.Rectangle.DIRECTION_UP;\n var RIGHT = _packages2.default.geo.Rectangle.DIRECTION_RIGHT;\n var DOWN = _packages2.default.geo.Rectangle.DIRECTION_DOWN;\n var LEFT = _packages2.default.geo.Rectangle.DIRECTION_LEFT;\n\n var xDiff = fromPt.x - toPt.x;\n var yDiff = fromPt.y - toPt.y;\n var point = void 0;\n var dir = void 0;\n var pos = void 0;\n\n if (xDiff * xDiff < this.TOLxTOL && yDiff * yDiff < this.TOLxTOL) {\n conn.addPoint(new _packages2.default.geo.Point(toPt.x, toPt.y));\n return;\n }\n\n if (fromDir === LEFT) {\n if (xDiff > 0 && yDiff * yDiff < this.TOL && toDir === RIGHT) {\n point = toPt;\n dir = toDir;\n } else {\n if (xDiff < 0) {\n point = new _packages2.default.geo.Point(fromPt.x - this.MINDIST, fromPt.y);\n } else if (yDiff > 0 && toDir === DOWN || yDiff < 0 && toDir === UP) {\n point = new _packages2.default.geo.Point(toPt.x, fromPt.y);\n } else if (fromDir === toDir) {\n pos = Math.min(fromPt.x, toPt.x) - this.MINDIST;\n point = new _packages2.default.geo.Point(pos, fromPt.y);\n } else {\n point = new _packages2.default.geo.Point(fromPt.x - xDiff / 2, fromPt.y);\n }\n\n if (yDiff > 0) {\n dir = UP;\n } else {\n dir = DOWN;\n }\n }\n } else if (fromDir === RIGHT) {\n if (xDiff < 0 && yDiff * yDiff < this.TOL && toDir === LEFT) {\n point = toPt;\n dir = toDir;\n } else {\n if (xDiff > 0) {\n point = new _packages2.default.geo.Point(fromPt.x + this.MINDIST, fromPt.y);\n } else if (yDiff > 0 && toDir === DOWN || yDiff < 0 && toDir === UP) {\n point = new _packages2.default.geo.Point(toPt.x, fromPt.y);\n } else if (fromDir === toDir) {\n pos = Math.max(fromPt.x, toPt.x) + this.MINDIST;\n point = new _packages2.default.geo.Point(pos, fromPt.y);\n } else {\n point = new _packages2.default.geo.Point(fromPt.x - xDiff / 2, fromPt.y);\n }\n\n if (yDiff > 0) {\n dir = UP;\n } else {\n dir = DOWN;\n }\n }\n } else if (fromDir === DOWN) {\n if (xDiff * xDiff < this.TOL && yDiff < 0 && toDir === UP) {\n point = toPt;\n dir = toDir;\n } else {\n if (yDiff > 0) {\n point = new _packages2.default.geo.Point(fromPt.x, fromPt.y + this.MINDIST);\n } else if (xDiff > 0 && toDir === RIGHT || xDiff < 0 && toDir === LEFT) {\n point = new _packages2.default.geo.Point(fromPt.x, toPt.y);\n } else if (fromDir === toDir) {\n pos = Math.max(fromPt.y, toPt.y) + this.MINDIST;\n point = new _packages2.default.geo.Point(fromPt.x, pos);\n } else {\n point = new _packages2.default.geo.Point(fromPt.x, fromPt.y - yDiff / 2);\n }\n\n if (xDiff > 0) {\n dir = LEFT;\n } else {\n dir = RIGHT;\n }\n }\n } else if (fromDir === UP) {\n if (xDiff * xDiff < this.TOL && yDiff > 0 && toDir === DOWN) {\n point = toPt;\n dir = toDir;\n } else {\n if (yDiff < 0) {\n point = new _packages2.default.geo.Point(fromPt.x, fromPt.y - this.MINDIST);\n } else if (xDiff > 0 && toDir === RIGHT || xDiff < 0 && toDir === LEFT) {\n point = new _packages2.default.geo.Point(fromPt.x, toPt.y);\n } else if (fromDir === toDir) {\n pos = Math.min(fromPt.y, toPt.y) - this.MINDIST;\n point = new _packages2.default.geo.Point(fromPt.x, pos);\n } else {\n point = new _packages2.default.geo.Point(fromPt.x, fromPt.y - yDiff / 2);\n }\n\n if (xDiff > 0) {\n dir = LEFT;\n } else {\n dir = RIGHT;\n }\n }\n }\n this._route(conn, point, dir, toPt, toDir);\n conn.addPoint(fromPt);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/layout/connection/MazeConnectionRouter.js\":\n/*!*******************************************************!*\\\n !*** ./src/layout/connection/MazeConnectionRouter.js ***!\n \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * <b>BETA VERSION. Not for production!!!<br></b>\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.layout.connection.ConnectionRouter\n */\n\nvar ROUTER_RECTS = null;\n\n_packages2.default.layout.connection.MazeConnectionRouter = _packages2.default.layout.connection.ConnectionRouter.extend(\n/** @lends draw2d.layout.connection.MazeConnectionRouter.prototype */\n{\n\n NAME: \"draw2d.layout.connection.MazeConnectionRouter\",\n\n /**\n * Creates a new Router object.\n *\n */\n init: function init() {\n this._super();\n\n this.useSpline = false;\n this.useSimplify = true;\n this.useSimplifyValue = 2;\n this.useDebug = false;\n this.useShift = 4;\n this.portOutletOffset = 15;\n\n // \tthis.finder = new PF.AStarFinder();\n // this.finder = new PF.AStarFinder({ allowDiagonal: true, dontCrossCorners: true});\n // this.finder = new PF.AStarFinder({ allowDiagonal: false});\n // this.finder = new PF.BiBreadthFirstFinder({ allowDiagonal: false});\n // this.finder = new PF.BreadthFirstFinder({ allowDiagonal: false});\n this.finder = new PF.JumpPointFinder({ allowDiagonal: false, dontCrossCorners: true });\n },\n\n /**\n * \n * Callback method if the router has been assigned to a connection.\n *\n * @param {draw2d.Connection} connection The assigned connection\n * @template\n * @since 2.7.2\n */\n onInstall: function onInstall(connection) {\n connection.installEditPolicy(new _packages2.default.policy.line.LineSelectionFeedbackPolicy());\n },\n\n /**\n * @inheritdoc\n */\n route: function route(conn, routingHints) {\n var fromPt = conn.getStartPoint();\n var fromDir = conn.getSource().getConnectionDirection(conn.getTarget());\n\n var toPt = conn.getEndPoint();\n var toDir = conn.getTarget().getConnectionDirection(conn.getSource());\n\n // calculate the lines between the two points.\n //\n this._route(conn, toPt, toDir, fromPt, fromDir);\n this._paint(conn);\n },\n\n /**\n * \n * Internal routing algorithm.\n * * <p>\n * Possible values:\n * <ul>\n * <li>up -> 0</li>\n * <li>right -> 1</li>\n * <li>down -> 2</li>\n * <li>left -> 3</li>\n * </ul>\n * <p>\n * @private\n * @param {draw2d.Connection} conn\n * @param {draw2d.geo.Point} fromPt\n * @param {Number} fromDir\n * @param {draw2d.geo.Point} toPt\n * @param {Number} toDir\n */\n _route: function _route(conn, fromPt, fromDir, toPt, toDir) {\n var shift = this.useShift;\n\n var oldToPt = toPt;\n var oldFromPt = fromPt;\n\n // move the points with an offset in the prefered routing direction of the ports\n // to avoid that the routed connection is sticking on one side of the figure.\n //\n fromPt = this.getAdjustedPoint(fromPt, fromDir, this.portOutletOffset);\n toPt = this.getAdjustedPoint(toPt, toDir, this.portOutletOffset);\n\n var grid = this.generateNoGoGrid(conn, fromPt, fromDir, toPt, toDir);\n\n // 4. Calculate the shortest path from source to target based on the grid\n //\n var path = this.finder.findPath(Math.max(fromPt.x) >> shift, Math.max(fromPt.y) >> shift, Math.max(toPt.x) >> shift, Math.max(0, toPt.y) >> shift, grid);\n\n // transfer the path from the grid based coordinates back to the real coordinates\n //\n path.forEach(function (e) {\n e.x = e[0] = e[0] << shift;\n e.y = e[1] = e[1] << shift;\n });\n\n // 5. paint the \"no go\" area in read if we are in debug mode\n //\n if (this.useDebug) {\n if (ROUTER_RECTS !== null) {\n ROUTER_RECTS.remove();\n }\n ROUTER_RECTS = conn.canvas.paper.set();\n\n for (var i = 0; i < grid.width; i++) {\n for (var j = 0; j < grid.height; j++) {\n if (!grid.isWalkableAt(i, j)) ROUTER_RECTS.push(conn.canvas.paper.rect(i << shift, j << shift, 1 << shift, 1 << shift).attr({\n \"fill\": \"red\",\n \"opacity\": \"0.1\"\n }));\n }\n }\n ROUTER_RECTS.push(conn.canvas.paper.rect(fromPt.x - 3, fromPt.y - 3, 6, 6).attr({\n \"fill\": \"#ff0000\",\n \"opacity\": \"0.8\"\n }));\n ROUTER_RECTS.push(conn.canvas.paper.rect(toPt.x - 3, toPt.y - 3, 6, 6).attr({\n \"fill\": \"#ff0000\",\n \"opacity\": \"0.8\"\n }));\n\n // paint the original calculated path without any simplification in BLUE\n path.forEach(function (e) {\n ROUTER_RECTS.push(conn.canvas.paper.rect(e.x - 3, e.y - 3, 6, 6).attr({ \"fill\": \"#0000ff\", \"opacity\": \"0.8\" }));\n });\n var p = path[0];\n var svgPathBefore = [\"M\", p.x, \" \", p.y];\n for (var _i = 1; _i < path.length; _i++) {\n p = path[_i];\n svgPathBefore.push(\"L\", p.x, \" \", p.y);\n }\n svgPathBefore = svgPathBefore.join(\"\");\n ROUTER_RECTS.push(conn.canvas.paper.path(svgPathBefore).attr({ \"stroke\": \"#0000ff\" }));\n }\n\n this.adjustPath(fromPt, path, fromDir);\n path.reverse();\n this.adjustPath(toPt, path, toDir);\n path.reverse();\n\n path.forEach(function (e) {\n e.x = e[0];\n e.y = e[1];\n });\n\n if (this.useSpline) {\n var _p = new _packages2.default.util.ArrayList();\n _p.add(oldFromPt);\n path.forEach(function (e) {\n _p.add(new _packages2.default.geo.Point(e[0], e[1]));\n });\n _p.add(oldToPt);\n\n if (this.useDebug) {\n path.forEach(function (e) {\n ROUTER_RECTS.push(conn.canvas.paper.rect(e.x - 3, e.y - 3, 6, 6).attr({ \"fill\": \"#00ff00\", \"opacity\": \"0.8\" }));\n });\n var pt = path[0];\n var _svgPathBefore = [\"M\", pt.x, \" \", pt.y];\n for (var _i2 = 1; _i2 < path.length; _i2++) {\n pt = path[_i2];\n _svgPathBefore.push(\"L\", pt.x, \" \", pt.y);\n }\n _svgPathBefore = _svgPathBefore.join(\"\");\n ROUTER_RECTS.push(conn.canvas.paper.path(_svgPathBefore).attr({ \"stroke\": \"#00ff00\" }));\n }\n\n this.spline = new _packages2.default.util.spline.CubicSpline();\n var splinePoints = this.spline.generate(_p, 8);\n\n if (this.useSimplify) {\n path = [];\n splinePoints.each(function (i, e) {\n path.push({ x: e.x, y: e.y });\n });\n path = this.simplify(path, this.useSimplifyValue, true);\n\n path.forEach(function (e) {\n conn.addPoint(e.x, e.y);\n });\n } else {\n splinePoints.each(function (i, e) {\n conn.addPoint(e);\n });\n }\n } else {\n if (this.useSimplify) {\n path = this.simplify(path, this.useSimplifyValue, true);\n }\n\n if (this.useDebug) {\n path.forEach(function (e) {\n ROUTER_RECTS.push(conn.canvas.paper.rect(e.x - 3, e.y - 3, 6, 6).attr({ \"fill\": \"#00ff00\", \"opacity\": \"0.8\" }));\n });\n var _p2 = path[0];\n var _svgPathBefore2 = [\"M\", _p2.x, \" \", _p2.y];\n for (var _i3 = 1; _i3 < path.length; _i3++) {\n _p2 = path[_i3];\n _svgPathBefore2.push(\"L\", _p2.x, \" \", _p2.y);\n }\n _svgPathBefore2 = _svgPathBefore2.join(\"\");\n ROUTER_RECTS.push(conn.canvas.paper.path(_svgPathBefore2).attr({ \"stroke\": \"#00ff00\" }));\n }\n\n conn.addPoint(oldFromPt);\n path.forEach(function (e) {\n conn.addPoint(e[0], e[1]);\n });\n conn.addPoint(oldToPt);\n }\n },\n\n /**\n * \n * Generate a grid base no go map required for the path finding algorithm\n *\n * @param conn\n * @returns {PF.Grid}\n * @private\n */\n generateNoGoGrid: function generateNoGoGrid(conn, fromPt, fromDir, toPt, toDir) {\n var shift = this.useShift;\n var oneShift2 = (1 << shift) / 2;\n\n // 1. generate a map with all \"no go\" areas. The bounding box of the shapes defines\n // the no go areas.\n //\n var canvasWidth = conn.getCanvas().paper.width >> shift;\n var canvasHeight = conn.getCanvas().paper.height >> shift;\n var grid = new PF.Grid(canvasWidth, canvasHeight);\n var figures = conn.getCanvas().getFigures();\n figures.each(function (i, e) {\n var box = e.getBoundingBox();\n // remove shapes which are hit by the input or output ports. It is not possible to route\n // out from a not walkable area\n if (box.hitTest(fromPt.x, fromPt.y) === true || box.hitTest(toPt.x, toPt.y)) {\n return;\n }\n\n var x = box.x >> shift;\n var y = box.y >> shift;\n if (x < 1 || y < 1) {\n return;\n }\n var r_orig = box.x + box.w + oneShift2 >> shift;\n var b_orig = box.y + box.h + oneShift2 >> shift;\n for (var _i4 = x; _i4 <= r_orig; _i4++) {\n for (var j = y; j <= b_orig; j++) {\n grid.setWalkableAt(_i4, j, false);\n }\n }\n });\n\n // 3. make the are walkable on the edge of the port side. Otherwise we a\n // an enclosed area around the port if we are very close to another shape\n //\n var box = conn.getSource().getParent().getBoundingBox();\n if (toDir === 1 || toDir === 3) {\n var y = box.y >> shift;\n if (y > 0) {\n var b_orig = box.y + box.h;\n var i = toPt.x >> shift;\n\n for (var j = y - 1; j << shift <= b_orig; j++) {\n grid.setWalkableAt(i, j, true);\n }\n }\n } else {\n var x = box.x >> shift;\n if (x > 0) {\n var r_orig = box.x + box.w;\n var _j = toPt.x >> shift;\n for (var _i5 = x - 1; _i5 << shift <= r_orig; _i5++) {\n grid.setWalkableAt(_i5, _j, true);\n }\n }\n }\n\n box = conn.getTarget().getParent().getBoundingBox();\n if (fromDir === 1 || fromDir === 3) {\n var _y = box.y >> shift;\n if (_y > 0) {\n var _b_orig = box.y + box.h;\n var _i6 = fromPt.x >> shift;\n for (var _j2 = _y - 1; _j2 << shift <= _b_orig; _j2++) {\n grid.setWalkableAt(_i6, _j2, true);\n }\n }\n } else {\n var _x = box.x >> shift;\n if (_x > 0) {\n var _r_orig = box.x + box.w;\n var _j3 = fromPt.x >> shift;\n for (var _i7 = _x - 1; _i7 << shift <= _r_orig; _i7++) {\n grid.setWalkableAt(_i7, _j3, true);\n }\n }\n }\n\n return grid;\n },\n\n /**\n * \n * move the point in the given direction with the given offset\n *\n * @param {draw2d.geo.Point} pt\n * @param {Number} direction\n * @param {Number} adjustment\n *\n * @returns {draw2d.geo.Point}\n */\n getAdjustedPoint: function getAdjustedPoint(pt, direction, adjustment) {\n\n switch (direction) {\n case _packages2.default.geo.Rectangle.DIRECTION_UP:\n return new _packages2.default.geo.Point(pt.x, pt.y - adjustment);\n case _packages2.default.geo.Rectangle.DIRECTION_RIGHT:\n return new _packages2.default.geo.Point(pt.x + adjustment, pt.y);\n case _packages2.default.geo.Rectangle.DIRECTION_DOWN:\n return new _packages2.default.geo.Point(pt.x, pt.y + adjustment);\n case _packages2.default.geo.Rectangle.DIRECTION_LEFT:\n return new _packages2.default.geo.Point(pt.x - adjustment, pt.y);\n }\n },\n\n adjustPath: function adjustPath(pt, path, direction) {\n var shift = this.useShift;\n var x = pt.x >> shift;\n var y = pt.y >> shift;\n path.forEach(function (e) {\n if (y === e[1] >> shift) {\n e[1] = pt.y;\n } else {\n return false;\n }\n });\n path.forEach(function (e) {\n if (x === e[0] >> shift) {\n e[0] = pt.x;\n } else {\n return false;\n }\n });\n },\n\n getSquareDistance: function getSquareDistance(p1, p2) {\n // square distance between 2 points\n\n var dx = p1.x - p2.x,\n dy = p1.y - p2.y;\n\n return dx * dx + dy * dy;\n },\n\n getSquareSegmentDistance: function getSquareSegmentDistance(p, p1, p2) {\n // square distance from a point to a segment\n\n var x = p1.x,\n y = p1.y,\n dx = p2.x - x,\n dy = p2.y - y,\n t = void 0;\n\n if (dx !== 0 || dy !== 0) {\n\n t = ((p.x - x) * dx + (p.y - y) * dy) / (dx * dx + dy * dy);\n\n if (t > 1) {\n x = p2.x;\n y = p2.y;\n } else if (t > 0) {\n x += dx * t;\n y += dy * t;\n }\n }\n\n dx = p.x - x;\n dy = p.y - y;\n\n return dx * dx + dy * dy;\n },\n\n simplifyRadialDistance: function simplifyRadialDistance(points, sqTolerance) {\n // distance-based simplification\n\n var i = void 0,\n len = points.length,\n point = null,\n prevPoint = points[0],\n newPoints = [prevPoint];\n\n for (i = 1; i < len; i++) {\n point = points[i];\n\n if (this.getSquareDistance(point, prevPoint) > sqTolerance) {\n newPoints.push(point);\n prevPoint = point;\n }\n }\n\n if (prevPoint !== point) {\n newPoints.push(point);\n }\n\n return newPoints;\n },\n\n // simplification using optimized Douglas-Peucker algorithm with recursion elimination\n\n simplifyDouglasPeucker: function simplifyDouglasPeucker(points, sqTolerance) {\n\n var len = points.length,\n MarkerArray = (typeof Uint8Array === \"undefined\" ? \"undefined\" : _typeof(Uint8Array)) !== undefined + '' ? Uint8Array : Array,\n markers = new MarkerArray(len),\n first = 0,\n last = len - 1,\n i = void 0,\n maxSqDist = void 0,\n sqDist = void 0,\n index = void 0,\n firstStack = [],\n lastStack = [],\n newPoints = [];\n\n markers[first] = markers[last] = 1;\n\n while (last) {\n\n maxSqDist = 0;\n\n for (i = first + 1; i < last; i++) {\n sqDist = this.getSquareSegmentDistance(points[i], points[first], points[last]);\n\n if (sqDist > maxSqDist) {\n index = i;\n maxSqDist = sqDist;\n }\n }\n\n if (maxSqDist > sqTolerance) {\n markers[index] = 1;\n\n firstStack.push(first);\n lastStack.push(index);\n\n firstStack.push(index);\n lastStack.push(last);\n }\n\n first = firstStack.pop();\n last = lastStack.pop();\n }\n\n for (i = 0; i < len; i++) {\n if (markers[i]) {\n newPoints.push(points[i]);\n }\n }\n\n return newPoints;\n },\n\n simplify: function simplify(points, tolerance, highestQuality) {\n\n var sqTolerance = tolerance !== undefined ? tolerance * tolerance : 1;\n\n if (!highestQuality) {\n points = this.simplifyRadialDistance(points, sqTolerance);\n }\n points = this.simplifyDouglasPeucker(points, sqTolerance);\n\n return points;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/connection/MuteableManhattanConnectionRouter.js\":\n/*!********************************************************************!*\\\n !*** ./src/layout/connection/MuteableManhattanConnectionRouter.js ***!\n \\********************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * JUST FOR RESEARCH AT THE MOMENT!!!!!!\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.layout.connection.ManhattanConnectionRouter\n */\n\n_packages2.default.layout.connection.MuteableManhattanConnectionRouter = _packages2.default.layout.connection.ManhattanConnectionRouter.extend(\n/** @lends draw2d.layout.connection.MuteableManhattanConnectionRouter.prototype */\n{\n\n NAME: \"draw2d.layout.connection.MuteableManhattanConnectionRouter\",\n\n UP: new _packages2.default.geo.Ray(0, -1),\n DOWN: new _packages2.default.geo.Ray(0, 1),\n LEFT: new _packages2.default.geo.Ray(-1, 0),\n RIGHT: new _packages2.default.geo.Ray(1, 0),\n\n /**\n * Creates a new Router object.\n *\n */\n init: function init() {\n this._super();\n\n this.rowsUsed = {}; //new HashMap<Integer, Integer>();\n this.colsUsed = {}; //new HashMap<Integer, Integer>();\n this.constraints = {}; //new HashMap<Connection, Object>();\n this.reservedInfo = {}; //new HashMap<Connection, ReservedInfo>();\n },\n\n /**\n * @inheritdoc\n */\n route: function route(conn, routingHints) {\n this.rowsUsed = {}; //new HashMap<Integer, Integer>();\n this.colsUsed = {}; //new HashMap<Integer, Integer>();\n this.constraints = {}; //new HashMap<Connection, Object>();\n this.reservedInfo = {}; //new HashMap<Connection, ReservedInfo>();\n\n var canvas = conn.getCanvas();\n var i = void 0;\n\n var startPoint = conn.getStartPoint();\n var endPoint = conn.getEndPoint();\n\n var start = new _packages2.default.geo.Ray(startPoint);\n var end = new _packages2.default.geo.Ray(endPoint);\n var average = new _packages2.default.geo.Ray((start.x + end.x) / 2, (start.y + end.y) / 2);\n\n var direction = new _packages2.default.geo.Ray(end.x - start.x, end.y - start.y);\n var startNormal = this.getStartDirection(conn);\n var endNormal = this.getEndDirection(conn);\n\n var positions = new _packages2.default.util.ArrayList();\n var horizontal = startNormal.isHorizontal();\n\n if (horizontal) {\n positions.add(start.y);\n } else {\n positions.add(start.x);\n }\n\n horizontal = !horizontal;\n\n // dot product is zero if the vector orthogonal (90°)\n if (startNormal.dot(endNormal) === 0) {\n if (startNormal.dot(direction) >= 0 && endNormal.dot(direction) <= 0) {\n // 0\n } else {\n\n // 2\n if (startNormal.dot(direction) < 0) i = startNormal.similarity(start.translated(startNormal.scaled(10)));else {\n if (horizontal) i = average.y;else i = average.x;\n }\n\n positions.add(i);\n horizontal = !horizontal;\n\n if (endNormal.dot(direction) > 0) {\n i = endNormal.similarity(end.translated(endNormal.scaled(10)));\n } else {\n if (horizontal) {\n i = average.y;\n } else {\n i = average.x;\n }\n }\n positions.add(i);\n horizontal = !horizontal;\n }\n } else {\n if (startNormal.dot(endNormal) > 0) {\n //1\n if (startNormal.dot(direction) >= 0) i = startNormal.similarity(start.translated(startNormal.scaled(10)));else i = endNormal.similarity(end.translated(endNormal.scaled(10)));\n positions.add(i);\n horizontal = !horizontal;\n } else {\n //3 or 1\n if (startNormal.dot(direction) < 0) {\n i = startNormal.similarity(start.translated(startNormal.scaled(10)));\n positions.add(i);\n horizontal = !horizontal;\n }\n\n // my tweak to route SCA wires starts\n if (this.isCycle(conn)) {\n if (horizontal) i = conn.getSource().getParent().getBoundingBox().getTop() - 10; // * index;\n else i = conn.getSource().getParent().getBoundingBox().getRight() + 10; // * index;\n } else {\n if (horizontal) {\n var j = average.y;\n\n var next = endNormal.similarity(end.translated(endNormal.scaled(10)));\n\n var trial = new _packages2.default.geo.Ray(positions.get(positions.getSize() - 1), j);\n var figure = this.findFirstFigureAtStraightLine(canvas, trial, this.LEFT, _packages2.default.util.ArrayList.EMPTY_LIST);\n\n while (figure != null && figure.getBoundingBox().x + figure.getBoundingBox().width > next) {\n j = figure.getBoundingBox().y + figure.getBoundingBox().height + 5;\n trial.y = j;\n figure = this.findFirstFigureAtStraightLine(canvas, trial, this.LEFT, _packages2.default.util.ArrayList.EMPTY_LIST);\n }\n\n i = j;\n } else {\n var _figure = this.findFirstFigureAtStraightLine(canvas, start, this.RIGHT, this.getExcludingFigures(conn));\n if (_figure == null) i = average.x;else {\n i = Math.min(average.x, start.translated(new _packages2.default.geo.Ray(3 * (_figure.getBoundingBox().x - start.x) / 4, 0)).x);\n i = Math.max(start.x, i);\n }\n i = this.adjust(conn, i);\n }\n }\n // my tweak to route SCA wires ends\n positions.add(i);\n horizontal = !horizontal;\n }\n }\n if (horizontal) positions.add(end.y);else positions.add(end.x);\n\n this.processPositions(start, end, positions, startNormal.isHorizontal(), conn);\n\n this._paint(conn);\n },\n\n /**\n *\n *\n * @param {draw2d.Connection} connection\n * @param {Number} r\n * @param {Number} n\n * @param {Number} x\n *\n * @private\n */\n getColumnNear: function getColumnNear(connection, r, n, x) {\n var min = Math.min(n, x);\n var max = Math.max(n, x);\n\n if (min > r) {\n max = min;\n min = r - (min - r);\n }\n if (max < r) {\n min = max;\n max = r + (r - max);\n }\n\n var proximity = 0;\n var direction = -1;\n if (r % 6 !== 0) {\n r = r - r % 6;\n }\n\n var i = void 0;\n while (proximity < r) {\n i = parseInt(r + proximity * direction);\n if (!(i in this.colsUsed)) {\n this.colsUsed[i] = i;\n this.reserveColumn(connection, i);\n return i;\n }\n\n if (i <= min) {\n return i + 6;\n }\n\n if (i >= max) {\n return i - 6;\n }\n\n if (direction === 1) {\n direction = -1;\n } else {\n direction = 1;\n proximity += 6;\n }\n }\n return r;\n },\n\n getRowNear: function getRowNear(connection, r, n, x) {\n var min = Math.min(n, x);\n var max = Math.max(n, x);\n\n if (min > r) {\n max = min;\n min = r - (min - r);\n }\n if (max < r) {\n min = max;\n max = r + (r - max);\n }\n\n var proximity = 0;\n var direction = -1;\n if (r % 6 !== 0) {\n r = r - r % 6;\n }\n\n var i = void 0;\n while (proximity < r) {\n i = parseInt(r + proximity * direction);\n if (!(i in this.rowsUsed)) {\n this.rowsUsed[i] = i;\n this.reserveRow(connection, i);\n return i;\n }\n if (i <= min) return i + 6;\n if (i >= max) return i - 6;\n if (direction === 1) direction = -1;else {\n direction = 1;\n proximity += 6;\n }\n }\n return r;\n },\n\n /**\n * <li>up -> 0</li>\n * <li>right -> 1</li>\n * <li>down -> 2</li>\n * <li>left -> 3</li>\n **/\n getEndDirection: function getEndDirection(conn) {\n var p = conn.getEndPoint();\n var rect = conn.getTarget().getParent().getBoundingBox();\n return this.getDirection(rect, p);\n },\n\n /**\n * <li>up -> 0</li>\n * <li>right -> 1</li>\n * <li>down -> 2</li>\n * <li>left -> 3</li>\n **/\n getStartDirection: function getStartDirection(conn) {\n var p = conn.getStartPoint();\n var rect = conn.getSource().getParent().getBoundingBox();\n return this.getDirection(rect, p);\n },\n\n /**\n * Returns the direction the point <i>p</i> is in relation to the given rectangle.\n * Possible values are LEFT (-1,0), RIGHT (1,0), UP (0,-1) and DOWN (0,1).\n *\n * @param r the rectangle\n * @param p the point\n * @returns the direction from <i>r</i> to <i>p</i>\n */\n getDirection: function getDirection(r, p) {\n var i = Math.abs(r.y - p.y);\n var distance = Math.abs(r.x - p.x);\n var direction = this.LEFT;\n\n if (i <= distance) {\n distance = i;\n direction = this.UP;\n }\n\n i = Math.abs(r.getBottom() - p.y);\n if (i <= distance) {\n distance = i;\n direction = this.DOWN;\n }\n\n i = Math.abs(r.getRight() - p.x);\n if (i < distance) {\n direction = this.RIGHT;\n }\n\n return direction;\n },\n\n processPositions: function processPositions( /*Ray*/start, /*Ray*/end, /*List*/positions, /*boolean*/horizontal, /*Connection*/conn) {\n this.removeReservedLines(conn);\n\n var pos = [];\n if (horizontal) pos.push(start.x);else pos.push(start.y);\n var i = void 0;\n for (i = 0; i < positions.getSize(); i++) {\n pos.push(positions.get(i));\n }\n\n if (horizontal === (positions.getSize() % 2 === 1)) {\n pos.push(end.x);\n } else {\n pos.push(end.y);\n }\n\n conn.addPoint(new _packages2.default.geo.Point(start.x, start.y));\n var p = void 0;\n var current = void 0,\n prev = void 0,\n min = void 0,\n max = void 0;\n var adjust = void 0;\n for (i = 2; i < pos.length - 1; i++) {\n horizontal = !horizontal;\n prev = pos[i - 1];\n current = pos[i];\n\n adjust = i !== pos.length - 2;\n if (horizontal) {\n if (adjust) {\n min = pos[i - 2];\n max = pos[i + 2];\n pos[i] = current = this.getRowNear(conn, current, min, max);\n }\n p = new _packages2.default.geo.Point(prev, current);\n } else {\n if (adjust) {\n min = pos[i - 2];\n max = pos[i + 2];\n pos[i] = current = this.getColumnNear(conn, current, min, max);\n }\n p = new _packages2.default.geo.Point(current, prev);\n }\n conn.addPoint(p);\n }\n conn.addPoint(new _packages2.default.geo.Point(end.x, end.y));\n },\n\n removeReservedLines: function removeReservedLines(connection) {\n var rInfo = this.reservedInfo[connection];\n if (typeof rInfo === \"undefined\" || rInfo === null) return;\n\n for (var i = 0; i < rInfo.reservedRows.getSize(); i++) {\n delete this.rowsUsed[rInfo.reservedRows.get(i)];\n }\n for (var _i = 0; _i < rInfo.reservedCols.getSize(); _i++) {\n delete this.colsUsed[rInfo.reservedCols.get(_i)];\n }\n delete this.reservedInfo[connection];\n },\n\n reserveColumn: function reserveColumn(connection, column) {\n var info = this.reservedInfo[connection];\n if (typeof info === \"undefined\" || info === null) {\n info = { reservedCols: new _packages2.default.util.ArrayList(), reservedRows: new _packages2.default.util.ArrayList() };\n this.reservedInfo[connection] = info;\n }\n info.reservedCols.add(column);\n },\n\n reserveRow: function reserveRow(connection, row) {\n var info = this.reservedInfo[connection];\n if (typeof info === \"undefined\" || info === null) {\n info = { reservedCols: new _packages2.default.util.ArrayList(), reservedRows: new _packages2.default.util.ArrayList() };\n this.reservedInfo[connection] = info;\n }\n info.reservedRows.add(row);\n },\n\n getConstraint: function getConstraint(connection) {\n return this.constraints[connection];\n },\n\n setConstraint: function setConstraint(connection, constraint) {\n this.constraints[connection] = constraint;\n },\n\n isCycle: function isCycle(conn) {\n var source = conn.getSource().getParent();\n var target = conn.getTarget().getParent();\n\n return source.id === target.id;\n },\n\n getExcludingFigures: function getExcludingFigures(conn) {\n var excluding = new _packages2.default.util.ArrayList();\n\n excluding.add(conn.getSource().getParent());\n excluding.add(conn.getTarget().getParent());\n\n return excluding;\n },\n\n findFirstFigureAtStraightLine: function findFirstFigureAtStraightLine(canvas, /*Ray*/start, /*Ray*/direction, /*List*/excluding) {\n var figure = null;\n\n var figures = canvas.getFigures();\n var _this = this;\n figures.each(function (i, child) {\n try {\n if (!excluding.contains(child)) {\n var rect = child.getBoundingBox();\n if (_this.LEFT.equals(direction)) {\n if (start.x > rect.x && start.y >= rect.y && start.y <= rect.y + rect.h) {\n if (figure === null || rect.x > figure.getBoundingBox().x) figure = child;\n }\n } else if (_this.RIGHT.equals(direction)) {\n if (start.x < rect.x + rect.w && start.y >= rect.y && start.y <= rect.y + rect.h) {\n if (figure == null || rect.x < figure.getBoundingBox().x) figure = child;\n }\n } else if (_this.UP.equals(direction)) {\n if (start.y > rect.y && start.x >= rect.x && start.x <= rect.x + rect.w) {\n if (figure === null || rect.y > figure.getBoundingBox().y) figure = child;\n }\n } else if (_this.DOWN.equals(direction)) {\n if (start.y < rect.y + rect.h && start.x >= rect.x && start.x <= rect.x + rect.w) {\n if (figure === null || rect.y < figure.getBoundingBox().y) figure = child;\n }\n }\n }\n } catch (exc) {\n console.log(exc);\n debugger;\n }\n });\n return figure;\n },\n\n adjust: function adjust(connection, col) {\n var column = col;\n\n var start = connection.getSource().getPosition();\n\n var connections = connection.getCanvas().getLines();\n connections.each(function (i, conn) {\n try {\n if (conn === connection) return;\n\n var end = conn.getTarget().getPosition();\n if (start.x < end.x && start.y === end.y) {\n if (conn.getVertices().getMidpoint().x <= col) column = conn.getVertices().getMidpoint().x - 5;\n }\n } catch (exc) {\n console.log(exc);\n debugger;\n }\n });\n return column;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/layout/connection/RubberbandRouter.js\":\n/*!***************************************************!*\\\n !*** ./src/layout/connection/RubberbandRouter.js ***!\n \\***************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Router for direct connections between two ports with a rubber band effect\n *\n *\n * @example\n *\n * let RubberConnection= draw2d.Connection.extend({\n * NAME: \"RubberConnection\",\n *\n * init:function(attr, setter, getter)\n * {\n * this._super(extend({\n * color: \"#33691e\",\n * stroke:1,\n * outlineStroke:0,\n * outlineColor:null\n * },attr),\n * setter,\n * getter);\n *\n *\n * this.setRouter(new draw2d.layout.connection.RubberbandRouter());\n * },\n *\n * repaint:function(attributes)\n * {\n * if (this.repaintBlocked===true || this.shape === null){\n * return;\n * }\n * attributes= attributes || {};\n * // enrich the rendering with a \"fill\" attribute\n * if(typeof attributes.fill === \"undefined\"){\n * \t attributes.fill = \"#aed581\";\n * }\n * this._super(attributes);\n * }\n * });\n *\n * let createConnection=function(){\n * let con = new RubberConnection();\n * return con;\n * };\n *\n * // install a custom connection create policy\n * //\n * canvas.installEditPolicy( new draw2d.policy.connection.DragConnectionCreatePolicy({\n * createConnection: createConnection\n * }));\n *\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * let start = new draw2d.shape.node.Start();\n * let end = new draw2d.shape.node.End();\n\n * // ...add it to the canvas\n * canvas.add( start, 50,50);\n * canvas.add( end, 230,80);\n *\n * // first Connection\n * //\n * let c = createConnection();\n * c.setSource(start.getOutputPort(0));\n * c.setTarget(end.getInputPort(0));\n * canvas.add(c);\n *\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.layout.connection.ConnectionRouter\n */\n_packages2.default.layout.connection.RubberbandRouter = _packages2.default.layout.connection.ConnectionRouter.extend(\n/** @lends draw2d.layout.connection.RubberbandRouter.prototype */\n{\n\n NAME: \"draw2d.layout.connection.RubberbandRouter\",\n\n /**\n * Creates a new Router object\n *\n */\n init: function init() {\n this._super();\n },\n\n /**\n * \n * Callback method if the router has been assigned to a connection.\n *\n * @param {draw2d.Connection} connection The assigned connection\n * @template\n * @since 2.7.2\n */\n onInstall: function onInstall(connection) {\n connection.installEditPolicy(new _packages2.default.policy.line.LineSelectionFeedbackPolicy());\n },\n\n /**\n * \n * Invalidates the given Connection\n */\n invalidate: function invalidate() {},\n\n /**\n * @inheritdoc\n */\n route: function route(connection, routingHints) {\n var thickness = 10;\n\n var start = connection.getStartPoint();\n var end = connection.getEndPoint();\n\n // 1. Calculate the vector AB→ by subtracting the coordinates of A from the coordinates of B.\n // Let's say you get (u,v) as the vector components.\n //\n // 2. normalize the vector (u,v,) to a length of |1|\n //\n // 3. The vector (−v,u) is AB→ rotated by 90 degrees counterclockwise. (Why? Look up \"rotation matrix\").\n //\n // 4. Add (−v,u) to A to get C. Also add (−v,u) to B to get D.\n\n var uv = end.subtract(start);\n var uv2 = uv.clone();\n var length = uv.length();\n\n var strength = 1 - Math.min(0.75, 1 / 500 * length);\n var first = start.lerp(end, 0.25 * strength); // go closer to the start point if the strength grows\n var second = start.lerp(end, 0.5);\n var third = start.lerp(end, 1 - 0.25 * strength); // go closer to the end point if the strengths grows\n\n thickness = Math.max(5, thickness * strength);\n\n uv.x = uv.x / length * thickness;\n uv.y = uv.y / length * thickness;\n\n uv2.x = uv2.x / length * (thickness * strength);\n uv2.y = uv2.y / length * (thickness * strength);\n\n // anchor points for the 180 arc at the start point of the connection\n //\n var start90 = new _packages2.default.geo.Point(-uv.y + start.x, uv.x + start.y);\n var start270 = new _packages2.default.geo.Point(uv.y + start.x, -uv.x + start.y);\n\n // anchor point in the first segment ( on the upside/downside) of the connection\n //\n var first90 = new _packages2.default.geo.Point(-uv2.y + first.x, uv2.x + first.y);\n var first270 = new _packages2.default.geo.Point(uv2.y + first.x, -uv2.x + first.y);\n\n // center upside/downside anchor point of the connection\n //\n var second90 = new _packages2.default.geo.Point(-uv2.y + second.x, uv2.x + second.y);\n var second270 = new _packages2.default.geo.Point(uv2.y + second.x, -uv2.x + second.y);\n\n // anchor point in the third segment of the connection\n //\n var third90 = new _packages2.default.geo.Point(-uv2.y + third.x, uv2.x + third.y);\n var third270 = new _packages2.default.geo.Point(uv2.y + third.x, -uv2.x + third.y);\n\n // anchor point for the 180 arc at the end\n //\n var end90 = new _packages2.default.geo.Point(-uv.y + end.x, uv.x + end.y);\n var end270 = new _packages2.default.geo.Point(uv.y + end.x, -uv.x + end.y);\n\n // required for hit tests\n //\n connection.addPoint(start);\n connection.addPoint(end);\n\n // calculate the path\n var path = [\"M\", start90.x, \",\", start90.y];\n path.push(\"A\", thickness, \",\", thickness, \"0 0 1 \", start270.x, \",\", start270.y);\n path.push(\"C\", start270.x, \",\", start270.y, first270.x, \",\", first270.y, second270.x, \",\", second270.y);\n path.push(\"C\", second270.x, \",\", second270.y, third270.x, \",\", third270.y, end270.x, \",\", end270.y);\n path.push(\"A\", thickness, \",\", thickness, \"0 0 1\", end90.x, \",\", end90.y);\n path.push(\"C\", end90.x, \",\", end90.y, third90.x, \",\", third90.y, second90.x, \",\", second90.y);\n path.push(\"C\", second90.x, \",\", second90.y, first90.x, \",\", first90.y, start90.x, \",\", start90.y);\n\n connection.svgPathString = path.join(\" \");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/connection/SketchConnectionRouter.js\":\n/*!*********************************************************!*\\\n !*** ./src/layout/connection/SketchConnectionRouter.js ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Provide a router which routes the connection in a hand drawn manner.\n *\n * @example\n *\n * let createConnection=function(){\n * let con = new draw2d.Connection();\n * con.setRouter(new draw2d.layout.connection.SketchConnectionRouter());\n * return con;\n * };\n *\n * // install a custom connection create policy\n * //\n * canvas.installEditPolicy( new draw2d.policy.connection.DragConnectionCreatePolicy({\n * createConnection: createConnection\n * }));\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * let f1 = new draw2d.shape.analog.OpAmp({x:10, y:10});\n * let f2 = new draw2d.shape.analog.ResistorVertical({angle:90, height:20, x:300, y:150});\n *\n * // ...add it to the canvas\n * //\n * canvas.add( f1);\n * canvas.add( f2);\n *\n * // first Connection\n * //\n * let c = createConnection();\n * c.setSource(f1.getOutputPort(0));\n * c.setTarget(f2.getHybridPort(0));\n * canvas.add(c);\n *\n * @inheritable\n * @author Andreas Herz\n * @since 2.7.2\n * @extends draw2d.layout.connection.MazeConnectionRouter\n */\n_packages2.default.layout.connection.SketchConnectionRouter = _packages2.default.layout.connection.MazeConnectionRouter.extend(\n/** @lends draw2d.layout.connection.SketchConnectionRouter.prototype */\n{\n NAME: \"draw2d.layout.connection.SketchConnectionRouter\",\n\n /**\n * Creates a new Router object.\n *\n */\n init: function init() {\n this._super();\n\n this.useSpline = true;\n this.useShift = 5;\n this.useSimplifyValue = 0.2;\n this.finder = new PF.JumpPointFinder({ allowDiagonal: false, dontCrossCorners: true });\n },\n\n /**\n *\n * Callback method if the router has been assigned to a connection.\n *\n * @param {draw2d.Connection} connection The assigned connection\n * @since 2.7.2\n */\n onInstall: function onInstall(connection) {\n connection.installEditPolicy(new _packages2.default.policy.line.LineSelectionFeedbackPolicy());\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/connection/SplineConnectionRouter.js\":\n/*!*********************************************************!*\\\n !*** ./src/layout/connection/SplineConnectionRouter.js ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A ManhattanConnectionRouter with an spline interpolation between the bend points.\n *\n * @example\n *\n * let createConnection=function(){\n * let con = new draw2d.Connection();\n * con.setRouter(new draw2d.layout.connection.SplineConnectionRouter());\n * return con;\n * };\n *\n * // install a custom connection create policy\n * //\n * canvas.installEditPolicy( new draw2d.policy.connection.DragConnectionCreatePolicy({\n * createConnection: createConnection\n * }));\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * let f1 = new draw2d.shape.analog.OpAmp({x:10, y:10});\n * let f2 = new draw2d.shape.analog.ResistorVertical({angle:90, height:20, x:300, y:150});\n *\n * // ...add it to the canvas\n * //\n * canvas.add( f1);\n * canvas.add( f2);\n *\n * // first Connection\n * //\n * let c = createConnection();\n * c.setSource(f1.getOutputPort(0));\n * c.setTarget(f2.getHybridPort(0));\n * canvas.add(c);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.layout.connection.ManhattanConnectionRouter\n */\n_packages2.default.layout.connection.SplineConnectionRouter = _packages2.default.layout.connection.ManhattanConnectionRouter.extend(\n/** @lends draw2d.layout.connection.SplineConnectionRouter.prototype */\n{\n\n NAME: \"draw2d.layout.connection.SplineConnectionRouter\",\n\n /**\n * Creates a new Router object\n */\n init: function init() {\n this._super();\n\n // this.spline = new draw2d.util.spline.CatmullRomSpline();\n this.spline = new _packages2.default.util.spline.CubicSpline();\n // this.spline = new draw2d.util.spline.BezierSpline();\n\n this.MINDIST = 50;\n },\n\n /**\n *\n * Callback method if the router has been assigned to a connection.\n *\n * @param {draw2d.Connection} connection The assigned connection\n * @template\n * @since 2.7.2\n */\n onInstall: function onInstall(connection) {\n connection.installEditPolicy(new _packages2.default.policy.line.LineSelectionFeedbackPolicy());\n },\n\n /**\n * @inheritdoc\n */\n route: function route(conn, routingHints) {\n var i = void 0;\n var fromPt = conn.getStartPoint();\n var fromDir = conn.getSource().getConnectionDirection(conn.getTarget());\n\n var toPt = conn.getEndPoint();\n var toDir = conn.getTarget().getConnectionDirection(conn.getSource());\n\n // calculate the manhatten bend points between start/end.\n //\n this._route(conn, toPt, toDir, fromPt, fromDir);\n\n var ps = conn.getVertices();\n\n conn.oldPoint = null;\n conn.lineSegments = new _packages2.default.util.ArrayList();\n conn.vertices = new _packages2.default.util.ArrayList();\n\n var splinePoints = this.spline.generate(ps, 8);\n splinePoints.each(function (i, e) {\n conn.addPoint(e);\n });\n\n // calculate the path string for the SVG rendering\n //\n ps = conn.getVertices();\n var length = ps.getSize();\n var p = ps.get(0);\n var path = [\"M\", p.x, \" \", p.y];\n for (i = 1; i < length; i++) {\n p = ps.get(i);\n path.push(\"L\", p.x, \" \", p.y);\n }\n conn.svgPathString = path.join(\"\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/connection/VertexRouter.js\":\n/*!***********************************************!*\\\n !*** ./src/layout/connection/VertexRouter.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A Router with unlimited vertices.\n *\n *\n * @example\n *\n * // Override the default connection type. This is used during drag&drop operations of ports.\n * //\n * let createConnection=function(){\n * // return my special kind of connection\n * let con = new draw2d.Connection();\n * con.setRouter(new draw2d.layout.connection.VertexRouter());\n * return con;\n * };\n *\n * // Install a special policy into the canvas to use my own implementation of connection\n * // if we drag&drop a port\n * //\n * canvas.installEditPolicy( new draw2d.policy.connection.DragConnectionCreatePolicy({\n * createConnection: createConnection\n * }));\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * let start = new draw2d.shape.node.Start();\n * let end = new draw2d.shape.node.End();\n\n * // ...add it to the canvas\n * canvas.add( start, 50,50);\n * canvas.add( end, 230,80);\n *\n * // first Connection\n * //\n * let c = createConnection();\n * c.setSource(start.getOutputPort(0));\n * c.setTarget(end.getInputPort(0));\n * canvas.add(c);\n *\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.layout.connection.ConnectionRouter\n */\n_packages2.default.layout.connection.VertexRouter = _packages2.default.layout.connection.ConnectionRouter.extend(\n/** @lends draw2d.layout.connection.VertexRouter.prototype */\n{\n\n NAME: \"draw2d.layout.connection.VertexRouter\",\n\n /**\n * Creates a new Router object\n *\n */\n init: function init() {\n this._super();\n },\n\n /**\n *\n * Callback method if the router has been assigned to a connection.\n *\n * @param {draw2d.Connection} connection The assigned connection\n * @template\n * @since 2.7.2\n */\n onInstall: function onInstall(connection) {\n connection.installEditPolicy(new _packages2.default.policy.line.VertexSelectionFeedbackPolicy());\n },\n\n /**\n *\n * Invalidates the given Connection\n */\n invalidate: function invalidate() {},\n\n /**\n * @inheritdoc\n */\n route: function route(connection, routingHints) {\n // reuse all existing vertex points\n //\n var count = routingHints.oldVertices.getSize();\n for (var i = 0; i < count; i++) {\n connection.addPoint(routingHints.oldVertices.get(i));\n }\n\n var ps = connection.getVertices();\n\n // respect the calculated anchor position if the start/end port has set any Anchor impl.\n var startAnchor = connection.getStartPosition(ps.get(1));\n var endAnchor = connection.getEndPosition(ps.get(ps.getSize() - 2));\n ps.first().setPosition(startAnchor);\n ps.last().setPosition(endAnchor);\n\n this._paint(connection);\n },\n\n /**\n *\n * Callback method for the PolyLine or Connection to check if it possible to remove a vertex from\n * the list. The router can send an veto for this.\n * Per default it is not possible to remove any vertex from the PolyLine exceptional if any interactive\n * router is installed.\n *\n * @param {draw2d.Connection} conn\n * @param {Number} index\n *\n * @since 4.2.3\n */\n canRemoveVertexAt: function canRemoveVertexAt(conn, index) {\n return false;\n },\n\n /**\n * Callback method for the PolyLine or Connection to verify that a segment is deletable.\n *\n * @param {draw2d.Connection} conn\n * @param {Number} index\n *\n * @returns {Boolean}\n * @since 4.2.3\n */\n canRemoveSegmentAt: function canRemoveSegmentAt(conn, index) {\n\n var segmentCount = conn.getVertices().getSize() - 1; // segmentCount is one less than vertex count\n\n // The first and last segment isn't deletable\n //\n if (index <= 0 || index >= segmentCount) {\n return false;\n }\n\n // a connection need at least one strokes\n //\n return segmentCount >= 2;\n },\n\n /**\n *\n * Tweak or enrich the polyline persistence data with routing information\n *\n * @since 2.10.0\n * @param {draw2d.shape.basic.PolyLine} line\n * @param {Object} memento The memento data of the polyline\n *\n * @returns {Object}\n */\n getPersistentAttributes: function getPersistentAttributes(line, memento) {\n memento.vertex = [];\n\n line.getVertices().each(function (i, e) {\n memento.vertex.push({ x: e.x, y: e.y });\n });\n\n return memento;\n },\n\n /**\n *\n * set the attributes for the polyline with routing information\n *\n * @since 2.10.0\n * @param {Object} memento\n */\n setPersistentAttributes: function setPersistentAttributes(line, memento) {\n // restore the points from the JSON data and add them to the polyline\n //\n if (Array.isArray(memento.vertex) && memento.vertex.length > 1) {\n\n line.oldPoint = null;\n line.lineSegments = new _packages2.default.util.ArrayList();\n\n line.setVertices(memento.vertex);\n }\n },\n\n /**\n *\n *\n * The draw2d.Connection delegates the drag operation to the router. The router can\n * handle the different constraints of the connection and just drag&drop a single segment\n * instead of the complete connection.\n *\n * @param {draw2d.shape.basic.Line} line the related line to handle\n * @param {Number} dx the x difference between the start of the drag drop operation and now\n * @param {Number} dy the y difference between the start of the drag drop operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n *\n * @since 6.1.0\n */\n onDrag: function onDrag(line, dx, dy, dx2, dy2) {\n var count = line.getVertices().getSize() - 1;\n for (var i = 1; i < count; i++) {\n line.getVertex(i).translate(dx2, dy2);\n }\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/BottomLocator.js\":\n/*!*********************************************!*\\\n !*** ./src/layout/locator/BottomLocator.js ***!\n \\*********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A bottomLocator is used to place figures at the bottom of a parent shape.\n *\n *\n *\n * @example\n *\n * // create a basic figure and add a Label/child via API call\n * //\n * let circle = new draw2d.shape.basic.Circle({\n * x:100,\n * y:50,\n * diameter:100,\n * stroke: 3,\n * color:\"#A63343\",\n * bgColor:\"#E65159\"\n * });\n *\n * circle.add(new draw2d.shape.basic.Label({text:\"Bottom Label\"}), new draw2d.layout.locator.BottomLocator());\n * canvas.add( circle);\n *\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.Locator\n */\n_packages2.default.layout.locator.BottomLocator = _packages2.default.layout.locator.Locator.extend(\n/** @lends draw2d.layout.locator.BottomLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.BottomLocator\",\n\n /**\n *\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * \n * Relocates the given Figure.\n *\n * @param {Number} index child index of the target\n * @param {draw2d.Figure} target The figure to relocate\n **/\n relocate: function relocate(index, target) {\n var parent = target.getParent();\n var boundingBox = parent.getBoundingBox();\n // I made a wrong decision in the port handling: anchor point\n // is in the center and not topLeft. Now I must correct this flaw here, and there, and...\n // shit happens.\n var offset = parent instanceof _packages2.default.Port ? boundingBox.w / 2 : 0;\n\n var targetBoundingBox = target.getBoundingBox();\n if (target instanceof _packages2.default.Port) {\n target.setPosition(boundingBox.w / 2 - offset, boundingBox.h);\n } else {\n target.setPosition(boundingBox.w / 2 - targetBoundingBox.w / 2 - offset, 2 + boundingBox.h);\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/CenterLocator.js\":\n/*!*********************************************!*\\\n !*** ./src/layout/locator/CenterLocator.js ***!\n \\*********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A CenterLocator is used to place figures in the center of a parent shape.\n *\n *\n *\n * @example\n *\n *\n * // create a basic figure and add a Label/child via API call\n * //\n * let circle = new draw2d.shape.basic.Circle({diameter:120});\n * circle.setStroke(3);\n * circle.setColor(\"#A63343\");\n * circle.setBackgroundColor(\"#E65159\");\n * circle.add(new draw2d.shape.basic.Label({text:\"Center Label\"}), new draw2d.layout.locator.CenterLocator());\n * canvas.add( circle, 100,50);\n *\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.Locator\n */\n_packages2.default.layout.locator.CenterLocator = _packages2.default.layout.locator.Locator.extend(\n/** @lends draw2d.layout.locator.CenterLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.CenterLocator\",\n\n /**\n * Constructs a locator with associated parent.\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * \n * Relocates the given Figure.\n *\n * @param {Number} index child index of the target\n * @param {draw2d.Figure} target The figure to relocate\n **/\n relocate: function relocate(index, target) {\n var parent = target.getParent();\n var boundingBox = parent.getBoundingBox();\n\n // TODO: instanceof is always a HACK. ugly. Redirect the call to the figure instead of \n // determine the position with a miracle.\n //\n if (target instanceof _packages2.default.Port) {\n target.setPosition(boundingBox.w / 2, boundingBox.h / 2);\n } else {\n var targetBoundingBox = target.getBoundingBox();\n target.setPosition((boundingBox.w / 2 - targetBoundingBox.w / 2 | 0) + 0.5, (boundingBox.h / 2 - targetBoundingBox.h / 2 | 0) + 0.5);\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/ConnectionLocator.js\":\n/*!*************************************************!*\\\n !*** ./src/layout/locator/ConnectionLocator.js ***!\n \\*************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Repositions a Figure attached to a Connection when the\n * Connection is moved. Provides for alignment at the start\n * (source), middle, or end (target) of the Connection.\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.Locator\n */\n_packages2.default.layout.locator.ConnectionLocator = _packages2.default.layout.locator.Locator.extend(\n/** @lends draw2d.layout.locator.ConnectionLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.ConnectionLocator\",\n\n /**\n * Default constructor for a Locator which can layout a figure in context of a\n * {@link draw2d.Connector}\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/DraggableLocator.js\":\n/*!************************************************!*\\\n !*** ./src/layout/locator/DraggableLocator.js ***!\n \\************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A DraggableLocator is used to place figures relative to the parent top left corner. It is\n * possible to move a child node via drag&drop.\n *\n *\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.Locator\n */\n_packages2.default.layout.locator.DraggableLocator = _packages2.default.layout.locator.Locator.extend(\n/** @lends draw2d.layout.locator.DraggableLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.DraggableLocator\",\n\n /**\n * Constructs a locator with associated parent.\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n bind: function bind(parent, child) {\n // override the parent implementation to avoid\n // that the child is \"!selectable\" and \"!draggable\"\n\n // Don't redirect the selection handling to the parent\n // Using the DraggableLocator provides the ability to the children\n // that they are selectable and draggable. Remove the SelectionAdapter from the parent\n // assignment.\n child.setSelectionAdapter(function () {\n return child;\n });\n },\n\n unbind: function unbind(parent, child) {\n // use default\n child.setSelectionAdapter(null);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/InputPortLocator.js\":\n/*!************************************************!*\\\n !*** ./src/layout/locator/InputPortLocator.js ***!\n \\************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Repositions a Figure attached to a Connection when the\n * Connection is moved. Provides for alignment at the start\n * (source), middle, or end (target) of the Connection.\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.PortLocator\n */\n_packages2.default.layout.locator.InputPortLocator = _packages2.default.layout.locator.PortLocator.extend(\n/** @lends draw2d.layout.locator.InputPortLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.InputPortLocator\",\n\n /**\n * Default constructor for a Locator which can layout a port in context of a\n * {@link draw2d.shape.node.Node}\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n *\n * Controls the location of an {@link draw2d.Figure}\n *\n * @param {Number} index port index of the figure\n * @param {draw2d.Figure} figure the figure to control\n *\n * @template\n **/\n relocate: function relocate(index, figure) {\n var node = figure.getParent();\n\n var dividerFactor = 1;\n var thisNAME = this.NAME;\n var portIndex = 1;\n node.getPorts().each(function (i, p) {\n portIndex = p === figure ? dividerFactor : portIndex;\n dividerFactor += p.getLocator().NAME === thisNAME ? 1 : 0;\n });\n this.applyConsiderRotation(figure, 0, node.getHeight() / dividerFactor * portIndex);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/LeftLocator.js\":\n/*!*******************************************!*\\\n !*** ./src/layout/locator/LeftLocator.js ***!\n \\*******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A LeftLocator is used to place figures to the left of a parent shape.\n *\n *\n *\n * @example\n *\n * // create a basic figure and add a Label/child via API call\n * //\n * let start = new draw2d.shape.node.Start();\n * start.add(new draw2d.shape.basic.Label({text:\"Left Label\"}), new draw2d.layout.locator.LeftLocator({\n * margin:10 // distance to the parent shape\n * }));\n * canvas.add( start, 100,50);\n *\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.Locator\n */\n_packages2.default.layout.locator.LeftLocator = _packages2.default.layout.locator.Locator.extend(\n/** @lends draw2d.layout.locator.LeftLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.LeftLocator\",\n\n /**\n * Constructs a locator with associated parent.\n *\n * @param {Object} attr additional init attributes\n * @param {Object} setter key/value map of injected setter-methods\n * @param {Object} getter key/value map of injected getter-methods\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n this.margin = attr && \"margin\" in attr ? attr.margin : 5;\n },\n\n /**\n *\n * Relocates the given Figure.\n *\n * @param {Number} index child index of the target\n * @param {draw2d.Figure} target The figure to relocate\n **/\n relocate: function relocate(index, target) {\n var parent = target.getParent();\n var boundingBox = parent.getBoundingBox();\n\n // I made a wrong decision in the port handling: anchor point\n // is in the center and not topLeft. Now I must correct this flaw here, and there, and...\n // shit happens.\n var offset = parent instanceof _packages2.default.Port ? boundingBox.h / 2 : 0;\n\n if (target instanceof _packages2.default.Port) {\n target.setPosition(0, boundingBox.h / 2 - offset);\n } else {\n var targetBoundingBox = target.getBoundingBox();\n target.setPosition(-targetBoundingBox.w - this.margin, boundingBox.h / 2 - targetBoundingBox.h / 2 - offset);\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/Locator.js\":\n/*!***************************************!*\\\n !*** ./src/layout/locator/Locator.js ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _JSONUtil = __webpack_require__(/*! ../../util/JSONUtil */ \"./src/util/JSONUtil.js\");\n\nvar _JSONUtil2 = _interopRequireDefault(_JSONUtil);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n/**\n * @class\n *\n * Controls the location of an IFigure.\n *\n * @author Andreas Herz\n */\n_packages2.default.layout.locator.Locator = Class.extend(\n/** @lends draw2d.layout.locator.Locator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.Locator\",\n\n /**\n * Initial Constructor\n *\n * @param {Object} attr additional init attributes\n * @param {Object} setter key/value map of injected setter-methods\n * @param {Object} getter key/value map of injected getter-methods\n */\n init: function init(attr, setter, getter) {\n\n this.setterWhitelist = (0, _extend2.default)({}, setter);\n this.getterWhitelist = (0, _extend2.default)({}, getter);\n\n // propagate the attr to the new instance\n this.attr(attr);\n },\n\n /**\n *\n * Read or set locator attributes.<br>\n * When no value is given, reads specified attribute from the element.<br>\n * When value is given, sets the attribute to that value.\n * Multiple attributes can be set by passing an object with name-value pairs.\n *\n *\n * // multiple attributes:\n * locator.attr({\n * x: 30,\n * y: 40\n * });\n *\n * let data = locator.attr()\n *\n *\n * @param {String/Object} name\n * @param {Object} [value]\n * @since 5.0.1\n * @experimental\n * @returns {Object} either the requested attribute if this method used as getter or `this` if the method uses as setter\n **/\n attr: function attr(name, value) {\n var _this = this;\n\n // call of attr as setter method with {name1:val1, name2:val2 } argument list\n //\n if ($.isPlainObject(name)) {\n for (var key in name) {\n var func = this.setterWhitelist[key];\n var param = name[key];\n if (func && param !== undefined) {\n func.call(this, param);\n }\n }\n } else if (typeof name === \"string\") {\n // call attr as getter\n //\n if (typeof value === \"undefined\") {\n var getter = this.getterWhitelist[name];\n if (typeof getter === \"function\") {\n return getter.call(this);\n }\n return; // undefined\n }\n\n // the value can be a function. In this case we must call the value().\n if (typeof value === \"function\") {\n value = value();\n }\n var setter = this.setterWhitelist[name];\n if (setter) {\n setter.call(this, value);\n }\n }\n // may it is a array of attributes used for the getter\n //\n else if (Array.isArray(name)) {\n return Object.assign.apply(Object, [{}].concat(_toConsumableArray(Object.keys(name).map(function (k) {\n return _defineProperty({}, k, _this.attr(k));\n }))));\n }\n // generic getter of all registered attributes\n else if (typeof name === \"undefined\") {\n var result = {};\n for (var _key in this.getterWhitelist) {\n result[_key] = this.getterWhitelist[_key].call(this);\n }\n return result;\n }\n\n return this;\n },\n\n /**\n *\n * Callback method if a child is bounded to a parent. This is\n * the perfect moment to prepare the child node with some basic\n * behaviour which are forced by the <code>Locator</code>\n *\n * @param {draw2d.Figure} figure\n * @param {draw2d.Figure} child\n * @returns {this}\n */\n bind: function bind(figure, child) {\n // default behaviour of an Locator. The child isn't draggable and\n // the locator defines the position of the child.\n //\n child.setDraggable(false);\n child.setSelectable(false);\n\n return this;\n },\n\n /**\n *\n * Callback method if a child is unbounded to the locator.\n *\n * @param {draw2d.Figure} figure\n * @param {draw2d.Figure} child\n * @returns {this}\n */\n unbind: function unbind(figure, child) {\n\n return this;\n },\n\n /**\n *\n * Controls the location of an I{@link draw2d.Figure}\n *\n * @param {Number} index child index of the figure\n * @param {draw2d.Figure} figure the figure to control\n *\n * @private\n **/\n relocate: function relocate(index, figure) {\n // just repaint the child to update the SVG related to the new location\n // of the parent.\n figure.repaint();\n },\n\n /**\n *\n * Return a clone of the locator object\n *\n * @returns {draw2d.layout.locator.Locator}\n */\n clone: function clone() {\n return eval(\"new \" + this.NAME + \"()\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/ManhattanMidpointLocator.js\":\n/*!********************************************************!*\\\n !*** ./src/layout/locator/ManhattanMidpointLocator.js ***!\n \\********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A ManhattanMidpointLocator that is used to place figures at the midpoint of a Manhatten routed\n * connection. The midpoint is always in the center of an edge.\n *\n *\n *\n * @example\n *\n * // create and add two Node which contains Ports (In and OUT)\n * let start = new draw2d.shape.node.Start({x:50,y:50});\n * let end = new draw2d.shape.node.End({x:230,y:100});\n *\n * canvas.add( start);\n * canvas.add( end);\n *\n * // Create a Connection and connect the Start and End node\n * //\n * let c = new draw2d.Connection();\n * c.setSource(start.getOutputPort(0));\n * c.setTarget(end.getInputPort(0));\n * canvas.add(c);\n *\n * // create a label which should attach to the connection\n * //\n * let label = new draw2d.shape.basic.Label({text:\"I'm a Label\"});\n * label.setColor(\"#0d0d0d\");\n * label.setFontColor(\"#0d0d0d\");\n * label.setBackgroundColor(\"#f0f0f0\");\n *\n * // add the decoration to the connection with a ManhattanMidpointLocator.\n * //\n * c.add(label, new draw2d.layout.locator.ManhattanMidpointLocator());\n *\n * @author Andreas Herz\n * @extends draw2d.layout.locator.ConnectionLocator\n */\n_packages2.default.layout.locator.ManhattanMidpointLocator = _packages2.default.layout.locator.ConnectionLocator.extend(\n/** @lends draw2d.layout.locator.ManhattanMidpointLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.ManhattanMidpointLocator\",\n\n /**\n * Constructs a ManhattanMidpointLocator with associated Connection c.\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n *\n * Relocates the given Figure always in the center of an edge.\n *\n * @param {Number} index child index of the target\n * @param {draw2d.Figure} target The figure to relocate\n **/\n relocate: function relocate(index, target) {\n var conn = target.getParent();\n var points = conn.getVertices();\n\n var segmentIndex = Math.floor((points.getSize() - 2) / 2);\n if (points.getSize() <= segmentIndex + 1) return;\n\n var p1 = points.get(segmentIndex);\n var p2 = points.get(segmentIndex + 1);\n\n target.setPosition((p2.x - p1.x) / 2 + p1.x - target.getWidth() / 2 | 0, (p2.y - p1.y) / 2 + p1.y - target.getHeight() / 2 | 0);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/OutputPortLocator.js\":\n/*!*************************************************!*\\\n !*** ./src/layout/locator/OutputPortLocator.js ***!\n \\*************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Repositions a Figure attached to a Connection when the\n * Connection is moved. Provides for alignment at the start\n * (source), middle, or end (target) of the Connection.\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.PortLocator\n */\n_packages2.default.layout.locator.OutputPortLocator = _packages2.default.layout.locator.PortLocator.extend(\n/** @lends draw2d.layout.locator.OutputPortLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.OutputPortLocator\",\n\n /**\n * Default constructor for a Locator which can layout a port in context of a\n * {@link draw2d.shape.node.Node}\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n *\n * Controls the location of an I{@link draw2d.Figure}\n *\n * @param {Number} index child index of the figure\n * @param {draw2d.Figure} figure the figure to control\n *\n * @template\n **/\n relocate: function relocate(index, figure) {\n var node = figure.getParent();\n var dividerFactor = 1;\n var thisNAME = this.NAME;\n var portIndex = 1;\n node.getPorts().each(function (i, p) {\n portIndex = p === figure ? dividerFactor : portIndex;\n dividerFactor += p.getLocator().NAME === thisNAME ? 1 : 0;\n });\n this.applyConsiderRotation(figure, node.getWidth(), node.getHeight() / dividerFactor * portIndex);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/ParallelMidpointLocator.js\":\n/*!*******************************************************!*\\\n !*** ./src/layout/locator/ParallelMidpointLocator.js ***!\n \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A ParallelMidpointLocator that is used to place label at the midpoint of a routed\n * connection. The midpoint is always in the center of an edge.\n * The label is aligned to the connection angle at the calculated conection segment.\n *\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.ConnectionLocator\n * @since 4.4.4\n */\n_packages2.default.layout.locator.ParallelMidpointLocator = _packages2.default.layout.locator.ConnectionLocator.extend(\n/** @lends draw2d.layout.locator.ParallelMidpointLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.ParallelMidpointLocator\",\n\n /**\n * Constructs a ParallelMidpointLocator with optional padding to the connection.\n *\n * if the parameter <b>distance</b> is less than zero the label is\n * placed above of the connection. Else the label is below the connection.\n *\n * @param {Object} attr object with {distance: <NUMBER>>} distance of the label to the connection.\n */\n init: function init(attr, setter, getter) {\n this.distance = 0;\n\n this._super((0, _extend2.default)({\n distance: -5\n }, attr), (0, _extend2.default)({\n x: this.setDistance\n }, setter), (0, _extend2.default)({\n distance: this.getDistance\n }, getter));\n },\n\n /**\n * Set the distance to the connection\n *\n * @param {Number} distance the distance to the connection\n * @returns {this}\n */\n setDistance: function setDistance(distance) {\n this.distance = distance;\n return this;\n },\n\n /**\n * Returns the distance to the connection\n *\n * @returns {Number}\n */\n getDistance: function getDistance() {\n return this.distance;\n },\n\n /**\n *\n * Relocates the given Figure always in the center of an edge.\n *\n * @param {Number} index child index of the target\n * @param {draw2d.Figure} target The figure to relocate\n **/\n relocate: function relocate(index, target) {\n var conn = target.getParent();\n var points = conn.getVertices();\n\n var segmentIndex = Math.floor((points.getSize() - 2) / 2);\n if (points.getSize() <= segmentIndex + 1) {\n return;\n }\n\n var p1 = points.get(segmentIndex);\n var p2 = points.get(segmentIndex + 1);\n\n // calculate the distance of the label (above or below the connection)\n var distance = this.distance <= 0 ? this.distance - target.getHeight() : this.distance;\n\n // get the angle of the segment\n var nx = p1.x - p2.x;\n var ny = p1.y - p2.y;\n var length = Math.sqrt(nx * nx + ny * ny);\n var radian = -Math.asin(ny / length);\n var angle = 180 / Math.PI * radian;\n if (radian < 0) {\n if (p2.x < p1.x) {\n radian = Math.abs(radian) + Math.PI;\n angle = 360 - angle;\n distance = -distance - target.getHeight();\n } else {\n radian = Math.PI * 2 - Math.abs(radian);\n angle = 360 + angle;\n }\n } else {\n if (p2.x < p1.x) {\n radian = Math.PI - radian;\n angle = 360 - angle;\n distance = -distance - target.getHeight();\n }\n }\n\n var rotAnchor = this.rotate(length / 2 - target.getWidth() / 2, distance, 0, 0, radian);\n\n // rotate the x/y coordinate with the calculated angle around \"p1\"\n //\n var rotCenterOfLabel = this.rotate(0, 0, target.getWidth() / 2, target.getHeight() / 2, radian);\n\n target.setRotationAngle(angle);\n target.setPosition(rotAnchor.x - rotCenterOfLabel.x + p1.x, rotAnchor.y - rotCenterOfLabel.y + p1.y);\n },\n\n rotate: function rotate(x, y, xm, ym, radian) {\n var cos = Math.cos,\n sin = Math.sin;\n\n // Subtract midpoints, so that midpoint is translated to origin\n // and add it in the end again\n return {\n x: (x - xm) * cos(radian) - (y - ym) * sin(radian) + xm,\n y: (x - xm) * sin(radian) + (y - ym) * cos(radian) + ym\n };\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/PolylineMidpointLocator.js\":\n/*!*******************************************************!*\\\n !*** ./src/layout/locator/PolylineMidpointLocator.js ***!\n \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A PolylineMidpointLocator is used to place figures at the midpoint of a routed\n * connection. <br>\n * If the connection did have an odd count of points the figure is located in the center vertex of the polyline.<br>\n * On an even count of junction point, the figure will be center on the middle segment of the ploy line.\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.ManhattanMidpointLocator\n */\n_packages2.default.layout.locator.PolylineMidpointLocator = _packages2.default.layout.locator.ManhattanMidpointLocator.extend(\n/** @lends draw2d.layout.locator.PolylineMidpointLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.PolylineMidpointLocator\",\n\n /**\n * Constructs a ManhattanMidpointLocator with associated Connection c.\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n *\n * Relocates the given Figure.\n *\n * @param {Number} index child index of the target\n * @param {draw2d.Figure} target The figure to relocate\n **/\n relocate: function relocate(index, target) {\n var conn = target.getParent();\n var points = conn.getVertices();\n\n // it has an event count of points -> use the manhattan algorithm...this is working\n // well in this case\n if (points.getSize() % 2 === 0) {\n this._super(index, target);\n }\n // odd count of points. take the center point as fulcrum\n else {\n var index = Math.floor(points.getSize() / 2);\n var p1 = points.get(index);\n target.setPosition(p1.x - target.getWidth() / 2, p1.y - target.getHeight() / 2);\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/PortLocator.js\":\n/*!*******************************************!*\\\n !*** ./src/layout/locator/PortLocator.js ***!\n \\*******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * The port locator calculates the position of an port. All ports MUST have a locator\n * if you add them as child to a node.\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.Locator\n */\n_packages2.default.layout.locator.PortLocator = _packages2.default.layout.locator.Locator.extend(\n/** @lends draw2d.layout.locator.PortLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.PortLocator\",\n\n /**\n * Default constructor for a Locator which can layout a port in context of a\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n applyConsiderRotation: function applyConsiderRotation(port, x, y) {\n var parent = port.getParent();\n\n // determine the width/height before manipulate the \n // matrix of the shape\n var halfW = parent.getWidth() / 2;\n var halfH = parent.getHeight() / 2;\n\n var rotAngle = parent.getRotationAngle();\n var m = Raphael.matrix();\n m.rotate(rotAngle, halfW, halfH);\n if (rotAngle === 90 || rotAngle === 270) {\n var ratio = parent.getHeight() / parent.getWidth();\n m.scale(ratio, 1 / ratio, halfW, halfH);\n }\n\n port.setPosition(m.x(x, y), m.y(x, y));\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/RightLocator.js\":\n/*!********************************************!*\\\n !*** ./src/layout/locator/RightLocator.js ***!\n \\********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A RightLocator is used to place figures to the right of a parent shape.\n *\n *\n *\n * @example\n *\n *\n * // create a basic figure and add a Label/child via API call\n * //\n * var end = new draw2d.shape.node.End();\n * end.add(new draw2d.shape.basic.Label({text:\"Right Label\"}), new draw2d.layout.locator.RightLocator({\n * margin: 10 // distance to the parent shape\n * }));\n * canvas.add( end, 50,50);\n *\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.Locator\n */\n_packages2.default.layout.locator.RightLocator = _packages2.default.layout.locator.Locator.extend(\n/** @lends draw2d.layout.locator.RightLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.RightLocator\",\n\n /**\n * Constructs a locator with associated parent.\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n this.margin = attr && \"margin\" in attr ? attr.margin : 5;\n },\n\n /**\n * \n * Relocates the given Figure.\n *\n * @param {Number} index child index of the target\n * @param {draw2d.Figure} target The figure to relocate\n **/\n relocate: function relocate(index, target) {\n var parent = target.getParent();\n var boundingBox = parent.getBoundingBox();\n\n // I made a wrong decision in the port handling: anchor point\n // is in the center and not topLeft. Now I must correct this flaw here, and there, and...\n // shit happens.\n var offset = parent instanceof _packages2.default.Port ? boundingBox.h / 2 : 0;\n\n if (target instanceof _packages2.default.Port) {\n target.setPosition(boundingBox.w, boundingBox.h / 2 - offset);\n } else {\n var targetBoundingBox = target.getBoundingBox();\n target.setPosition(boundingBox.w + this.margin, boundingBox.h / 2 - targetBoundingBox.h / 2 - offset);\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/SmartDraggableLocator.js\":\n/*!*****************************************************!*\\\n !*** ./src/layout/locator/SmartDraggableLocator.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A DraggableLocator is used to place figures relative to the parent nearest corner. It is\n * possible to move a child node via drag&drop.\n *\n *\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.Locator\n */\n_packages2.default.layout.locator.SmartDraggableLocator = _packages2.default.layout.locator.Locator.extend(\n/** @lends draw2d.layout.locator.SmartDraggableLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.SmartDraggableLocator\",\n\n /**\n * Constructs a locator with associated parent.\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n // description see \"bind\" method\n this.boundedCorners = {\n init: false,\n parent: 0,\n child: 0,\n dist: Number.MAX_SAFE_INTEGER,\n xOffset: 0,\n yOffset: 0\n };\n },\n\n bind: function bind(parent, child) {\n var _this = this;\n // determine the best corner of the parent/child node and stick to the calculated corner\n // In the example below it is R1.2 in combination with R2.0\n //\n // 0 1\n // +-----------+\n // | |\n // | R1 |\n // +-----------+\n // 3 2\n //\n // 0 1\n // +-----------+\n // | |\n // | R2 |\n // +-----------+\n // 3 2\n //\n var calcBoundingCorner = function calcBoundingCorner() {\n _this.boundedCorners = {\n init: false,\n parent: 0,\n child: 0,\n dist: Number.MAX_SAFE_INTEGER,\n xOffset: 0,\n yOffset: 0\n };\n var parentVertices = child.getParent().getBoundingBox().getVertices();\n var childVertices = child.getBoundingBox().getVertices();\n var i_parent = void 0,\n i_child = void 0;\n var p1 = void 0,\n p2 = void 0,\n distance = void 0;\n for (i_parent = 0; i_parent < parentVertices.getSize(); i_parent++) {\n for (i_child = 0; i_child < childVertices.getSize(); i_child++) {\n p1 = parentVertices.get(i_parent);\n p2 = childVertices.get(i_child);\n distance = Math.abs(p1.distance(p2));\n if (distance < _this.boundedCorners.dist) {\n _this.boundedCorners = {\n parent: i_parent,\n child: i_child,\n dist: distance,\n xOffset: p1.x - p2.x,\n yOffset: p1.y - p2.y\n };\n }\n }\n }\n _this.boundedCorners.init = true;\n };\n\n // override the parent implementation to avoid\n // that the child is \"!selectable\" and \"!draggable\"\n\n // Don't redirect the selection handling to the parent\n // Using the DraggableLocator provides the ability to the children\n // that they are selectable and draggable. Remove the SelectionAdapter from the parent\n // assignment.\n child.setSelectionAdapter(function () {\n return child;\n });\n\n child.getParent().on(\"added\", calcBoundingCorner);\n child.on(\"dragend\", calcBoundingCorner);\n },\n\n unbind: function unbind(parent, child) {\n // use default\n child.setSelectionAdapter(null);\n },\n\n /**\n * \n * Controls the location of an I{@link draw2d.Figure}\n *\n * @param {Number} index child index of the figure\n * @param {draw2d.Figure} figure the figure to control\n *\n * @template\n **/\n relocate: function relocate(index, figure) {\n this._super(index, figure);\n if (this.boundedCorners.init === true) {\n var parentVertices = figure.getParent().getBoundingBox().getVertices();\n var childVertices = figure.getBoundingBox().getVertices();\n var p1 = parentVertices.get(this.boundedCorners.parent);\n var p2 = childVertices.get(this.boundedCorners.child);\n\n var xOffset = p1.x - p2.x;\n var yOffset = p1.y - p2.y;\n // restore the initial distance from the corner by adding the new offset\n // to the position of the child\n figure.translate(xOffset - this.boundedCorners.xOffset, yOffset - this.boundedCorners.yOffset);\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/TopLocator.js\":\n/*!******************************************!*\\\n !*** ./src/layout/locator/TopLocator.js ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A TopLocator is used to place figures at the top/center of a parent shape.\n *\n *\n *\n * @example\n *\n * // create a basic figure and add a Label/child via API call\n * //\n * let circle = new draw2d.shape.basic.Circle({\n * x:100,\n * y:70,\n * diameter:80,\n * stroke: 3,\n * color:\"#A63343\",\n * bgColor:\"#E65159\"\n * });\n *\n * circle.add(new draw2d.shape.basic.Label({text:\"Top Label\"}), new draw2d.layout.locator.TopLocator());\n * canvas.add( circle);\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.Locator\n */\n_packages2.default.layout.locator.TopLocator = _packages2.default.layout.locator.Locator.extend(\n/** @lends draw2d.layout.locator.TopLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.TopLocator\",\n\n /**\n * Constructs a ManhattanMidpointLocator with associated Connection c.\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * \n * Relocates the given Figure.\n *\n * @param {Number} index child index of the target\n * @param {draw2d.Figure} target The figure to relocate\n **/\n relocate: function relocate(index, target) {\n var parent = target.getParent();\n var boundingBox = parent.getBoundingBox();\n\n // I made a wrong decision in the port handling: anchor point\n // is in the center and not topLeft. Now I must correct this flaw here, and there, and...\n // shit happens.\n var offset = parent instanceof _packages2.default.Port ? boundingBox.w / 2 : 0;\n\n var targetBoundingBox = target.getBoundingBox();\n if (target instanceof _packages2.default.Port) {\n target.setPosition(boundingBox.w / 2 - offset, 0);\n } else {\n target.setPosition(boundingBox.w / 2 - targetBoundingBox.w / 2 - offset, -(targetBoundingBox.h + 2));\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/XYAbsPortLocator.js\":\n/*!************************************************!*\\\n !*** ./src/layout/locator/XYAbsPortLocator.js ***!\n \\************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Create a locator for fixed x/y coordinate position. The port in the example below is\n * always 20px below of the top border.\n *\n *\n * @example\n *\n * var figure = new draw2d.shape.basic.Rectangle({x:130,y:30,width:100,height:60});\n * figure.createPort(\"input\", new draw2d.layout.locator.XYAbsPortLocator(0,20));\n *\n * canvas.add(figure);\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.PortLocator\n * @since 4.0.0\n */\n_packages2.default.layout.locator.XYAbsPortLocator = _packages2.default.layout.locator.PortLocator.extend(\n/** @lends draw2d.layout.locator.XYAbsPortLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.XYAbsPortLocator\",\n\n /**\n *\n * {@link draw2d.shape.node.Node}\n *\n * @param {Number} x the x coordinate of the port relative to the left of the parent\n * @param {Number} y the y coordinate of the port relative to the top of the parent\n */\n init: function init(attr, setter, getter) {\n this.x = 0;\n this.y = 0;\n\n this._super(attr, (0, _extend2.default)({\n x: this.setX,\n y: this.setY\n }, setter), (0, _extend2.default)({\n x: this.getX,\n y: this.getY\n }, getter));\n },\n\n /**\n * Set the X Offset for the Locator\n * @param {Number} x\n */\n setX: function setX(x) {\n this.x = x;\n },\n\n /**\n * Set the y-offset of the locator\n *\n * @param {Number} y\n */\n setY: function setY(y) {\n this.y = y;\n },\n\n /**\n * Get the X-Offset of the Locator\n *\n * @returns {Number}\n */\n getX: function getX() {\n return this.x;\n },\n\n /**\n * Returns the Y-Offset of the Locator\n *\n * @returns {Number}\n */\n getY: function getY() {\n return this.y;\n },\n\n /**\n *\n * Controls the location of an {@link draw2d.Figure}\n *\n * @param {Number} index child index of the figure\n * @param {draw2d.Figure} figure the figure to control\n *\n * @template\n **/\n relocate: function relocate(index, figure) {\n this.applyConsiderRotation(figure, this.x, this.y);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/layout/locator/XYRelPortLocator.js\":\n/*!************************************************!*\\\n !*** ./src/layout/locator/XYRelPortLocator.js ***!\n \\************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Create a locator for a relative x/y coordinate position. The coordinates are named in percentage [0..100%]\n * relative to the top/left corner of the parent node.<br>\n * <br>\n * <br>\n * Resize the shape in the example to see what happens. The port top position is always 20% of the shape height.\n *\n *\n * @example\n *\n * let figure = new draw2d.shape.basic.Rectangle({x:130,y:30,width:100,height:60});\n * figure.createPort(\"input\", new draw2d.layout.locator.XYRelPortLocator(0,20));\n *\n * canvas.add(figure);\n *\n *\n * @author Andreas Herz\n * @extend draw2d.layout.locator.PortLocator\n * @since 4.0.0\n */\n_packages2.default.layout.locator.XYRelPortLocator = _packages2.default.layout.locator.PortLocator.extend(\n/** @lends draw2d.layout.locator.XYRelPortLocator.prototype */\n{\n\n NAME: \"draw2d.layout.locator.XYRelPortLocator\",\n\n /**\n *\n *\n * @param {Number} xPercentage the x coordinate in percent of the port relative to the left of the parent\n * @param {Number} yPercentage the y coordinate in percent of the port relative to the top of the parent\n */\n init: function init(attr, setter, getter) {\n // legacy code handling\n // new draw2d.layout.locator.XYRelPortLocator(10,30)\n if (typeof attr === \"number\" && typeof setter === \"number\") {\n this.x = attr;\n this.y = setter;\n this._super();\n }\n // new constructor\n // new draw2d.layout.locator.XYRelPortLocator({x:10, y:30}})\n else {\n this.x = 0;\n this.y = 0;\n this._super(attr, (0, _extend2.default)({\n x: this.setX,\n y: this.setY\n }, setter), (0, _extend2.default)({\n x: this.getX,\n y: this.getY\n }, getter));\n }\n },\n\n /**\n * Set the X Offset for the Locator\n * @param {Number} x\n */\n setX: function setX(x) {\n this.x = x;\n },\n\n /**\n * Set the y-offset of the locator\n *\n * @param {Number} y\n */\n setY: function setY(y) {\n this.y = y;\n },\n\n /**\n * Get the X-Offset of the Locator\n *\n * @returns {Number}\n */\n getX: function getX() {\n return this.x;\n },\n\n /**\n * Returns the Y-Offset of the Locator\n *\n * @returns {Number}\n */\n getY: function getY() {\n return this.y;\n },\n\n /**\n *\n * Controls the location of an I{@link draw2d.Figure}\n *\n * @param {Number} index child index of the figure\n * @param {draw2d.Figure} figure the figure to control\n *\n * @template\n **/\n relocate: function relocate(index, figure) {\n var parent = figure.getParent();\n\n this.applyConsiderRotation(figure, parent.getWidth() / 100 * this.x, parent.getHeight() / 100 * this.y);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/layout/mesh/ExplodeLayouter.js\":\n/*!********************************************!*\\\n !*** ./src/layout/mesh/ExplodeLayouter.js ***!\n \\********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.layout.mesh.ExplodeLayouter = _packages2.default.layout.mesh.MeshLayouter.extend(\n/** @lends draw2d.layout.mesh.ExplodeLayouter.prototype */\n{\n\n MIN_MARGIN: 40,\n\n /**\n * Creates a new layouter object.\n */\n init: function init() {},\n\n /**\n *\n * Return a changes list for an existing mesh/canvas to ensure that the element to insert \n * did have enough space.\n * \n * @param {draw2d.Canvas} canvas the canvas to use for the analytic\n * @param {draw2d.Figure} figure The figure to add to the exising canvas\n * @param {Number} x requested x-position for the figure\n * @param {Number} y requested y-position for the figure\n * \n * \n * @returns {draw2d.util.ArrayList} a list of changes to apply if the user want to insert he figure.\n */\n add: function add(canvas, figureToAdd) {\n // changes for the different octant areas\n var changes = [];\n changes[0] = { x: 0, y: 0 };\n changes[1] = { x: 0, y: 0 };\n changes[2] = { x: 0, y: 0 };\n changes[3] = { x: 0, y: 0 };\n changes[4] = { x: 0, y: 0 };\n changes[5] = { x: 0, y: 0 };\n changes[6] = { x: 0, y: 0 };\n changes[7] = { x: 0, y: 0 };\n changes[8] = { x: 0, y: 0 };\n\n var boundingBox = figureToAdd.getBoundingBox();\n\n var figures = canvas.getFigures();\n var figure = null;\n\n var dis = 0;\n var oct = 0;\n var currentOctChanges = null;\n var i = 0;\n for (i = 0; i < figures.getSize(); i++) {\n\n figure = figures.get(i);\n\n // calculate the distance of all corners in relation to the requested x/y coordinate\n //\n if (figure !== figureToAdd) {\n dis = figure.getBoundingBox().getDistance(boundingBox);\n // other figure is to close\n //\n if (dis < this.MIN_MARGIN) {\n // determine the octant of the figure\n oct = this.determineOctant(boundingBox, figure.getBoundingBox());\n\n // all other relevant segments must be arranged too!!\n //\n switch (oct) {\n case 2:\n changes[2].x = Math.max(changes[2].x, this.MIN_MARGIN - dis);\n changes[3].x = Math.max(changes[3].x, this.MIN_MARGIN - dis);\n changes[4].x = Math.max(changes[4].x, this.MIN_MARGIN - dis);\n break;\n case 3:\n changes[2].x = Math.max(changes[2].x, this.MIN_MARGIN - dis);\n changes[3].x = Math.max(changes[3].x, this.MIN_MARGIN - dis);\n changes[4].x = Math.max(changes[4].x, this.MIN_MARGIN - dis);\n break;\n case 4:\n changes[2].x = Math.max(changes[2].x, this.MIN_MARGIN - dis);\n changes[3].x = Math.max(changes[3].x, this.MIN_MARGIN - dis);\n changes[4].x = Math.max(changes[4].x, this.MIN_MARGIN - dis);\n changes[4].y = Math.max(changes[4].y, this.MIN_MARGIN - dis);\n changes[5].y = Math.max(changes[5].y, this.MIN_MARGIN - dis);\n changes[6].y = Math.max(changes[6].y, this.MIN_MARGIN - dis);\n break;\n case 5:\n changes[4].y = Math.max(changes[4].y, this.MIN_MARGIN - dis);\n changes[5].y = Math.max(changes[5].y, this.MIN_MARGIN - dis);\n changes[6].y = Math.max(changes[6].y, this.MIN_MARGIN - dis);\n break;\n case 6:\n changes[4].y = Math.max(changes[4].y, this.MIN_MARGIN - dis);\n changes[5].y = Math.max(changes[5].y, this.MIN_MARGIN - dis);\n changes[6].y = Math.max(changes[6].y, this.MIN_MARGIN - dis);\n break;\n case 8:\n // overlapping\n // we must determine the new distance with the border of the figures\n dis = boundingBox.getBottomRight().getDistance(figure.getBoundingBox().getTopLeft()) | 0;\n\n changes[2].x = Math.max(changes[2].x, this.MIN_MARGIN + dis);\n changes[3].x = Math.max(changes[3].x, this.MIN_MARGIN + dis);\n changes[4].x = Math.max(changes[4].x, this.MIN_MARGIN + dis);\n changes[4].y = Math.max(changes[4].y, this.MIN_MARGIN + dis);\n changes[5].y = Math.max(changes[5].y, this.MIN_MARGIN + dis);\n changes[6].y = Math.max(changes[6].y, this.MIN_MARGIN + dis);\n changes[8].x = Math.max(changes[8].x, this.MIN_MARGIN + dis);\n // \t\t\t\tchanges[8].y = Math.max(changes[8].y,this.MIN_MARGIN+dis);\n }\n }\n }\n // Falls die minimale Distance zu den Objecten kleiner 80 ist, muss ein layout erfolgen\n }\n\n // calculate the adjustment for each figure\n //\n var result = new _packages2.default.util.ArrayList();\n for (i = 0; i < figures.getSize(); i++) {\n figure = figures.get(i);\n if (figure !== figureToAdd) {\n oct = this.determineOctant(boundingBox, figure.getBoundingBox());\n currentOctChanges = changes[oct];\n if (currentOctChanges.x !== 0 || currentOctChanges.y !== 0) {\n result.add(new _packages2.default.layout.mesh.ProposedMeshChange(figure, currentOctChanges.x, currentOctChanges.y));\n }\n }\n }\n\n return result;\n },\n\n /**\n *\n * Determin Octant\n *\n * 0 | 1 | 2\n * __|___|__\n * 7 | 8 | 3\n * __|___|__\n * 6 | 5 | 4\n *\n * @returns {Number}\n */\n determineOctant: function determineOctant(r1, r2) {\n var ox = r1.x;\n var oy = r1.y;\n var ow = r1.w;\n var oh = r1.h;\n\n var cx = r2.x;\n var cy = r2.y;\n var cw = r2.w;\n var ch = r2.h;\n var oct = 0;\n\n if (cx + cw <= ox) {\n if (cy + ch <= oy) {\n oct = 0;\n } else if (cy >= oy + oh) {\n oct = 6;\n } else {\n oct = 7;\n }\n } else if (cx >= ox + ow) {\n if (cy + ch <= oy) {\n oct = 2;\n } else if (cy >= oy + oh) {\n oct = 4;\n } else {\n oct = 3;\n }\n } else if (cy + ch <= oy) {\n oct = 1;\n } else if (cy >= oy + oh) {\n oct = 5;\n } else {\n oct = 8;\n }\n\n return oct;\n }\n});\n/**\n * @class\n * Routes a {@link draw2d.Connection}, possibly using a constraint.\n *\n * @author Andreas Herz\n * @extend draw2d.layout.mesh.MeshLayouter\n */\n\n/***/ }),\n\n/***/ \"./src/layout/mesh/MeshLayouter.js\":\n/*!*****************************************!*\\\n !*** ./src/layout/mesh/MeshLayouter.js ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.layout.mesh.MeshLayouter = Class.extend(\n/** @lends draw2d.layout.mesh.MeshLayouter.prototype */\n\n{\n\n /**\n * Creates a new layouter object.\n */\n init: function init() {},\n\n /**\n * \n * Return a changes list for an existing mesh/canvas to ensure that the element to insert\n * did have enough space.\n *\n * @param {draw2d.Canvas} canvas the canvas to use for the analytic\n * @param {draw2d.Figure} figure The figure to add to the exising canvas\n *\n *\n * @returns {draw2d.util.ArrayList} a list of changes to apply if the user want to insert he figure.\n */\n add: function add(canvas, figure) {\n return new _packages2.default.util.ArrayList();\n }\n});\n/**\n * @class\n * Layouter for a mesh or grid.\n *\n * @author Andreas Herz\n */\n\n/***/ }),\n\n/***/ \"./src/layout/mesh/ProposedMeshChange.js\":\n/*!***********************************************!*\\\n !*** ./src/layout/mesh/ProposedMeshChange.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.layout.mesh.ProposedMeshChange = Class.extend(\n/** @lends draw2d.layout.mesh.ProposedMeshChange.prototype */\n\n{\n\n /**\n * Creates change object.\n */\n init: function init(figure, x, y) {\n this.figure = figure;\n this.x = x;\n this.y = y;\n },\n\n /**\n *\n * Return the related figure.\n *\n * @returns {draw2d.Figure} the figure to the related change proposal\n */\n getFigure: function getFigure() {\n return this.figure;\n },\n\n /**\n *\n * The proposed x-coordinate.\n *\n * @returns {Number}\n */\n getX: function getX() {\n return this.x;\n },\n\n /**\n *\n * The proposed y-coordinate\n *\n * @returns {Number}\n */\n getY: function getY() {\n return this.y;\n }\n\n});\n/**\n * @class\n * Change proposal for grid/mesh layout changes.\n *\n * @author Andreas Herz\n */\n\n/***/ }),\n\n/***/ \"./src/lib/Class.exec.js\":\n/*!*******************************!*\\\n !*** ./src/lib/Class.exec.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(/*! !./node_modules/script-loader/addScript.js */ \"./node_modules/script-loader/addScript.js\")(__webpack_require__(/*! !./node_modules/raw-loader!./src/lib/Class.exec.js */ \"./node_modules/raw-loader/index.js!./src/lib/Class.exec.js\"));\n\n/***/ }),\n\n/***/ \"./src/lib/jquery.autoresize.js\":\n/*!**************************************!*\\\n !*** ./src/lib/jquery.autoresize.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/*\n * jQuery.fn.autoResize 1.14\n * --\n * https://github.com/padolsey/jQuery.fn.autoResize\n * --\n * This program is free software. It comes without any warranty, to\n * the extent permitted by applicable law. You can redistribute it\n * and/or modify it under the terms of the Do What The Fuck You Want\n * To Public License, Version 2, as published by Sam Hocevar. See\n * http://sam.zoy.org/wtfpl/COPYING for more details. */\n(function ($) {\n\n\tvar uid = 'ar' + +new Date(),\n\t defaults = autoResize.defaults = {\n\t\tonResize: function onResize() {},\n\t\tonBeforeResize: function onBeforeResize() {\n\t\t\treturn 123;\n\t\t},\n\t\tonAfterResize: function onAfterResize() {\n\t\t\treturn 555;\n\t\t},\n\t\tanimate: {\n\t\t\tduration: 200,\n\t\t\tcomplete: function complete() {}\n\t\t},\n\t\textraSpace: 50,\n\t\tminHeight: 'original',\n\t\tmaxHeight: 500,\n\t\tminWidth: 'original',\n\t\tmaxWidth: 500\n\t};\n\n\tautoResize.cloneCSSProperties = ['lineHeight', 'textDecoration', 'letterSpacing', 'fontSize', 'fontFamily', 'fontStyle', 'fontWeight', 'textTransform', 'textAlign', 'direction', 'wordSpacing', 'fontSizeAdjust', 'paddingTop', 'paddingLeft', 'paddingBottom', 'paddingRight', 'width'];\n\n\tautoResize.cloneCSSValues = {\n\t\tposition: 'absolute',\n\t\ttop: -9999,\n\t\tleft: -9999,\n\t\topacity: 0,\n\t\toverflow: 'hidden'\n\t};\n\n\tautoResize.resizableFilterSelector = ['textarea:not(textarea.' + uid + ')', 'input:not(input[type])', 'input[type=text]', 'input[type=password]', 'input[type=email]', 'input[type=url]'].join(',');\n\n\tautoResize.AutoResizer = AutoResizer;\n\n\t$.fn.autoResize = autoResize;\n\n\tfunction autoResize(config) {\n\t\tthis.filter(autoResize.resizableFilterSelector).each(function () {\n\t\t\tnew AutoResizer($(this), config);\n\t\t});\n\t\treturn this;\n\t}\n\n\tfunction AutoResizer(el, config) {\n\n\t\tif (el.data('AutoResizer')) {\n\t\t\tel.data('AutoResizer').destroy();\n\t\t}\n\n\t\tconfig = this.config = $.extend({}, autoResize.defaults, config);\n\t\tthis.el = el;\n\n\t\tthis.nodeName = el[0].nodeName.toLowerCase();\n\n\t\tthis.originalHeight = el.height();\n\t\tthis.previousScrollTop = null;\n\n\t\tthis.value = el.val();\n\n\t\tif (config.maxWidth === 'original') config.maxWidth = el.width();\n\t\tif (config.minWidth === 'original') config.minWidth = el.width();\n\t\tif (config.maxHeight === 'original') config.maxHeight = el.height();\n\t\tif (config.minHeight === 'original') config.minHeight = el.height();\n\n\t\tif (this.nodeName === 'textarea') {\n\t\t\tel.css({\n\t\t\t\tresize: 'none',\n\t\t\t\toverflowY: 'hidden'\n\t\t\t});\n\t\t}\n\n\t\tel.data('AutoResizer', this);\n\n\t\t// Make sure onAfterResize is called upon animation completion\n\t\tconfig.animate.complete = function (f) {\n\t\t\treturn function () {\n\t\t\t\tconfig.onAfterResize.call(el);\n\t\t\t\treturn f.apply(this, arguments);\n\t\t\t};\n\t\t}(config.animate.complete);\n\n\t\tthis.bind();\n\t}\n\n\tAutoResizer.prototype = {\n\n\t\tbind: function bind() {\n\n\t\t\tvar check = $.proxy(function () {\n\t\t\t\tthis.check();\n\t\t\t\treturn true;\n\t\t\t}, this);\n\n\t\t\tthis.unbind();\n\n\t\t\tthis.el.bind('keyup.autoResize', check)\n\t\t\t//.bind('keydown.autoResize', check)\n\t\t\t.bind('change.autoResize', check).bind('paste.autoResize', function () {\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\tcheck();\n\t\t\t\t}, 0);\n\t\t\t});\n\n\t\t\tif (!this.el.is(':hidden')) {\n\t\t\t\tthis.check(null, true);\n\t\t\t}\n\t\t},\n\n\t\tunbind: function unbind() {\n\t\t\tthis.el.unbind('.autoResize');\n\t\t},\n\n\t\tcreateClone: function createClone() {\n\n\t\t\tvar el = this.el,\n\t\t\t clone = this.nodeName === 'textarea' ? el.clone() : $('<span/>');\n\n\t\t\tthis.clone = clone;\n\n\t\t\t$.each(autoResize.cloneCSSProperties, function (i, p) {\n\t\t\t\tclone[0].style[p] = el.css(p);\n\t\t\t});\n\n\t\t\tclone.removeAttr('name').removeAttr('id').addClass(uid).attr('tabIndex', -1).css(autoResize.cloneCSSValues);\n\n\t\t\tif (this.nodeName === 'textarea') {\n\t\t\t\tclone.height('auto');\n\t\t\t} else {\n\t\t\t\tclone.width('auto').css({\n\t\t\t\t\twhiteSpace: 'nowrap'\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tcheck: function check(e, immediate) {\n\n\t\t\tif (!this.clone) {\n\t\t\t\tthis.createClone();\n\t\t\t\tthis.injectClone();\n\t\t\t}\n\n\t\t\tvar config = this.config,\n\t\t\t clone = this.clone,\n\t\t\t el = this.el,\n\t\t\t value = el.val();\n\n\t\t\t// Do nothing if value hasn't changed\n\t\t\tif (value === this.prevValue) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tthis.prevValue = value;\n\n\t\t\tif (this.nodeName === 'input') {\n\n\t\t\t\tclone.text(value);\n\n\t\t\t\t// Calculate new width + whether to change\n\t\t\t\tvar cloneWidth = clone.width(),\n\t\t\t\t newWidth = cloneWidth + config.extraSpace >= config.minWidth ? cloneWidth + config.extraSpace : config.minWidth,\n\t\t\t\t currentWidth = el.width();\n\n\t\t\t\tnewWidth = Math.min(newWidth, config.maxWidth);\n\n\t\t\t\tif (newWidth < currentWidth && newWidth >= config.minWidth || newWidth >= config.minWidth && newWidth <= config.maxWidth) {\n\n\t\t\t\t\tconfig.onBeforeResize.call(el);\n\t\t\t\t\tconfig.onResize.call(el);\n\n\t\t\t\t\tel.scrollLeft(0);\n\n\t\t\t\t\tif (config.animate && !immediate) {\n\t\t\t\t\t\tel.stop(1, 1).animate({\n\t\t\t\t\t\t\twidth: newWidth\n\t\t\t\t\t\t}, config.animate);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tel.width(newWidth);\n\t\t\t\t\t\tconfig.onAfterResize.call(el);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// TEXTAREA\n\n\t\t\tclone.width(el.width()).height(0).val(value).scrollTop(10000);\n\n\t\t\tvar scrollTop = clone[0].scrollTop;\n\n\t\t\tif (!value) {\n\t\t\t\t// empty textarea should be exactly minHeight\n\t\t\t\tscrollTop = config.minHeight;\n\t\t\t\tthis.previousScrollTop = null; // reset state\n\t\t\t} else {\n\t\t\t\t// Don't do anything if scrollTop hasen't changed:\n\t\t\t\tif (this.previousScrollTop === scrollTop) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.previousScrollTop = scrollTop;\n\n\t\t\t\tif (scrollTop + config.extraSpace >= config.maxHeight) {\n\t\t\t\t\tel.css('overflowY', '');\n\t\t\t\t\tscrollTop = config.maxHeight;\n\t\t\t\t\timmediate = true;\n\t\t\t\t} else if (scrollTop + config.extraSpace <= config.minHeight) {\n\t\t\t\t\t// include extraSpace in calculations so the code works correctly\n\t\t\t\t\t// when there are few lines\n\t\t\t\t\tscrollTop = config.minHeight;\n\t\t\t\t} else {\n\t\t\t\t\tel.css('overflowY', 'hidden');\n\t\t\t\t\tscrollTop += config.extraSpace;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconfig.onBeforeResize.call(el);\n\t\t\tconfig.onResize.call(el);\n\n\t\t\t// Either animate or directly apply height:\n\t\t\tif (config.animate && !immediate) {\n\t\t\t\tel.stop(1, 1).animate({\n\t\t\t\t\theight: scrollTop\n\t\t\t\t}, config.animate);\n\t\t\t} else {\n\t\t\t\tel.height(scrollTop);\n\t\t\t\tconfig.onAfterResize.call(el);\n\t\t\t}\n\t\t},\n\n\t\tdestroy: function destroy() {\n\t\t\tthis.unbind();\n\t\t\tthis.el.removeData('AutoResizer');\n\t\t\tthis.clone.remove();\n\t\t\tdelete this.el;\n\t\t\tdelete this.clone;\n\t\t},\n\n\t\tinjectClone: function injectClone() {\n\t\t\t(autoResize.cloneContainer || (autoResize.cloneContainer = $('<arclones/>').appendTo('body'))).append(this.clone);\n\t\t}\n\n\t};\n})(jQuery);\n\n/***/ }),\n\n/***/ \"./src/lib/jquery.contextmenu.js\":\n/*!***************************************!*\\\n !*** ./src/lib/jquery.contextmenu.js ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/*!\n * jQuery contextMenu - Plugin for simple contextMenu handling\n *\n * Version: 1.6.5\n *\n * Authors: Rodney Rehm, Addy Osmani (patches for FF)\n * Web: http://medialize.github.com/jQuery-contextMenu/\n *\n * Licensed under\n * MIT License http://www.opensource.org/licenses/mit-license\n * GPL v3 http://opensource.org/licenses/GPL-3.0\n *\n */\n(function ($, undefined) {\n\n // TODO: -\n // ARIA stuff: menuitem, menuitemcheckbox und menuitemradio\n // create <menu> structure if $.support[htmlCommand || htmlMenuitem] and !opt.disableNative\n\n // determine html5 compatibility\n $.support.htmlMenuitem = 'HTMLMenuItemElement' in window;\n $.support.htmlCommand = 'HTMLCommandElement' in window;\n $.support.eventSelectstart = \"onselectstart\" in document.documentElement;\n /* // should the need arise, test for css user-select\n $.support.cssUserSelect = (function(){\n var t = false,\n e = document.createElement('div');\n \n $.each('Moz|Webkit|Khtml|O|ms|Icab|'.split('|'), function(i, prefix) {\n var propCC = prefix + (prefix ? 'U' : 'u') + 'serSelect',\n prop = (prefix ? ('-' + prefix.toLowerCase() + '-') : '') + 'user-select';\n \n e.style.cssText = prop + ': text;';\n if (e.style[propCC] == 'text') {\n t = true;\n return false;\n }\n \n return true;\n });\n \n return t;\n })();\n */\n\n if (!$.ui || !$.ui.widget) {\n // duck punch $.cleanData like jQueryUI does to get that remove event\n // https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.widget.js#L16-24\n var _cleanData = $.cleanData;\n $.cleanData = function (elems) {\n for (var i = 0, elem; (elem = elems[i]) != null; i++) {\n try {\n $(elem).triggerHandler(\"remove\");\n // http://bugs.jquery.com/ticket/8235\n } catch (e) {}\n }\n _cleanData(elems);\n };\n }\n\n var // currently active contextMenu trigger\n $currentTrigger = null,\n\n // is contextMenu initialized with at least one menu?\n initialized = false,\n\n // window handle\n $win = $(window),\n\n // number of registered menus\n counter = 0,\n\n // mapping selector to namespace\n namespaces = {},\n\n // mapping namespace to options\n menus = {},\n\n // custom command type handlers\n types = {},\n\n // default values\n defaults = {\n // selector of contextMenu trigger\n selector: null,\n // where to append the menu to\n appendTo: null,\n // method to trigger context menu [\"right\", \"left\", \"hover\"]\n trigger: \"right\",\n // hide menu when mouse leaves trigger / menu elements\n autoHide: false,\n // ms to wait before showing a hover-triggered context menu\n delay: 200,\n // flag denoting if a second trigger should simply move (true) or rebuild (false) an open menu\n // as long as the trigger happened on one of the trigger-element's child nodes\n reposition: false,\n // determine position to show menu at\n determinePosition: function determinePosition($menu) {\n // position to the lower middle of the trigger element\n if ($.ui && $.ui.position) {\n // .position() is provided as a jQuery UI utility\n // (...and it won't work on hidden elements)\n $menu.css('display', 'block').position({\n my: \"center top\",\n at: \"center bottom\",\n of: this,\n offset: \"0 5\",\n collision: \"fit\"\n }).css('display', 'none');\n } else {\n // determine contextMenu position\n var offset = this.offset();\n offset.top += this.outerHeight();\n offset.left += this.outerWidth() / 2 - $menu.outerWidth() / 2;\n $menu.css(offset);\n }\n },\n // position menu\n position: function position(opt, x, y) {\n var $this = this,\n offset;\n // determine contextMenu position\n if (!x && !y) {\n opt.determinePosition.call(this, opt.$menu);\n return;\n } else if (x === \"maintain\" && y === \"maintain\") {\n // x and y must not be changed (after re-show on command click)\n offset = opt.$menu.position();\n } else {\n // x and y are given (by mouse event)\n offset = { top: y, left: x };\n }\n\n // correct offset if viewport demands it\n var bottom = $win.scrollTop() + $win.height(),\n right = $win.scrollLeft() + $win.width(),\n height = opt.$menu.height(),\n width = opt.$menu.width();\n\n if (offset.top + height > bottom) {\n offset.top -= height;\n }\n\n if (offset.left + width > right) {\n offset.left -= width;\n }\n\n opt.$menu.css(offset);\n },\n // position the sub-menu\n positionSubmenu: function positionSubmenu($menu) {\n if ($.ui && $.ui.position) {\n // .position() is provided as a jQuery UI utility\n // (...and it won't work on hidden elements)\n $menu.css('display', 'block').position({\n my: \"left top\",\n at: \"right top\",\n of: this,\n collision: \"flipfit fit\"\n }).css('display', '');\n } else {\n // determine contextMenu position\n var offset = {\n top: 0,\n left: this.outerWidth()\n };\n $menu.css(offset);\n }\n },\n // offset to add to zIndex\n zIndex: 1,\n // show hide animation settings\n animation: {\n duration: 50,\n show: 'slideDown',\n hide: 'slideUp'\n },\n // events\n events: {\n show: $.noop,\n hide: $.noop\n },\n // default callback\n callback: null,\n // list of contextMenu items\n items: {}\n },\n\n // mouse position for hover activation\n hoveract = {\n timer: null,\n pageX: null,\n pageY: null\n },\n\n // determine zIndex\n zindex = function zindex($t) {\n var zin = 0,\n $tt = $t;\n\n while (true) {\n zin = Math.max(zin, parseInt($tt.css('z-index'), 10) || 0);\n $tt = $tt.parent();\n if (!$tt || !$tt.length || \"html body\".indexOf($tt.prop('nodeName').toLowerCase()) > -1) {\n break;\n }\n }\n\n return zin;\n },\n\n // event handlers\n handle = {\n // abort anything\n abortevent: function abortevent(e) {\n e.preventDefault();\n e.stopImmediatePropagation();\n },\n\n // contextmenu show dispatcher\n contextmenu: function contextmenu(e) {\n var $this = $(this);\n\n // disable actual context-menu\n e.preventDefault();\n e.stopImmediatePropagation();\n\n // abort native-triggered events unless we're triggering on right click\n if (e.data.trigger != 'right' && e.originalEvent) {\n return;\n }\n\n // abort event if menu is visible for this trigger\n if ($this.hasClass('context-menu-active')) {\n return;\n }\n\n if (!$this.hasClass('context-menu-disabled')) {\n // theoretically need to fire a show event at <menu>\n // http://www.whatwg.org/specs/web-apps/current-work/multipage/interactive-elements.html#context-menus\n // var evt = jQuery.Event(\"show\", { data: data, pageX: e.pageX, pageY: e.pageY, relatedTarget: this });\n // e.data.$menu.trigger(evt);\n\n $currentTrigger = $this;\n if (e.data.build) {\n var built = e.data.build($currentTrigger, e);\n // abort if build() returned false\n if (built === false) {\n return;\n }\n\n // dynamically build menu on invocation\n e.data = $.extend(true, {}, defaults, e.data, built || {});\n\n // abort if there are no items to display\n if (!e.data.items || $.isEmptyObject(e.data.items)) {\n // Note: jQuery captures and ignores errors from event handlers\n if (window.console) {\n (console.error || console.log)(\"No items specified to show in contextMenu\");\n }\n\n throw new Error('No Items sepcified');\n }\n\n // backreference for custom command type creation\n e.data.$trigger = $currentTrigger;\n\n op.create(e.data);\n }\n // show menu\n op.show.call($this, e.data, e.pageX, e.pageY);\n }\n },\n // contextMenu left-click trigger\n click: function click(e) {\n e.preventDefault();\n e.stopImmediatePropagation();\n $(this).trigger($.Event(\"contextmenu\", { data: e.data, pageX: e.pageX, pageY: e.pageY }));\n },\n // contextMenu right-click trigger\n mousedown: function mousedown(e) {\n // register mouse down\n var $this = $(this);\n\n // hide any previous menus\n if ($currentTrigger && $currentTrigger.length && !$currentTrigger.is($this)) {\n $currentTrigger.data('contextMenu').$menu.trigger('contextmenu:hide');\n }\n\n // activate on right click\n if (e.button == 2) {\n $currentTrigger = $this.data('contextMenuActive', true);\n }\n },\n // contextMenu right-click trigger\n mouseup: function mouseup(e) {\n // show menu\n var $this = $(this);\n if ($this.data('contextMenuActive') && $currentTrigger && $currentTrigger.length && $currentTrigger.is($this) && !$this.hasClass('context-menu-disabled')) {\n e.preventDefault();\n e.stopImmediatePropagation();\n $currentTrigger = $this;\n $this.trigger($.Event(\"contextmenu\", { data: e.data, pageX: e.pageX, pageY: e.pageY }));\n }\n\n $this.removeData('contextMenuActive');\n },\n // contextMenu hover trigger\n mouseenter: function mouseenter(e) {\n var $this = $(this),\n $related = $(e.relatedTarget),\n $document = $(document);\n\n // abort if we're coming from a menu\n if ($related.is('.context-menu-list') || $related.closest('.context-menu-list').length) {\n return;\n }\n\n // abort if a menu is shown\n if ($currentTrigger && $currentTrigger.length) {\n return;\n }\n\n hoveract.pageX = e.pageX;\n hoveract.pageY = e.pageY;\n hoveract.data = e.data;\n $document.on('mousemove.contextMenuShow', handle.mousemove);\n hoveract.timer = setTimeout(function () {\n hoveract.timer = null;\n $document.off('mousemove.contextMenuShow');\n $currentTrigger = $this;\n $this.trigger($.Event(\"contextmenu\", { data: hoveract.data, pageX: hoveract.pageX, pageY: hoveract.pageY }));\n }, e.data.delay);\n },\n // contextMenu hover trigger\n mousemove: function mousemove(e) {\n hoveract.pageX = e.pageX;\n hoveract.pageY = e.pageY;\n },\n // contextMenu hover trigger\n mouseleave: function mouseleave(e) {\n // abort if we're leaving for a menu\n var $related = $(e.relatedTarget);\n if ($related.is('.context-menu-list') || $related.closest('.context-menu-list').length) {\n return;\n }\n\n try {\n clearTimeout(hoveract.timer);\n } catch (e) {}\n\n hoveract.timer = null;\n },\n\n // click on layer to hide contextMenu\n layerClick: function layerClick(e) {\n var $this = $(this),\n root = $this.data('contextMenuRoot'),\n mouseup = false,\n button = e.button,\n x = e.pageX,\n y = e.pageY,\n target,\n offset,\n selectors;\n\n e.preventDefault();\n e.stopImmediatePropagation();\n\n setTimeout(function () {\n var $window, hideshow, possibleTarget;\n var triggerAction = root.trigger == 'left' && button === 0 || root.trigger == 'right' && button === 2;\n\n // find the element that would've been clicked, wasn't the layer in the way\n if (document.elementFromPoint) {\n root.$layer.hide();\n target = document.elementFromPoint(x - $win.scrollLeft(), y - $win.scrollTop());\n root.$layer.show();\n }\n\n if (root.reposition && triggerAction) {\n if (document.elementFromPoint) {\n if (root.$trigger.is(target) || root.$trigger.has(target).length) {\n root.position.call(root.$trigger, root, x, y);\n return;\n }\n } else {\n offset = root.$trigger.offset();\n $window = $(window);\n // while this looks kinda awful, it's the best way to avoid\n // unnecessarily calculating any positions\n offset.top += $window.scrollTop();\n if (offset.top <= e.pageY) {\n offset.left += $window.scrollLeft();\n if (offset.left <= e.pageX) {\n offset.bottom = offset.top + root.$trigger.outerHeight();\n if (offset.bottom >= e.pageY) {\n offset.right = offset.left + root.$trigger.outerWidth();\n if (offset.right >= e.pageX) {\n // reposition\n root.position.call(root.$trigger, root, x, y);\n return;\n }\n }\n }\n }\n }\n }\n\n if (target && triggerAction) {\n root.$trigger.one('contextmenu:hidden', function () {\n $(target).contextMenu({ x: x, y: y });\n });\n }\n\n root.$menu.trigger('contextmenu:hide');\n }, 50);\n },\n // key handled :hover\n keyStop: function keyStop(e, opt) {\n if (!opt.isInput) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n },\n key: function key(e) {\n var opt = $currentTrigger.data('contextMenu') || {};\n\n switch (e.keyCode) {\n case 9:\n case 38:\n // up\n handle.keyStop(e, opt);\n // if keyCode is [38 (up)] or [9 (tab) with shift]\n if (opt.isInput) {\n if (e.keyCode == 9 && e.shiftKey) {\n e.preventDefault();\n opt.$selected && opt.$selected.find('input, textarea, select').blur();\n opt.$menu.trigger('prevcommand');\n return;\n } else if (e.keyCode == 38 && opt.$selected.find('input, textarea, select').prop('type') == 'checkbox') {\n // checkboxes don't capture this key\n e.preventDefault();\n return;\n }\n } else if (e.keyCode != 9 || e.shiftKey) {\n opt.$menu.trigger('prevcommand');\n return;\n }\n // omitting break;\n\n // case 9: // tab - reached through omitted break;\n case 40:\n // down\n handle.keyStop(e, opt);\n if (opt.isInput) {\n if (e.keyCode == 9) {\n e.preventDefault();\n opt.$selected && opt.$selected.find('input, textarea, select').blur();\n opt.$menu.trigger('nextcommand');\n return;\n } else if (e.keyCode == 40 && opt.$selected.find('input, textarea, select').prop('type') == 'checkbox') {\n // checkboxes don't capture this key\n e.preventDefault();\n return;\n }\n } else {\n opt.$menu.trigger('nextcommand');\n return;\n }\n break;\n\n case 37:\n // left\n handle.keyStop(e, opt);\n if (opt.isInput || !opt.$selected || !opt.$selected.length) {\n break;\n }\n\n if (!opt.$selected.parent().hasClass('context-menu-root')) {\n var $parent = opt.$selected.parent().parent();\n opt.$selected.trigger('contextmenu:blur');\n opt.$selected = $parent;\n return;\n }\n break;\n\n case 39:\n // right\n handle.keyStop(e, opt);\n if (opt.isInput || !opt.$selected || !opt.$selected.length) {\n break;\n }\n\n var itemdata = opt.$selected.data('contextMenu') || {};\n if (itemdata.$menu && opt.$selected.hasClass('context-menu-submenu')) {\n opt.$selected = null;\n itemdata.$selected = null;\n itemdata.$menu.trigger('nextcommand');\n return;\n }\n break;\n\n case 35: // end\n case 36:\n // home\n if (opt.$selected && opt.$selected.find('input, textarea, select').length) {\n return;\n } else {\n (opt.$selected && opt.$selected.parent() || opt.$menu).children(':not(.disabled, .not-selectable)')[e.keyCode == 36 ? 'first' : 'last']().trigger('contextmenu:focus');\n e.preventDefault();\n return;\n }\n break;\n\n case 13:\n // enter\n handle.keyStop(e, opt);\n if (opt.isInput) {\n if (opt.$selected && !opt.$selected.is('textarea, select')) {\n e.preventDefault();\n return;\n }\n break;\n }\n opt.$selected && opt.$selected.trigger('mouseup');\n return;\n\n case 32: // space\n case 33: // page up\n case 34:\n // page down\n // prevent browser from scrolling down while menu is visible\n handle.keyStop(e, opt);\n return;\n\n case 27:\n // esc\n handle.keyStop(e, opt);\n opt.$menu.trigger('contextmenu:hide');\n return;\n\n default:\n // 0-9, a-z\n var k = String.fromCharCode(e.keyCode).toUpperCase();\n if (opt.accesskeys[k]) {\n // according to the specs accesskeys must be invoked immediately\n opt.accesskeys[k].$node.trigger(opt.accesskeys[k].$menu ? 'contextmenu:focus' : 'mouseup');\n return;\n }\n break;\n }\n // pass event to selected item,\n // stop propagation to avoid endless recursion\n e.stopPropagation();\n opt.$selected && opt.$selected.trigger(e);\n },\n\n // select previous possible command in menu\n prevItem: function prevItem(e) {\n e.stopPropagation();\n var opt = $(this).data('contextMenu') || {};\n\n // obtain currently selected menu\n if (opt.$selected) {\n var $s = opt.$selected;\n opt = opt.$selected.parent().data('contextMenu') || {};\n opt.$selected = $s;\n }\n\n var $children = opt.$menu.children(),\n $prev = !opt.$selected || !opt.$selected.prev().length ? $children.last() : opt.$selected.prev(),\n $round = $prev;\n\n // skip disabled\n while ($prev.hasClass('disabled') || $prev.hasClass('not-selectable')) {\n if ($prev.prev().length) {\n $prev = $prev.prev();\n } else {\n $prev = $children.last();\n }\n if ($prev.is($round)) {\n // break endless loop\n return;\n }\n }\n\n // leave current\n if (opt.$selected) {\n handle.itemMouseleave.call(opt.$selected.get(0), e);\n }\n\n // activate next\n handle.itemMouseenter.call($prev.get(0), e);\n\n // focus input\n var $input = $prev.find('input, textarea, select');\n if ($input.length) {\n $input.focus();\n }\n },\n // select next possible command in menu\n nextItem: function nextItem(e) {\n e.stopPropagation();\n var opt = $(this).data('contextMenu') || {};\n\n // obtain currently selected menu\n if (opt.$selected) {\n var $s = opt.$selected;\n opt = opt.$selected.parent().data('contextMenu') || {};\n opt.$selected = $s;\n }\n\n var $children = opt.$menu.children(),\n $next = !opt.$selected || !opt.$selected.next().length ? $children.first() : opt.$selected.next(),\n $round = $next;\n\n // skip disabled\n while ($next.hasClass('disabled') || $next.hasClass('not-selectable')) {\n if ($next.next().length) {\n $next = $next.next();\n } else {\n $next = $children.first();\n }\n if ($next.is($round)) {\n // break endless loop\n return;\n }\n }\n\n // leave current\n if (opt.$selected) {\n handle.itemMouseleave.call(opt.$selected.get(0), e);\n }\n\n // activate next\n handle.itemMouseenter.call($next.get(0), e);\n\n // focus input\n var $input = $next.find('input, textarea, select');\n if ($input.length) {\n $input.focus();\n }\n },\n\n // flag that we're inside an input so the key handler can act accordingly\n focusInput: function focusInput(e) {\n var $this = $(this).closest('.context-menu-item'),\n data = $this.data(),\n opt = data.contextMenu,\n root = data.contextMenuRoot;\n\n root.$selected = opt.$selected = $this;\n root.isInput = opt.isInput = true;\n },\n // flag that we're inside an input so the key handler can act accordingly\n blurInput: function blurInput(e) {\n var $this = $(this).closest('.context-menu-item'),\n data = $this.data(),\n opt = data.contextMenu,\n root = data.contextMenuRoot;\n\n root.isInput = opt.isInput = false;\n },\n\n // :hover on menu\n menuMouseenter: function menuMouseenter(e) {\n var root = $(this).data().contextMenuRoot;\n if (root) root.hovering = true;\n },\n // :hover on menu\n menuMouseleave: function menuMouseleave(e) {\n var root = $(this).data().contextMenuRoot;\n if (root && root.$layer && root.$layer.is(e.relatedTarget)) {\n root.hovering = false;\n }\n },\n\n // :hover done manually so key handling is possible\n itemMouseenter: function itemMouseenter(e) {\n var $this = $(this),\n data = $this.data(),\n opt = data.contextMenu,\n root = data.contextMenuRoot;\n\n if (!root) return;\n\n root.hovering = true;\n\n // abort if we're re-entering\n if (e && root.$layer && root.$layer.is(e.relatedTarget)) {\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n\n // make sure only one item is selected\n (opt.$menu ? opt : root).$menu.children('.hover').trigger('contextmenu:blur');\n\n if ($this.hasClass('disabled') || $this.hasClass('not-selectable')) {\n opt.$selected = null;\n return;\n }\n\n $this.trigger('contextmenu:focus');\n },\n // :hover done manually so key handling is possible\n itemMouseleave: function itemMouseleave(e) {\n var $this = $(this),\n data = $this.data(),\n opt = data.contextMenu,\n root = data.contextMenuRoot;\n\n if (root && root !== opt && root.$layer && root.$layer.is(e.relatedTarget)) {\n root.$selected && root.$selected.trigger('contextmenu:blur');\n e.preventDefault();\n e.stopImmediatePropagation();\n root.$selected = opt.$selected = opt.$node;\n return;\n }\n\n $this.trigger('contextmenu:blur');\n },\n // contextMenu item click\n itemClick: function itemClick(e) {\n var $this = $(this),\n data = $this.data(),\n opt = data.contextMenu,\n root = data.contextMenuRoot,\n key = data.contextMenuKey,\n callback;\n\n // abort if the key is unknown or disabled or is a menu\n if (!opt.items[key] || $this.is('.disabled, .context-menu-submenu, .context-menu-separator, .not-selectable')) {\n return;\n }\n\n e.preventDefault();\n e.stopImmediatePropagation();\n\n if ($.isFunction(root.callbacks[key]) && Object.prototype.hasOwnProperty.call(root.callbacks, key)) {\n // item-specific callback\n callback = root.callbacks[key];\n } else if ($.isFunction(root.callback)) {\n // default callback\n callback = root.callback;\n } else {\n // no callback, no action\n return;\n }\n\n // hide menu if callback doesn't stop that\n if (callback.call(root.$trigger, key, root) !== false) {\n root.$menu.trigger('contextmenu:hide');\n } else if (root.$menu.parent().length) {\n op.update.call(root.$trigger, root);\n }\n },\n // ignore click events on input elements\n inputClick: function inputClick(e) {\n e.stopImmediatePropagation();\n },\n\n // hide <menu>\n hideMenu: function hideMenu(e, data) {\n var root = $(this).data('contextMenuRoot');\n op.hide.call(root.$trigger, root, data && data.force);\n },\n // focus <command>\n focusItem: function focusItem(e) {\n e.stopPropagation();\n var $this = $(this),\n data = $this.data(),\n opt = data.contextMenu,\n root = data.contextMenuRoot;\n\n $this.addClass('hover').siblings('.hover').trigger('contextmenu:blur');\n\n // remember selected\n opt.$selected = root.$selected = $this;\n\n // position sub-menu - do after show so dumb $.ui.position can keep up\n if (opt.$node) {\n root.positionSubmenu.call(opt.$node, opt.$menu);\n }\n },\n // blur <command>\n blurItem: function blurItem(e) {\n e.stopPropagation();\n var $this = $(this),\n data = $this.data(),\n opt = data.contextMenu;\n\n $this.removeClass('hover');\n if (opt) opt.$selected = null;\n }\n },\n\n // operations\n op = {\n show: function show(opt, x, y) {\n var $trigger = $(this),\n offset,\n css = {};\n\n // hide any open menus\n $('#context-menu-layer').trigger('mousedown');\n\n // backreference for callbacks\n opt.$trigger = $trigger;\n\n // show event\n if (opt.events.show.call($trigger, opt) === false) {\n $currentTrigger = null;\n return;\n }\n\n // create or update context menu\n op.update.call($trigger, opt);\n\n // position menu\n opt.position.call($trigger, opt, x, y);\n\n // make sure we're in front\n if (opt.zIndex) {\n css.zIndex = zindex($trigger) + opt.zIndex;\n }\n\n // add layer\n op.layer.call(opt.$menu, opt, css.zIndex);\n\n // adjust sub-menu zIndexes\n opt.$menu.find('ul').css('zIndex', css.zIndex + 1);\n\n // position and show context menu\n opt.$menu.css(css)[opt.animation.show](opt.animation.duration, function () {\n $trigger.trigger('contextmenu:visible');\n });\n // make options available and set state\n $trigger.data('contextMenu', opt).addClass(\"context-menu-active\");\n\n // register key handler\n $(document).off('keydown.contextMenu').on('keydown.contextMenu', handle.key);\n // register autoHide handler\n if (opt.autoHide) {\n // mouse position handler\n $(document).on('mousemove.contextMenuAutoHide', function (e) {\n // need to capture the offset on mousemove,\n // since the page might've been scrolled since activation\n var pos = $trigger.offset();\n pos.right = pos.left + $trigger.outerWidth();\n pos.bottom = pos.top + $trigger.outerHeight();\n\n if (opt.$layer && !opt.hovering && (!(e.pageX >= pos.left && e.pageX <= pos.right) || !(e.pageY >= pos.top && e.pageY <= pos.bottom))) {\n // if mouse in menu...\n opt.$menu.trigger('contextmenu:hide');\n }\n });\n }\n },\n hide: function hide(opt, force) {\n var $trigger = $(this);\n if (!opt) {\n opt = $trigger.data('contextMenu') || {};\n }\n\n // hide event\n if (!force && opt.events && opt.events.hide.call($trigger, opt) === false) {\n return;\n }\n\n // remove options and revert state\n $trigger.removeData('contextMenu').removeClass(\"context-menu-active\");\n\n if (opt.$layer) {\n // keep layer for a bit so the contextmenu event can be aborted properly by opera\n setTimeout(function ($layer) {\n return function () {\n $layer.remove();\n };\n }(opt.$layer), 10);\n\n try {\n delete opt.$layer;\n } catch (e) {\n opt.$layer = null;\n }\n }\n\n // remove handle\n $currentTrigger = null;\n // remove selected\n opt.$menu.find('.hover').trigger('contextmenu:blur');\n opt.$selected = null;\n // unregister key and mouse handlers\n //$(document).off('.contextMenuAutoHide keydown.contextMenu'); // http://bugs.jquery.com/ticket/10705\n $(document).off('.contextMenuAutoHide').off('keydown.contextMenu');\n // hide menu\n opt.$menu && opt.$menu[opt.animation.hide](opt.animation.duration, function () {\n // tear down dynamically built menu after animation is completed.\n if (opt.build) {\n opt.$menu.remove();\n $.each(opt, function (key, value) {\n switch (key) {\n case 'ns':\n case 'selector':\n case 'build':\n case 'trigger':\n return true;\n\n default:\n opt[key] = undefined;\n try {\n delete opt[key];\n } catch (e) {}\n return true;\n }\n });\n }\n\n setTimeout(function () {\n $trigger.trigger('contextmenu:hidden');\n }, 10);\n });\n },\n create: function create(opt, root) {\n if (root === undefined) {\n root = opt;\n }\n // create contextMenu\n opt.$menu = $('<ul class=\"context-menu-list\"></ul>').addClass(opt.className || \"\").data({\n 'contextMenu': opt,\n 'contextMenuRoot': root\n });\n\n $.each(['callbacks', 'commands', 'inputs'], function (i, k) {\n opt[k] = {};\n if (!root[k]) {\n root[k] = {};\n }\n });\n\n root.accesskeys || (root.accesskeys = {});\n\n // create contextMenu items\n $.each(opt.items, function (key, item) {\n var $t = $('<li class=\"context-menu-item\"></li>').addClass(item.className || \"\"),\n $label = null,\n $input = null;\n\n // iOS needs to see a click-event bound to an element to actually\n // have the TouchEvents infrastructure trigger the click event\n $t.on('click', $.noop);\n\n if (typeof item !== \"string\") {\n item.$node = $t.data({\n 'contextMenu': opt,\n 'contextMenuRoot': root,\n 'contextMenuKey': key\n });\n }\n\n // register accesskey\n // NOTE: the accesskey attribute should be applicable to any element, but Safari5 and Chrome13 still can't do that\n if (item.accesskey) {\n var aks = splitAccesskey(item.accesskey);\n for (var i = 0, ak; ak = aks[i]; i++) {\n if (!root.accesskeys[ak]) {\n root.accesskeys[ak] = item;\n item._name = item.name.replace(new RegExp('(' + ak + ')', 'i'), '<span class=\"context-menu-accesskey\">$1</span>');\n break;\n }\n }\n }\n\n if (typeof item == \"string\") {\n $t.addClass('context-menu-separator not-selectable');\n } else if (item.type && types[item.type]) {\n // run custom type handler\n types[item.type].call($t, item, opt, root);\n // register commands\n $.each([opt, root], function (i, k) {\n k.commands[key] = item;\n if ($.isFunction(item.callback)) {\n k.callbacks[key] = item.callback;\n }\n });\n } else {\n // add label for input\n if (item.type == 'html') {\n $t.addClass('context-menu-html not-selectable');\n } else if (item.type) {\n $label = $('<label></label>').appendTo($t);\n $('<span></span>').html(item._name || item.name).appendTo($label);\n $t.addClass('context-menu-input');\n opt.hasTypes = true;\n $.each([opt, root], function (i, k) {\n k.commands[key] = item;\n k.inputs[key] = item;\n });\n } else if (item.items) {\n item.type = 'sub';\n }\n\n switch (item.type) {\n case 'text':\n $input = $('<input type=\"text\" value=\"1\" name=\"\" value=\"\">').attr('name', 'context-menu-input-' + key).val(item.value || \"\").appendTo($label);\n break;\n\n case 'textarea':\n $input = $('<textarea name=\"\"></textarea>').attr('name', 'context-menu-input-' + key).val(item.value || \"\").appendTo($label);\n\n if (item.height) {\n $input.height(item.height);\n }\n break;\n\n case 'checkbox':\n $input = $('<input type=\"checkbox\" value=\"1\" name=\"\" value=\"\">').attr('name', 'context-menu-input-' + key).val(item.value || \"\").prop(\"checked\", !!item.selected).prependTo($label);\n break;\n\n case 'radio':\n $input = $('<input type=\"radio\" value=\"1\" name=\"\" value=\"\">').attr('name', 'context-menu-input-' + item.radio).val(item.value || \"\").prop(\"checked\", !!item.selected).prependTo($label);\n break;\n\n case 'select':\n $input = $('<select name=\"\">').attr('name', 'context-menu-input-' + key).appendTo($label);\n if (item.options) {\n $.each(item.options, function (value, text) {\n $('<option></option>').val(value).text(text).appendTo($input);\n });\n $input.val(item.selected);\n }\n break;\n\n case 'sub':\n // FIXME: shouldn't this .html() be a .text()?\n $('<span></span>').html(item._name || item.name).appendTo($t);\n item.appendTo = item.$node;\n op.create(item, root);\n $t.data('contextMenu', item).addClass('context-menu-submenu');\n item.callback = null;\n break;\n\n case 'html':\n $(item.html).appendTo($t);\n break;\n\n default:\n $.each([opt, root], function (i, k) {\n k.commands[key] = item;\n if ($.isFunction(item.callback)) {\n k.callbacks[key] = item.callback;\n }\n });\n // FIXME: shouldn't this .html() be a .text()?\n $('<span></span>').html(item._name || item.name || \"\").appendTo($t);\n break;\n }\n\n // disable key listener in <input>\n if (item.type && item.type != 'sub' && item.type != 'html') {\n $input.on('focus', handle.focusInput).on('blur', handle.blurInput);\n\n if (item.events) {\n $input.on(item.events, opt);\n }\n }\n\n // add icons\n if (item.icon) {\n $t.addClass(\"icon icon-\" + item.icon);\n }\n }\n\n // cache contained elements\n if (typeof item !== \"string\") {\n item.$input = $input;\n item.$label = $label;\n }\n\n // attach item to menu\n $t.appendTo(opt.$menu);\n\n // Disable text selection\n if (!opt.hasTypes && $.support.eventSelectstart) {\n // browsers support user-select: none,\n // IE has a special event for text-selection\n // browsers supporting neither will not be preventing text-selection\n $t.on('selectstart.disableTextSelect', handle.abortevent);\n }\n });\n // attach contextMenu to <body> (to bypass any possible overflow:hidden issues on parents of the trigger element)\n if (!opt.$node) {\n opt.$menu.css('display', 'none').addClass('context-menu-root');\n }\n opt.$menu.appendTo(opt.appendTo || document.body);\n },\n resize: function resize($menu, nested) {\n // determine widths of submenus, as CSS won't grow them automatically\n // position:absolute within position:absolute; min-width:100; max-width:200; results in width: 100;\n // kinda sucks hard...\n\n // determine width of absolutely positioned element\n $menu.css({ position: 'absolute', display: 'block' });\n // don't apply yet, because that would break nested elements' widths\n // add a pixel to circumvent word-break issue in IE9 - #80\n $menu.data('width', Math.ceil($menu.width()) + 1);\n // reset styles so they allow nested elements to grow/shrink naturally\n $menu.css({\n position: 'static',\n minWidth: '0px',\n maxWidth: '100000px'\n });\n // identify width of nested menus\n $menu.find('> li > ul').each(function () {\n op.resize($(this), true);\n });\n // reset and apply changes in the end because nested\n // elements' widths wouldn't be calculatable otherwise\n if (!nested) {\n $menu.find('ul').andSelf().css({\n position: '',\n display: '',\n minWidth: '',\n maxWidth: ''\n }).width(function () {\n return $(this).data('width');\n });\n }\n },\n update: function update(opt, root) {\n var $trigger = this;\n if (root === undefined) {\n root = opt;\n op.resize(opt.$menu);\n }\n // re-check disabled for each item\n opt.$menu.children().each(function () {\n var $item = $(this),\n key = $item.data('contextMenuKey'),\n item = opt.items[key],\n disabled = item === undefined || typeof item === \"string\" || $.isFunction(item.disabled) && item.disabled.call($trigger, key, root) || item.disabled === true;\n\n // dis- / enable item\n $item[disabled ? 'addClass' : 'removeClass']('disabled');\n\n if (item && item.type) {\n // dis- / enable input elements\n $item.find('input, select, textarea').prop('disabled', disabled);\n\n // update input states\n switch (item.type) {\n case 'text':\n case 'textarea':\n item.$input.val(item.value || \"\");\n break;\n\n case 'checkbox':\n case 'radio':\n item.$input.val(item.value || \"\").prop('checked', !!item.selected);\n break;\n\n case 'select':\n item.$input.val(item.selected || \"\");\n break;\n }\n }\n\n if (item && item.$menu) {\n // update sub-menu\n op.update.call($trigger, item, root);\n }\n });\n },\n layer: function layer(opt, zIndex) {\n // add transparent layer for click area\n // filter and background for Internet Explorer, Issue #23\n var $layer = opt.$layer = $('<div id=\"context-menu-layer\" style=\"position:fixed; z-index:' + zIndex + '; top:0; left:0; opacity: 0; filter: alpha(opacity=0); background-color: #000;\"></div>').css({ height: $win.height(), width: $win.width(), display: 'block' }).data('contextMenuRoot', opt).insertBefore(this).on('contextmenu', handle.abortevent).on('mousedown', handle.layerClick);\n\n // IE6 doesn't know position:fixed;\n if (!$.support.fixedPosition) {\n $layer.css({\n 'position': 'absolute',\n 'height': $(document).height()\n });\n }\n\n return $layer;\n }\n };\n\n // split accesskey according to http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.html#assigned-access-key\n function splitAccesskey(val) {\n var t = val.split(/\\s+/),\n keys = [];\n\n for (var i = 0, k; k = t[i]; i++) {\n k = k[0].toUpperCase(); // first character only\n // theoretically non-accessible characters should be ignored, but different systems, different keyboard layouts, ... screw it.\n // a map to look up already used access keys would be nice\n keys.push(k);\n }\n\n return keys;\n }\n\n // handle contextMenu triggers\n $.fn.contextMenu = function (operation) {\n if (operation === undefined) {\n this.first().trigger('contextmenu');\n } else if (operation.x && operation.y) {\n this.first().trigger($.Event(\"contextmenu\", { pageX: operation.x, pageY: operation.y }));\n } else if (operation === \"hide\") {\n var $menu = this.data('contextMenu').$menu;\n $menu && $menu.trigger('contextmenu:hide');\n } else if (operation === \"destroy\") {\n $.contextMenu(\"destroy\", { context: this });\n } else if ($.isPlainObject(operation)) {\n operation.context = this;\n $.contextMenu(\"create\", operation);\n } else if (operation) {\n this.removeClass('context-menu-disabled');\n } else if (!operation) {\n this.addClass('context-menu-disabled');\n }\n\n return this;\n };\n\n // manage contextMenu instances\n $.contextMenu = function (operation, options) {\n if (typeof operation != 'string') {\n options = operation;\n operation = 'create';\n }\n\n if (typeof options == 'string') {\n options = { selector: options };\n } else if (options === undefined) {\n options = {};\n }\n\n // merge with default options\n var o = $.extend(true, {}, defaults, options || {});\n var $document = $(document);\n var $context = $document;\n var _hasContext = false;\n\n if (!o.context || !o.context.length) {\n o.context = document;\n } else {\n // you never know what they throw at you...\n $context = $(o.context).first();\n o.context = $context.get(0);\n _hasContext = o.context !== document;\n }\n\n switch (operation) {\n case 'create':\n // no selector no joy\n if (!o.selector) {\n throw new Error('No selector specified');\n }\n // make sure internal classes are not bound to\n if (o.selector.match(/.context-menu-(list|item|input)($|\\s)/)) {\n throw new Error('Cannot bind to selector \"' + o.selector + '\" as it contains a reserved className');\n }\n if (!o.build && (!o.items || $.isEmptyObject(o.items))) {\n throw new Error('No Items sepcified');\n }\n counter++;\n o.ns = '.contextMenu' + counter;\n if (!_hasContext) {\n namespaces[o.selector] = o.ns;\n }\n menus[o.ns] = o;\n\n // default to right click\n if (!o.trigger) {\n o.trigger = 'right';\n }\n\n if (!initialized) {\n // make sure item click is registered first\n $document.on({\n 'contextmenu:hide.contextMenu': handle.hideMenu,\n 'prevcommand.contextMenu': handle.prevItem,\n 'nextcommand.contextMenu': handle.nextItem,\n 'contextmenu.contextMenu': handle.abortevent,\n 'mouseenter.contextMenu': handle.menuMouseenter,\n 'mouseleave.contextMenu': handle.menuMouseleave\n }, '.context-menu-list').on('mouseup.contextMenu', '.context-menu-input', handle.inputClick).on({\n 'mouseup.contextMenu': handle.itemClick,\n 'contextmenu:focus.contextMenu': handle.focusItem,\n 'contextmenu:blur.contextMenu': handle.blurItem,\n 'contextmenu.contextMenu': handle.abortevent,\n 'mouseenter.contextMenu': handle.itemMouseenter,\n 'mouseleave.contextMenu': handle.itemMouseleave\n }, '.context-menu-item');\n\n initialized = true;\n }\n\n // engage native contextmenu event\n $context.on('contextmenu' + o.ns, o.selector, o, handle.contextmenu);\n\n if (_hasContext) {\n // add remove hook, just in case\n $context.on('remove' + o.ns, function () {\n $(this).contextMenu(\"destroy\");\n });\n }\n\n switch (o.trigger) {\n case 'hover':\n $context.on('mouseenter' + o.ns, o.selector, o, handle.mouseenter).on('mouseleave' + o.ns, o.selector, o, handle.mouseleave);\n break;\n\n case 'left':\n $context.on('click' + o.ns, o.selector, o, handle.click);\n break;\n /*\n default:\n // http://www.quirksmode.org/dom/events/contextmenu.html\n $document\n .on('mousedown' + o.ns, o.selector, o, handle.mousedown)\n .on('mouseup' + o.ns, o.selector, o, handle.mouseup);\n break;\n */\n }\n\n // create menu\n if (!o.build) {\n op.create(o);\n }\n break;\n\n case 'destroy':\n var $visibleMenu;\n if (_hasContext) {\n // get proper options\n var context = o.context;\n $.each(menus, function (ns, o) {\n if (o.context !== context) {\n return true;\n }\n\n $visibleMenu = $('.context-menu-list').filter(':visible');\n if ($visibleMenu.length && $visibleMenu.data().contextMenuRoot.$trigger.is($(o.context).find(o.selector))) {\n $visibleMenu.trigger('contextmenu:hide', { force: true });\n }\n\n try {\n if (menus[o.ns].$menu) {\n menus[o.ns].$menu.remove();\n }\n\n delete menus[o.ns];\n } catch (e) {\n menus[o.ns] = null;\n }\n\n $(o.context).off(o.ns);\n\n return true;\n });\n } else if (!o.selector) {\n $document.off('.contextMenu .contextMenuAutoHide');\n $.each(menus, function (ns, o) {\n $(o.context).off(o.ns);\n });\n\n namespaces = {};\n menus = {};\n counter = 0;\n initialized = false;\n\n $('#context-menu-layer, .context-menu-list').remove();\n } else if (namespaces[o.selector]) {\n $visibleMenu = $('.context-menu-list').filter(':visible');\n if ($visibleMenu.length && $visibleMenu.data().contextMenuRoot.$trigger.is(o.selector)) {\n $visibleMenu.trigger('contextmenu:hide', { force: true });\n }\n\n try {\n if (menus[namespaces[o.selector]].$menu) {\n menus[namespaces[o.selector]].$menu.remove();\n }\n\n delete menus[namespaces[o.selector]];\n } catch (e) {\n menus[namespaces[o.selector]] = null;\n }\n\n $document.off(namespaces[o.selector]);\n }\n break;\n\n case 'html5':\n // if <command> or <menuitem> are not handled by the browser,\n // or options was a bool true,\n // initialize $.contextMenu for them\n if (!$.support.htmlCommand && !$.support.htmlMenuitem || typeof options == \"boolean\" && options) {\n $('menu[type=\"context\"]').each(function () {\n if (this.id) {\n $.contextMenu({\n selector: '[contextmenu=' + this.id + ']',\n items: $.contextMenu.fromMenu(this)\n });\n }\n }).css('display', 'none');\n }\n break;\n\n default:\n throw new Error('Unknown operation \"' + operation + '\"');\n }\n\n return this;\n };\n\n // import values into <input> commands\n $.contextMenu.setInputValues = function (opt, data) {\n if (data === undefined) {\n data = {};\n }\n\n $.each(opt.inputs, function (key, item) {\n switch (item.type) {\n case 'text':\n case 'textarea':\n item.value = data[key] || \"\";\n break;\n\n case 'checkbox':\n item.selected = data[key] ? true : false;\n break;\n\n case 'radio':\n item.selected = (data[item.radio] || \"\") == item.value ? true : false;\n break;\n\n case 'select':\n item.selected = data[key] || \"\";\n break;\n }\n });\n };\n\n // export values from <input> commands\n $.contextMenu.getInputValues = function (opt, data) {\n if (data === undefined) {\n data = {};\n }\n\n $.each(opt.inputs, function (key, item) {\n switch (item.type) {\n case 'text':\n case 'textarea':\n case 'select':\n data[key] = item.$input.val();\n break;\n\n case 'checkbox':\n data[key] = item.$input.prop('checked');\n break;\n\n case 'radio':\n if (item.$input.prop('checked')) {\n data[item.radio] = item.value;\n }\n break;\n }\n });\n\n return data;\n };\n\n // find <label for=\"xyz\">\n function inputLabel(node) {\n return node.id && $('label[for=\"' + node.id + '\"]').val() || node.name;\n }\n\n // convert <menu> to items object\n function menuChildren(items, $children, counter) {\n if (!counter) {\n counter = 0;\n }\n\n $children.each(function () {\n var $node = $(this),\n node = this,\n nodeName = this.nodeName.toLowerCase(),\n label,\n item;\n\n // extract <label><input>\n if (nodeName == 'label' && $node.find('input, textarea, select').length) {\n label = $node.text();\n $node = $node.children().first();\n node = $node.get(0);\n nodeName = node.nodeName.toLowerCase();\n }\n\n /*\n * <menu> accepts flow-content as children. that means <embed>, <canvas> and such are valid menu items.\n * Not being the sadistic kind, $.contextMenu only accepts:\n * <command>, <menuitem>, <hr>, <span>, <p> <input [text, radio, checkbox]>, <textarea>, <select> and of course <menu>.\n * Everything else will be imported as an html node, which is not interfaced with contextMenu.\n */\n\n // http://www.whatwg.org/specs/web-apps/current-work/multipage/commands.html#concept-command\n switch (nodeName) {\n // http://www.whatwg.org/specs/web-apps/current-work/multipage/interactive-elements.html#the-menu-element\n case 'menu':\n item = { name: $node.attr('label'), items: {} };\n counter = menuChildren(item.items, $node.children(), counter);\n break;\n\n // http://www.whatwg.org/specs/web-apps/current-work/multipage/commands.html#using-the-a-element-to-define-a-command\n case 'a':\n // http://www.whatwg.org/specs/web-apps/current-work/multipage/commands.html#using-the-button-element-to-define-a-command\n case 'button':\n item = {\n name: $node.text(),\n disabled: !!$node.attr('disabled'),\n callback: function () {\n return function () {\n $node.click();\n };\n }()\n };\n break;\n\n // http://www.whatwg.org/specs/web-apps/current-work/multipage/commands.html#using-the-command-element-to-define-a-command\n\n case 'menuitem':\n case 'command':\n switch ($node.attr('type')) {\n case undefined:\n case 'command':\n case 'menuitem':\n item = {\n name: $node.attr('label'),\n disabled: !!$node.attr('disabled'),\n callback: function () {\n return function () {\n $node.click();\n };\n }()\n };\n break;\n\n case 'checkbox':\n item = {\n type: 'checkbox',\n disabled: !!$node.attr('disabled'),\n name: $node.attr('label'),\n selected: !!$node.attr('checked')\n };\n break;\n\n case 'radio':\n item = {\n type: 'radio',\n disabled: !!$node.attr('disabled'),\n name: $node.attr('label'),\n radio: $node.attr('radiogroup'),\n value: $node.attr('id'),\n selected: !!$node.attr('checked')\n };\n break;\n\n default:\n item = undefined;\n }\n break;\n\n case 'hr':\n item = '-------';\n break;\n\n case 'input':\n switch ($node.attr('type')) {\n case 'text':\n item = {\n type: 'text',\n name: label || inputLabel(node),\n disabled: !!$node.attr('disabled'),\n value: $node.val()\n };\n break;\n\n case 'checkbox':\n item = {\n type: 'checkbox',\n name: label || inputLabel(node),\n disabled: !!$node.attr('disabled'),\n selected: !!$node.attr('checked')\n };\n break;\n\n case 'radio':\n item = {\n type: 'radio',\n name: label || inputLabel(node),\n disabled: !!$node.attr('disabled'),\n radio: !!$node.attr('name'),\n value: $node.val(),\n selected: !!$node.attr('checked')\n };\n break;\n\n default:\n item = undefined;\n break;\n }\n break;\n\n case 'select':\n item = {\n type: 'select',\n name: label || inputLabel(node),\n disabled: !!$node.attr('disabled'),\n selected: $node.val(),\n options: {}\n };\n $node.children().each(function () {\n item.options[this.value] = $(this).text();\n });\n break;\n\n case 'textarea':\n item = {\n type: 'textarea',\n name: label || inputLabel(node),\n disabled: !!$node.attr('disabled'),\n value: $node.val()\n };\n break;\n\n case 'label':\n break;\n\n default:\n item = { type: 'html', html: $node.clone(true) };\n break;\n }\n\n if (item) {\n counter++;\n items['key' + counter] = item;\n }\n });\n\n return counter;\n }\n\n // convert html5 menu\n $.contextMenu.fromMenu = function (element) {\n var $this = $(element),\n items = {};\n\n menuChildren(items, $this.children());\n\n return items;\n };\n\n // make defaults accessible\n $.contextMenu.defaults = defaults;\n $.contextMenu.types = types;\n // export internal functions - undocumented, for hacking only!\n $.contextMenu.handle = handle;\n $.contextMenu.op = op;\n $.contextMenu.menus = menus;\n})(jQuery);\n\n/***/ }),\n\n/***/ \"./src/lib/pathfinding.exec.js\":\n/*!*************************************!*\\\n !*** ./src/lib/pathfinding.exec.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(/*! !./node_modules/script-loader/addScript.js */ \"./node_modules/script-loader/addScript.js\")(__webpack_require__(/*! !./node_modules/raw-loader!./src/lib/pathfinding.exec.js */ \"./node_modules/raw-loader/index.js!./src/lib/pathfinding.exec.js\"));\n\n/***/ }),\n\n/***/ \"./src/lib/raphael.exec.js\":\n/*!*********************************!*\\\n !*** ./src/lib/raphael.exec.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(/*! !./node_modules/script-loader/addScript.js */ \"./node_modules/script-loader/addScript.js\")(__webpack_require__(/*! !./node_modules/raw-loader!./src/lib/raphael.exec.js */ \"./node_modules/raw-loader/index.js!./src/lib/raphael.exec.js\"));\n\n/***/ }),\n\n/***/ \"./src/packages.js\":\n/*!*************************!*\\\n !*** ./src/packages.js ***!\n \\*************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n\n/**\n *\n * @private\n */\n/**\n * Primary package containing general interfaces and implementation classes.\n * @namespace draw2d */\nexports.default = {\n /**\n * Types representing or manipulating geometric values, such as Points, Rectangles, etc.\n * @namespace draw2d.geo\n * */\n geo: {},\n\n /** \n * Contains classes to load and save Draw2D files into, or from, a Canvas.\n * @namespace draw2d.io \n **/\n io: {\n /** @namespace draw2d.io.json\n * */\n json: {},\n /** @namespace draw2d.io.png */\n png: {},\n /** @namespace draw2d.io.svg */\n svg: {}\n },\n\n /** @namespace draw2d.util */\n util: {\n /** @namespace draw2d.util.spline */\n spline: {}\n },\n\n /**\n * This package contains EditPolicy implementations for all used elements. A *EditPolicy*\n * is a pluggable contribution implementing a portion of an element behavior. Editpolicies contribute to the\n * overall editing behavior of an EditPart.\n *\n * Editing behavior is defined as one or more of the following:\n * - Selection handling\n * - Routing\n * - Feedback management\n * - Delegation and Forwarding of commands\n * - Drag&Drop behaviour\n *\n * @namespace draw2d.policy\n * */\n policy: {\n /**\n * Editpolicies for selection handling, highlighting, background rendering, snapTo behaviour.\n *\n * @namespace draw2d.policy.canvas\n * */\n canvas: {},\n /** \n * Policies for Connection creation. Like 'ClickPolicy'...creates a connection if you click into the canvas. \n * @namespace draw2d.policy.connection \n **/\n connection: {},\n /** @namespace draw2d.policy.line */\n line: {},\n /** @namespace draw2d.policy.port */\n port: {},\n /** \n * Selection decorations for figures. Movement contrains. Width limitation,...\n * @namespace draw2d.policy.figure \n **/\n figure: {}\n },\n\n /** \n * Contains all predefined visual shapes of Draw2D\n * \n * @namespace draw2d.shape \n **/\n shape: {\n /** \n * @namespace draw2d.shape.basic \n **/\n basic: {},\n /** @namespace draw2d.shape.dimetric */\n dimetric: {},\n /** @namespace draw2d.shape.composite */\n composite: {},\n /** @namespace draw2d.shape.arrow */\n arrow: {},\n /** @namespace draw2d.shape.node */\n node: {},\n /** @namespace draw2d.shape.note */\n note: {},\n /** @namespace draw2d.shape.diagram */\n diagram: {},\n /** @namespace draw2d.shape.flowchart */\n flowchart: {},\n /** @namespace draw2d.shape.analog */\n analog: {},\n /** @namespace draw2d.shape.icon */\n icon: {},\n /** @namespace draw2d.shape.layout */\n layout: {},\n /** @namespace draw2d.shape.pert */\n pert: {},\n /** @namespace draw2d.shape.state */\n state: {},\n /** @namespace draw2d.shape.widget */\n widget: {}\n },\n\n /** \n * The command is what eventually changes the model. Figures are asked for a command for a given request. Commands also help \n * determine if the interaction is possible. If there is no command, or it is not executable, the UI will indicate that the \n * interaction is not allowed. \n * \n * All commands (move, drag&drop, insert, remove,....) are stored on top of a CommandStack and available for undo and redo.\n * An `draw2d.Canvas` has a single command stack. **Commands must be executed using the command stack rather than directly calling execute.**\n * \n * @namespace draw2d.command \n **/\n command: {},\n\n /** @namespace draw2d.decoration */\n decoration: {\n /** @namespace draw2d.decoration.connection */\n connection: {}\n },\n\n /** @namespace draw2d.layout */\n layout: {\n /** @namespace draw2d.layout.connection\n * @memberof draw2d.layout\n * */\n connection: {},\n /** @namespace draw2d.layout.anchor */\n anchor: {},\n /** @namespace draw2d.layout.mesh */\n mesh: {},\n /** @namespace draw2d.layout.locator */\n locator: {}\n },\n\n /** @namespace draw2d.ui */\n ui: {},\n\n isTouchDevice:\n //Detect iPhone\n navigator.platform.indexOf(\"iPhone\") != -1 ||\n //Detect iPod\n navigator.platform.indexOf(\"iPod\") != -1 ||\n //Detect iPad\n navigator.platform.indexOf(\"iPad\") != -1\n\n};\nmodule.exports = exports[\"default\"];\n\n/***/ }),\n\n/***/ \"./src/policy/EditPolicy.js\":\n/*!**********************************!*\\\n !*** ./src/policy/EditPolicy.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A plugable contribution implementing a portion of an behavior.\n *\n *\n * EditPolicies should determine an Canvas or figure editing capabilities. It is possible to implement\n * an figure such that it handles all editing responsibility. However, it is much more flexible\n * and object-oriented to use EditPolicies. Using policies, you can pick and choose the editing\n * behavior for an figure/canvas without being bound to its class hierarchy. Code management is easier.\n *\n *\n * This interface is not intended to be implemented by clients. Clients should inherit from {@link draw2d.policy.figure.SelectionFeedbackPolicy}\n * or {@link draw2d.policy.canvas.SelectionPolicy}.\n *\n * @author Andreas Herz\n */\n_packages2.default.policy.EditPolicy = Class.extend(\n/** @lends draw2d.policy.EditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.EditPolicy\",\n\n /**\n *\n */\n init: function init(attr, setter, getter) {\n this.setterWhitelist = (0, _extend2.default)({}, setter);\n\n this.getterWhitelist = (0, _extend2.default)({}, getter);\n\n this.attr(attr);\n },\n\n /**\n * \n * Read or set object attributes.<br>\n * When no value is given, reads specified attribute from the element.<br>\n * When value is given, sets the attribute to that value.\n * Multiple attributes can be set by passing an object with name-value pairs.\n *\n * @param {String/Object} name\n * @param {Object} [value]\n * @since 5.3.2\n * @returns {Object}\n **/\n attr: function attr(name, value) {\n // call of attr as setter method with {name1:val1, name2:val2 } argument list\n //\n if ($.isPlainObject(name)) {\n for (var _key in name) {\n var func = this.setterWhitelist[_key];\n // call the assigned method if given\n if (func) {\n func.call(this, name[_key]);\n }\n // maby the ussser adds a function as property to the attr call\n // e.g.:\n // {\n // doIt: function(){}\n // }\n //\n // in this case we assign the method to this object and wrap it with \"this\" as context\n // a very, very simple method to replace default implemenations of the object\n else if (typeof name[_key] === \"function\") {\n this[_key] = name[_key].bind(this);\n }\n }\n } else if (typeof name === \"string\") {\n // call attr as getter\n //\n if (typeof value === \"undefined\") {\n var getter = this.getterWhitelist[name];\n if (typeof getter === \"function\") {\n return getter.call(this);\n }\n return; // undefined\n }\n // call attr as simple setter with (key , value)\n //\n\n // the value can be a function. In this case we must call the value().\n if (typeof value === \"function\") {\n value = value();\n }\n var setter = this.setterWhitelist[name];\n if (setter) {\n setter.call(this, value);\n }\n }\n // generic getter of all registered attributes\n else if (typeof name === \"undefined\") {\n var result = {};\n for (key in this.getterWhitelist) {\n result[key] = this.getterWhitelist[key].call(this);\n }\n return result;\n }\n\n return this;\n },\n\n /**\n * \n * Called by the host if the policy has been installed.\n *\n * @param {draw2d.Canvas|draw2d.Figure} host\n */\n onInstall: function onInstall(host) {},\n\n /**\n * \n * Called by the host if the policy has been uninstalled.\n *\n * @param {draw2d.Canvas|draw2d.Figure} host\n */\n onUninstall: function onUninstall(host) {}\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/BoundingboxSelectionPolicy.js\":\n/*!*********************************************************!*\\\n !*** ./src/policy/canvas/BoundingboxSelectionPolicy.js ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.SelectionPolicy\n */\n_packages2.default.policy.canvas.BoundingboxSelectionPolicy = _packages2.default.policy.canvas.SingleSelectionPolicy.extend(\n/** @lends draw2d.policy.canvas.BoundingboxSelectionPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.BoundingboxSelectionPolicy\",\n\n /**\n * Creates a new selection policy for a canvas.\n */\n init: function init() {\n this.isInsideMode = function (rect1, rect2) {\n return rect1.isInside(rect2);\n };\n this.intersectsMode = function (rect1, rect2) {\n return rect1.intersects(rect2);\n };\n\n this.decision = this.isInsideMode;\n\n this._super();\n\n this.boundingBoxFigure1 = null;\n this.boundingBoxFigure2 = null;\n this.x = 0;\n this.y = 0;\n\n // falls ein Port getroffen wird, dann darf keine BoundingBox gezeichnet werden.\n //\n this.canDrawBoundingBox = false;\n },\n\n /**\n * @inheritdoc\n */\n select: function select(canvas, figure) {\n var _this = this;\n\n if (canvas.getSelection().contains(figure)) {\n return; // nothing to to\n }\n\n var oldSelection = canvas.getSelection().getPrimary();\n\n if (figure !== null) {\n figure.select(true); // primary selection\n }\n\n if (oldSelection !== figure) {\n canvas.getSelection().setPrimary(figure);\n\n // inform all selection listeners about the new selection.\n //\n canvas.fireEvent(\"select\", { figure: figure, selection: canvas.getSelection() });\n }\n\n // adding connections to the selection of the source and target port part of the current selection\n //\n var selection = canvas.getSelection();\n canvas.getLines().each(function (i, line) {\n if (line instanceof _packages2.default.Connection) {\n if (selection.contains(line.getSource().getRoot()) && selection.contains(line.getTarget().getRoot())) {\n _this.select(canvas, line, false);\n }\n }\n });\n },\n\n /**\n * \n * Set the selection handling mode to <b>intersection</b> or to <b>isInside</b>.\n * <ul>\n * <li>true = intersection, shapes must only touch the selection bounding box </li>\n * <li>false = isInside, shapes must complete inside the selection bounding box (default)</li>\n * </ul>\n *\n * @param {Boolean} useIntersectionMode set true if the selection handle should use the alternative selection approach\n * @since 4.9.0\n */\n setDecisionMode: function setDecisionMode(useIntersectionMode) {\n if (useIntersectionMode === true) {\n this.decision = this.intersectsMode;\n } else {\n this.decision = this.isInsideMode;\n }\n\n return this;\n },\n\n /**\n * \n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseDown: function onMouseDown(canvas, x, y, shiftKey, ctrlKey) {\n var _this2 = this;\n\n try {\n this.x = x;\n this.y = y;\n\n var currentSelection = canvas.getSelection().getAll();\n\n // COPY_PARENT\n // this code part is copied from the parent implementation. The main problem is, that\n // the sequence of unselect/select of elements is broken if we call the base implementation\n // in this case wrong events are fired if we select a figure if already a figure is selected!\n // WRONG: selectNewFigure -> unselectOldFigure\n // RIGHT: unselectOldFigure -> selectNewFigure\n // To ensure this I must copy the parent code and postbound the event propagation\n //\n this.mouseMovedDuringMouseDown = false;\n var canDragStart = true;\n\n this.canDrawBoundingBox = false;\n\n var figure = canvas.getBestFigure(x, y);\n\n // may the figure is assigned to a composite. In this case the composite can\n // override the event receiver\n while (figure !== null) {\n var delegated = figure.getSelectionAdapter()();\n if (delegated === figure) {\n break;\n }\n figure = delegated;\n }\n\n // ignore ports since version 6.1.0. This is handled by the ConnectionCreatePolicy\n //\n if (figure instanceof _packages2.default.Port) {\n return; // silently\n }\n\n if (figure !== null && figure.isSelectable() === false && figure.isDraggable() === false) {\n figure = null;\n }\n\n this.canDrawBoundingBox = true;\n\n if (figure !== null && figure.isDraggable()) {\n canDragStart = figure.onDragStart(x - figure.getAbsoluteX(), y - figure.getAbsoluteY(), shiftKey, ctrlKey);\n // Element send a veto about the drag&drop operation\n this.mouseDraggingElement = canDragStart === false ? null : figure;\n }\n\n this.mouseDownElement = figure;\n\n if (this.mouseDownElement !== null) {\n this.mouseDownElement.fireEvent(\"mousedown\", { x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n }\n\n // we click on an element which are not part of the current selection\n // => reset the \"old\" current selection if we didn't press the shift key\n if (shiftKey === false) {\n if (this.mouseDownElement !== null && this.mouseDownElement.isResizeHandle === false && !currentSelection.contains(this.mouseDownElement)) {\n currentSelection.each(function (i, figure) {\n _this2.unselect(canvas, figure);\n });\n }\n }\n\n if (figure !== canvas.getSelection().getPrimary() && figure !== null && figure.isSelectable() === true) {\n this.select(canvas, figure);\n\n // its a line\n if (figure instanceof _packages2.default.shape.basic.Line) {\n // you can move a line with Drag&Drop...but not a connection.\n // A Connection is fixed linked with the corresponding ports.\n //\n if (!(figure instanceof _packages2.default.Connection)) {\n canvas.draggingLineCommand = figure.createCommand(new _packages2.default.command.CommandType(_packages2.default.command.CommandType.MOVE));\n if (canvas.draggingLineCommand !== null) {\n canvas.draggingLine = figure;\n }\n }\n } else if (canDragStart === false) {\n figure.unselect();\n }\n }\n // END_COPY FROM PARENT\n\n\n // inform all figures that they have a new ox/oy position for the relative\n // drag/drop operation\n if (this.mouseDownElement !== null && this.mouseDownElement.isResizeHandle === false) {\n currentSelection = canvas.getSelection().getAll();\n currentSelection.each(function (i, figure) {\n var fakeDragX = 1;\n var fakeDragY = 1;\n\n var handleRect = figure.getHandleBBox();\n if (handleRect !== null) {\n handleRect.translate(figure.getAbsolutePosition().scale(-1));\n fakeDragX = handleRect.x + 1;\n fakeDragY = handleRect.y + 1;\n }\n\n var canDragStart = figure.onDragStart(fakeDragX, fakeDragY, shiftKey, ctrlKey, true /*fakeFlag*/);\n // its a line\n if (figure instanceof _packages2.default.shape.basic.Line) {\n // no special handling\n } else if (canDragStart === false) {\n _this2.unselect(canvas, figure);\n }\n });\n }\n } catch (exc) {\n console.log(exc);\n throw exc;\n }\n },\n\n /**\n * \n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} dx The x diff between start of dragging and this event\n * @param {Number} dy The y diff between start of dragging and this event\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n */\n onMouseDrag: function onMouseDrag(canvas, dx, dy, dx2, dy2, shiftKey, ctrlKey) {\n // don't drag a selection box if we drag&drop a port\n //\n if (this.canDrawBoundingBox === false) {\n return;\n }\n\n try {\n this._super(canvas, dx, dy, dx2, dy2, shiftKey, ctrlKey);\n\n if (this.mouseDraggingElement === null && this.mouseDownElement === null && this.boundingBoxFigure1 === null) {\n this.boundingBoxFigure1 = new _packages2.default.shape.basic.Rectangle({\n width: 1,\n height: 1,\n x: this.x,\n y: this.y,\n bgColor: \"#d4d1d4\",\n alpha: 0.1\n });\n this.boundingBoxFigure1.setCanvas(canvas);\n\n this.boundingBoxFigure2 = new _packages2.default.shape.basic.Rectangle({\n width: 1,\n height: 1,\n x: this.x,\n y: this.y,\n dash: \"--..\",\n stroke: 0.5,\n color: \"#37a8ff\",\n bgColor: null\n });\n this.boundingBoxFigure2.setCanvas(canvas);\n }\n var abs = Math.abs;\n if (this.boundingBoxFigure1 !== null) {\n this.boundingBoxFigure1.setDimension(abs(dx), abs(dy));\n this.boundingBoxFigure1.setPosition(this.x + Math.min(0, dx), this.y + Math.min(0, dy));\n this.boundingBoxFigure2.setDimension(abs(dx), abs(dy));\n this.boundingBoxFigure2.setPosition(this.x + Math.min(0, dx), this.y + Math.min(0, dy));\n }\n } catch (exc) {\n console.log(exc);\n }\n },\n\n /**\n * \n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseUp: function onMouseUp(canvas, x, y, shiftKey, ctrlKey) {\n var _this3 = this;\n\n try {\n // delete the current selection if you have clicked in the empty\n // canvas.\n if (this.mouseDownElement === null) {\n canvas.getSelection().getAll().each(function (i, figure) {\n _this3.unselect(canvas, figure);\n });\n } else if (this.mouseDownElement instanceof _packages2.default.ResizeHandle || this.mouseDownElement instanceof _packages2.default.shape.basic.LineResizeHandle) {}\n // Do nothing\n // A click on a resize handle didn't change the selection of the canvas\n //\n\n // delete the current selection if you click on another figure than the current\n // selection and you didn't drag the complete selection.\n else if (this.mouseDownElement !== null && this.mouseMovedDuringMouseDown === false) {\n var sel = canvas.getSelection().getAll();\n if (!sel.contains(this.mouseDownElement)) {\n canvas.getSelection().getAll().each(function (i, figure) {\n _this3.unselect(canvas, figure);\n });\n }\n }\n this._super(canvas, x, y, shiftKey, ctrlKey);\n\n if (this.boundingBoxFigure1 !== null) {\n // retrieve all figures which are inside the bounding box and select all of them\n //\n var selectionRect = this.boundingBoxFigure1.getBoundingBox();\n canvas.getFigures().each(function (i, figure) {\n if (figure.isSelectable() === true && figure.isVisible() === true && _this3.decision(figure.getBoundingBox(), selectionRect)) {\n var fakeDragX = 1;\n var fakeDragY = 1;\n\n var handleRect = figure.getHandleBBox();\n if (handleRect !== null) {\n handleRect.translate(figure.getAbsolutePosition().scale(-1));\n fakeDragX = handleRect.x + 1;\n fakeDragY = handleRect.y + 1;\n }\n var canDragStart = figure.onDragStart(fakeDragX, fakeDragY, shiftKey, ctrlKey);\n if (canDragStart === true) {\n _this3.select(canvas, figure);\n }\n }\n });\n\n this.boundingBoxFigure1.setCanvas(null);\n this.boundingBoxFigure1 = null;\n this.boundingBoxFigure2.setCanvas(null);\n this.boundingBoxFigure2 = null;\n }\n } catch (exc) {\n console.log(exc);\n debugger;\n }\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/CanvasPolicy.js\":\n/*!*******************************************!*\\\n !*** ./src/policy/canvas/CanvasPolicy.js ***!\n \\*******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _Color = __webpack_require__(/*! ../../util/Color */ \"./src/util/Color.js\");\n\nvar _Color2 = _interopRequireDefault(_Color);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.EditPolicy\n */\n_packages2.default.policy.canvas.CanvasPolicy = _packages2.default.policy.EditPolicy.extend(\n/** @lends draw2d.policy.canvas.CanvasPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.CanvasPolicy\",\n\n /**\n * Creates a new Router object\n */\n init: function init(attr, setter, getter) {\n this.canvas = null;\n this._super(attr, setter, getter);\n },\n\n /**\n *\n * Called if the policy is installed into the canvas.\n *\n * @param {draw2d.Canvas} canvas\n */\n onInstall: function onInstall(canvas) {\n this.canvas = canvas;\n },\n\n /**\n *\n * Called if the policy is deinstalled from the canvas\n *\n * @param {draw2d.Canvas} canvas\n */\n onUninstall: function onUninstall(canvas) {\n this.canvas = null;\n },\n\n /**\n *\n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n */\n onMouseMove: function onMouseMove(canvas, x, y, shiftKey, ctrlKey) {},\n\n /**\n *\n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseDown: function onMouseDown(canvas, x, y, shiftKey, ctrlKey) {},\n\n /**\n *\n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} dx The x diff between start of dragging and this event\n * @param {Number} dy The y diff between start of dragging and this event\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseDrag: function onMouseDrag(canvas, dx, dy, dx2, dy2, shiftKey, ctrlKey) {},\n\n /**\n *\n *\n * @param {draw2d.Canvas} canvas the shape below the mouse or null\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseUp: function onMouseUp(canvas, x, y, shiftKey, ctrlKey) {},\n\n /**\n *\n * Called if the user press the right mouse in the canvas.\n *\n * @param {draw2d.Figure|draw2d.shape.basic.Line} figure the figure below the mouse\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @since 4.4.0\n */\n onRightMouseDown: function onRightMouseDown(figure, x, y, shiftKey, ctrlKey) {},\n\n /**\n *\n * Called by the canvas if the user click on a figure.\n *\n * @param {draw2d.Figure} figure the figure under the click event. Can be null\n * @param {Number} mouseX the x coordinate of the mouse during the click event\n * @param {Number} mouseY the y coordinate of the mouse during the click event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @since 3.0.0\n *\n * @template\n */\n onClick: function onClick(figure, mouseX, mouseY, shiftKey, ctrlKey) {},\n\n /**\n *\n * Called by the canvas if the user double click on a figure.\n *\n * @param {draw2d.Figure} figure the figure under the double click event. Can be null\n * @param {Number} mouseX the x coordinate of the mouse during the click event\n * @param {Number} mouseY the y coordinate of the mouse during the click event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @since 4.1.0\n *\n * @template\n */\n onDoubleClick: function onDoubleClick(figure, mouseX, mouseY, shiftKey, ctrlKey) {},\n\n /**\n *\n * called if the user uses the mouse wheel.\n *\n *\n * @param {Number} wheelDelta\n * @param {Number} x the x coordinate of the event\n * @param {Number} y the y coordinate of the event\n * @param shiftKey\n * @param ctrlKey\n * @since 5.8.0\n * @template\n *\n * @returns {Boolean} return <b>false</b> to preven tthe default event operation (e.g. scrolling)\n */\n onMouseWheel: function onMouseWheel(wheelDelta, x, y, shiftKey, ctrlKey) {\n // return \"false\" to prevent the default event operation\n return true;\n },\n\n /**\n *\n * Helper method to make an monochrome GIF image WxH pixels big, first create a properly sized array: let pixels = new Array(W*H);.\n * Then, for each pixel X,Y that should be opaque, store a 1 at the proper location: pixels[X+Y*W] = 1;.\n * Finally, create the image: let my_gif = createGif(W, H, pixels, color);\n * \"0\" pixels are transparent.\n * The <b>color</b> defines the foreground color.\n *\n * Now, you can specify this image as the SRC attribute of an IMG tag: document.write(\"<IMG SRC=\\\"\" + my_gif + \"\\\">\");\n * or for the canvas as background-image css attribute.\n *\n *\n * @param w\n * @param h\n * @param d\n * @param color\n * @returns {String}\n *\n * @private\n */\n createMonochromGif: function createMonochromGif(w, h, d, color) {\n color = new _Color2.default(color);\n var r = String.fromCharCode(w % 256) + String.fromCharCode(w / 256) + String.fromCharCode(h % 256) + String.fromCharCode(h / 256);\n\n var gif = 'GIF89a' + r + '\\xf0\\0\\0\\xff\\xff\\xff' + String.fromCharCode(color.red) + String.fromCharCode(color.green) + String.fromCharCode(color.blue) + '!\\xF9\\x04\\x01\\0\\0\\0,\\0\\0\\0\\0' + r + '\\0\\x02';\n\n // help method to generate uncompressed in memory GIF data structure without the usage of a canvas or any other\n // heavy weight stuff.\n var b = {\n bit: 1,\n byte_: 0,\n data: '',\n\n writeBit: function writeBit(b) {\n if (b) this.byte_ |= this.bit;\n this.bit <<= 1;\n if (this.bit === 256) {\n this.bit = 1;\n this.data += String.fromCharCode(this.byte_);\n this.byte_ = 0;\n }\n },\n\n get: function get() {\n var result = \"\";\n var data = this.data;\n if (this.bit !== 1) {\n data += String.fromCharCode(this.byte_);\n }\n for (var i = 0; i < data.length + 1; i += 255) {\n var chunklen = data.length - i;\n if (chunklen < 0) chunklen = 0;\n if (chunklen > 255) chunklen = 255;\n result += String.fromCharCode(chunklen) + data.substring(i, i + 255);\n }\n return result + \"\\0\";\n }\n };\n\n for (var y = 0; y < h; y++) {\n for (var x = 0; x < w; x++) {\n b.writeBit(d[x + w * y]);\n b.writeBit(0);\n b.writeBit(0);\n b.writeBit(0);\n b.writeBit(0);\n b.writeBit(1);\n }\n }\n gif += b.get() + ';';\n\n return 'data:image/gif;base64,' + _packages2.default.util.Base64.encode(gif);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/CoronaDecorationPolicy.js\":\n/*!*****************************************************!*\\\n !*** ./src/policy/canvas/CoronaDecorationPolicy.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * This decorations hides draw2d.Ports which are to far from the current cursor position.\n * This makes the canvas more clean if you have a lot of nodes on it.<br>\n * You didn't see a bunch of ports.\n *\n *\n * @example\n *\n * // install the policy to the canvas\n *\n * // add some demo figure to the canvas\n * canvas.add(new draw2d.shape.node.Start({x: 10, y: 30}));\n * canvas.add(new draw2d.shape.node.End({x: 90, y: 90}));\n * canvas.add(new draw2d.shape.node.Between({ x: 310, y: 30}));\n *\n * canvas.add(new draw2d.shape.basic.Label({text:\"move the mouse and you see that ports are hidden if the mouse far from it\"}),5,5);\n *\n * canvas.installEditPolicy(new draw2d.policy.canvas.CoronaDecorationPolicy());\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.DecorationPolicy\n */\n_packages2.default.policy.canvas.CoronaDecorationPolicy = _packages2.default.policy.canvas.DecorationPolicy.extend(\n/** @lends draw2d.policy.canvas.CoronaDecorationPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.CoronaDecorationPolicy\",\n\n /**\n *\n */\n init: function init(attr, setter, getter) {\n\n this.startDragX = 0;\n this.startDragY = 0;\n this.diameterToBeFullVisible = 0;\n this.diameterToBeVisible = 0;\n this.sumDiameter = 0;\n\n this._super((0, _extend2.default)({ diameterToBeVisible: 200, diameterToBeFullVisible: 20 }, attr), (0, _extend2.default)({\n diameterToBeVisible: this.setDiameterToBeVisible,\n diameterToBeFullVisible: this.setDiameterToBeFullVisible\n }, setter), (0, _extend2.default)({\n diameterToBeVisible: this.getDiameterToBeVisible,\n diameterToBeFullVisible: this.getDiameterToBeFullVisible\n }, getter));\n },\n\n setDiameterToBeVisible: function setDiameterToBeVisible(diameter) {\n this.diameterToBeVisible = diameter;\n this.sumDiameter = this.diameterToBeFullVisible + this.diameterToBeVisible;\n },\n\n getDiameterToBeVisible: function getDiameterToBeVisible() {\n return this.diameterToBeVisible;\n },\n\n setDiameterToBeFullVisible: function setDiameterToBeFullVisible(diameter) {\n this.diameterToBeFullVisible = diameter;\n this.sumDiameter = this.diameterToBeFullVisible + this.diameterToBeVisible;\n },\n\n getDiameterToBeFullVisible: function getDiameterToBeFullVisible() {\n return this.diameterToBeFullVisible;\n },\n\n /**\n * @inheritdoc\n */\n onInstall: function onInstall(canvas) {\n this._super(canvas);\n canvas.getFigures().each(function (i, figure) {\n figure.getPorts().each(function (i, p) {\n return p.setAlpha(0.0);\n });\n });\n },\n\n /**\n * @inheritdoc\n */\n onUninstall: function onUninstall(canvas) {\n this._super(canvas);\n\n canvas.getFigures().each(function (i, figure) {\n figure.getPorts().each(function (i, p) {\n if (p.__origAlpha) {\n p.setAlpha(p.__origAlpha);\n delete p.__origAlpha;\n }\n });\n });\n },\n\n /**\n * @inheritdoc\n */\n onMouseDown: function onMouseDown(canvas, x, y, shiftKey, ctrlKey) {\n this.startDragX = x;\n this.startDragY = y;\n },\n\n /**\n * @inheritdoc\n */\n onMouseMove: function onMouseMove(canvas, x, y, shiftKey, ctrlKey) {\n this.updatePorts(canvas, x, y);\n },\n\n /**\n * @inheritdoc\n */\n onMouseDrag: function onMouseDrag(canvas, dx, dy, dx2, dy2, shiftKey, ctrlKey) {\n this.updatePorts(canvas, this.startDragX + dx, this.startDragY + dy);\n },\n\n /**\n * \n * Update all ports with the new calculated opacity in relation to the distance to the current\n * mouse position\n *\n * @param canvas\n * @param x\n * @param y\n * @private\n */\n updatePorts: function updatePorts(canvas, x, y) {\n var _this = this;\n\n canvas.getFigures().each(function (i, figure) {\n if (figure instanceof _packages2.default.shape.node.Node) {\n if (figure.isVisible() === true && figure.hitTest(x, y, _this.sumDiameter) === true) {\n figure.getPorts().each(function (i, p) {\n if (p.isVisible() === false) {\n p.__origAlpha = figure.getAlpha();\n }\n var dist = figure.getBoundingBox().getDistance(new _packages2.default.geo.Point(x, y));\n var alpha = Math.max(0, 1 - 100 / (_this.diameterToBeVisible - _this.diameterToBeFullVisible) * dist / 100.0);\n p.setAlpha(alpha);\n });\n } else {\n figure.getPorts().each(function (i, p) {\n p.setAlpha(0.0);\n });\n }\n }\n });\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/DecorationPolicy.js\":\n/*!***********************************************!*\\\n !*** ./src/policy/canvas/DecorationPolicy.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * The base class for any canvas decoration like grid, chessboard, graph paper or\n * other.\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.CanvasPolicy\n */\n_packages2.default.policy.canvas.DecorationPolicy = _packages2.default.policy.canvas.CanvasPolicy.extend(\n/** @lends draw2d.policy.canvas.DecorationPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.DecorationPolicy\",\n\n /**\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/DefaultKeyboardPolicy.js\":\n/*!****************************************************!*\\\n !*** ./src/policy/canvas/DefaultKeyboardPolicy.js ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Standard keyboard policy. This is the standard installed keyboard policy.\n * <br>\n * <br>\n * Keyboard commands\n * <ul>\n * <li>DEL - delete selection</li>\n * </ul>\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.KeyboardPolicy\n */\n_packages2.default.policy.canvas.DefaultKeyboardPolicy = _packages2.default.policy.canvas.KeyboardPolicy.extend(\n/** @lends draw2d.policy.canvas.DefaultKeyboardPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.DefaultKeyboardPolicy\",\n\n /**\n */\n init: function init() {\n this._super();\n },\n\n /**\n * \n * Callback if the user press a key.<br>\n * This implementation checks only if the <b>DEL</b> has been pressed and creates an\n * CommandDelete if this happens.\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {Number} keyCode the pressed key\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @private\n **/\n onKeyDown: function onKeyDown(canvas, keyCode, shiftKey, ctrlKey) {\n //\n if (keyCode === 46 && canvas.getPrimarySelection() !== null) {\n // create a single undo/redo transaction if the user delete more than one element. \n // This happens with command stack transactions.\n //\n canvas.getCommandStack().startTransaction(_packages2.default.Configuration.i18n.command.deleteShape);\n var selection = canvas.getSelection();\n selection.each(function (index, figure) {\n // don't delete a connection if the source or target figure is part of the selection.\n // In this case the connection is deleted by the DeleteCommand itself and it is not allowed to\n // delete a figure twice.\n //\n if (figure instanceof _packages2.default.Connection) {\n if (selection.contains(figure.getSource(), true)) {\n return;\n }\n if (selection.contains(figure.getTarget(), true)) {\n return;\n }\n }\n var cmd = figure.createCommand(new _packages2.default.command.CommandType(_packages2.default.command.CommandType.DELETE));\n if (cmd !== null) {\n canvas.getCommandStack().execute(cmd);\n }\n });\n // execute all single commands at once.\n canvas.getCommandStack().commitTransaction();\n } else {\n this._super(canvas, keyCode, shiftKey, ctrlKey);\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/DropInterceptorPolicy.js\":\n/*!****************************************************!*\\\n !*** ./src/policy/canvas/DropInterceptorPolicy.js ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Drop interceptors are basically event handlers from which you can return a value\n * that tells draw2d to abort what it is that it was doing.<br>\n * <br>\n * Interceptors can be registered via the registerEditPolicy method on the draw2d canvas just like any other\n * edit policies.<br>\n * <br>\n * The <b>delegateTarget</b> method is responsible for all drop event especially to all connection and port handling.\n *\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.CanvasPolicy\n * @since 5.0.0\n */\n_packages2.default.policy.canvas.DropInterceptorPolicy = _packages2.default.policy.canvas.CanvasPolicy.extend(\n/** @lends draw2d.policy.canvas.DropInterceptorPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.DropInterceptorPolicy\",\n\n /**\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * \n * Called if the user want connect a port with any kind draw2d.Figure.<br>\n * Return a non <b>null</b> value if the interceptor accept the connect event.<br>\n * <br>\n * It is possible to delegate the drop event to another figure if the policy\n * returns another figure. This is useful if a figure want to accept a port\n * drop event and delegates this drop event to another port.<br>\n *\n *\n * @param {draw2d.Figure} connectInquirer the figure who wants connect\n * @param {draw2d.Figure} connectIntent the potential connect target\n *\n * @returns {draw2d.Figure} the calculated connect intent or <b>null</b> if the interceptor uses the veto right\n */\n delegateTarget: function delegateTarget(connectInquirer, connectIntent) {\n // a composite accept any kind of figures exceptional ports\n //\n if (!(connectInquirer instanceof _packages2.default.Port) && connectIntent instanceof _packages2.default.shape.composite.StrongComposite) {\n return connectIntent;\n }\n\n // Ports accepts only Ports from the same semanticGroup as DropTarget\n //\n if (connectIntent instanceof _packages2.default.Port && connectInquirer instanceof _packages2.default.Port) {\n if (connectIntent.getSemanticGroup() !== connectInquirer.getSemanticGroup()) {\n return null;\n }\n }\n\n // Ports accepts only Ports as DropTarget\n //\n if (!(connectIntent instanceof _packages2.default.Port) || !(connectInquirer instanceof _packages2.default.Port)) {\n return null;\n }\n\n // consider the max possible connections for this port\n //\n if (connectIntent.getConnections().getSize() >= connectIntent.getMaxFanOut()) {\n return null;\n }\n\n // It is not allowed to connect two output ports\n if (connectInquirer instanceof _packages2.default.OutputPort && connectIntent instanceof _packages2.default.OutputPort) {\n return null;\n }\n\n // It is not allowed to connect two input ports\n if (connectInquirer instanceof _packages2.default.InputPort && connectIntent instanceof _packages2.default.InputPort) {\n return null;\n }\n\n // It is not possible to create a loop back connection at the moment.\n // Reason: no connection router implemented for this case\n if (connectInquirer instanceof _packages2.default.Port && connectIntent instanceof _packages2.default.Port) {\n if (connectInquirer.getParent() === connectIntent.getParent()) {\n return null;\n }\n }\n\n // redirect the dragEnter handling to the hybrid port\n //\n if (connectInquirer instanceof _packages2.default.Port && connectIntent instanceof _packages2.default.shape.node.Hub) {\n return connectIntent.getHybridPort(0);\n }\n\n // return the connectTarget determined by the framework or delegate it to another\n // figure.\n return connectIntent;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/ExtendedKeyboardPolicy.js\":\n/*!*****************************************************!*\\\n !*** ./src/policy/canvas/ExtendedKeyboardPolicy.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Extended keyboard policy to <b>delete</b> and <b>group</b> figures in the canvas.\n * <br>\n * Keyboard commands\n * <ul>\n * <li>DEL - delete selection</li>\n * <li>Ctrl+G - group/ungroup selection</li>\n * <li>Ctrl+B - send current selection in the background (toBack)</li>\n * <li>Ctrl+F - send current selection in the foreground (toFront)</li>\n * </ul>\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.KeyboardPolicy\n */\n_packages2.default.policy.canvas.ExtendedKeyboardPolicy = _packages2.default.policy.canvas.KeyboardPolicy.extend(\n/** @lends draw2d.policy.canvas.ExtendedKeyboardPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.ExtendedKeyboardPolicy\",\n\n /**\n */\n init: function init() {\n this._super();\n },\n\n /**\n * \n * Callback if the user press a key\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {Number} keyCode the pressed key\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @private\n **/\n onKeyDown: function onKeyDown(canvas, keyCode, shiftKey, ctrlKey) {\n if (canvas.getPrimarySelection() !== null && ctrlKey === true) {\n switch (keyCode) {\n\n case 71:\n // G\n if (canvas.getPrimarySelection() instanceof _packages2.default.shape.composite.Group && canvas.getSelection().getSize() === 1) {\n canvas.getCommandStack().execute(new _packages2.default.command.CommandUngroup(canvas, canvas.getPrimarySelection()));\n } else {\n canvas.getCommandStack().execute(new _packages2.default.command.CommandGroup(canvas, canvas.getSelection()));\n }\n break;\n case 66:\n // B\n canvas.getPrimarySelection().toBack();\n break;\n case 70:\n // F\n canvas.getPrimarySelection().toFront();\n }\n } else {\n this._super(canvas, keyCode, shiftKey, ctrlKey);\n }\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/FadeoutDecorationPolicy.js\":\n/*!******************************************************!*\\\n !*** ./src/policy/canvas/FadeoutDecorationPolicy.js ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Install this edit policy in a canvas if you want fadeout all decorations like ports, resize handles\n * if the user didn't move the mouse. This is good for a clean representation of your diagram.\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.DecorationPolicy\n */\n_packages2.default.policy.canvas.FadeoutDecorationPolicy = _packages2.default.policy.canvas.DecorationPolicy.extend(\n/** @lends draw2d.policy.canvas.FadeoutDecorationPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.FadeoutDecorationPolicy\",\n\n DEFAULT_FADEOUT_DURATION: 60,\n DEFAULT_ALPHA_DECREMENT: 0.05,\n\n /**\n * Creates a new fade out policy. Don't forget to install them into the canvas.\n *\n */\n init: function init() {\n this._super();\n this.alpha = 1.0;\n this.alphaDec = this.DEFAULT_ALPHA_DECREMENT;\n this.hidePortsCounter = this.DEFAULT_FADEOUT_DURATION;\n this.portDragging = false;\n },\n\n /**\n * @inheritDoc\n **/\n onInstall: function onInstall(canvas) {\n this._super(canvas);\n this.timerId = window.setInterval(this.onTimer.bind(this), 50);\n\n // initial hide all decorations after install of this policy\n //\n this.hidePortsCounter = 1;\n this.alpha = 0.1;\n },\n\n /**\n * @inheritDoc\n **/\n onUninstall: function onUninstall(canvas) {\n window.clearInterval(this.timerId);\n this.canvas.getAllPorts().each(function (i, port) {\n port.setAlpha(1.0);\n });\n\n this._super(canvas);\n },\n\n /**\n *\n *\n * Timerfucntion to show/hide the related ports\n * @private\n **/\n onTimer: function onTimer() {\n var _this = this;\n\n this.hidePortsCounter--;\n\n if (this.hidePortsCounter <= 0 && this.alpha > 0) {\n this.alpha = Math.max(0, this.alpha - this.alphaDec);\n\n this.canvas.getAllPorts().each(function (i, port) {\n port.setAlpha(_this.alpha);\n });\n\n this.canvas.getSelection().getAll().each(function (i, figure) {\n figure.selectionHandles.each(function (i, handle) {\n handle.setAlpha(_this.alpha);\n });\n });\n } else if (this.hidePortsCounter > 0 && this.alpha !== 1.0) {\n this.alpha = 1; // Math.min(1,this.alpha+0.1);\n this.alphaDec = this.DEFAULT_ALPHA_DECREMENT;\n this.duringHide = false;\n this.canvas.getAllPorts().each(function (i, port) {\n port.setAlpha(_this.alpha);\n });\n this.canvas.getSelection().getAll().each(function (i, figure) {\n figure.selectionHandles.each(function (i, handle) {\n handle.setAlpha(_this.alpha);\n });\n });\n }\n },\n\n /**\n *\n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseDown: function onMouseDown(canvas, x, y, shiftKey, ctrlKey) {\n this.hidePortsCounter = this.DEFAULT_FADEOUT_DURATION;\n this.portDragging = canvas.getBestFigure(x, y) instanceof _packages2.default.Port;\n },\n\n /**\n *\n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseMove: function onMouseMove(canvas, x, y, shiftKey, ctrlKey) {\n this.hidePortsCounter = this.DEFAULT_FADEOUT_DURATION;\n this.portDragging = false;\n },\n\n /**\n *\n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} dx The x diff between start of dragging and this event\n * @param {Number} dy The y diff between start of dragging and this event\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseDrag: function onMouseDrag(canvas, dx, dy, dx2, dy2, shiftKey, ctrlKey) {\n if (this.portDragging === false) {\n this.hidePortsCounter = 0;\n this.alphaDec = 0.1;\n this.onTimer();\n }\n },\n\n /**\n *\n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseUp: function onMouseUp(figure, x, y, shiftKey, ctrlKey) {\n this.hidePortsCounter = this.DEFAULT_FADEOUT_DURATION;\n this.portDragging = false;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/GhostMoveSelectionPolicy.js\":\n/*!*******************************************************!*\\\n !*** ./src/policy/canvas/GhostMoveSelectionPolicy.js ***!\n \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A drag&Drop feedback handler for the canvas. The policy didn't move the\n * shapes in real time rather it shows a ghost rectangle as feedback. <br>\n * <br>\n * The shapes are updated after the drag&drop operation.\n *\n *\n *\n * @example\n *\n * // install the policy to the canvas\n * canvas.installEditPolicy(new draw2d.policy.canvas.GhostMoveSelectionPolicy());\n *\n * // add some demo figure to the canvas\n * canvas.add(new draw2d.shape.basic.Circle({diameter: 50, x: 10, y: 30}));\n * canvas.add(new draw2d.shape.basic.Circle({diameter: 30, x: 90, y: 50}));\n * canvas.add(new draw2d.shape.basic.Circle({diameter: 60, x: 110, y: 30}));\n *\n * canvas.add(new draw2d.shape.basic.Label({text:\"move the circle to see the drag&drop feedback\"}),5,5);\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.SingleSelectionPolicy\n */\n_packages2.default.policy.canvas.GhostMoveSelectionPolicy = _packages2.default.policy.canvas.SingleSelectionPolicy.extend(\n/** @lends draw2d.policy.canvas.GhostMoveSelectionPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.GhostMoveSelectionPolicy\",\n\n /**\n */\n init: function init() {\n this.clone = null;\n this.ghostRectangle1 = null;\n this.ghostRectangle2 = null;\n\n this._super();\n },\n\n /**\n * @inheritdoc\n */\n onMouseDrag: function onMouseDrag(canvas, dx, dy, dx2, dy2, shiftKey, ctrlKey) {\n this.mouseMovedDuringMouseDown = true;\n if (this.mouseDraggingElement !== null) {\n\n // if the figure not part of the selection it must be a ResizeHandle...\n var sel = canvas.getSelection().getAll();\n if (!sel.contains(this.mouseDraggingElement)) {\n this.mouseDraggingElement.onDrag(dx, dy, dx2, dy2, shiftKey, ctrlKey);\n }\n // it is a normal draw2d.Figure\n else {\n // create the ghost handles for the figure to move and update the position\n //\n if (this.ghostRectangle1 === null) {\n this.ghostRectangle1 = new _packages2.default.shape.basic.Rectangle(); // new API with version 5.0.0\n // old API\n this.ghostRectangle1.setBackgroundColor(\"#303030\");\n this.ghostRectangle1.setAlpha(0.1);\n\n this.ghostRectangle2 = new _packages2.default.shape.basic.Rectangle();\n this.ghostRectangle2.setDashArray(\"- \");\n this.ghostRectangle2.setStroke(1);\n this.ghostRectangle2.setColor(\"#5497DC\");\n this.ghostRectangle2.setBackgroundColor(null);\n\n this.ghostRectangle1.setBoundingBox(this.mouseDraggingElement.getBoundingBox());\n this.ghostRectangle2.setBoundingBox(this.mouseDraggingElement.getBoundingBox());\n\n this.ghostRectangle1.setCanvas(canvas);\n this.ghostRectangle1.toFront();\n\n this.ghostRectangle2.setCanvas(canvas);\n this.ghostRectangle2.toFront();\n\n this.clone = this.mouseDraggingElement.clone();\n if (this.clone instanceof _packages2.default.shape.node.Node) {\n this.clone.resetPorts();\n }\n this.clone.setCanvas(canvas);\n this.clone.getShapeElement();\n this.clone.setAlpha(0.4);\n this.clone.repaint();\n } else {\n this.ghostRectangle1.translate(dx2, dy2);\n this.ghostRectangle2.translate(dx2, dy2);\n this.clone.translate(dx2, dy2);\n }\n\n sel.each(function (i, figure) {\n // store the new location in a tmp var.\n figure._newPos = new _packages2.default.geo.Point(figure.ox + dx, figure.oy + dy);\n\n // don't move the figure. This will be done in the MouseUp event\n //figure.onDrag(dx, dy, dx2, dy2);\n });\n }\n\n var p = canvas.fromDocumentToCanvasCoordinate(canvas.mouseDownX + dx / canvas.zoomFactor, canvas.mouseDownY + dy / canvas.zoomFactor);\n var target = canvas.getBestFigure(p.x, p.y, this.mouseDraggingElement);\n\n if (target !== canvas.currentDropTarget) {\n if (canvas.currentDropTarget !== null) {\n canvas.currentDropTarget.onDragLeave(this.mouseDraggingElement);\n canvas.currentDropTarget.fireEvent(\"dragLeave\", { draggingElement: this.draggingElement });\n canvas.currentDropTarget = null;\n }\n if (target !== null) {\n canvas.currentDropTarget = target.delegateTarget(this.mouseDraggingElement);\n // inform all listener that the element has accept a dropEnter event\n if (canvas.currentDropTarget !== null) {\n canvas.currentDropTarget.onDragEnter(this.mouseDraggingElement); // legacy\n canvas.currentDropTarget.fireEvent(\"dragEnter\", { draggingElement: this.draggingElement });\n }\n }\n }\n }\n // Connection didn't support panning at the moment. There is no special reason for that. Just an interaction\n // decision.\n //\n else if (this.mouseDownElement !== null && !(this.mouseDownElement instanceof _packages2.default.Connection)) {\n if (this.mouseDownElement.panningDelegate !== null) {\n this.mouseDownElement.panningDelegate.fireEvent(\"panning\", {\n dx: dx,\n dy: dy,\n dx2: dx2,\n dy2: dy2,\n shiftKey: shiftKey,\n ctrlKey: ctrlKey\n });\n this.mouseDownElement.panningDelegate.onPanning(dx, dy, dx2, dy2, shiftKey, ctrlKey);\n } else {\n this.mouseDownElement.fireEvent(\"panning\", {\n dx: dx,\n dy: dy,\n dx2: dx2,\n dy2: dy2,\n shiftKey: shiftKey,\n ctrlKey: ctrlKey\n });\n this.mouseDownElement.onPanning(dx, dy, dx2, dy2, shiftKey, ctrlKey);\n }\n }\n },\n\n /**\n * @inheritdoc\n */\n onMouseUp: function onMouseUp(canvas, x, y, shiftKey, ctrlKey) {\n\n if (this.ghostRectangle1 !== null) {\n this.ghostRectangle1.setCanvas(null);\n this.ghostRectangle1 = null;\n this.ghostRectangle2.setCanvas(null);\n this.ghostRectangle2 = null;\n this.clone.setCanvas(null);\n this.clone = null;\n }\n\n if (this.mouseDraggingElement !== null) {\n var redrawConnection = new _packages2.default.util.ArrayList();\n if (this.mouseDraggingElement instanceof _packages2.default.shape.node.Node) {\n canvas.lineIntersections.each(function (i, inter) {\n if (!redrawConnection.contains(inter.line)) redrawConnection.add(inter.line);\n if (!redrawConnection.contains(inter.other)) redrawConnection.add(inter.other);\n });\n }\n\n // start CommandStack transaction\n // Trigger an update of the connections if we have move a draw2d.shape.node.Node figure.\n // (only \"nodes\" can have ports and connections)\n //\n canvas.getCommandStack().startTransaction();\n\n var sel = canvas.getSelection().getAll();\n // We move a resize handle...\n //\n if (!sel.contains(this.mouseDraggingElement)) {\n this.mouseDraggingElement.onDragEnd(x, y, shiftKey, ctrlKey);\n }\n // ... or a real figure.\n //\n else {\n canvas.getSelection().getAll().each(function (i, figure) {\n // set position and cleanup tmp variable\n if (figure._newPos) {\n figure.setPosition(figure._newPos);\n delete figure._newPos;\n }\n // done\n figure.onDragEnd(x, y, shiftKey, ctrlKey);\n });\n }\n\n // May we drop the figure onto another shape..handle this here\n //\n if (canvas.currentDropTarget !== null && !this.mouseDraggingElement.isResizeHandle) {\n this.mouseDraggingElement.onDrop(canvas.currentDropTarget, x, y, shiftKey, ctrlKey);\n canvas.currentDropTarget.onDragLeave(this.mouseDraggingElement);\n canvas.currentDropTarget.onCatch(this.mouseDraggingElement, x, y, shiftKey, ctrlKey);\n canvas.currentDropTarget = null;\n }\n\n // end command stack trans\n canvas.getCommandStack().commitTransaction();\n\n if (this.mouseDraggingElement instanceof _packages2.default.shape.node.Node) {\n canvas.lineIntersections.each(function (i, inter) {\n if (!redrawConnection.contains(inter.line)) redrawConnection.add(inter.line);\n if (!redrawConnection.contains(inter.other)) redrawConnection.add(inter.other);\n });\n redrawConnection.each(function (i, line) {\n line.svgPathString = null;\n line.repaint();\n });\n }\n\n this.mouseDraggingElement = null;\n }\n\n // Reset the current selection if the user click in the blank canvas.\n // Don't reset the selection if the user is panning the canvas\n //\n if (this.mouseDownElement === null && this.mouseMovedDuringMouseDown === false) {\n this.select(canvas, null);\n }\n\n this.mouseDownElement = null;\n this.mouseMovedDuringMouseDown = false;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/KeyboardPolicy.js\":\n/*!*********************************************!*\\\n !*** ./src/policy/canvas/KeyboardPolicy.js ***!\n \\*********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Default interface for keyboard interaction with the canvas.\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.CanvasPolicy\n */\n_packages2.default.policy.canvas.KeyboardPolicy = _packages2.default.policy.canvas.CanvasPolicy.extend(\n/** @lends draw2d.policy.canvas.KeyboardPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.KeyboardPolicy\",\n\n /**\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * \n * Callback if the user release a key\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {Number} keyCode the pressed key\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @private\n **/\n onKeyUp: function onKeyUp(canvas, keyCode, shiftKey, ctrlKey) {\n // do nothing per default\n },\n\n /**\n * \n * Callback if the user press a key down\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {Number} keyCode the pressed key\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @private\n **/\n onKeyDown: function onKeyDown(canvas, keyCode, shiftKey, ctrlKey) {\n // do nothing per default\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/PanningSelectionPolicy.js\":\n/*!*****************************************************!*\\\n !*** ./src/policy/canvas/PanningSelectionPolicy.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.SingleSelectionPolicy\n */\n_packages2.default.policy.canvas.PanningSelectionPolicy = _packages2.default.policy.canvas.SingleSelectionPolicy.extend(\n/** @lends draw2d.policy.canvas.PanningSelectionPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.PanningSelectionPolicy\",\n\n /**\n * Creates a new Router object\n */\n init: function init() {\n this._super();\n },\n\n /**\n * \n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} dx The x diff between start of dragging and this event\n * @param {Number} dy The y diff between start of dragging and this event\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n */\n onMouseDrag: function onMouseDrag(canvas, dx, dy, dx2, dy2, shiftKey, ctrlKey) {\n this._super(canvas, dx, dy, dx2, dy2, shiftKey, ctrlKey);\n\n if (this.mouseDraggingElement === null && this.mouseDownElement === null) {\n\n // check if we are dragging a port. This isn't reported by the selection handler anymore\n //\n var p = canvas.fromDocumentToCanvasCoordinate(canvas.mouseDownX + dx / canvas.zoomFactor, canvas.mouseDownY + dy / canvas.zoomFactor);\n var figure = canvas.getBestFigure(p.x, p.y);\n\n if (figure === null) {\n var area = canvas.getScrollArea();\n area.scrollTop(area.scrollTop() - dy2);\n area.scrollLeft(area.scrollLeft() - dx2);\n }\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/ReadOnlySelectionPolicy.js\":\n/*!******************************************************!*\\\n !*** ./src/policy/canvas/ReadOnlySelectionPolicy.js ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.SelectionPolicy\n */\n_packages2.default.policy.canvas.ReadOnlySelectionPolicy = _packages2.default.policy.canvas.SelectionPolicy.extend(\n/** @lends draw2d.policy.canvas.ReadOnlySelectionPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.ReadOnlySelectionPolicy\",\n\n /**\n * Creates a new Router object\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * \n * Called by the host if the policy has been installed.\n *\n * @param {draw2d.Canvas/draw2d.Canvas} canvas\n */\n onInstall: function onInstall(canvas) {\n this._super(canvas);\n canvas.getAllPorts().each(function (i, port) {\n port.setVisible(false);\n });\n },\n\n /**\n * \n * Called by the host if the policy has been uninstalled.\n *\n * @param {draw2d.Canvas} canvas\n */\n onUninstall: function onUninstall(canvas) {\n canvas.getAllPorts().each(function (i, port) {\n port.setVisible(true);\n });\n\n this._super(canvas);\n },\n\n /**\n * \n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} dx The x diff between start of dragging and this event\n * @param {Number} dy The y diff between start of dragging and this event\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n */\n onMouseDrag: function onMouseDrag(canvas, dx, dy, dx2, dy2, shiftKey, ctrlKey) {\n var area = canvas.getScrollArea();\n area.scrollTop(area.scrollTop() - dy2);\n area.scrollLeft(area.scrollLeft() - dx2);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/SelectionPolicy.js\":\n/*!**********************************************!*\\\n !*** ./src/policy/canvas/SelectionPolicy.js ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.CanvasPolicy\n */\n_packages2.default.policy.canvas.SelectionPolicy = _packages2.default.policy.canvas.CanvasPolicy.extend(\n/** @lends draw2d.policy.canvas.SelectionPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.SelectionPolicy\",\n\n /**\n * Creates a new selection policy\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n *\n * Selects the given figure within the canvas. The policy must unselect already selected\n * figures or show any decorations.\n *\n * @param {draw2d.Canvas} canvas\n * @param {draw2d.Figure} figure\n *\n */\n select: function select(canvas, figure) {},\n\n /**\n *\n * Unselect the given figure in the canvas and remove all resize handles\n *\n * @param {draw2d.Canvas} canvas\n * @param {draw2d.Figure} figure\n */\n unselect: function unselect(canvas, figure) {\n canvas.getSelection().remove(figure);\n\n figure.unselect();\n\n // @since 6.1.42\n canvas.fireEvent(\"unselect\", { figure: figure });\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/ShowChessboardEditPolicy.js\":\n/*!*******************************************************!*\\\n !*** ./src/policy/canvas/ShowChessboardEditPolicy.js ***!\n \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Just to paint a grid in the background of a canvas.\n *\n *\n * @example\n *\n * canvas.installEditPolicy(new draw2d.policy.canvas.ShowChessboardEditPolicy());\n * let shape = new draw2d.shape.basic.Text({text:\"This is a simple text in a canvas with chessboard background.\"});\n *\n * canvas.add(shape,40,10);\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.canvas.DecorationPolicy\n */\n_packages2.default.policy.canvas.ShowChessboardEditPolicy = _packages2.default.policy.canvas.DecorationPolicy.extend(\n/** @lends draw2d.policy.canvas.ShowChessboardEditPolicy.prototype */\n{\n NAME: \"draw2d.policy.canvas.ShowChessboardEditPolicy\",\n\n GRID_COLOR: \"#e0e0e0\",\n GRID_WIDTH: 20,\n\n /**\n * Creates a new constraint policy for snap to grid\n *\n * @param {Number} grid the grid width of the canvas\n */\n init: function init(grid) {\n this._super();\n if (grid) {\n this.grid = grid;\n } else {\n this.grid = this.GRID_WIDTH;\n }\n },\n\n onInstall: function onInstall(canvas) {\n var _this = this;\n\n this._super(canvas);\n\n this.oldBg = this.canvas.html.css(\"background\");\n this.setGrid(1 / canvas.getZoom());\n this.onZoomCallback = function (emitterFigure, zoomData) {\n _this.setGrid(1 / zoomData.value);\n };\n canvas.on(\"zoom\", this.onZoomCallback);\n },\n\n onUninstall: function onUninstall(canvas) {\n this._super(canvas);\n $(canvas.paper.canvas).css({ \"background\": this.oldBg });\n canvas.off(this.onZoomCallback);\n },\n\n /**\n * Activate the grid and set the CSS properties for the SVG canvas\n * @private\n */\n setGrid: function setGrid(zoom) {\n\n var gridColor = this.GRID_COLOR;\n\n var background = \"linear-gradient(45deg, \" + gridColor + \" 25%, transparent 25%, transparent 75%, \" + gridColor + \" 75%, \" + gridColor + \" 100%),\\n\" + (\"linear-gradient(45deg, \" + gridColor + \" 25%, transparent 25%, transparent 75%, \" + gridColor + \" 75%, \" + gridColor + \" 100%)\");\n var backgroundSize = this.grid * 2 * zoom + \"px \" + this.grid * 2 * zoom + \"px\";\n var backgroundPosition = \"0 0, \" + this.grid * zoom + \"px \" + this.grid * zoom + \"px\";\n\n $(this.canvas.paper.canvas).css({\n \"background\": background,\n \"background-size\": backgroundSize,\n \"background-position\": backgroundPosition\n });\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/ShowDimetricGridEditPolicy.js\":\n/*!*********************************************************!*\\\n !*** ./src/policy/canvas/ShowDimetricGridEditPolicy.js ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A canvas decoration which paints a dimetric in the background.\n * <br>\n * <br>\n *\n * @example\n *\n * canvas.installEditPolicy(new draw2d.policy.canvas.ShowDimetricGridEditPolicy());\n * let shape = new draw2d.shape.basic.Text({text:\"This is a simple text in a canvas with grid background.\"});\n *\n * canvas.add(shape,40,10);\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.canvas.DecorationPolicy\n */\n_packages2.default.policy.canvas.ShowDimetricGridEditPolicy = _packages2.default.policy.canvas.DecorationPolicy.extend(\n/** @lends draw2d.policy.canvas.ShowDimetricGridEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.ShowDimetricGridEditPolicy\",\n\n GRID_COLOR: \"#f0f0f0\",\n GRID_WIDTH: 30,\n\n /**\n * Creates a new constraint policy for snap to grid\n *\n * @param {Number} [grid] the grid width of the canvas\n */\n init: function init(grid) {\n this.color = new _packages2.default.util.Color(this.GRID_COLOR);\n this.zoom = 1;\n this.shapes = null;\n\n this._super();\n\n if (typeof grid === \"number\") {\n this.grid = grid;\n } else {\n this.grid = this.GRID_WIDTH;\n }\n },\n\n onInstall: function onInstall(canvas) {\n this._super(canvas);\n this.zoom = canvas.getZoom();\n this.setGrid(this.grid);\n },\n\n onUninstall: function onUninstall(canvas) {\n this._super(canvas);\n if (this.shapes !== null) {\n this.shapes.remove();\n }\n },\n\n /**\n * \n * Set the grid color\n *\n * @param {draw2d.util.Color|String} color a color object or the CSS string declaration for a color\n * @since 5.0.3\n */\n setGridColor: function setGridColor(color) {\n this.color = new _packages2.default.util.Color(color);\n this.setGrid(this.grid);\n },\n\n /**\n * \n * Set a new grid width/height\n *\n * @param {Number} grid\n * @since 5.0.3\n */\n setGrid: function setGrid(grid) {\n this.grid = grid;\n\n if (this.canvas != null) {\n if (this.shapes !== null) {\n this.shapes.remove();\n }\n\n var r = this.canvas.paper;\n var d = this.grid,\n i = void 0;\n var w = r.width;\n var h = r.height;\n var props = { stroke: this.color.rgba() };\n\n var max = Math.sqrt(w * w + h * h);\n var angle26 = Math.atan(.5);\n var angle153 = Math.PI - angle26;\n var cos30 = Math.cos(angle26);\n var sin30 = Math.sin(angle26);\n var cos150 = Math.cos(angle153);\n var sin150 = Math.sin(angle153);\n\n r.setStart();\n // horizontal\n for (i = 0; i <= w; i += d * 2) {\n r.path([[\"M\", i, 0], [\"L\", i + cos30 * max, sin30 * max]]).attr(props);\n r.path([[\"M\", i, 0], [\"L\", i + cos150 * max, sin150 * max]]).attr(props);\n }\n for (i = d; i <= h; i += d) {\n r.path([[\"M\", 0, i], [\"L\", cos30 * max, i + sin30 * max]]).attr(props);\n r.path([[\"M\", w, i], [\"L\", w + cos150 * max, i + sin150 * max]]).attr(props);\n }\n // vertical\n this.shapes = r.setFinish();\n\n this.shapes.toBack();\n }\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/ShowDotEditPolicy.js\":\n/*!************************************************!*\\\n !*** ./src/policy/canvas/ShowDotEditPolicy.js ***!\n \\************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Paint a dotted pattern in the background of the canvas.\n *\n *\n * @example\n *\n * canvas.installEditPolicy(new draw2d.policy.canvas.ShowDotEditPolicy());\n * let shape = new draw2d.shape.basic.Text({text:\"This is a simple text in a canvas with dotted background.\"});\n *\n * canvas.add(shape,40,10);\n *\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.canvas.DecorationPolicy\n * @since 4.0.1\n */\n\n_packages2.default.policy.canvas.ShowDotEditPolicy = _packages2.default.policy.canvas.DecorationPolicy.extend(\n/** @lends draw2d.policy.canvas.ShowDotEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.ShowDotEditPolicy\",\n\n DOT_COLOR: \"#999999\",\n DOT_RADIUS: 1,\n DOT_DISTANCE: 20,\n\n /**\n * show a dot grid in the canvas for decoration.\n *\n * @param {Number} [dotDistance] the distance or grid width between the dots.\n * @param {Number} [dotRadius] the radius of the dots.\n * @param {draw2d.util.Color|String} [dotColor] the color for the dots.\n */\n init: function init(dotDistance, dotRadius, dotColor) {\n var _this = this;\n\n this._super();\n\n this.dotDistance = dotDistance ? dotDistance : this.DOT_DISTANCE;\n this.dotRadius = dotRadius ? dotRadius : this.DOT_RADIUS;\n this.dotColor = new _packages2.default.util.Color(dotColor ? dotColor : this.DOT_COLOR);\n this.onZoomCallback = function (emitterFigure, zoomData) {\n _this.setGrid(1 / zoomData.value);\n };\n },\n\n onInstall: function onInstall(canvas) {\n this._super(canvas);\n\n this.oldBg = this.canvas.html.css(\"background\");\n this.setGrid(1 / canvas.getZoom());\n canvas.on(\"zoom\", this.onZoomCallback);\n },\n\n onUninstall: function onUninstall(canvas) {\n this._super(canvas);\n $(canvas.paper.canvas).css({ \"background\": this.oldBg });\n canvas.off(this.onZoomCallback);\n },\n\n /**\n * @private\n * @param {Number} zoom \n */\n setGrid: function setGrid(zoom) {\n var bgColor = \"#FFFFFF\";\n var dotColor = this.dotColor.rgba();\n\n var background = \"linear-gradient(90deg, \" + bgColor + \" \" + (this.dotDistance - this.dotRadius) * zoom + \"px, transparent 1%) center, linear-gradient(\" + bgColor + \" \" + (this.dotDistance - this.dotRadius) * zoom + \"px, transparent 1%) center, \" + dotColor;\n var backgroundSize = this.dotDistance * zoom + \"px \" + this.dotDistance * zoom + \"px\";\n\n $(this.canvas.paper.canvas).css({\n \"background\": background,\n \"background-size\": backgroundSize\n });\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/ShowGridEditPolicy.js\":\n/*!*************************************************!*\\\n !*** ./src/policy/canvas/ShowGridEditPolicy.js ***!\n \\*************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A cavas decoration which paints a grid in the background.\n * <br>\n * <br>\n *\n * @example\n *\n * canvas.installEditPolicy(new draw2d.policy.canvas.ShowGridEditPolicy());\n * let shape = new draw2d.shape.basic.Text({text:\"This is a simple text in a canvas with grid background.\"});\n *\n * canvas.add(shape,40,10);\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.canvas.DecorationPolicy\n */\n_packages2.default.policy.canvas.ShowGridEditPolicy = _packages2.default.policy.canvas.DecorationPolicy.extend(\n/** @lends draw2d.policy.canvas.ShowGridEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.ShowGridEditPolicy\",\n\n GRID_COLOR: \"#f0f0f0\",\n GRID_WIDTH: 20,\n GRID_STOKE: 1,\n\n /**\n * Creates a new constraint policy for snap to grid\n *\n * @param {Number} [grid] the grid width of the canvas\n */\n init: function init(gridDistance, gridStroke, gridColor) {\n var _this = this;\n\n this.gridWidth = gridDistance || this.GRID_WIDTH;\n this.gridStroke = gridStroke || this.GRID_STOKE;\n this.gridColor = new _packages2.default.util.Color(gridColor || this.GRID_COLOR);\n this._super();\n this.onZoomCallback = function (emitterFigure, zoomData) {\n _this.setGrid(1 / zoomData.value);\n };\n },\n\n /**\n *\n * Set the grid color\n *\n * @param {draw2d.util.Color|String} color a color object or the CSS string declaration for a color\n * @since 5.0.3\n */\n setGridColor: function setGridColor(color) {\n this.gridColor = new _packages2.default.util.Color(color);\n this.setGrid(1 / this.canvas.getZoom());\n },\n\n onInstall: function onInstall(canvas) {\n this._super(canvas);\n\n this.oldBg = this.canvas.html.css(\"background\");\n this.setGrid(1 / canvas.getZoom());\n canvas.on(\"zoom\", this.onZoomCallback);\n },\n\n onUninstall: function onUninstall(canvas) {\n this._super(canvas);\n\n $(canvas.paper.canvas).css({ \"background\": this.oldBg });\n canvas.off(this.onZoomCallback);\n },\n\n /**\n * @private\n * @param {Number} zoom \n */\n setGrid: function setGrid(zoom) {\n var bgColor = \"#FFFFFF\";\n var color = this.gridColor.rgba();\n\n var background = \" linear-gradient(to right, \" + color + \" \" + this.gridStroke + \"px, transparent \" + this.gridStroke + \"px),\\n linear-gradient(to bottom, \" + color + \" \" + this.gridStroke + \"px, \" + bgColor + \" \" + this.gridStroke + \"px)\";\n var backgroundSize = this.gridWidth * zoom + \"px \" + this.gridWidth * zoom + \"px\";\n\n $(this.canvas.paper.canvas).css({\n \"background\": background,\n \"background-size\": backgroundSize\n });\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/SingleSelectionPolicy.js\":\n/*!****************************************************!*\\\n !*** ./src/policy/canvas/SingleSelectionPolicy.js ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.SelectionPolicy\n */\n_packages2.default.policy.canvas.SingleSelectionPolicy = _packages2.default.policy.canvas.SelectionPolicy.extend(\n/** @lends draw2d.policy.canvas.SingleSelectionPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.SingleSelectionPolicy\",\n\n /**\n * Creates a new Router object\n */\n init: function init() {\n this._super();\n this.mouseMovedDuringMouseDown = false;\n this.mouseDraggingElement = null;\n this.mouseDownElement = null;\n },\n\n /**\n * @inheritdoc\n */\n select: function select(canvas, figure) {\n if (canvas.getSelection().contains(figure)) {\n return; // nothing to to\n }\n\n var oldSelection = canvas.getSelection().getPrimary();\n if (canvas.getSelection().getPrimary() !== null) {\n this.unselect(canvas, canvas.getSelection().getPrimary());\n }\n\n if (figure !== null) {\n figure.select(true); // primary selection\n }\n\n canvas.getSelection().setPrimary(figure);\n\n // inform all selection listeners about the new selection.\n //\n if (oldSelection !== figure) {\n canvas.fireEvent(\"select\", { figure: figure, selection: canvas.getSelection() });\n }\n },\n\n /**\n *\n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseDown: function onMouseDown(canvas, x, y, shiftKey, ctrlKey) {\n this.mouseMovedDuringMouseDown = false;\n var canDragStart = true;\n\n // ignore ports since version 6.1.0. This is handled by the ConnectionCreatePolicy\n //\n var figure = canvas.getBestFigure(x, y);\n\n // may the figure is assigned to a composite. In this case the composite can\n // override the event receiver\n while (figure !== null) {\n var delegate = figure.getSelectionAdapter()();\n if (delegate === figure) {\n break;\n }\n figure = delegate;\n }\n\n // ignore ports since version 6.1.0. This is handled by the ConnectionCreatePolicy\n //\n if (figure instanceof _packages2.default.Port) {\n return; // silently\n }\n\n if (figure !== null && figure.isDraggable()) {\n canDragStart = figure.onDragStart(x - figure.getAbsoluteX(), y - figure.getAbsoluteY(), shiftKey, ctrlKey);\n // Element send a veto about the drag&drop operation\n this.mouseDraggingElement = canDragStart === false ? null : figure;\n }\n\n this.mouseDownElement = figure;\n if (this.mouseDownElement !== null) {\n this.mouseDownElement.fireEvent(\"mousedown\", { x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n }\n\n if (figure !== canvas.getSelection().getPrimary() && figure !== null && figure.isSelectable() === true) {\n this.select(canvas, figure);\n\n // it's a line\n if (figure instanceof _packages2.default.shape.basic.Line) {\n // you can move a line with Drag&Drop...but not a connection.\n // A Connection is fixed linked with the corresponding ports.\n //\n if (!(figure instanceof _packages2.default.Connection)) {\n canvas.draggingLineCommand = figure.createCommand(new _packages2.default.command.CommandType(_packages2.default.command.CommandType.MOVE));\n if (canvas.draggingLineCommand !== null) {\n canvas.draggingLine = figure;\n }\n }\n } else if (canDragStart === false) {\n figure.unselect();\n }\n }\n },\n\n /**\n *\n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} dx The x diff between start of dragging and this event\n * @param {Number} dy The y diff between start of dragging and this event\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n */\n onMouseDrag: function onMouseDrag(canvas, dx, dy, dx2, dy2, shiftKey, ctrlKey) {\n\n this.mouseMovedDuringMouseDown = true;\n if (this.mouseDraggingElement !== null) {\n\n // mouseDraggingElement be a ResizeHandle...in this case it is not part of the selection\n //\n var sel = canvas.getSelection();\n if (!sel.contains(this.mouseDraggingElement)) {\n this.mouseDraggingElement.onDrag(dx, dy, dx2, dy2, shiftKey, ctrlKey);\n } else {\n sel.each(function (i, figure) {\n figure.onDrag(dx, dy, dx2, dy2, shiftKey, ctrlKey);\n });\n }\n\n var p = canvas.fromDocumentToCanvasCoordinate(canvas.mouseDownX + dx / canvas.zoomFactor, canvas.mouseDownY + dy / canvas.zoomFactor);\n var target = canvas.getBestFigure(p.x, p.y, this.mouseDraggingElement);\n\n if (target !== canvas.currentDropTarget) {\n if (canvas.currentDropTarget !== null) {\n canvas.currentDropTarget.onDragLeave(this.mouseDraggingElement);\n canvas.currentDropTarget.fireEvent(\"dragLeave\", { draggingElement: this.mouseDraggingElement });\n canvas.currentDropTarget = null;\n }\n if (target !== null) {\n canvas.currentDropTarget = target.delegateTarget(this.mouseDraggingElement);\n // inform all listener that the element has accept the dragEnter event\n //\n if (canvas.currentDropTarget !== null) {\n canvas.currentDropTarget.onDragEnter(this.mouseDraggingElement); // legacy\n canvas.currentDropTarget.fireEvent(\"dragEnter\", { draggingElement: this.mouseDraggingElement });\n }\n }\n }\n }\n // Connection didn't support panning at the moment. There is no special reason for that. Just an interaction\n // decision.\n //\n else if (this.mouseDownElement !== null && !(this.mouseDownElement instanceof _packages2.default.Connection)) {\n if (this.mouseDownElement.panningDelegate !== null) {\n this.mouseDownElement.panningDelegate.fireEvent(\"panning\", {\n dx: dx,\n dy: dy,\n dx2: dx2,\n dy2: dy2,\n shiftKey: shiftKey,\n ctrlKey: ctrlKey\n });\n this.mouseDownElement.panningDelegate.onPanning(dx, dy, dx2, dy2, shiftKey, ctrlKey);\n } else {\n this.mouseDownElement.fireEvent(\"panning\", {\n dx: dx,\n dy: dy,\n dx2: dx2,\n dy2: dy2,\n shiftKey: shiftKey,\n ctrlKey: ctrlKey\n });\n this.mouseDownElement.onPanning(dx, dy, dx2, dy2, shiftKey, ctrlKey);\n }\n }\n },\n\n /**\n *\n *\n * @param {draw2d.Canvas} canvas the related Canvas\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseUp: function onMouseUp(canvas, x, y, shiftKey, ctrlKey) {\n if (this.mouseDraggingElement !== null) {\n var redrawConnection = new _packages2.default.util.ArrayList();\n if (this.mouseDraggingElement instanceof _packages2.default.shape.node.Node) {\n // TODO: don't add the connections with to check if a repaint is required\n // may a moved connection didn't have an intersection with the named lines.\n // in this case a redraw is useless\n canvas.lineIntersections.each(function (i, inter) {\n if (!redrawConnection.contains(inter.line)) redrawConnection.add(inter.line);\n if (!redrawConnection.contains(inter.other)) redrawConnection.add(inter.other);\n });\n }\n\n // start CommandStack transaction\n canvas.getCommandStack().startTransaction();\n\n var sel = canvas.getSelection().getAll();\n if (!sel.contains(this.mouseDraggingElement)) {\n this.mouseDraggingElement.onDragEnd(x, y, shiftKey, ctrlKey);\n } else {\n canvas.getSelection().getAll().each(function (i, figure) {\n figure.onDragEnd(x, y, shiftKey, ctrlKey);\n });\n }\n\n if (canvas.currentDropTarget !== null && !this.mouseDraggingElement.isResizeHandle) {\n this.mouseDraggingElement.onDrop(canvas.currentDropTarget, x, y, shiftKey, ctrlKey);\n canvas.currentDropTarget.onDragLeave(this.mouseDraggingElement);\n canvas.currentDropTarget.fireEvent(\"dragLeave\", { draggingElement: this.mouseDraggingElement });\n canvas.currentDropTarget.onCatch(this.mouseDraggingElement, x, y, shiftKey, ctrlKey);\n canvas.currentDropTarget = null;\n }\n\n // end command stack trans\n canvas.getCommandStack().commitTransaction();\n\n if (this.mouseDraggingElement instanceof _packages2.default.shape.node.Node) {\n canvas.lineIntersections.each(function (i, inter) {\n if (!redrawConnection.contains(inter.line)) redrawConnection.add(inter.line);\n if (!redrawConnection.contains(inter.other)) redrawConnection.add(inter.other);\n });\n redrawConnection.each(function (i, line) {\n line.svgPathString = null;\n line.repaint();\n });\n }\n\n this.mouseDraggingElement = null;\n }\n // Connection didn't support panning at the moment. There is no special reason for that. Just an interaction\n // decision.\n //\n else if (this.mouseDownElement !== null && !(this.mouseDownElement instanceof _packages2.default.Connection)) {\n if (this.mouseDownElement.panningDelegate !== null) {\n this.mouseDownElement.panningDelegate.fireEvent(\"panningEnd\");\n this.mouseDownElement.panningDelegate.onPanningEnd();\n } else {\n this.mouseDownElement.fireEvent(\"panningEnd\");\n this.mouseDownElement.onPanningEnd();\n }\n }\n\n // Reset the current selection if the user click in the blank canvas.\n // Don't reset the selection if the user pan the canvas\n //\n if (this.mouseDownElement === null && this.mouseMovedDuringMouseDown === false) {\n this.select(canvas, null);\n }\n\n if (this.mouseDownElement !== null) {\n this.mouseDownElement.fireEvent(\"mouseup\", { x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n }\n\n this.mouseDownElement = null;\n this.mouseMovedDuringMouseDown = false;\n },\n\n /**\n *\n * Called by the canvas if the user click on a figure.\n *\n * @param {draw2d.Figure} figure the figure under the click event. Can be null\n * @param {Number} mouseX the x coordinate of the mouse during the click event\n * @param {Number} mouseY the y coordinate of the mouse during the click event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @since 3.0.0\n */\n onClick: function onClick(figure, mouseX, mouseY, shiftKey, ctrlKey) {\n if (figure !== null) {\n figure.fireEvent(\"click\", {\n figure: figure,\n x: mouseX,\n y: mouseY,\n relX: mouseX - figure.getAbsoluteX(),\n relY: mouseY - figure.getAbsoluteY(),\n shiftKey: shiftKey,\n ctrlKey: ctrlKey\n });\n\n figure.onClick();\n }\n },\n\n /**\n *\n * Called by the canvas if the user double click on a figure.\n *\n * @param {draw2d.Figure} figure the figure under the double click event. Can be null\n * @param {Number} mouseX the x coordinate of the mouse during the click event\n * @param {Number} mouseY the y coordinate of the mouse during the click event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @since 4.1.0\n */\n onDoubleClick: function onDoubleClick(figure, mouseX, mouseY, shiftKey, ctrlKey) {\n if (figure !== null) {\n figure.fireEvent(\"dblclick\", { x: mouseX, y: mouseY, shiftKey: shiftKey, ctrlKey: ctrlKey });\n figure.onDoubleClick();\n }\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/SnapToCenterEditPolicy.js\":\n/*!*****************************************************!*\\\n !*** ./src/policy/canvas/SnapToCenterEditPolicy.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Snapping is based on the existing children of a container. When snapping a shape,\n * the center of the bounding box will snap to the center of other figures of the given canvas.\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.canvas.SnapToEditPolicy\n * @since 5.6.4\n */\n_packages2.default.policy.canvas.SnapToCenterEditPolicy = _packages2.default.policy.canvas.SnapToEditPolicy.extend(\n/** @lends draw2d.policy.canvas.SnapToCenterEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.SnapToCenterEditPolicy\",\n\n SNAP_THRESHOLD: 5,\n FADEOUT_DURATION: 500,\n\n /**\n * Creates a new constraint policy for snap to geometry\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n this.centers = null;\n\n this.horizontalGuideLines = null;\n this.verticalGuideLines = null;\n },\n\n /**\n *\n *\n * @param {draw2d.Figure} figure the shape below the mouse or null\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseUp: function onMouseUp(figure, x, y, shiftKey, ctrlKey) {\n this.centers = null;\n this.hideHorizontalGuides(false);\n this.hideVerticalGuides(false);\n },\n\n /**\n *\n * Adjust the coordinates to the canvas neighbours\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {draw2d.Figure} figure the figure to snap\n * @param {draw2d.geo.Point} modifiedPos the already modified position of the figure (e.g. from an another Policy)\n * @param {draw2d.geo.Point} originalPos the original requested position of the figure\n *\n * @returns {draw2d.geo.Point} the constraint position of the figure\n */\n snap: function snap(canvas, figure, modifiedPos, originalPos) {\n // do nothing for resize handles\n if (figure instanceof _packages2.default.ResizeHandle) {\n return modifiedPos;\n }\n\n // do nothing for lines\n if (figure instanceof _packages2.default.shape.basic.Line) {\n return modifiedPos;\n }\n\n var allowXChanges = modifiedPos.x === originalPos.x;\n var allowYChanges = modifiedPos.y === originalPos.y;\n\n var inputBounds = new _packages2.default.geo.Rectangle(modifiedPos.x, modifiedPos.y, figure.getWidth(), figure.getHeight());\n var inputCenter = inputBounds.getCenter();\n\n modifiedPos = modifiedPos.clone();\n\n if (allowXChanges === true) {\n var horizontal = this.snapHorizontal(inputCenter);\n\n // Show a horizontal line if the snapper has modified the inputPoint\n //\n if (horizontal.snapped) {\n // show the snap lines..\n this.showHorizontalGuides(figure, horizontal);\n\n // and snap the x coordinate\n modifiedPos.y += horizontal.diff;\n } else {\n this.hideHorizontalGuides(true);\n }\n } else {\n this.hideHorizontalGuides(true);\n }\n\n if (allowYChanges === true) {\n var vertical = this.snapVertical(inputCenter);\n\n // Show a vertical guides if the snapper has modified the inputPoint\n //\n if (vertical.snapped) {\n // show the snap lines..\n this.showVerticalGuides(figure, vertical);\n\n // and snap the x coordinate\n modifiedPos.x += vertical.diff;\n } else {\n this.hideVerticalGuides(true);\n }\n } else {\n this.hideVerticalGuides(true);\n }\n\n return modifiedPos;\n },\n\n snapVertical: function snapVertical(center) {\n var _this = this;\n if (this.centers === null) {\n this.populateCenters();\n }\n\n var result = {\n point: center,\n snapped: false,\n diff: 0\n };\n\n var candidates = [];\n this.centers.forEach(function (point) {\n if (Math.abs(point.x - center.x) < _this.SNAP_THRESHOLD) {\n candidates.push(point);\n }\n });\n\n // we can abort if we didn't find an intersection on the right hand side\n if (candidates.length === 0) {\n return result;\n }\n\n // sort the intersection point and get the closest point to the tested inputPoint\n // In this case it is the point with the greatest X coordinate\n //\n candidates.sort(function (a, b) {\n return a.x - b.x;\n });\n\n var diff = candidates[0].x - center.x;\n var snappedPoint = center.clone();\n snappedPoint.x += diff;\n return { snapped: true, diff: diff, point: candidates[0], snappedPoint: snappedPoint };\n },\n\n snapHorizontal: function snapHorizontal(center) {\n var _this = this;\n if (this.centers === null) {\n this.populateCenters();\n }\n\n var result = {\n point: center,\n snapped: false,\n diff: 0\n };\n\n var candidates = [];\n this.centers.forEach(function (point) {\n if (Math.abs(point.y - center.y) < _this.SNAP_THRESHOLD) {\n candidates.push(point);\n }\n });\n\n // we can abort if we didn't find an intersection on the right hand side\n if (candidates.length === 0) {\n return result;\n }\n\n // sort the intersection point and get the closest point to the tested inputPoint\n // In this case it is the point with the greatest X coordinate\n //\n candidates.sort(function (a, b) {\n return a.y - b.y;\n });\n\n var diff = candidates[0].y - center.y;\n var snappedPoint = center.clone();\n snappedPoint.y += diff;\n return { snapped: true, diff: diff, point: candidates[0], snappedPoint: snappedPoint };\n },\n\n populateCenters: function populateCenters() {\n var selection = this.canvas.getSelection().getAll(true);\n var centers = this.centers = [];\n\n var figures = this.canvas.getFigures();\n figures.each(function (index, figure) {\n if (!selection.contains(figure)) {\n centers.push(figure.getBoundingBox().getCenter());\n }\n });\n },\n\n showHorizontalGuides: function showHorizontalGuides(causedFigure, constraint) {\n if (this.horizontalGuideLines !== null) {\n this.horizontalGuideLines.stop();\n this.horizontalGuideLines.remove();\n }\n\n var start = constraint.point;\n var end = constraint.snappedPoint;\n\n this.canvas.paper.setStart();\n\n // horizontal lines\n //\n this.canvas.paper.path(\"M \" + start.x + \" \" + ((start.y | 0) + 0.5) + \" L \" + end.x + \" \" + ((end.y | 0) + 0.5)).attr({\n \"stroke\": this.lineColor.rgba(),\n \"stroke-width\": 1\n });\n\n this.horizontalGuideLines = this.canvas.paper.setFinish();\n this.horizontalGuideLines.toFront();\n },\n\n /**\n *\n * Hide the horizontal snapping guides\n *\n * @param {Boolean} fast\n */\n hideHorizontalGuides: function hideHorizontalGuides(fast) {\n var _this2 = this;\n\n if (this.horizontalGuideLines === null) {\n return;\n }\n if (fast === true) {\n if (this.horizontalGuideLines !== null) {\n this.horizontalGuideLines.remove();\n this.horizontalGuideLines = null;\n }\n } else {\n this.horizontalGuideLines.animate({ opacity: 0.1 }, this.FADEOUT_DURATION, function () {\n if (_this2.horizontalGuideLines !== null) {\n _this2.horizontalGuideLines.remove();\n _this2.horizontalGuideLines = null;\n }\n });\n }\n },\n\n showVerticalGuides: function showVerticalGuides(causedFigure, constraint) {\n if (this.verticalGuideLines !== null) {\n this.verticalGuideLines.stop();\n this.verticalGuideLines.remove();\n }\n\n var start = constraint.point;\n var end = constraint.snappedPoint;\n\n this.canvas.paper.setStart();\n\n // horizontal lines\n //\n this.canvas.paper.path(\"M \" + ((start.x | 0) + 0.5) + \" \" + start.y + \" L \" + ((end.x | 0) + 0.5) + \" \" + end.y).attr({\n \"stroke\": this.lineColor.rgba(),\n \"stroke-width\": 1\n });\n\n this.verticalGuideLines = this.canvas.paper.setFinish();\n this.verticalGuideLines.toFront();\n },\n\n /**\n *\n * Hide the horizontal snapüing guides\n *\n * @param soft\n */\n hideVerticalGuides: function hideVerticalGuides(fast) {\n var _this3 = this;\n\n if (this.verticalGuideLines === null) {\n return;\n }\n if (fast === true) {\n if (this.verticalGuideLines !== null) {\n this.verticalGuideLines.remove();\n this.verticalGuideLines = null;\n }\n } else {\n this.verticalGuideLines.animate({ opacity: 0.1 }, this.FADEOUT_DURATION, function () {\n if (_this3.verticalGuideLines !== null) {\n _this3.verticalGuideLines.remove();\n _this3.verticalGuideLines = null;\n }\n });\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/SnapToDimetricGridEditPolicy.js\":\n/*!***********************************************************!*\\\n !*** ./src/policy/canvas/SnapToDimetricGridEditPolicy.js ***!\n \\***********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A helper used to perform snapping to a grid, which is specified on the canvas via the various\n * properties defined in this class.\n *\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.canvas.ShowDimetricGridEditPolicy\n */\n_packages2.default.policy.canvas.SnapToDimetricGridEditPolicy = _packages2.default.policy.canvas.ShowDimetricGridEditPolicy.extend(\n/** @lends draw2d.policy.canvas.SnapToDimetricGridEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.SnapToDimetricGridEditPolicy\",\n\n /**\n * Creates a new constraint policy for snap to grid\n *\n * @param {Number} grid the grid width of the canvas\n */\n init: function init(grid) {\n this._super(grid);\n },\n\n /**\n *\n * Applies a snapping correction to the given result.\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {draw2d.Figure} figure the figure to snap\n * @param {draw2d.geo.Point} modifiedPos the already modified position of the figure (e.g. from an another Policy)\n * @param {draw2d.geo.Point} originalPos the original requested position of the figure\n * @since 2.3.0\n */\n snap: function snap(canvas, figure, modifiedPos, originalPos) {\n // do nothing for lines\n if (figure instanceof _packages2.default.shape.basic.Line) {\n return modifiedPos;\n }\n\n var snapPoint = figure.getSnapToGridAnchor();\n\n modifiedPos.x = modifiedPos.x + snapPoint.x;\n modifiedPos.y = modifiedPos.y + snapPoint.y;\n\n var g = this.grid / 5;\n\n modifiedPos.x = g * Math.floor((modifiedPos.x + g / 2.0) / g);\n modifiedPos.y = g * Math.floor((modifiedPos.y + g / 2.0) / g);\n\n modifiedPos.x = modifiedPos.x - snapPoint.x;\n modifiedPos.y = modifiedPos.y - snapPoint.y;\n\n return modifiedPos;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/SnapToEditPolicy.js\":\n/*!***********************************************!*\\\n !*** ./src/policy/canvas/SnapToEditPolicy.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.SnapToHelper = {};\n\n_packages2.default.SnapToHelper.NORTH = 1;\n_packages2.default.SnapToHelper.SOUTH = 4;\n_packages2.default.SnapToHelper.WEST = 8;\n_packages2.default.SnapToHelper.EAST = 16;\n_packages2.default.SnapToHelper.CENTER_H = 32;\n_packages2.default.SnapToHelper.CENTER_V = 642;\n\n_packages2.default.SnapToHelper.NORTH_EAST = _packages2.default.SnapToHelper.NORTH | _packages2.default.SnapToHelper.EAST;\n_packages2.default.SnapToHelper.NORTH_WEST = _packages2.default.SnapToHelper.NORTH | _packages2.default.SnapToHelper.WEST;\n_packages2.default.SnapToHelper.SOUTH_EAST = _packages2.default.SnapToHelper.SOUTH | _packages2.default.SnapToHelper.EAST;\n_packages2.default.SnapToHelper.SOUTH_WEST = _packages2.default.SnapToHelper.SOUTH | _packages2.default.SnapToHelper.WEST;\n_packages2.default.SnapToHelper.NORTH_SOUTH = _packages2.default.SnapToHelper.NORTH | _packages2.default.SnapToHelper.SOUTH;\n_packages2.default.SnapToHelper.EAST_WEST = _packages2.default.SnapToHelper.EAST | _packages2.default.SnapToHelper.WEST;\n_packages2.default.SnapToHelper.NSEW = _packages2.default.SnapToHelper.NORTH_SOUTH | _packages2.default.SnapToHelper.EAST_WEST;\n\n/**\n * @class\n *\n * A helper used by Tools for snapping certain mouse interactions.\n *\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.canvas.CanvasPolicy\n */\n_packages2.default.policy.canvas.SnapToEditPolicy = _packages2.default.policy.canvas.CanvasPolicy.extend(\n/** @lends draw2d.policy.canvas.SnapToEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.SnapToEditPolicy\",\n\n /**\n * Creates a new constraint policy for snap to grid\n *\n */\n init: function init(attr, setter, getter) {\n this.lineColor = null;\n\n this._super((0, _extend2.default)({\n lineColor: \"#51C1FC\"\n }, attr), (0, _extend2.default)({\n // @attr {draw2d.util.Color} color the line color of the snapTo lines */\n lineColor: this.setLineColor\n }, setter), (0, _extend2.default)({\n lineColor: this.getLineColor\n }, getter));\n },\n\n /**\n *\n * Set the color of the snap line.\n *\n * // Alternatively you can use the attr method:\n * policy.attr({\n * lineColor: color\n * });\n *\n * @param {draw2d.util.Color|String} color The new color of the line.\n **/\n setLineColor: function setLineColor(color) {\n this.lineColor = new _packages2.default.util.Color(color);\n return this;\n },\n\n /**\n *\n * Return the current paint color.\n *\n * @returns {draw2d.util.Color} The paint color of the line.\n * @since 5.6.1\n **/\n getLineColor: function getLineColor() {\n return this.lineColor;\n },\n\n /**\n *\n * Adjust the coordinates to the given constraint of the policy.\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {draw2d.Figure} figure the figure to snap\n * @param {draw2d.geo.Point} modifiedPos the already modified position of the figure (e.g. from an another Policy)\n * @param {draw2d.geo.Point} originalPos the original requested position of the figure\n */\n snap: function snap(canvas, figure, modifiedPos, originalPos) {\n return modifiedPos;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/SnapToGeometryEditPolicy.js\":\n/*!*******************************************************!*\\\n !*** ./src/policy/canvas/SnapToGeometryEditPolicy.js ***!\n \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Snapping is based on the existing children of a container. When snapping a shape,\n * the edges of the bounding box will snap to edges of other rectangles generated\n * from the children of the given canvas.\n *\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.canvas.SnapToEditPolicy\n */\n_packages2.default.policy.canvas.SnapToGeometryEditPolicy = _packages2.default.policy.canvas.SnapToEditPolicy.extend(\n/** @lends draw2d.policy.canvas.SnapToGeometryEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.SnapToGeometryEditPolicy\",\n\n SNAP_THRESHOLD: 3,\n FADEOUT_DURATION: 300,\n\n /**\n * Creates a new constraint policy for snap to geometry\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n this.rows = null;\n this.cols = null;\n this.vline = null;\n this.hline = null;\n },\n\n /**\n * \n *\n * @param {draw2d.Figure} figure the shape below the mouse or null\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseUp: function onMouseUp(figure, x, y, shiftKey, ctrlKey) {\n this.rows = null;\n this.cols = null;\n this.hideVerticalLine();\n this.hideHorizontalLine();\n },\n\n /**\n * \n * Adjust the coordinates to the canvas neighbours\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {draw2d.Figure} figure the figure to snap\n * @param {draw2d.geo.Point} modifiedPos the already modified position of the figure (e.g. from an another Policy)\n * @param {draw2d.geo.Point} originalPos the original requested position of the figure\n *\n * @returns {draw2d.geo.Point} the constraint position of the figure\n */\n snap: function snap(canvas, figure, modifiedPos, originalPos) {\n // do nothing for lines\n if (figure instanceof _packages2.default.shape.basic.Line) {\n return modifiedPos;\n }\n\n var result = void 0;\n var allowXChanges = modifiedPos.x === originalPos.x;\n var allowYChanges = modifiedPos.y === originalPos.y;\n\n // Coordinates already snapped to an x/y coordinate.\n // Don't change them and in this case no further calculation is requried.\n //\n if (!allowXChanges && !allowYChanges) {\n return modifiedPos;\n }\n\n if (figure instanceof _packages2.default.ResizeHandle) {\n var snapPoint = figure.getSnapToGridAnchor();\n modifiedPos.x += snapPoint.x;\n modifiedPos.y += snapPoint.y;\n\n var snapDirections = figure.getSnapToDirection();\n result = this.snapPoint(snapDirections, modifiedPos);\n\n // Show a vertical line if the snapper has modified the inputPoint\n //\n if (allowXChanges && snapDirections & _packages2.default.SnapToHelper.EAST_WEST && !(result.edge & _packages2.default.SnapToHelper.EAST_WEST)) {\n this.showVerticalLine(figure, _packages2.default.SnapToHelper.WEST, result.point.x);\n } else {\n this.hideVerticalLine();\n }\n\n // Show a horizontal line if the snapper has modified the inputPoint\n //\n if (allowYChanges && snapDirections & _packages2.default.SnapToHelper.NORTH_SOUTH && !(result.edge & _packages2.default.SnapToHelper.NORTH_SOUTH)) {\n this.showHorizontalLine(figure, _packages2.default.SnapToHelper.NORTH, result.point.y);\n } else {\n this.hideHorizontalLine();\n }\n\n // restore the original pos coordinate if x or y coordinate already snapped to any axis\n // or subtract the added snapOffset\n //\n result.point.x = allowXChanges ? result.point.x - snapPoint.x : modifiedPos.x;\n result.point.y = allowYChanges ? result.point.y - snapPoint.y : modifiedPos.y;\n\n return result.point;\n }\n\n // The user drag&drop a normal figure\n var inputBounds = new _packages2.default.geo.Rectangle(modifiedPos.x, modifiedPos.y, figure.getWidth(), figure.getHeight());\n\n result = this.snapRectangle(inputBounds);\n\n if (!allowXChanges) {\n result.bounds.x = modifiedPos.x;\n }\n\n if (!allowYChanges) {\n result.bounds.y = modifiedPos.y;\n }\n\n // Show a vertical line if the snapper has modified the inputPoint\n //\n if (allowXChanges && !(result.edge & _packages2.default.SnapToHelper.WEST)) {\n this.showVerticalLine(figure, _packages2.default.SnapToHelper.WEST, result.bounds.x);\n } else if (allowXChanges && !(result.edge & _packages2.default.SnapToHelper.EAST)) {\n this.showVerticalLine(figure, _packages2.default.SnapToHelper.EAST, result.bounds.x + result.bounds.getWidth());\n } else {\n this.hideVerticalLine();\n }\n\n // Show a horizontal line if the snapper has modified the inputPoint\n //\n if (allowYChanges && !(result.edge & _packages2.default.SnapToHelper.NORTH)) {\n this.showHorizontalLine(figure, _packages2.default.SnapToHelper.NORTH, result.bounds.y);\n } else if (allowYChanges && !(result.edge & _packages2.default.SnapToHelper.SOUTH)) {\n this.showHorizontalLine(figure, _packages2.default.SnapToHelper.SOUTH, result.bounds.y + result.bounds.getHeight());\n } else {\n this.hideHorizontalLine();\n }\n\n return result.bounds.getTopLeft();\n },\n\n /**\n * \n * calculates the snapped position of the rectangle.\n *\n * @param {draw2d.geo.Rectangle} inputBounds\n *\n * @returns {Object}\n */\n snapRectangle: function snapRectangle(inputBounds) {\n var resultBounds = inputBounds.clone();\n\n var topLeft = this.snapPoint(_packages2.default.SnapToHelper.NORTH_WEST, inputBounds.getTopLeft());\n resultBounds.x = topLeft.point.x;\n resultBounds.y = topLeft.point.y;\n\n var bottomRight = this.snapPoint(_packages2.default.SnapToHelper.SOUTH_EAST, inputBounds.getBottomRight());\n\n // The first test (topLeft) has not modified the point. so we can modify them with the bottomRight adjustment\n //\n if (topLeft.edge & _packages2.default.SnapToHelper.WEST) {\n resultBounds.x = bottomRight.point.x - inputBounds.getWidth();\n }\n\n // The first test (topLeft) has not modified the point. so we can modify them with the bottomRight adjustment\n //\n if (topLeft.edge & _packages2.default.SnapToHelper.NORTH) {\n resultBounds.y = bottomRight.point.y - inputBounds.getHeight();\n }\n\n return { edge: topLeft.edge | bottomRight.edge, bounds: resultBounds };\n },\n\n snapPoint: function snapPoint( /*:int*/snapOrientation, /*:draw2d.Point*/inputPoint) {\n var resultPoint = inputPoint.clone();\n\n if (this.rows === null || this.cols === null) this.populateRowsAndCols();\n\n if ((snapOrientation & _packages2.default.SnapToHelper.EAST) !== 0) {\n var rightCorrection = this.getCorrectionFor(this.cols, inputPoint.x + 1, 1);\n if (rightCorrection !== this.SNAP_THRESHOLD) {\n snapOrientation &= ~_packages2.default.SnapToHelper.EAST;\n resultPoint.x += rightCorrection;\n }\n }\n\n if ((snapOrientation & _packages2.default.SnapToHelper.WEST) !== 0) {\n var leftCorrection = this.getCorrectionFor(this.cols, inputPoint.x, -1);\n if (leftCorrection !== this.SNAP_THRESHOLD) {\n snapOrientation &= ~_packages2.default.SnapToHelper.WEST;\n resultPoint.x += leftCorrection;\n }\n }\n\n if ((snapOrientation & _packages2.default.SnapToHelper.SOUTH) !== 0) {\n var bottomCorrection = this.getCorrectionFor(this.rows, inputPoint.y + 1, 1);\n if (bottomCorrection !== this.SNAP_THRESHOLD) {\n snapOrientation &= ~_packages2.default.SnapToHelper.SOUTH;\n resultPoint.y += bottomCorrection;\n }\n }\n\n if ((snapOrientation & _packages2.default.SnapToHelper.NORTH) !== 0) {\n var topCorrection = this.getCorrectionFor(this.rows, inputPoint.y, -1);\n if (topCorrection !== this.SNAP_THRESHOLD) {\n snapOrientation &= ~_packages2.default.SnapToHelper.NORTH;\n resultPoint.y += topCorrection;\n }\n }\n\n return { edge: snapOrientation, point: resultPoint };\n },\n\n populateRowsAndCols: function populateRowsAndCols() {\n var selection = this.canvas.getSelection();\n this.rows = [];\n this.cols = [];\n\n var figures = this.canvas.getFigures();\n for (var i = 0; i < figures.getSize(); i++) {\n var figure = figures.get(i);\n if (!selection.contains(figure, true)) {\n var bounds = figure.getBoundingBox();\n this.cols.push({ type: -1, location: bounds.x });\n this.cols.push({ type: 0, location: bounds.x + (bounds.w - 1) / 2 });\n this.cols.push({ type: 1, location: bounds.getRight() + 1 });\n this.rows.push({ type: -1, location: bounds.y });\n this.rows.push({ type: 0, location: bounds.y + (bounds.h - 1) / 2 });\n this.rows.push({ type: 1, location: bounds.getBottom() + 1 });\n }\n }\n\n // TODO: remove duplicate entries in the rows/cols array\n },\n\n getCorrectionFor: function getCorrectionFor( /*:Array*/entries, /*:double*/value, /*:int*/side) {\n var resultMag = this.SNAP_THRESHOLD;\n var result = this.SNAP_THRESHOLD;\n\n for (var i = 0; i < entries.length; i++) {\n var entry = entries[i];\n var magnitude = void 0;\n\n if (entry.type === -1 && side !== 0) {\n magnitude = Math.abs(value - entry.location);\n if (magnitude < resultMag) {\n resultMag = magnitude;\n result = entry.location - value;\n }\n } else if (entry.type === 0 && side === 0) {\n magnitude = Math.abs(value - entry.location);\n if (magnitude < resultMag) {\n resultMag = magnitude;\n result = entry.location - value;\n }\n } else if (entry.type === 1 && side !== 0) {\n magnitude = Math.abs(value - entry.location);\n if (magnitude < resultMag) {\n resultMag = magnitude;\n result = entry.location - value;\n }\n }\n }\n return result;\n },\n\n showVerticalLine: function showVerticalLine(causedFigure, edge, x) {\n if (this.vline != null) {\n this.vline.stop();\n this.vline.remove();\n }\n\n var figures = this.canvas.getFigures().clone();\n figures.removeAll(this.canvas.getSelection().getAll(true));\n figures.map(function (figure) {\n return figure.getBoundingBox();\n });\n figures.grep(function (bbox) {\n return Math.abs(bbox.x - x) <= 1 || Math.abs(bbox.getRight() - x) <= 1;\n });\n\n // return silently if no figure bounding box is left\n //\n if (figures.getSize() === 0) {\n return;\n }\n\n // figure to align is above the current shape\n //\n var causedBox = causedFigure.getBoundingBox();\n var causedCenter = causedBox.getCenter();\n figures.sort(function (a, b) {\n var d_a = a.getCenter().distance(causedCenter);\n var d_b = b.getCenter().distance(causedCenter);\n return d_a - d_b;\n });\n var fromY = 0;\n var maxLength = this.canvas.getHeight() * Math.max(1, this.canvas.getZoom());\n var yLength = maxLength;\n var snappedBox = figures.get(0);\n if (causedBox.y < snappedBox.y) {\n fromY = causedBox.y;\n yLength = snappedBox.getBottom() - causedBox.y;\n } else {\n fromY = snappedBox.y;\n yLength = causedBox.getBottom() - snappedBox.y;\n }\n\n x = (x | 0) + 0.5; // force a .5 number to avoid subpixel rendering. Blurry lines...\n this.canvas.paper.setStart();\n this.canvas.paper.path(\"M \" + x + \" 0 l 0 \" + maxLength).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1, \"stroke-dasharray\": \". \" });\n this.canvas.paper.path(\"M \" + x + \" \" + fromY + \" l 0 \" + yLength).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1 });\n\n this.vline = this.canvas.paper.setFinish();\n this.vline.toBack();\n },\n\n hideVerticalLine: function hideVerticalLine() {\n var _this = this;\n\n if (this.vline == null) {\n return;\n }\n this.vline.animate({ opacity: 0.1 }, this.FADEOUT_DURATION, function () {\n if (_this.vline !== null) {\n _this.vline.remove();\n _this.vline = null;\n }\n });\n },\n\n showHorizontalLine: function showHorizontalLine(causedFigure, edge, y) {\n if (this.hline != null) {\n this.hline.stop();\n this.hline.remove();\n }\n\n var figures = this.canvas.getFigures().clone();\n figures.removeAll(this.canvas.getSelection().getAll(true));\n figures.map(function (figure) {\n return figure.getBoundingBox();\n });\n figures.grep(function (bbox) {\n return Math.abs(bbox.y - y) <= 1 || Math.abs(bbox.getBottom() - y) <= 1;\n });\n\n // return silently if no figure bounding box is left\n //\n if (figures.getSize() === 0) {\n return;\n }\n\n // figure to align is above the current shape\n //\n var causedBox = causedFigure.getBoundingBox();\n var causedCenter = causedBox.getCenter();\n figures.sort(function (a, b) {\n var d_a = a.getCenter().distance(causedCenter);\n var d_b = b.getCenter().distance(causedCenter);\n return d_a - d_b;\n });\n var fromX = 0;\n var maxLength = void 0;\n var xLength = maxLength = this.canvas.getWidth() * Math.max(1, this.canvas.getZoom());\n var snappedBox = figures.get(0);\n if (causedBox.x < snappedBox.x) {\n fromX = causedBox.x;\n xLength = snappedBox.getRight() - causedBox.x;\n } else {\n fromX = snappedBox.x;\n xLength = causedBox.getRight() - snappedBox.x;\n }\n\n y = (y | 0) + 0.5; // force a .5 number to avoid subpixel rendering. Blurry lines...\n\n this.canvas.paper.setStart();\n this.canvas.paper.path(\"M 0 \" + y + \" l \" + maxLength + \" 0\").attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1, \"stroke-dasharray\": \". \" });\n this.canvas.paper.path(\"M \" + fromX + \" \" + y + \" l \" + xLength + \" 0\").attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1 });\n\n this.hline = this.canvas.paper.setFinish();\n this.hline.toBack();\n },\n\n hideHorizontalLine: function hideHorizontalLine() {\n var _this2 = this;\n\n if (this.hline === null) {\n return; //silently\n }\n this.hline.animate({ opacity: 0.1 }, this.FADEOUT_DURATION, function () {\n if (_this2.hline !== null) {\n _this2.hline.remove();\n _this2.hline = null;\n }\n });\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/SnapToGridEditPolicy.js\":\n/*!***************************************************!*\\\n !*** ./src/policy/canvas/SnapToGridEditPolicy.js ***!\n \\***************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A helper used to perform snapping to a grid, which is specified on the canvas via the various\n * properties defined in this class.\n *\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.canvas.ShowGridEditPolicy\n */\n_packages2.default.policy.canvas.SnapToGridEditPolicy = _packages2.default.policy.canvas.SnapToEditPolicy.extend(\n/** @lends draw2d.policy.canvas.SnapToGridEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.SnapToGridEditPolicy\",\n\n /**\n * Creates a new constraint policy for snap to grid\n *\n * @param {Number} grid the grid width of the canvas\n */\n init: function init(grid, showGrid) {\n this._super();\n this.grid = grid || 20;\n\n // Default Value for \"showGrid=true\"\n if (typeof showGrid === \"undefined\" || showGrid === true) {\n this.renderer = new _packages2.default.policy.canvas.ShowGridEditPolicy(this.grid);\n }\n },\n\n onInstall: function onInstall(canvas) {\n this._super(canvas);\n if (this.renderer) this.renderer.onInstall(canvas);\n },\n\n onUninstall: function onUninstall(canvas) {\n this._super(canvas);\n if (this.renderer) this.renderer.onUninstall(canvas);\n },\n\n /**\n *\n * Set a new grid width/height\n *\n * @param {Number} grid\n * @since 5.0.3\n */\n setGrid: function setGrid(grid) {\n this.grid = grid;\n if (this.renderer) this.renderer.setGrid(grid);\n },\n\n /**\n *\n * Applies a snapping correction to the given result.\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {draw2d.Figure} figure the figure to snap\n * @param {draw2d.geo.Point} modifiedPos the already modified position of the figure (e.g. from an another Policy)\n * @param {draw2d.geo.Point} originalPos the original requested position of the figure\n * @since 2.3.0\n */\n snap: function snap(canvas, figure, modifiedPos, originalPos) {\n // do nothing for lines\n if (figure instanceof _packages2.default.shape.basic.Line) {\n return modifiedPos;\n }\n\n var snapPoint = figure.getSnapToGridAnchor();\n\n modifiedPos.x = modifiedPos.x + snapPoint.x;\n modifiedPos.y = modifiedPos.y + snapPoint.y;\n\n modifiedPos.x = this.grid * Math.floor((modifiedPos.x + this.grid / 2.0) / this.grid);\n modifiedPos.y = this.grid * Math.floor((modifiedPos.y + this.grid / 2.0) / this.grid);\n\n modifiedPos.x = modifiedPos.x - snapPoint.x;\n modifiedPos.y = modifiedPos.y - snapPoint.y;\n\n return modifiedPos;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/SnapToInBetweenEditPolicy.js\":\n/*!********************************************************!*\\\n !*** ./src/policy/canvas/SnapToInBetweenEditPolicy.js ***!\n \\********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Snapping is based on the existing children of a container. When snapping a shape,\n * the edges of the bounding box will snap to edges of other rectangles generated\n * from the children of the given canvas.\n *\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.canvas.SnapToEditPolicy\n * @since 5.6.4\n */\n_packages2.default.policy.canvas.SnapToInBetweenEditPolicy = _packages2.default.policy.canvas.SnapToEditPolicy.extend(\n/** @lends draw2d.policy.canvas.SnapToInBetweenEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.SnapToInBetweenEditPolicy\",\n\n SNAP_THRESHOLD: 5,\n FADEOUT_DURATION: 500,\n\n /**\n * Creates a new constraint policy for snap to geometry\n *\n */\n init: function init(attr, setter, getter) {\n\n this._super(attr, setter, getter);\n\n this.bounds = null;\n\n this.horizontalGuideLines = null;\n this.verticalGuideLines = null;\n },\n\n /**\n *\n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n */\n onMouseUp: function onMouseUp(figure, x, y, shiftKey, ctrlKey) {\n this.bounds = null;\n this.hideHorizontalGuides(false);\n this.hideVerticalGuides(false);\n },\n\n /**\n *\n * Adjust the coordinates to the canvas neighbours\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {draw2d.Figure} figure the figure to snap\n * @param {draw2d.geo.Point} modifiedPos the already modified position of the figure (e.g. from an another Policy)\n * @param {draw2d.geo.Point} originalPos the original requested position of the figure\n *\n * @returns {draw2d.geo.Point} the constraint position of the figure\n */\n snap: function snap(canvas, figure, modifiedPos, originalPos) {\n // do nothing for resize handles\n if (figure instanceof _packages2.default.ResizeHandle) {\n return modifiedPos;\n }\n // do nothing for lines\n if (figure instanceof _packages2.default.shape.basic.Line) {\n return modifiedPos;\n }\n\n var allowXChanges = modifiedPos.x === originalPos.x;\n var allowYChanges = modifiedPos.y === originalPos.y;\n\n var inputBounds = new _packages2.default.geo.Rectangle(modifiedPos.x, modifiedPos.y, figure.getWidth(), figure.getHeight());\n\n modifiedPos = modifiedPos.clone();\n\n if (allowXChanges === true) {\n var horizontal = this.snapHorizontal(inputBounds);\n\n // Show a horizontal line if the snapper has modified the inputPoint\n //\n if (horizontal.snapped) {\n // show the snap lines..\n this.showHorizontalGuides(figure, horizontal);\n\n // and snap the x coordinate\n modifiedPos.x += horizontal.diff;\n } else {\n this.hideHorizontalGuides(true);\n }\n } else {\n this.hideHorizontalGuides(true);\n }\n\n if (allowYChanges === true) {\n var vertical = this.snapVertical(inputBounds);\n\n // Show a vertical guides if the snapper has modified the inputPoint\n //\n if (vertical.snapped) {\n // show the snap lines..\n this.showVerticalGuides(figure, vertical);\n\n // and snap the x coordinate\n modifiedPos.y += vertical.diff;\n } else {\n this.hideVerticalGuides(true);\n }\n } else {\n this.hideVerticalGuides(true);\n }\n\n return modifiedPos;\n },\n\n snapHorizontal: function snapHorizontal(boundingBox) {\n var center = boundingBox.getCenter();\n if (this.bounds === null) this.populateBounds();\n\n var result = {\n point: center,\n snapped: false,\n snappedBox: boundingBox.clone()\n };\n\n var intersectionPoint = null;\n\n // Calculate the intersections points p(i) of all left side edges of the bounding boxes\n // and the ray from the center of the drag&drop object to the left edge of the canva\n //\n // BBox of Drag&Drop\n // any Figure Figure\n //\n // ....+ ........\n // | . .\n // . |p(i) . .\n // . X<------------->+ .\n // . | . .\n // ....+ . .\n // ........\n //\n //\n var leftIntersections = [];\n var leftInputPoint = center.clone();\n leftInputPoint.x = 0;\n this.bounds.forEach(function (bbox, index) {\n intersectionPoint = _packages2.default.shape.basic.Line.intersection(bbox.getTopRight(), bbox.getBottomRight(), center, leftInputPoint);\n if (intersectionPoint !== null) {\n intersectionPoint.causedBBox = bbox;\n leftIntersections.push(intersectionPoint);\n }\n });\n // we can abort if we didn't find an intersection on the left hand side\n if (leftIntersections.length === 0) {\n return result;\n }\n\n // sort the intersection point and get the closest point to the tested inputPoint\n // In this case it is the point with the greates X coordinate\n //\n leftIntersections.sort(function (a, b) {\n return b.x - a.x;\n });\n\n // Calculate the intersections points p(i) of all right hand side edges of the\n // bounding boxes and the ray from the center of the drag&drop object to the\n // left edge of the canvas\n //\n // Drag&Drop bbox of any\n // Figure figure\n //\n // ........\n // . .\n // . . ...........\n // . +<-------------->X |\n // . . p(i)| |\n // . . | |\n // ........ | |\n // ...........\n //\n var rightIntersections = [];\n var rightInputPoint = center.clone();\n rightInputPoint.x = Number.MAX_SAFE_INTEGER;\n this.bounds.forEach(function (bbox, index) {\n intersectionPoint = _packages2.default.shape.basic.Line.intersection(bbox.getTopLeft(), bbox.getBottomLeft(), center, rightInputPoint);\n if (intersectionPoint !== null) {\n intersectionPoint.causedBBox = bbox;\n rightIntersections.push(intersectionPoint);\n }\n });\n // we can abort if we didn't find an intersection on the right hand side\n if (rightIntersections.length === 0) {\n return result;\n }\n\n // sort the intersection point and get the closest point to the tested inputPoint\n // In this case it is the point with the greates X coordinate\n //\n rightIntersections.sort(function (a, b) {\n return a.x - b.x;\n });\n\n // Snap the point (S) between the two founded intersections\n // p(i1) and p(i2)\n //\n // BBox FigureA Drag&Drop BBox of FigureB\n // Figure\n //\n // ....+ ........\n // | . .\n // . |p(i1) . S . ...........\n // . X<------------->X<-------------->X |\n // . | . . p(i2)| |\n // ....+ . . | |\n // ........ | |\n // ...........\n //\n var snappedRect = boundingBox.clone();\n var diff = (leftIntersections[0].x + rightIntersections[0].x) / 2 - center.x;\n\n snappedRect.x += diff;\n\n return {\n snapped: Math.abs(diff) < this.SNAP_THRESHOLD,\n snappedRect: snappedRect,\n diff: diff,\n leftSide: leftIntersections[0],\n rightSide: rightIntersections[0]\n };\n },\n\n snapVertical: function snapVertical(boundingBox) {\n var center = boundingBox.getCenter();\n\n if (this.bounds === null) {\n this.populateBounds();\n }\n\n var result = {\n point: center,\n snapped: false,\n snappedBox: boundingBox.clone()\n };\n\n var intersectionPoint = null;\n\n // Calculate the intersections points p(i) of all left side edges of the bounding boxes\n // and the ray from the center of the drag&drop object to the left edge of the canva\n //\n // BBox of Drag&Drop\n // any Figure Figure\n //\n // ....+ ........\n // | . .\n // . |p(i) . .\n // . X<------------->+ .\n // . | . .\n // ....+ . .\n // ........\n //\n //\n var topIntersections = [];\n var topInputPoint = center.clone();\n topInputPoint.y = 0;\n this.bounds.forEach(function (bbox) {\n intersectionPoint = _packages2.default.shape.basic.Line.intersection(bbox.getBottomLeft(), bbox.getBottomRight(), center, topInputPoint);\n if (intersectionPoint !== null) {\n intersectionPoint.causedBBox = bbox;\n topIntersections.push(intersectionPoint);\n }\n });\n // we can abort if we didn't find an intersection on the left hand side\n if (topIntersections.length === 0) {\n return result;\n }\n\n // sort the intersection point and get the closest point to the tested inputPoint\n // In this case it is the point with the greates X coordinate\n //\n topIntersections.sort(function (a, b) {\n return b.y - a.y;\n });\n\n // Calculate the intersections points p(i) of all right hand side edges of the\n // bounding boxes and the ray from the center of the drag&drop object to the\n // left edge of the canvas\n //\n // Drag&Drop bbox of any\n // Figure figure\n //\n // ........\n // . .\n // . . ...........\n // . +<-------------->X |\n // . . p(i)| |\n // . . | |\n // ........ | |\n // ...........\n //\n var bottomIntersections = [];\n var bottomInputPoint = center.clone();\n bottomInputPoint.y = Number.MAX_SAFE_INTEGER;\n this.bounds.forEach(function (bbox) {\n intersectionPoint = _packages2.default.shape.basic.Line.intersection(bbox.getTopLeft(), bbox.getTopRight(), center, bottomInputPoint);\n if (intersectionPoint !== null) {\n intersectionPoint.causedBBox = bbox;\n bottomIntersections.push(intersectionPoint);\n }\n });\n // we can abort if we didn't find an intersection on the right hand side\n if (bottomIntersections.length === 0) {\n return result;\n }\n\n // sort the intersection point and get the closest point to the tested inputPoint\n // In this case it is the point with the greates X coordinate\n //\n bottomIntersections.sort(function (a, b) {\n return a.y - b.y;\n });\n\n // Snap the point (S) between the two founded intersections\n // p(i1) and p(i2)\n //\n // BBox FigureA Drag&Drop BBox of FigureB\n // Figure\n //\n // ....+ ........\n // | . .\n // . |p(i1) . S . ...........\n // . X<------------->X<-------------->X |\n // . | . . p(i2)| |\n // ....+ . . | |\n // ........ | |\n // ...........\n //\n var snappedRect = boundingBox.clone();\n var diff = (topIntersections[0].y + bottomIntersections[0].y) / 2 - center.y;\n\n snappedRect.y += diff;\n\n return {\n snapped: Math.abs(diff) < this.SNAP_THRESHOLD,\n snappedRect: snappedRect,\n diff: diff,\n topSide: topIntersections[0],\n bottomSide: bottomIntersections[0]\n };\n },\n\n populateBounds: function populateBounds() {\n var selection = this.canvas.getSelection().getAll(true);\n var bounds = this.bounds = [];\n\n var figures = this.canvas.getFigures();\n figures.each(function (index, figure) {\n if (!selection.contains(figure)) {\n bounds.push(figure.getBoundingBox());\n }\n });\n },\n\n showHorizontalGuides: function showHorizontalGuides(causedFigure, constraint) {\n if (this.horizontalGuideLines != null) {\n this.horizontalGuideLines.stop();\n this.horizontalGuideLines.remove();\n }\n\n var snapTopLeft = constraint.snappedRect.getTopLeft();\n var snapTopRight = constraint.snappedRect.getTopRight();\n var y = (Math.min(constraint.leftSide.causedBBox.getTopRight().y, Math.min(constraint.rightSide.causedBBox.y, causedFigure.getY())) - 50 | 0) + 0.5;\n\n this.canvas.paper.setStart();\n\n // Vertical lines from left to the right order\n //\n this.canvas.paper.path(\"M \" + ((constraint.leftSide.x | 0) + 0.5) + \" \" + y + \" L \" + ((constraint.leftSide.x | 0) + 0.5) + \" \" + constraint.leftSide.y).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1, \"stroke-dasharray\": \". \" });\n\n this.canvas.paper.path(\"M \" + ((snapTopLeft.x | 0) + 0.5) + \" \" + y + \" L \" + ((snapTopLeft.x | 0) + 0.5) + \" \" + snapTopLeft.y).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1, \"stroke-dasharray\": \". \" });\n\n this.canvas.paper.path(\"M \" + ((snapTopRight.x | 0) + 0.5) + \" \" + y + \" L \" + ((snapTopRight.x | 0) + 0.5) + \" \" + snapTopRight.y).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1, \"stroke-dasharray\": \". \" });\n\n this.canvas.paper.path(\"M \" + ((constraint.rightSide.x | 0) + 0.5) + \" \" + y + \" L \" + ((constraint.rightSide.x | 0) + 0.5) + \" \" + constraint.rightSide.y).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1, \"stroke-dasharray\": \". \" });\n\n // horizontal lines\n //\n this.canvas.paper.path(\"M \" + constraint.leftSide.x + \" \" + (y + 5) + \" L \" + snapTopLeft.x + \" \" + (y + 5)).attr({\n \"stroke\": this.lineColor.rgba(),\n \"stroke-width\": 1\n });\n this.canvas.paper.path(\"M \" + constraint.rightSide.x + \" \" + (y + 5) + \" L \" + snapTopRight.x + \" \" + (y + 5)).attr({\n \"stroke\": this.lineColor.rgba(),\n \"stroke-width\": 1\n });\n\n // 4 arrow heads starting on the left side and add one by one\n //\n this.canvas.paper.path(\" M \" + (constraint.leftSide.x + 5) + \" \" + y + \" L \" + constraint.leftSide.x + \" \" + (y + 5) + \" L \" + (constraint.leftSide.x + 5) + \" \" + (y + 10)).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1 });\n\n this.canvas.paper.path(\" M \" + (snapTopLeft.x - 5) + \" \" + y + \" L \" + snapTopLeft.x + \" \" + (y + 5) + \" L \" + (snapTopLeft.x - 5) + \" \" + (y + 10)).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1 });\n\n this.canvas.paper.path(\" M \" + (snapTopRight.x + 5) + \" \" + y + \" L \" + snapTopRight.x + \" \" + (y + 5) + \" L \" + (snapTopRight.x + 5) + \" \" + (y + 10)).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1 });\n\n this.canvas.paper.path(\" M \" + (constraint.rightSide.x - 5) + \" \" + y + \" L \" + constraint.rightSide.x + \" \" + (y + 5) + \" L \" + (constraint.rightSide.x - 5) + \" \" + (y + 10)).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1 });\n\n this.horizontalGuideLines = this.canvas.paper.setFinish();\n this.horizontalGuideLines.toFront();\n },\n\n /**\n *\n * Hide the horizontal snaping guides\n *\n * @param {Boolean} fast\n */\n hideHorizontalGuides: function hideHorizontalGuides(fast) {\n var _this = this;\n\n if (this.horizontalGuideLines == null) {\n return;\n }\n\n if (fast === true) {\n if (this.horizontalGuideLines !== null) {\n this.horizontalGuideLines.remove();\n this.horizontalGuideLines = null;\n }\n } else {\n this.horizontalGuideLines.animate({ opacity: 0.1 }, this.FADEOUT_DURATION, function () {\n if (_this.horizontalGuideLines !== null) {\n _this.horizontalGuideLines.remove();\n _this.horizontalGuideLines = null;\n }\n });\n }\n },\n\n showVerticalGuides: function showVerticalGuides(causedFigure, constraint) {\n if (this.verticalGuideLines != null) {\n this.verticalGuideLines.stop();\n this.verticalGuideLines.remove();\n }\n\n var snapTopRight = constraint.snappedRect.getTopRight();\n var snapBottomRight = constraint.snappedRect.getBottomRight();\n var x = (Math.max(constraint.topSide.causedBBox.getRight(), Math.max(constraint.bottomSide.causedBBox.getRight(), causedFigure.getX())) + 40 | 0) + 0.5;\n\n this.canvas.paper.setStart();\n\n // Vertical lines from left to the right order\n //\n this.canvas.paper.path(\"M \" + x + \" \" + ((constraint.topSide.y | 0) + 0.5) + \" L \" + ((constraint.topSide.x | 0) + 0.5) + \" \" + ((constraint.topSide.y | 0) + 0.5)).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1, \"stroke-dasharray\": \". \" });\n this.canvas.paper.path(\"M \" + x + \" \" + ((snapTopRight.y | 0) + 0.5) + \" L \" + ((snapTopRight.x | 0) + 0.5) + \" \" + ((snapTopRight.y | 0) + 0.5)).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1, \"stroke-dasharray\": \". \" });\n this.canvas.paper.path(\"M \" + x + \" \" + ((snapBottomRight.y | 0) + 0.5) + \" L \" + ((snapBottomRight.x | 0) + 0.5) + \" \" + ((snapBottomRight.y | 0) + 0.5)).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1, \"stroke-dasharray\": \". \" });\n this.canvas.paper.path(\"M \" + x + \" \" + ((constraint.bottomSide.y | 0) + 0.5) + \" L \" + ((constraint.bottomSide.x | 0) + 0.5) + \" \" + ((constraint.bottomSide.y | 0) + 0.5)).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1, \"stroke-dasharray\": \". \" });\n\n // horizontal lines\n //\n this.canvas.paper.path(\"M \" + (x - 5) + \" \" + ((constraint.topSide.y | 0) + 0.5) + \" L \" + (x - 5) + \" \" + ((snapTopRight.y | 0) + 0.5)).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1 });\n this.canvas.paper.path(\"M \" + (x - 5) + \" \" + ((constraint.bottomSide.y | 0) + 0.5) + \" L \" + (x - 5) + \" \" + ((snapBottomRight.y | 0) + 0.5)).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1 });\n\n // 4 arrow heads starting on the left side and add one by one\n //\n this.canvas.paper.path(\" M \" + (x - 10) + \" \" + (constraint.topSide.y + 5) + \" L \" + (x - 5) + \" \" + constraint.topSide.y + \" L \" + x + \" \" + (constraint.topSide.y + 5)).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1 });\n\n this.canvas.paper.path(\" M \" + (x - 10) + \" \" + (snapTopRight.y - 5) + \" L \" + (x - 5) + \" \" + snapTopRight.y + \" L \" + x + \" \" + (snapTopRight.y - 5)).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1 });\n\n this.canvas.paper.path(\" M \" + (x - 10) + \" \" + (snapBottomRight.y + 5) + \" L \" + (x - 5) + \" \" + snapBottomRight.y + \" L \" + x + \" \" + (snapBottomRight.y + 5)).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1 });\n\n this.canvas.paper.path(\" M \" + (x - 10) + \" \" + (constraint.bottomSide.y - 5) + \" L \" + (x - 5) + \" \" + constraint.bottomSide.y + \" L \" + x + \" \" + (constraint.bottomSide.y - 5)).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1 });\n\n this.verticalGuideLines = this.canvas.paper.setFinish();\n this.verticalGuideLines.toFront();\n },\n\n hideVerticalGuides: function hideVerticalGuides() {\n var _this2 = this;\n\n if (this.verticalGuideLines == null) {\n return; //silently\n }\n\n this.verticalGuideLines.animate({ opacity: 0.1 }, this.FADEOUT_DURATION, function () {\n if (_this2.verticalGuideLines !== null) {\n _this2.verticalGuideLines.remove();\n _this2.verticalGuideLines = null;\n }\n });\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/SnapToVerticesEditPolicy.js\":\n/*!*******************************************************!*\\\n !*** ./src/policy/canvas/SnapToVerticesEditPolicy.js ***!\n \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Snapping is based on the existing children of a container. When snapping a shape,\n * the edges of the bounding box will snap to edges of other rectangles generated\n * from the children of the given canvas.\n *\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.canvas.SnapToEditPolicy\n */\n_packages2.default.policy.canvas.SnapToVerticesEditPolicy = _packages2.default.policy.canvas.SnapToEditPolicy.extend(\n/** @lends draw2d.policy.canvas.SnapToVerticesEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.SnapToVerticesEditPolicy\",\n\n SNAP_THRESHOLD: 3,\n FADEOUT_DURATION: 300,\n\n /**\n * Creates a new constraint policy for snap to geometry\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n this.constraints = null;\n this.vline = null;\n this.hline = null;\n },\n\n /**\n * \n *\n * @param {draw2d.Figure} figure the shape below the mouse or null\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseUp: function onMouseUp(figure, x, y, shiftKey, ctrlKey) {\n this.constraints = null;\n this.hideVerticalLine();\n this.hideHorizontalLine();\n },\n\n /**\n * \n * Adjust the coordinates to the canvas neighbours\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {draw2d.Figure} figure the figure to snap\n * @param {draw2d.geo.Point} modifiedPos the already modified position of the figure (e.g. from an another Policy)\n * @param {draw2d.geo.Point} originalPos the original requested position of the figure\n *\n * @returns {draw2d.geo.Point} the constraint position of the figure\n */\n snap: function snap(canvas, figure, modifiedPos, originalPos) {\n // can only handle PolyLies at the moment\n //\n if (!(figure instanceof _packages2.default.shape.basic.VertexResizeHandle)) {\n return modifiedPos;\n }\n\n var allowXChanges = modifiedPos.x === originalPos.x;\n var allowYChanges = modifiedPos.y === originalPos.y;\n\n // Coordinates already snapped to an x/y coordinate.\n // Don't change them and in this case no further calculation is required.\n //\n if (!allowXChanges && !allowYChanges) {\n return modifiedPos;\n }\n\n var result = modifiedPos.clone();\n var correction = this.getCorrectionFor(figure, originalPos);\n\n if (allowXChanges && correction.vertical.x !== Number.MAX_SAFE_INTEGER) {\n result.x = correction.vertical.x;\n this.showVerticalLine(originalPos, correction.vertical);\n } else {\n this.hideVerticalLine();\n }\n\n if (allowYChanges && correction.horizontal.y !== Number.MAX_SAFE_INTEGER) {\n result.y = correction.horizontal.y;\n this.showHorizontalLine(originalPos, correction.horizontal);\n } else {\n this.hideHorizontalLine();\n }\n\n return result;\n },\n\n getCorrectionFor: function getCorrectionFor(vertexResizeHandle, point) {\n var _this = this;\n if (this.constraints === null) {\n this.constraints = [];\n\n var lines = this.canvas.getLines();\n lines.each(function (i, line) {\n line.getVertices().each(function (ii, vertex) {\n if (vertexResizeHandle.index !== ii || vertexResizeHandle.owner !== line) _this.constraints.push(vertex);\n });\n });\n }\n\n var SNAP = this.SNAP_THRESHOLD;\n var vertical = { x: Number.MAX_SAFE_INTEGER, y: Number.MAX_SAFE_INTEGER, diffy: Number.MAX_SAFE_INTEGER };\n var horizontal = { x: Number.MAX_SAFE_INTEGER, y: Number.MAX_SAFE_INTEGER, diffx: Number.MAX_SAFE_INTEGER };\n var diffx, diffy;\n\n for (var i = 0; i < this.constraints.length; i++) {\n var entry = this.constraints[i];\n\n diffx = Math.abs(point.x - entry.x);\n diffy = Math.abs(point.y - entry.y);\n // we found a possible candidate for the vertical snap line\n //\n if (diffx < SNAP) {\n if (diffy < vertical.diffy) {\n vertical = { x: entry.x, y: entry.y, diffy: diffy };\n }\n }\n\n if (diffy < SNAP) {\n if (diffx < horizontal.diffx) {\n horizontal = { x: entry.x, y: entry.y, diffx: diffx };\n }\n }\n }\n return { vertical: vertical, horizontal: horizontal };\n },\n\n showVerticalLine: function showVerticalLine(originalPos, snappedPos) {\n if (this.vline != null) {\n this.vline.stop();\n this.vline.remove();\n }\n\n var maxLength = this.canvas.getHeight();\n var x = (snappedPos.x | 0) + 0.5; // force a .5 number to avoid subpixel rendering. Blurry lines...\n this.canvas.paper.setStart();\n this.canvas.paper.path(\"M \" + x + \" 0 l 0 \" + maxLength).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1, \"stroke-dasharray\": \". \" });\n this.canvas.paper.path(\"M \" + x + \" \" + originalPos.y + \" L \" + x + \" \" + snappedPos.y).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1 });\n\n this.vline = this.canvas.paper.setFinish();\n this.vline.toBack();\n },\n\n hideVerticalLine: function hideVerticalLine() {\n var _this2 = this;\n\n if (this.vline == null) {\n return;\n }\n this.vline.animate({ opacity: 0.1 }, this.FADEOUT_DURATION, function () {\n if (_this2.vline !== null) {\n _this2.vline.remove();\n _this2.vline = null;\n }\n });\n },\n\n showHorizontalLine: function showHorizontalLine(originalPos, snappedPos) {\n if (this.hline != null) {\n this.hline.stop();\n this.hline.remove();\n }\n\n var maxLength = this.canvas.getWidth();\n var y = (snappedPos.y | 0) + 0.5; // force a .5 number to avoid subpixel rendering. Blurry lines...\n\n this.canvas.paper.setStart();\n this.canvas.paper.path(\"M 0 \" + y + \" l \" + maxLength + \" 0\").attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1, \"stroke-dasharray\": \". \" });\n this.canvas.paper.path(\"M \" + originalPos.x + \" \" + y + \" L \" + snappedPos.x + \" \" + y).attr({ \"stroke\": this.lineColor.rgba(), \"stroke-width\": 1 });\n\n this.hline = this.canvas.paper.setFinish();\n this.hline.toBack();\n },\n\n hideHorizontalLine: function hideHorizontalLine() {\n var _this3 = this;\n\n if (this.hline === null) {\n return; //silently\n }\n this.hline.animate({ opacity: 0.1 }, this.FADEOUT_DURATION, function () {\n if (_this3.hline !== null) {\n _this3.hline.remove();\n _this3.hline = null;\n }\n });\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/WheelZoomPolicy.js\":\n/*!**********************************************!*\\\n !*** ./src/policy/canvas/WheelZoomPolicy.js ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _shifty = __webpack_require__(/*! shifty */ \"./node_modules/shifty/dist/shifty.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Zoom support for a canvas. Use the mouse wheel and the shift key to zoom in/out.\n *\n *\n * @example\n *\n * canvas.installEditPolicy(new draw2d.policy.canvas.WheelZoomPolicy());\n * let shape = new draw2d.shape.basic.Text({text:\"Use the mouse wheel + SHIFT to zoom\"});\n *\n * canvas.add(shape,40,10);\n *\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.CanvasPolicy\n * @since 5.8.0\n */\n_packages2.default.policy.canvas.WheelZoomPolicy = _packages2.default.policy.canvas.ZoomPolicy.extend(\n/** @lends draw2d.policy.canvas.WheelZoomPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.WheelZoomPolicy\",\n\n /**\n */\n init: function init() {\n var _this = this;\n\n this._super();\n\n this.center = null;\n this.debouncedZoomedCallback = this._debounce(function () {\n var canvas = _this.canvas;\n if (canvas !== null) {\n canvas.fireEvent(\"zoomed\", { value: canvas.zoomFactor });\n }\n _this.center = null;\n }, 200);\n },\n\n onInstall: function onInstall(canvas) {\n this._super(canvas);\n canvas.setZoom(1);\n canvas.__wheelZoom = 1;\n },\n\n onUninstall: function onUninstall(canvas) {\n this._super(canvas);\n\n // cleanup the canvas object and remove custom properties\n //\n delete canvas.__wheelZoom;\n },\n\n /**\n *\n * called if the user uses the mouse wheel.\n *\n *\n * @param wheelDelta\n * @param {Number} x the x coordinate of the event\n * @param {Number} y the y coordinate of the event\n * @param shiftKey\n * @param ctrlKey\n * @since 5.8.0\n * @template\n * @returns {Boolean} return <b>false</b> to preven tthe default event operation (e.g. scrolling)\n */\n onMouseWheel: function onMouseWheel(wheelDelta, x, y, shiftKey, ctrlKey) {\n // mouse wheel is only supported if the user presses the shift key.\n // normally the canvas scrolls during mouseWheel usage.\n //\n if (shiftKey === false) {\n return true;\n }\n\n wheelDelta = wheelDelta / 1024;\n\n var newZoom = (Math.min(5, Math.max(0.1, this.canvas.zoomFactor + wheelDelta)) * 10000 | 0) / 10000;\n if (this.center === null) {\n var client = this.canvas.fromCanvasToDocumentCoordinate(x, y);\n\n this.center = {\n x: x,\n y: y,\n clientX: client.x,\n clientY: client.y\n };\n }\n this._zoom(newZoom, this.center);\n this.debouncedZoomedCallback();\n\n return false;\n },\n\n /**\n *\n * Set the new zoom level of the canvas.\n *\n * @param zoomFactor\n * @param animated\n */\n setZoom: function setZoom(zoomFactor, animated) {\n var _this2 = this;\n\n // determine the center of the current canvas. We try to keep the\n // current center during zoom operation\n //\n var scrollTop = this.canvas.getScrollTop();\n var scrollLeft = this.canvas.getScrollLeft();\n var scrollWidth = this.canvas.getScrollArea().width();\n var scrollHeight = this.canvas.getScrollArea().height();\n var centerY = scrollTop + scrollHeight / 2 * this.canvas.zoomFactor;\n var centerX = scrollLeft + scrollWidth / 2 * this.canvas.zoomFactor;\n\n if (animated) {\n var myTweenable = new _shifty.Tweenable();\n myTweenable.tween({\n from: { 'x': this.canvas.zoomFactor },\n to: { 'x': zoomFactor },\n duration: 300,\n easing: \"easeOutSine\",\n step: function step(params) {\n _this2._zoom(params.x, centerX, centerY);\n },\n finish: function finish(state) {\n _this2.debouncedZoomedCallback();\n }\n });\n } else {\n this._zoom(zoomFactor, { x: centerX, y: centerY });\n this.debouncedZoomedCallback();\n }\n },\n\n /**\n *\n *\n * @param {Number} zoom\n * @param {draw2d.geo.Point} center\n * @private\n */\n _zoom: function _zoom(zoom, center) {\n var canvas = this.canvas;\n\n if (zoom === canvas.zoomFactor) {\n return;\n }\n\n canvas.zoomFactor = zoom;\n\n canvas.paper.setViewBox(0, 0, canvas.initialWidth, canvas.initialHeight);\n // Change the width and the height attributes manually through DOM\n // unfortunately the raphaelJS 'setSize' method changes the viewBox as well and this is unwanted in this case\n //\n canvas.html.find(\"svg\").attr({\n 'width': canvas.initialWidth / zoom,\n 'height': canvas.initialHeight / zoom\n });\n\n // try to keep the document position to the given client position\n //\n if (center.clientX) {\n var coordsAfter = canvas.fromCanvasToDocumentCoordinate(center.x, center.y);\n canvas.scrollTo(this.canvas.getScrollTop() - (center.clientY - coordsAfter.y), canvas.getScrollLeft() - (center.clientX - coordsAfter.x));\n }\n\n canvas.fireEvent(\"zoom\", { value: canvas.zoomFactor });\n },\n\n // Returns a function, that, as long as it continues to be invoked, will not\n // be triggered. The function will be called after it stops being called for\n // N milliseconds. If `immediate` is passed, trigger the function on the\n // leading edge, instead of the trailing.\n _debounce: function _debounce(func, wait, immediate) {\n var _this3 = this,\n _arguments = arguments;\n\n var timeout = void 0;\n return function () {\n var context = _this3,\n args = _arguments;\n var later = function later() {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/canvas/ZoomPolicy.js\":\n/*!*****************************************!*\\\n !*** ./src/policy/canvas/ZoomPolicy.js ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _shifty = __webpack_require__(/*! shifty */ \"./node_modules/shifty/dist/shifty.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Generic zoom policy installable into a canvas object.\n * This is the legacy implementation of the very first zooming in\n * Draw2D. You can use this implementation if you want backward compatible.\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.canvas.CanvasPolicy\n * @since 5.8.0\n */\n_packages2.default.policy.canvas.ZoomPolicy = _packages2.default.policy.canvas.CanvasPolicy.extend(\n/** @lends draw2d.policy.canvas.ZoomPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.canvas.ZoomPolicy\",\n\n /**\n */\n init: function init() {\n this._super();\n },\n\n onInstall: function onInstall(canvas) {\n this._super(canvas);\n canvas.setZoom(1);\n },\n\n onUninstall: function onUninstall(canvas) {\n this._super(canvas);\n },\n\n /** \n * Set the new zoom factor for the canvas. The value must be between [0.01..10]\n *\n * // you can register an eventhandler to listen to the zoom factor of the canvas.\n * //\n * canvas.on(\"zoom\", function(emitterFigure, zoomData){\n * alert(\"canvas zoomed to:\"+zoomData.factor);\n * });\n *\n * @param {Number} zoomFactor new zoom factor.\n * @param {Boolean} [animated] set it to true for smooth zoom in/out\n **/\n setZoom: function setZoom(zoomFactor, animated) {\n var canvas = this.canvas;\n\n var _zoom = function _zoom(z) {\n canvas.zoomFactor = Math.min(Math.max(0.01, z), 10);\n\n var viewBoxWidth = canvas.initialWidth * canvas.zoomFactor | 0;\n var viewBoxHeight = canvas.initialHeight * canvas.zoomFactor | 0;\n\n canvas.paper.setViewBox(0, 0, viewBoxWidth, viewBoxHeight);\n\n canvas.fireEvent(\"zoom\", { value: canvas.zoomFactor });\n };\n\n if (animated) {\n var myTweenable = new _shifty.Tweenable();\n myTweenable.tween({\n from: { 'x': canvas.zoomFactor },\n to: { 'x': zoomFactor },\n duration: 300,\n easing: \"easeOutSine\",\n step: function step(params) {\n return _zoom(params.x);\n },\n finish: function finish(state) {\n return canvas.fireEvent(\"zoomed\", { value: canvas.zoomFactor });\n }\n });\n } else {\n _zoom(zoomFactor);\n canvas.fireEvent(\"zoomed\", { value: canvas.zoomFactor });\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/connection/ClickConnectionCreatePolicy.js\":\n/*!**************************************************************!*\\\n !*** ./src/policy/connection/ClickConnectionCreatePolicy.js ***!\n \\**************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.policy.connection.ClickConnectionCreatePolicy = _packages2.default.policy.connection.ConnectionCreatePolicy.extend(\n/** @lends draw2d.policy.connection.ClickConnectionCreatePolicy.prototype */\n{\n\n NAME: \"draw2d.policy.connection.ClickConnectionCreatePolicy\",\n\n /**\n *\n * Creates a new connection create policy instance\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n this.port1 = null;\n this.beeline = null;\n this.pulse = null;\n this.tempConnection = null;\n\n this.vertices = [];\n },\n\n /**\n * \n * Called by the canvas if the user click on a figure.\n *\n * @param {draw2d.Figure} the figure under the click event. Can be null\n * @param {Number} x the x coordinate of the mouse during the click event\n * @param {Number} y the y coordinate of the mouse during the click event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @since 6.1.0\n */\n onClick: function onClick(figure, x, y, shiftKey, ctrlKey) {\n var _this = this;\n var port = figure;\n\n if (port === null && this.port1 === null) {\n return;\n }\n\n // nothing found at all\n //\n if (port === null) {\n this.vertices.push(new _packages2.default.geo.Point(x, y));\n this.beeline.setStartPosition(x, y);\n this.tempConnection.setVertices(this.vertices);\n if (this.pulse !== null) {\n this.pulse.remove();\n this.pulse = null;\n }\n this.ripple(x, y, 0);\n return;\n }\n\n //just consider ports\n //\n if (!(port instanceof _packages2.default.Port)) {\n return;\n }\n\n // start connection create by selection the start port\n //\n if (this.port1 === null) {\n var canvas = port.getCanvas();\n this.port1 = port;\n this.vertices.push(port.getAbsolutePosition());\n this.beeline = new _packages2.default.shape.basic.Line({\n start: this.port1.getAbsolutePosition(),\n end: this.port1.getAbsolutePosition(),\n dasharray: \"- \",\n color: \"#2C70FF\"\n });\n\n this.beeline.hide = function () {\n _this.beeline.setCanvas(null);\n };\n\n this.beeline.show = function (canvas) {\n _this.beeline.setCanvas(canvas);\n _this.beeline.shape.toFront();\n };\n this.beeline.show(canvas);\n\n this.tempConnection = new _packages2.default.shape.basic.PolyLine({\n start: this.port1.getAbsolutePosition(),\n end: this.port1.getAbsolutePosition(),\n stroke: 2,\n color: \"#2C70FF\"\n });\n\n this.tempConnection.hide = function () {\n _this.tempConnection.setCanvas(null);\n };\n\n this.tempConnection.show = function (canvas) {\n _this.tempConnection.setCanvas(canvas);\n _this.tempConnection.shape.toFront();\n };\n this.tempConnection.show(canvas);\n this.tempConnection.setVertices([this.port1.getAbsolutePosition(), this.port1.getAbsolutePosition()]);\n\n var a = function a() {\n _this.tempConnection.shape.animate({ \"stroke-width\": 2 }, 800, b);\n };\n var b = function b() {\n _this.tempConnection.shape.animate({ \"stroke-width\": 1 }, 800, a);\n };\n a();\n\n var pos = port.getAbsolutePosition();\n this.pulse = this.ripple(pos.x, pos.y, 1);\n return;\n }\n\n var possibleTarget = port.delegateTarget(this.port1);\n\n if (!(possibleTarget instanceof _packages2.default.Port)) {\n return; // silently\n }\n\n var request = new _packages2.default.command.CommandType(_packages2.default.command.CommandType.CONNECT);\n request.source = this.port1;\n request.target = port;\n\n var command = null;\n if (this.port1 instanceof _packages2.default.InputPort) {\n command = this.port1.createCommand(request);\n } else {\n command = port.createCommand(request);\n }\n\n if (command !== null) {\n this.vertices.push(port.getPosition());\n command.setConnection(this.createConnection());\n figure.getCanvas().getCommandStack().execute(command);\n this.beeline.hide();\n this.tempConnection.hide();\n if (this.pulse !== null) {\n this.pulse.remove();\n this.pulse = null;\n }\n this.beeline = null;\n this.port1 = null;\n this.vertices = [];\n }\n },\n\n /**\n * \n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseMove: function onMouseMove(canvas, x, y, shiftKey, ctrlKey) {\n if (this.beeline !== null) {\n this.beeline.setEndPosition(x, y);\n }\n },\n\n /**\n * \n * Callback if the user press a key down\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {Number} keyCode the pressed key\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n **/\n onKeyDown: function onKeyDown(canvas, keyCode, shiftKey, ctrlKey) {\n var KEYCODE_ENTER = 13;\n var KEYCODE_ESC = 27;\n if (keyCode === KEYCODE_ESC && this.beeline !== null) {\n this.beeline.hide();\n this.tempConnection.hide();\n this.beeline = null;\n this.port1 = null;\n this.vertices = [];\n if (this.pulse != null) {\n this.pulse.remove();\n this.pulse = null;\n }\n }\n },\n\n createConnection: function createConnection() {\n var connection = this._super();\n if (this.vertices.length === 2) {\n connection.setRouter(new _packages2.default.layout.connection.DirectRouter());\n } else {\n connection.setRouter(new _packages2.default.layout.connection.VertexRouter());\n connection.setVertices(this.vertices);\n }\n connection.setRadius(10);\n return connection;\n }\n\n});\n/**\n * @class\n *\n * The ClickConnectionCreatePolicy can be installed into the canvas to override the\n * default connection crate behaviour. Normally you can create connections by drag&drop a port.\n *\n * With this policy you can route the connection during creation.\n *\n * Creates a connection by clicking on a port.\n * <ul>\n * <li> click on the first port</li>\n * <li> click within the canvas to add additional vertices</li>\n * <li> click on the target port to draw the connection</li>\n * <li> press ESC to abort the operation (didn't work within this JSDoc)</li>\n * </ul>\n * <br>\n * <br>\n * <b>The generated connections didn't have any orthogonal constraints nor any other restrictions or guidance.</b>\n * <br>\n * <br>\n *\n *\n *\n * @example\n *\n * // Override the default connection creation.\n * //\n * canvas.installEditPolicy( new draw2d.policy.connection.ClickConnectionCreatePolicy());\n *\n * // create and add two Node which contains Ports (In and OUT)\n * //\n * var start = new draw2d.shape.node.Start({x:50, y:50});\n * var endNode = new draw2d.shape.node.End({x:200, y:70});\n *\n * // add the two nodes to the canvas\n * //\n * canvas.add( start);\n * canvas.add( endNode);\n *\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.connection.ConnectionCreatePolicy\n * @since 6.1.0\n */\n\n/***/ }),\n\n/***/ \"./src/policy/connection/ComposedConnectionCreatePolicy.js\":\n/*!*****************************************************************!*\\\n !*** ./src/policy/connection/ComposedConnectionCreatePolicy.js ***!\n \\*****************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.policy.connection.ComposedConnectionCreatePolicy = _packages2.default.policy.connection.ConnectionCreatePolicy.extend(\n/** @lends draw2d.policy.connection.ComposedConnectionCreatePolicy.prototype */\n{\n\n NAME: \"draw2d.policy.connection.ComposedConnectionCreatePolicy\",\n\n /**\n *\n * Creates a new connection create policy instance\n *\n * @param {array} policies the policies to use\n */\n init: function init(policies) {\n this.policies = policies;\n this._super();\n },\n\n onMouseDown: function onMouseDown() {\n var _arg = arguments;\n this.policies.forEach(function (p) {\n p.onMouseDown.apply(p, _arg);\n });\n },\n onMouseDrag: function onMouseDrag() {\n var _arg = arguments;\n this.policies.forEach(function (p) {\n p.onMouseDrag.apply(p, _arg);\n });\n },\n\n onMouseUp: function onMouseUp() {\n var _arg = arguments;\n this.policies.forEach(function (p) {\n p.onMouseUp.apply(p, _arg);\n });\n },\n\n onClick: function onClick() {\n var _arg = arguments;\n this.policies.forEach(function (p) {\n p.onClick.apply(p, _arg);\n });\n },\n onMouseMove: function onMouseMove() {\n var _arg = arguments;\n this.policies.forEach(function (p) {\n p.onMouseMove.apply(p, _arg);\n });\n },\n\n /**\n * @inheritDoc\n **/\n onKeyUp: function onKeyUp(canvas, keyCode, shiftKey, ctrlKey) {\n var _arg = arguments;\n this.policies.forEach(function (p) {\n p.onKeyUp.apply(p, _arg);\n });\n },\n\n /**\n * @inheritDoc\n **/\n onKeyDown: function onKeyDown(canvas, keyCode, shiftKey, ctrlKey) {\n var _arg = arguments;\n this.policies.forEach(function (p) {\n p.onKeyDown.apply(p, _arg);\n });\n },\n\n /**\n * \n * Called if the policy is installed into the canvas.\n *\n * @param {draw2d.Canvas} canvas\n */\n onInstall: function onInstall(canvas) {\n var _arg = arguments;\n this.policies.forEach(function (p) {\n p.onInstall.apply(p, _arg);\n });\n },\n\n /**\n * \n * Called if the policy is deinstalled from the canvas\n *\n * @param {draw2d.Canvas} canvas\n */\n onUninstall: function onUninstall(canvas) {\n var _arg = arguments;\n this.policies.forEach(function (p) {\n p.onUninstall.apply(p, _arg);\n });\n }\n\n});\n/**\n * @class\n * A composed connection create policy. Use this to install more than one\n * ConnectionCreatePolicy into the canvas. Normally it is not allowed to install\n * more than one policy from the same type.\n *\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.connection.ConnectionCreatePolicy\n */\n\n/***/ }),\n\n/***/ \"./src/policy/connection/ConnectionCreatePolicy.js\":\n/*!*********************************************************!*\\\n !*** ./src/policy/connection/ConnectionCreatePolicy.js ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.policy.connection.ConnectionCreatePolicy = _packages2.default.policy.canvas.KeyboardPolicy.extend(\n/** @lends draw2d.policy.connection.ConnectionCreatePolicy.prototype */\n{\n\n NAME: \"draw2d.policy.connection.ConnectionCreatePolicy\",\n\n /**\n *\n * Creates a new connection create policy instance\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * \n * Factory method to create the connection to insert.\n *\n * @returns {draw2d.Connection}\n * @template\n */\n createConnection: function createConnection() {\n return new _packages2.default.Connection({\n router: new _packages2.default.layout.connection.DirectRouter()\n });\n },\n\n ripple: function ripple(x, y, type) {\n switch (type) {\n case 0:\n var circle = this.canvas.paper.circle(x, y, 3, 3).attr({ fill: null, stroke: \"#d0d0ff\" });\n var anim = Raphael.animation({ transform: \"s6\", opacity: 0.0, \"stroke-width\": 3 }, 500, \"linear\", function () {\n circle.remove();\n });\n circle.animate(anim);\n // return an emmpty raphael.set. The circle removes itself after animation is done\n //\n return this.canvas.paper.set();\n break;\n case 1:\n var circle1 = this.canvas.paper.circle(x, y, 3, 3).attr({ fill: null, stroke: \"#3f72bf\" });\n var circle2 = this.canvas.paper.circle(x, y, 3, 3).attr({ fill: null, stroke: \"#ff0000\" });\n var anim1 = Raphael.animation({ transform: \"s6\", opacity: 0.0, \"stroke-width\": 1 }, 1200, \"linear\").repeat(Infinity);\n circle1.animate(anim1);\n var anim2 = Raphael.animation({ transform: \"s12\", opacity: 0.0, \"stroke-width\": 4 }, 500, \"linear\", function () {\n circle2.remove();\n });\n circle2.animate(anim2);\n\n // return the \"circle1\". This shape must be remove by the caller\n // \"circle2\" is removed automaticly\n //\n return circle1;\n break;\n }\n }\n\n});\n/**\n * @class\n * Base class for connection creation by user interaction.\n *\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.canvas.KeyboardPolicy\n */\n\n/***/ }),\n\n/***/ \"./src/policy/connection/DragConnectionCreatePolicy.js\":\n/*!*************************************************************!*\\\n !*** ./src/policy/connection/DragConnectionCreatePolicy.js ***!\n \\*************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.policy.connection.DragConnectionCreatePolicy = _packages2.default.policy.connection.ConnectionCreatePolicy.extend(\n/** @lends draw2d.policy.connection.DragConnectionCreatePolicy.prototype */\n{\n\n NAME: \"draw2d.policy.connection.DragConnectionCreatePolicy\",\n\n /**\n *\n * Creates a new connection create policy instance\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n this.mouseDraggingElement = null;\n this.currentDropTarget = null;\n this.currentTarget = null;\n },\n\n /**\n * \n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseDown: function onMouseDown(canvas, x, y, shiftKey, ctrlKey) {\n //just consider ports\n //\n var port = canvas.getBestFigure(x, y);\n\n // nothing found at all\n //\n if (port === null) {\n return;\n }\n\n // may there is a resize handle below the port or another figure\n // in this case the ResizeHandle has prio. and handled by another\n // Policy\n if (!(port instanceof _packages2.default.Port)) {\n return;\n }\n\n // this can happen if the user release the mouse button outside the window during a drag&drop\n // operation. In this case we must fire the \"onDragEnd\" event postpond.\n //\n if (port.isInDragDrop === true) {\n port.onDragEnd(x, y, shiftKey, ctrlKey);\n port.isInDragDrop = false;\n }\n\n // introspect the port only if it is draggable at all\n //\n if (port.isDraggable()) {\n var canDragStart = port.onDragStart(x - port.getAbsoluteX(), y - port.getAbsoluteY(), shiftKey, ctrlKey);\n if (canDragStart) {\n port.fireEvent(\"dragstart\", { x: x - port.getAbsoluteX(), y: y - port.getAbsoluteY(), shiftKey: shiftKey, ctrlKey: ctrlKey });\n }\n\n // Element send a veto about the drag&drop operation\n this.mouseDraggingElement = canDragStart === false ? null : port;\n this.mouseDownElement = port;\n }\n },\n\n /**\n * \n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} dx The x diff between start of dragging and this event\n * @param {Number} dy The y diff between start of dragging and this event\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n * @template\n */\n onMouseDrag: function onMouseDrag(canvas, dx, dy, dx2, dy2, shiftKey, ctrlKey) {\n try {\n if (this.mouseDraggingElement !== null) {\n var de = this.mouseDraggingElement;\n var ct = this.currentTarget;\n\n de.isInDragDrop = true;\n de.onDrag(dx, dy, dx2, dy2, shiftKey, ctrlKey);\n\n var target = canvas.getBestFigure(de.getAbsoluteX(), de.getAbsoluteY(), de);\n\n // the hovering element has been changed\n if (target !== ct) {\n if (ct !== null) {\n ct.onDragLeave(de);\n ct.fireEvent(\"dragLeave\", { draggingElement: de });\n de.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.port.PortFeedbackPolicy) {\n e.onHoverLeave(canvas, de, ct);\n }\n });\n }\n\n // possible hoverEnter event\n //\n if (target !== null) {\n this.currentTarget = ct = target.delegateTarget(de);\n if (ct !== null) {\n ct.onDragEnter(de); // legacy\n ct.fireEvent(\"dragEnter\", { draggingElement: de });\n de.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.port.PortFeedbackPolicy) {\n e.onHoverEnter(canvas, de, ct);\n }\n });\n }\n } else {\n this.currentTarget = null;\n }\n }\n\n var p = canvas.fromDocumentToCanvasCoordinate(canvas.mouseDownX + dx / canvas.zoomFactor, canvas.mouseDownY + dy / canvas.zoomFactor);\n var target = canvas.getBestFigure(p.x, p.y, this.mouseDraggingElement);\n\n if (target !== this.currentDropTarget) {\n if (this.currentDropTarget !== null) {\n this.currentDropTarget.onDragLeave(this.mouseDraggingElement);\n this.currentDropTarget.fireEvent(\"dragLeave\", { draggingElement: this.mouseDraggingElement });\n this.currentDropTarget = null;\n }\n if (target !== null) {\n this.currentDropTarget = target.delegateTarget(this.mouseDraggingElement);\n // inform all listener that the element has accept the dragEnter event\n //\n if (this.currentDropTarget !== null) {\n this.currentDropTarget.onDragEnter(this.mouseDraggingElement); // legacy\n this.currentDropTarget.fireEvent(\"dragEnter\", { draggingElement: this.mouseDraggingElement });\n }\n }\n }\n }\n } catch (exc) {\n console.log(exc);\n debugger;\n }\n },\n\n /**\n * \n *\n * @param {draw2d.Figure} figure the shape below the mouse or null\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onMouseUp: function onMouseUp(canvas, x, y, shiftKey, ctrlKey) {\n if (this.mouseDraggingElement !== null) {\n\n var de = this.mouseDraggingElement;\n var ct = this.currentTarget;\n // start CommandStack transaction\n canvas.getCommandStack().startTransaction();\n\n de.onDragEnd(x, y, shiftKey, ctrlKey);\n // notify all installed policies\n //\n if (ct) {\n de.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.port.PortFeedbackPolicy) {\n e.onHoverLeave(canvas, de, ct);\n }\n });\n }\n\n de.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.onDragEnd(canvas, de, x, y, shiftKey, ctrlKey);\n }\n });\n\n // Reset the drag&drop flyover information\n //\n this.currentTarget = null;\n de.isInDragDrop = false;\n\n // fire an event\n // @since 5.3.3\n de.fireEvent(\"dragend\", { x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n\n // check if we drop the port onto a valid\n // drop target and create a connection if possible\n //\n if (this.currentDropTarget !== null) {\n this.mouseDraggingElement.onDrop(this.currentDropTarget, x, y, shiftKey, ctrlKey);\n\n this.currentDropTarget.onDragLeave(this.mouseDraggingElement);\n this.currentDropTarget.fireEvent(\"dragLeave\", { draggingElement: this.mouseDraggingElement });\n\n // Ports accepts only Ports as DropTarget\n //\n if (this.currentDropTarget instanceof _packages2.default.Port) {\n var request = new _packages2.default.command.CommandType(_packages2.default.command.CommandType.CONNECT);\n request.source = this.currentDropTarget;\n request.target = this.mouseDraggingElement;\n var command = this.mouseDraggingElement.createCommand(request);\n\n if (command !== null) {\n command.setConnection(this.createConnection());\n canvas.getCommandStack().execute(command);\n this.currentDropTarget.onCatch(this.mouseDraggingElement, x, y, shiftKey, ctrlKey);\n }\n }\n }\n\n // end command stack trans\n canvas.getCommandStack().commitTransaction();\n this.currentDropTarget = null;\n this.mouseDraggingElement = null;\n }\n },\n\n createConnection: function createConnection() {\n var connection = this._super();\n connection.setRouter(new _packages2.default.layout.connection.DirectRouter());\n\n return connection;\n }\n\n});\n/**\n * @class\n *\n * The DragConnectionCreatePolicy is the default configuration for connection creation.\n * You must drag a port and drop them onto another port to create connection.\n *\n * Creates a connection by drag&drop on a port.\n * <ul>\n * <li> click on the first port</li>\n * <li> drag it to the target port</li>\n * <li> drop it onto the target</li>\n * </ul>\n * <br>\n * <br>\n *\n *\n *\n * @example\n *\n * // Override the default connection creation.\n * //\n * canvas.installEditPolicy( new draw2d.policy.connection.DragConnectionCreatePolicy());\n *\n * // create and add two Node which contains Ports (In and OUT)\n * //\n * var start = new draw2d.shape.node.Start({x:50, y:50});\n * var endNode = new draw2d.shape.node.End({x:200, y:70});\n *\n * // add the two nodes to the canvas\n * //\n * canvas.add( start);\n * canvas.add( endNode);\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.connection.ConnectionCreatePolicy\n */\n\n/***/ }),\n\n/***/ \"./src/policy/connection/OrthogonalConnectionCreatePolicy.js\":\n/*!*******************************************************************!*\\\n !*** ./src/policy/connection/OrthogonalConnectionCreatePolicy.js ***!\n \\*******************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.policy.connection.OrthogonalConnectionCreatePolicy = _packages2.default.policy.connection.ConnectionCreatePolicy.extend(\n/** @lends draw2d.policy.connection.ClickConnectionCreatePolicy.prototype */\n{\n\n NAME: \"draw2d.policy.connection.ClickConnectionCreatePolicy\",\n\n /**\n *\n * Creates a new connection create policy instance\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n this.port1 = null;\n this.beeline = null;\n this.pulse = null;\n this.tempConnection = null;\n\n this.vertices = new _packages2.default.util.ArrayList();\n },\n\n /**\n * \n * Called by the canvas if the user click on a figure.\n *\n * @param {draw2d.Figure} the figure under the click event. Can be null\n * @param {Number} x the x coordinate of the mouse during the click event\n * @param {Number} y the y coordinate of the mouse during the click event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @since 6.1.0\n *\n * @template\n */\n onClick: function onClick(figure, x, y, shiftKey, ctrlKey) {\n var UP = _packages2.default.geo.Rectangle.DIRECTION_UP;\n var RIGHT = _packages2.default.geo.Rectangle.DIRECTION_RIGHT;\n var DOWN = _packages2.default.geo.Rectangle.DIRECTION_DOWN;\n var LEFT = _packages2.default.geo.Rectangle.DIRECTION_LEFT;\n\n var _this = this;\n var port = figure; // .getCanvas().getBestFigure(x, y);\n\n // nothing to do\n if (port === null && this.port1 === null) {\n return;\n }\n\n // nothing found at all\n //\n if (port === null) {\n var canvas = this.port1.getCanvas();\n var newPos = this.beeline.getEndPosition();\n this.vertices.add(newPos);\n this.beeline.setStartPosition(this.beeline.getEndPosition());\n this.tempConnection.setVertices(this.vertices);\n if (this.pulse !== null) {\n this.pulse.remove();\n this.pulse = null;\n }\n this.ripple(newPos.x, newPos.y, 0);\n return;\n }\n\n // we just considering ports\n //\n if (!(port instanceof _packages2.default.Port)) {\n return;\n }\n\n // start connection create by selection the start port\n //\n if (this.port1 === null) {\n var canvas = port.getCanvas();\n this.port1 = port;\n this.vertices.add(port.getAbsolutePosition());\n this.beeline = new _packages2.default.shape.basic.Line({\n start: this.port1.getAbsolutePosition(),\n end: this.port1.getAbsolutePosition(),\n dasharray: \"- \",\n color: \"#2C70FF\"\n });\n\n this.beeline.hide = function () {\n _this.beeline.setCanvas(null);\n };\n\n this.beeline.show = function (canvas) {\n _this.beeline.setCanvas(canvas);\n _this.beeline.shape.toFront();\n };\n this.beeline.show(canvas);\n\n this.tempConnection = new _packages2.default.shape.basic.PolyLine({\n start: this.port1.getAbsolutePosition(),\n end: this.port1.getAbsolutePosition(),\n stroke: 2,\n color: \"#2C70FF\"\n });\n\n this.tempConnection.hide = function () {\n _this.tempConnection.setCanvas(null);\n };\n\n this.tempConnection.show = function (canvas) {\n _this.tempConnection.setCanvas(canvas);\n _this.tempConnection.shape.toFront();\n };\n this.tempConnection.show(canvas);\n this.tempConnection.setVertices([this.port1.getAbsolutePosition(), this.port1.getAbsolutePosition()]);\n\n var a = function a() {\n _this.tempConnection.shape.animate({ \"stroke-width\": 2 }, 800, b);\n };\n var b = function b() {\n _this.tempConnection.shape.animate({ \"stroke-width\": 1 }, 800, a);\n };\n a();\n\n canvas.paper.setStart();\n\n // delete the previews puls if the user press twice on the starting port\n //\n if (this.pulse !== null) {\n this.pulse.remove();\n this.pulse = null;\n }\n\n var pos = port.getAbsolutePosition();\n this.ripple(pos.x, pos.y, 1);\n this.pulse = canvas.paper.setFinish();\n } else {\n var possibleTarget = port.delegateTarget(this.port1);\n\n if (!(possibleTarget instanceof _packages2.default.Port)) {\n return; // silently\n }\n\n // check whenever the target port allows a connection\n //\n var request = new _packages2.default.command.CommandType(_packages2.default.command.CommandType.CONNECT);\n request.source = this.port1;\n request.target = port;\n var command = null;\n if (this.port1 instanceof _packages2.default.InputPort) {\n command = this.port1.createCommand(request);\n } else {\n command = port.createCommand(request);\n }\n\n if (command !== null) {\n var connection = this.createConnection();\n command.setConnection(connection);\n port.getCanvas().getCommandStack().execute(command);\n\n this.beeline.hide();\n this.tempConnection.hide();\n if (this.pulse !== null) {\n this.pulse.remove();\n this.pulse = null;\n }\n this.beeline = null;\n this.port1 = null;\n\n // use the default routing if the user didn't add some\n // vertices\n if (this.vertices.getSize() <= 2) {\n return;\n }\n\n var MINDIST = command.getConnection().getRouter().MINDIST;\n var beforeVertex = this.vertices.get(this.vertices.getSize() - 2);\n var lastVertex = this.vertices.last();\n var portPos = port.getAbsolutePosition();\n var lastSegmentDir = UP;\n if (lastVertex.x === beforeVertex.x) {\n lastSegmentDir = lastVertex.y < beforeVertex.y ? UP : DOWN;\n } else {\n lastSegmentDir = lastVertex.x < beforeVertex.x ? LEFT : RIGHT;\n }\n\n // CALCULATE THE LAST MILE OF THE CONNECTION\n //\n // ensure that we have a valid \"manhattan style\" connection.\n // We must add or adjust some points or segments.\n //\n // The code below creates and adjust the points in that way that the\n // DOTTED line is the calculated part to the user defined vertices.\n // ==================================\n //\n switch (port.getConnectionDirection(this.port1)) {\n case UP:\n switch (lastSegmentDir) {\n case UP:\n // o..................o lastVertex\n // | . |\n // | . |\n // | +----O----+ |\n // ------o | portPos | o------------\n // | | beforeVertex\n // +---------+\n //\n if (lastVertex.y < portPos.y - MINDIST) {\n this.vertices.add(new _packages2.default.geo.Point(portPos.x, lastVertex.y));\n this.vertices.add(portPos);\n }\n // ...................\n // . . .\n // . +----O----+ .\n // o | portPos | o lastVertex\n // | | | |\n // | +---------+ |\n // -------o o------------\n // beforeVertex\n //\n else {\n lastVertex.y = portPos.y - MINDIST;\n this.vertices.add(new _packages2.default.geo.Point(portPos.x, lastVertex.y));\n this.vertices.add(portPos);\n }\n break;\n case RIGHT:\n // ..............................\n // . . .\n // . . .\n // o------->o +----O----+ o---------------->O\n // | | portPos | | beforeVertex lastVertex\n // | | | |\n // | +---------+\n if (lastVertex.y > portPos.y - MINDIST) {\n beforeVertex.y = portPos.y - MINDIST;\n lastVertex.x = portPos.x;\n lastVertex.y = beforeVertex.y;\n this.vertices.add(portPos);\n }\n //\n // beforeVertex lastVertex\n // o---------->o..................o------------->O\n // | . |\n // | +----O----+ |\n // | | portPos | |\n // | | | |\n // +---------+\n else {\n lastVertex.x = portPos.x;\n this.vertices.add(portPos);\n }\n break;\n case DOWN:\n // beforeVertex\n // ------o..................o------------\n // | . |\n // | . |\n // V +----O----+ V\n // o | portPos | o lastVertex\n // | |\n // +---------+\n //\n if (lastVertex.y < portPos.y - MINDIST) {\n beforeVertex.x = portPos.x;\n lastVertex.setPosition(portPos);\n }\n // ...................\n // . . .\n // . +----O----+ . beforeVertex\n // -------o | portPos | o------------\n // | | | |\n // V +---------+ V\n // o o\n // lastVertex\n //\n else {\n lastVertex.y = portPos.y - MINDIST;\n this.vertices.add(new _packages2.default.geo.Point(portPos.x, lastVertex.y));\n this.vertices.add(portPos);\n }\n break;\n case LEFT:\n // ..................................\n // . . .\n // . . .\n // o<--------o +----O----+ o<-------------O beforeVertex\n // | | portPos | lastVertex |\n // | | | |\n // +---------+\n if (lastVertex.y > portPos.y - MINDIST) {\n beforeVertex.y = portPos.y - MINDIST;\n lastVertex.x = portPos.x;\n lastVertex.y = beforeVertex.y;\n this.vertices.add(portPos);\n }\n // | |\n // | |\n // o<--------o................o<-------------O\n // . lastVertex beforeVertex\n // +----O----+\n // | portPos |\n // | |\n // +---------+\n else {\n lastVertex.x = portPos.x;\n this.vertices.add(portPos);\n }\n break;\n }\n break;\n case RIGHT:\n switch (lastSegmentDir) {\n case UP:\n // o lastVertex\n // |\n // |\n // ------------------o beforeVertex\n // .\n // +----------+ .\n // | | .\n // | portPos O.......\n // | | .\n // +----------+ .\n // o lastVertex\n // |\n // |\n // -----------------o beforeVertex\n //\n if (lastVertex.x > portPos.x + MINDIST) {\n lastVertex.y = portPos.y;\n this.vertices.add(portPos);\n }\n // lastVertex\n // o...............\n // | .\n // | .\n // ----o beforeVertex .\n // .\n // +----------+ .\n // | | .\n // | portPos O........\n // | | .\n // +----------+ .\n // o...............\n // | lastVertex\n // |\n //------o\n // beforeVertex\n //\n //\n else {\n this.vertices.add(new _packages2.default.geo.Point(portPos.x + MINDIST, lastVertex.y));\n this.vertices.add(new _packages2.default.geo.Point(portPos.x + MINDIST, portPos.y));\n this.vertices.add(portPos);\n }\n break;\n case RIGHT:\n // beforeVertex lastVertex\n // o-------------->o\n // .\n // +----------+ .\n // | | .\n // | portPos O.......\n // | | .\n // +----------+ .\n // .\n // o-------------->o\n // beforeVertex lastVertex\n //\n if (lastVertex.x > portPos.x + MINDIST) {\n this.vertices.add(new _packages2.default.geo.Point(lastVertex.x, portPos.y));\n this.vertices.add(portPos);\n }\n // beforeVertex lastVertex\n // o------------>o.........\n // .\n // +----------+ .\n // | | .\n // | portPos O.......\n // | | .\n // +----------+ .\n // .\n // o----------->o..........\n // beforeVertex lastVertex\n //\n else {\n lastVertex.x = portPos.x + MINDIST;\n this.vertices.add(new _packages2.default.geo.Point(lastVertex.x, portPos.y));\n this.vertices.add(portPos);\n }\n break;\n case DOWN:\n // ----------------o beforeVertex\n // |\n // |\n // o lastVertex\n // .\n // +----------+ .\n // | | .\n // | portPos O.......\n // | | .\n // +----------+ .\n // .\n // --------------o beforeVertex\n // |\n // |\n // o lastVertex\n //\n if (lastVertex.x > portPos.x + MINDIST) {\n lastVertex.y = portPos.y;\n this.vertices.add(portPos);\n }\n // -----o beforeVertex\n // |\n // | lastVertex\n // o...........\n // .\n // +----------+ .\n // | | .\n // | portPos O.......\n // | | .\n // +----------+ .\n // .\n // ----o beforeVertex .\n // | .\n // | lastVertex .\n // o...............\n //\n else {\n this.vertices.add(new _packages2.default.geo.Point(portPos.x + MINDIST, lastVertex.y));\n this.vertices.add(new _packages2.default.geo.Point(portPos.x + MINDIST, portPos.y));\n this.vertices.add(portPos);\n }\n break;\n case LEFT:\n // lastVertex beforeVertex\n // o<--------------o\n // .\n // +----------+ .\n // | | .\n // | portPos O..\n // | | .\n // +----------+ .\n // .\n // o<--------------o\n // lastVertex beforeVertex\n //\n if (lastVertex.x > portPos.x + MINDIST) {\n this.vertices.add(new _packages2.default.geo.Point(lastVertex.x, portPos.y));\n this.vertices.add(portPos);\n }\n // lastVertex beforeVertex\n // o<-----------------------o\n // .\n // +----------+ .\n // | | .\n // | portPos O....\n // | | .\n // +----------+ .\n // .\n // o<----------------------o\n // lastVertex beforeVertex\n //\n else {\n lastVertex.x = portPos.x + MINDIST;\n this.vertices.add(new _packages2.default.geo.Point(lastVertex.x, portPos.y));\n this.vertices.add(portPos);\n }\n break;\n }\n break;\n case DOWN:\n switch (lastSegmentDir) {\n case UP:\n // o o lastVertex\n // | |\n // | |\n // | +---------+ |\n // ------o | | o------------\n // . | portPos | . beforeVertex\n // . +----O----+ .\n // . . .\n // ....................\n //\n if (lastVertex.y < portPos.y + MINDIST) {\n lastVertex.y = portPos.y + MINDIST;\n this.vertices.add(new _packages2.default.geo.Point(portPos.x, lastVertex.y));\n this.vertices.add(portPos);\n }\n // +---------+\n // | |\n // | portPos |\n // +----O----+\n // .\n // o.................o lastVertex\n // | |\n // | |\n // -------o o------------\n // beforeVertex\n //\n else {\n lastVertex.x = portPos.x;\n lastVertex.y = portPos.y;\n beforeVertex.x = portPos.x;\n }\n break;\n case RIGHT:\n // +---------+\n // | |\n // | portPos |\n // o------->o +----O----+ o--------------->O\n // | . . | beforeVertex . lastVertex\n // | .....................|.................\n // |\n //\n //\n if (lastVertex.y < portPos.y + MINDIST) {\n this.vertices.add(new _packages2.default.geo.Point(lastVertex.x, portPos.y + MINDIST));\n this.vertices.add(new _packages2.default.geo.Point(portPos.x, portPos.y + MINDIST));\n this.vertices.add(portPos);\n }\n // +---------+\n // | |\n // | portPos |\n // +----O----+\n // .\n // ...................................\n // . beforeVertex . lastVertex\n // o---------->o o------------->O\n // | |\n // | |\n //\n else {\n lastVertex.x = portPos.x;\n this.vertices.add(portPos);\n }\n break;\n case DOWN:\n // beforeVertex\n // ------o o------------\n // | |\n // | |\n // V +---------+ V\n // o | | o lastVertex\n // . | portPos | .\n // . +----O----+ .\n // . . .\n // ....................\n //\n if (lastVertex.y < portPos.y + MINDIST) {\n lastVertex.y = portPos.y + MINDIST;\n this.vertices.add(new _packages2.default.geo.Point(portPos.x, lastVertex.y));\n this.vertices.add(portPos);\n }\n //\n // +---------+ beforeVertex\n // -------o | portPos | o------------\n // | | | |\n // V +----O----+ V\n // o . o\n // .................. lastVertex\n //\n else {\n this.vertices.add(new _packages2.default.geo.Point(portPos.x, lastVertex.y));\n this.vertices.add(portPos);\n }\n break;\n case LEFT:\n //\n // o<--------o +---------+ o<-------------O beforeVertex\n // . | | | . lastVertex |\n // . | | portPos | . |\n // . +----O----+ .\n // . . .\n // ..............................\n //\n if (lastVertex.y < portPos.y - MINDIST) {\n beforeVertex.y = portPos.y - MINDIST;\n lastVertex.x = portPos.x;\n lastVertex.y = beforeVertex.y;\n this.vertices.add(portPos);\n }\n //\n // +---------+\n // | | | |\n // | | portPos | |\n // | +----O----+ |\n // | . |\n // o<--------o...................o<---------o\n //\n else {\n lastVertex.x = portPos.x;\n this.vertices.add(portPos);\n }\n break;\n }\n break;\n case LEFT:\n switch (lastSegmentDir) {\n case UP:\n // ................o lastVertex\n // . |\n // . |\n // --.---------------o beforeVertex\n // .\n // . +----------+\n // . | |\n // ....o portPos |\n // . | |\n // . +----------+\n // .\n // ................o lastVertex\n // |\n // |\n // -----------------o beforeVertex\n //\n if (lastVertex.x >= portPos.x - MINDIST) {\n this.vertices.add(new _packages2.default.geo.Point(portPos.x - MINDIST, lastVertex.y));\n this.vertices.add(new _packages2.default.geo.Point(portPos.x - MINDIST, portPos.y));\n this.vertices.add(portPos);\n }\n //\n // +----------+\n // | |\n // ......o portPos |\n // . | |\n // . +----------+\n // o\n // | lastVertex\n // |\n //------o\n // beforeVertex\n //\n //\n else if (lastVertex.y > portPos.y && lastVertex.x < portPos.x - MINDIST) {\n lastVertex.y = portPos.y;\n this.vertices.add(portPos);\n }\n // lastVertex\n // o..\n // | .\n // | .\n // ----o . beforeVertex\n // .\n // . +----------+\n // . | |\n // ....o portPos |\n // | |\n // +----------+\n //\n else {\n this.vertices.add(new _packages2.default.geo.Point(portPos.x - MINDIST, lastVertex.y));\n this.vertices.add(new _packages2.default.geo.Point(portPos.x - MINDIST, portPos.y));\n this.vertices.add(portPos);\n }\n break;\n case RIGHT:\n // beforeVertex lastVertex\n // o-------------->o\n // .\n // ....................\n // .\n // . +----------+\n // . | |\n // .......o portPos |\n // | |\n // +----------+\n //\n if (lastVertex.y < portPos.y && lastVertex.x > portPos.x - MINDIST) {\n var center = portPos.y - (portPos.y - lastVertex.y) / 2;\n this.vertices.add(new _packages2.default.geo.Point(lastVertex.x, center));\n this.vertices.add(new _packages2.default.geo.Point(portPos.x - MINDIST, center));\n this.vertices.add(new _packages2.default.geo.Point(portPos.x - MINDIST, portPos.y));\n this.vertices.add(portPos);\n }\n // +----------+\n // | |\n // .......o portPos |\n // . | |\n // . +----------+\n // .\n // ....................\n // .\n // o-------------->o\n // beforeVertex lastVertex\n //\n else if (lastVertex.y > portPos.y && lastVertex.x > portPos.x - MINDIST) {\n var center = portPos.y + (lastVertex.y - portPos.y) / 2;\n this.vertices.add(new _packages2.default.geo.Point(lastVertex.x, center));\n this.vertices.add(new _packages2.default.geo.Point(portPos.x - MINDIST, center));\n this.vertices.add(new _packages2.default.geo.Point(portPos.x - MINDIST, portPos.y));\n this.vertices.add(portPos);\n }\n // beforeVertex lastVertex\n // o------------>o\n // .\n // . +----------+\n // . | |\n // ....o portPos |\n // . | |\n // . +----------+\n // .\n // o----------->o\n // beforeVertex lastVertex\n //\n else {\n this.vertices.add(new _packages2.default.geo.Point(lastVertex.x, portPos.y));\n this.vertices.add(portPos);\n }\n break;\n case DOWN:\n // -----------o beforeVertex\n // |\n // |\n // V\n // ................o lastVertex\n // .\n // . +----------+\n // . | |\n // ........o portPos |\n // . | |\n // . +----------+\n // .\n // . --------o beforeVertex\n // . |\n // . |\n // . V\n // .................o lastVertex\n //\n if (lastVertex.x >= portPos.x - MINDIST) {\n this.vertices.add(new _packages2.default.geo.Point(portPos.x - MINDIST, lastVertex.y));\n this.vertices.add(new _packages2.default.geo.Point(portPos.x - MINDIST, portPos.y));\n this.vertices.add(portPos);\n }\n // -----o beforeVertex\n // |\n // |\n // o lastVertex\n // .\n // . +----------+\n // . | |\n // ........o portPos |\n // . | |\n // . +----------+\n // beforeVertex.\n // ------------o\n // |\n // |\n // lastVertex o\n //\n else {\n lastVertex.y = portPos.y;\n this.vertices.add(portPos);\n }\n break;\n case LEFT:\n // lastVertex beforeVertex\n // o<--------------o\n // .\n // . +----------+\n // . | |\n // ....... o portPos |\n // . | |\n // . +----------+\n // .\n // o<--------------o\n // lastVertex beforeVertex\n //\n if (lastVertex.x < portPos.x - MINDIST) {\n this.vertices.add(new _packages2.default.geo.Point(lastVertex.x, portPos.y));\n this.vertices.add(portPos);\n }\n // lastVertex beforeVertex\n // .......o<-----------------------o\n // .\n // . +----------+\n // . | |\n // .....o portPos |\n // . | |\n // . +----------+\n // .\n // ........o<----------------------o\n // lastVertex beforeVertex\n //\n else {\n lastVertex.x = portPos.x - MINDIST;\n this.vertices.add(new _packages2.default.geo.Point(lastVertex.x, portPos.y));\n this.vertices.add(portPos);\n }\n break;\n }\n break;\n }\n\n if (this.vertices.getSize() > 3) {\n connection._routingMetaData.routedByUserInteraction = true;\n connection.setVertices(this.vertices);\n }\n this.vertices.clear();\n }\n }\n },\n\n /**\n * \n *\n * @param {draw2d.Canvas} canvas\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n */\n onMouseMove: function onMouseMove(canvas, x, y, shiftKey, ctrlKey) {\n if (this.beeline !== null) {\n this.beeline.setEndPosition(this.orthogonal(this.vertices.last(), { x: x, y: y }));\n }\n },\n\n /**\n * \n * Callback if the user press a key down\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {Number} keyCode the pressed key\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @private\n **/\n onKeyDown: function onKeyDown(canvas, keyCode, shiftKey, ctrlKey) {\n var KEYCODE_ENTER = 13;\n var KEYCODE_ESC = 27;\n if (keyCode === KEYCODE_ESC && this.beeline !== null) {\n this.beeline.hide();\n this.tempConnection.hide();\n this.beeline = null;\n this.port1 = null;\n this.vertices.clear();\n if (this.pulse != null) {\n this.pulse.remove();\n this.pulse = null;\n }\n }\n },\n\n orthogonal: function orthogonal(anchor, p) {\n // calculate vertical line distance\n //\n var xDiff = Math.abs(anchor.x - p.x) + 10;\n var xDist = _packages2.default.geo.Line.distance(anchor.x - xDiff, anchor.y, anchor.x + xDiff, anchor.y, p.x, p.y);\n\n // calculate horizontal line distance\n //\n var yDiff = Math.abs(anchor.y - p.y) + 10;\n var yDist = _packages2.default.geo.Line.distance(anchor.x, anchor.y - yDiff, anchor.x, anchor.y + yDiff, p.x, p.y);\n\n return yDist > xDist ? { x: p.x, y: anchor.y } : { x: anchor.x, y: p.y };\n },\n\n createConnection: function createConnection() {\n var connection = this._super();\n connection.attr({ radius: 7, stroke: 3 });\n connection.setRouter(new _packages2.default.layout.connection.InteractiveManhattanConnectionRouter());\n return connection;\n }\n\n});\n/**\n * @class\n *\n * The OrthogonalConnectionCreatePolicy can be installed into the canvas to override the\n * default connection crate behaviour. Normaly you can create connections by drag&drop a port.\n *\n * With this policy you can route the connection during creation.\n *\n * Creates a connection by clicking on a port.\n * <ul>\n * <li> click on the first port</li>\n * <li> click within the canvas to add additional vertices</li>\n * <li> click on the target port to draw the connection</li>\n * <li> press ESC to abort the operation (didn't work within this JSDoc)</li>\n * </ul>\n * <br>\n * <br>\n * <b>The generated connection has always perpendicular segments.</b>\n * <br>\n * <br>\n *\n *\n * @example\n *\n * // Override the default connection creation.\n * //\n * canvas.installEditPolicy( new draw2d.policy.connection.OrthogonalConnectionCreatePolicy());\n *\n * // create and add two Node which contains Ports (In and OUT)\n * //\n * var start = new draw2d.shape.node.Start({x:50, y:50});\n * var endNode = new draw2d.shape.node.End({x:200, y:70});\n *\n * // add the two nodes to the canvas\n * //\n * canvas.add( start);\n * canvas.add( endNode);\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.connection.ConnectionCreatePolicy\n */\n\n/***/ }),\n\n/***/ \"./src/policy/figure/AntSelectionFeedbackPolicy.js\":\n/*!*********************************************************!*\\\n !*** ./src/policy/figure/AntSelectionFeedbackPolicy.js ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Provide support for selecting and positioning a non-resizable figure.\n * Selection is indicated via rectangular handle that outlines the figure with a 1-pixel black\n * dotted line.\n *\n *\n * @example\n *\n * circle =new draw2d.shape.basic.Circle({diameter:50, x:90, y:50});\n * circle.installEditPolicy(new draw2d.policy.figure.AntSelectionFeedbackPolicy());\n * canvas.add(circle);\n *\n * canvas.add(new draw2d.shape.basic.Label({text:\"Click on the circle to see the selection feedback\"}),20,10);\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.SelectionFeedbackPolicy\n */\n_packages2.default.policy.figure.AntSelectionFeedbackPolicy = _packages2.default.policy.figure.SelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.figure.AntSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.AntSelectionFeedbackPolicy\",\n\n /**\n * Creates a new Router object\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n *\n * Called by the framework of the Policy should show a resize handle for the given shape\n *\n * @param {draw2d.Canvas} canvas the responsible canvas\n * @param {draw2d.Figure} figure the figure to decorate with a selection feedback\n * @param {Boolean} [isPrimarySelection]\n */\n onSelect: function onSelect(canvas, figure, isPrimarySelection) {\n if (figure.selectionHandles.isEmpty()) {\n var box = new _packages2.default.shape.basic.Rectangle({ bgColor: null, dasharray: \"- \", color: \"#2C70FF\" });\n box.hide = function () {\n // IMPORTANT\n // don't add/remove this rectangle to the canvas resizeHandles. This rect isn't responsible for any hitTest or\n // dragDrop operation\n //canvas.resizeHandles.remove(box);\n box.setCanvas(null);\n };\n box.show = function (canvas) {\n box.setCanvas(canvas);\n // IMPORTANT\n // don't add/remove this rectangle to the canvas resizeHandles. This rect isn't responsible for any hitTest or\n // dragDrop operation\n //canvas.resizeHandles.remove(box);\n //canvas.resizeHandles.add(box);\n box.shape.toFront();\n };\n box.show(canvas);\n figure.selectionHandles.add(box);\n\n // add a bee line to the parent if a parent is given and if the bounding box\n // of the parent and the figure didn't have intersections\n if (figure.getParent() !== null) {\n var line = new _packages2.default.shape.basic.Line({ opacity: 0.5, bgColor: null, dasharray: \"- \", color: \"#2C70FF\" });\n //line.setStartPosition(figure.getBoundingBox().getCenter());\n //line.setEndPosition(figure.getParent().getBoundingBox().getCenter());\n line.show = function (canvas) {\n return line.setCanvas(canvas);\n };\n line.hide = function () {\n return line.setCanvas(null);\n };\n line.show(canvas);\n figure.selectionHandles.add(line);\n this._updateBeeLine(line, figure);\n }\n }\n this.moved(canvas, figure);\n },\n\n /**\n *\n * Callback if the figure has been moved\n *\n * @param figure\n *\n * @template\n */\n moved: function moved(canvas, figure) {\n if (figure.selectionHandles.isEmpty()) {\n return; // silently\n }\n\n var margin = 2;\n var box = figure.selectionHandles.first();\n box.setPosition(figure.getAbsolutePosition().translate(-margin, -margin));\n box.setDimension(figure.getWidth() + margin * 2, figure.getHeight() + margin * 2);\n box.setRotationAngle(figure.getRotationAngle());\n\n if (figure.selectionHandles.getSize() > 1) {\n this._updateBeeLine(figure.selectionHandles.get(1), figure);\n }\n },\n\n /**\n *\n * @param {draw2d.shape.basic.Line} line\n * @param {draw2d.Figure} figure\n * @private\n */\n _updateBeeLine: function _updateBeeLine(line, figure) {\n var parent = figure.getParent();\n\n if (parent === null) {\n return;\n }\n\n if (parent instanceof _packages2.default.shape.basic.Line) {\n var center = figure.getBoundingBox().getCenter();\n var projection = parent.pointProjection(center);\n if (projection === null) {\n var p1 = line.getStartPosition();\n var p2 = line.getEndPosition();\n var d1 = center.distance(p1);\n var d2 = center.distance(p1);\n projection = d1 < d2 ? p1 : p2;\n }\n var intersection = figure.getBoundingBox().intersectionWithLine(center, projection);\n if (intersection.getSize() > 0) {\n line.setStartPosition(figure.getBoundingBox().intersectionWithLine(center, projection).get(0)).setEndPosition(projection);\n } else {\n line.setStartPosition(figure.getBoundingBox().getCenter()).setEndPosition(projection);\n }\n } else {\n var rect1 = figure.getBoundingBox(),\n rect2 = parent.getBoundingBox();\n\n var center1 = rect1.getCenter();\n var center2 = rect2.getCenter();\n // the rectangle overlaps -> return the center of booth\n if (rect1.intersects(rect2)) {\n line.setStartPosition(center1).setEndPosition(center2);\n }\n // one rect is inside the other rect\n //\n else if (rect1.hitTest(center2) || rect2.hitTest(center1)) {\n line.setStartPosition(center1).setEndPosition(center2);\n } else {\n rect1.scale(3, 3);\n rect2.scale(3, 3);\n\n line.setStartPosition(rect1.intersectionWithLine(center1, center2).get(0)).setEndPosition(rect2.intersectionWithLine(center1, center2).get(0));\n }\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/BigRectangleSelectionFeedbackPolicy.js\":\n/*!******************************************************************!*\\\n !*** ./src/policy/figure/BigRectangleSelectionFeedbackPolicy.js ***!\n \\******************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @example\n *\n * circle =new draw2d.shape.basic.Circle();\n * circle.installEditPolicy(new draw2d.policy.figure.BigRectangleSelectionFeedbackPolicy());\n * canvas.add(circle,90,50);\n *\n * canvas.add(new draw2d.shape.basic.Label({text:\"Click on the circle to see the selection feedback\"}),20,10);\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.SelectionFeedbackPolicy\n */\n_packages2.default.policy.figure.BigRectangleSelectionFeedbackPolicy = _packages2.default.policy.figure.RectangleSelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.figure.BigRectangleSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.BigRectangleSelectionFeedbackPolicy\",\n\n /**\n * Creates a new Router object\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n createResizeHandle: function createResizeHandle(owner, type) {\n return new _packages2.default.ResizeHandle({ owner: owner, type: type, width: 15, height: 15 });\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/BusSelectionFeedbackPolicy.js\":\n/*!*********************************************************!*\\\n !*** ./src/policy/figure/BusSelectionFeedbackPolicy.js ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.SelectionFeedbackPolicy\n */\n_packages2.default.policy.figure.BusSelectionFeedbackPolicy = _packages2.default.policy.figure.SelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.figure.BusSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.BusSelectionFeedbackPolicy\",\n\n /**\n * Creates a new Router object\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * \n * Called by the framework of the Policy should show a resize handle for the given shape\n *\n * @param {Boolean} isPrimarySelection\n */\n onSelect: function onSelect(canvas, figure, isPrimarySelection) {\n if (figure.selectionHandles.isEmpty()) {\n var r2 = _packages2.default.Configuration.factory.createResizeHandle(figure, 2); // 2 = CENTER_TOP\n var r4 = _packages2.default.Configuration.factory.createResizeHandle(figure, 4); // 4 = RIGHT_MIDDLE\n var r6 = _packages2.default.Configuration.factory.createResizeHandle(figure, 6); // 6 = CENTER_BOTTOM\n var r8 = _packages2.default.Configuration.factory.createResizeHandle(figure, 8); // 8 = LEFT_MIDDLE\n\n figure.selectionHandles.add(r2, r4, r6, r8);\n\n r2.setDraggable(figure.isResizeable());\n r4.setDraggable(figure.isResizeable());\n r6.setDraggable(figure.isResizeable());\n r8.setDraggable(figure.isResizeable());\n\n r2.show(canvas);\n r4.show(canvas);\n r6.show(canvas);\n r8.show(canvas);\n }\n this.moved(canvas, figure);\n },\n\n /**\n * \n * Callback if the figure has been moved\n *\n * @param figure\n *\n * @template\n */\n moved: function moved(canvas, figure) {\n if (figure.selectionHandles.isEmpty()) {\n return; // silently\n }\n var r2 = figure.selectionHandles.find(function (handle) {\n return handle.type === 2;\n });\n var r4 = figure.selectionHandles.find(function (handle) {\n return handle.type === 4;\n });\n var r6 = figure.selectionHandles.find(function (handle) {\n return handle.type === 6;\n });\n var r8 = figure.selectionHandles.find(function (handle) {\n return handle.type === 8;\n });\n\n var objHeight = figure.getHeight();\n var objWidth = figure.getWidth();\n\n var xPos = figure.getX();\n var yPos = figure.getY();\n r2.setPosition(xPos + objWidth / 2 - r2.getWidth() / 2, yPos - r2.getHeight());\n r4.setPosition(xPos + objWidth, yPos + objHeight / 2 - r4.getHeight() / 2);\n r6.setPosition(xPos + objWidth / 2 - r6.getWidth() / 2, yPos + objHeight);\n r8.setPosition(xPos - r8.getWidth(), yPos + objHeight / 2 - r8.getHeight() / 2);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/DragDropEditPolicy.js\":\n/*!*************************************************!*\\\n !*** ./src/policy/figure/DragDropEditPolicy.js ***!\n \\*************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Called by the framework if the user edit the position of a figure with a drag drop operation.\n * Sub class like SelectionEditPolicy or RegionEditPolicy can adjust the position of the figure or the selections handles.\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.FigureEditPolicy\n */\n_packages2.default.policy.figure.DragDropEditPolicy = _packages2.default.policy.figure.FigureEditPolicy.extend(\n/** @lends draw2d.policy.figure.DragDropEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.DragDropEditPolicy\",\n\n /**\n */\n init: function init(attr, setter, getter) {\n var _this = this;\n\n this._super(attr, setter, getter);\n this.moveCallback = function (emitter, event) {\n _this.moved(emitter.getCanvas(), emitter);\n };\n },\n\n /**\n *\n * Called by the host if the policy has been installed.\n *\n * @param {draw2d.Canvas|draw2d.Figure} host\n */\n onInstall: function onInstall(host) {\n this._super(host);\n host.on(\"move\", this.moveCallback);\n },\n\n /**\n *\n * Called by the host if the policy has been uninstalled.\n *\n * @param {draw2d.Canvas|draw2d.Figure} host\n */\n onUninstall: function onUninstall(host) {\n this._super(host);\n host.off(this.moveCallback);\n },\n\n /**\n *\n * Called by the framework if the related shape has init a drag&drop\n * operation\n *\n * The Policy can send a veto to prevent the DragDrop operation\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Figure} figure The related figure\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @returns {Boolean} return <b>false</b> to send a veto to the drag operation\n */\n onDragStart: function onDragStart(canvas, figure, x, y, shiftKey, ctrlKey) {\n figure.shape.attr({ cursor: \"move\" });\n\n // this happens if you drag&drop the shape outside of the screen and\n // release the mouse button outside the window. We restore the alpha\n // with the next drag&drop operation\n if (figure.isMoving === true) {\n figure.setAlpha(figure.originalAlpha);\n }\n\n figure.originalAlpha = figure.getAlpha();\n figure.isMoving = false;\n\n // return value since 6.1.0\n return true;\n },\n\n /**\n *\n * Called by the framework during drag a figure.\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Figure} figure The related figure\n * @template\n */\n onDrag: function onDrag(canvas, figure) {\n // enable the alpha blending of the first real move of the object\n //\n if (figure.isMoving === false) {\n figure.isMoving = true;\n figure.setAlpha(figure.originalAlpha * 0.4);\n }\n },\n\n /**\n *\n * Called by the framework if the drag drop operation ends.\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Figure} figure The related figure\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n */\n onDragEnd: function onDragEnd(canvas, figure, x, y, shiftKey, ctrlKey) {\n figure.shape.attr({ cursor: \"default\" });\n figure.isMoving = false;\n figure.setAlpha(figure.originalAlpha);\n },\n\n /**\n *\n * Adjust the coordinates to the rectangle/region of this constraint.\n *\n * @param {draw2d.Figure} figure\n * @param {Number|draw2d.geo.Point} x\n * @param {Number} [y]\n * @returns {draw2d.geo.Point} the constraint position of the figure\n *\n * @template\n */\n adjustPosition: function adjustPosition(figure, x, y) {\n // do nothing per default implementation\n if (x instanceof _packages2.default.geo.Point) {\n return x;\n }\n\n return new _packages2.default.geo.Point(x, y);\n },\n\n /**\n *\n * ensure that the dimension didn't goes outside the given restrictions\n *\n * @param {draw2d.Figure} figure\n * @param {Number} w\n * @param {number} h\n * @returns {draw2d.geo.Rectangle} the constraint position of the figure\n */\n adjustDimension: function adjustDimension(figure, w, h) {\n return new _packages2.default.geo.Rectangle(0, 0, w, h);\n },\n\n /**\n *\n * Callback if the figure has moved\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Figure} figure The related figure\n *\n * @template\n */\n moved: function moved(canvas, figure) {}\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/FigureEditPolicy.js\":\n/*!***********************************************!*\\\n !*** ./src/policy/figure/FigureEditPolicy.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Called by the framework if the user edit the position of a figure with a drag drop operation.\n * Sub class like SelectionEditPolicy or RegionEditPolicy can adjust the position of the figure\n * or the selections handles.\n *\n * @author Andreas Herz\n * @extends draw2d.policy.EditPolicy\n * @since 4.4.0\n */\n_packages2.default.policy.figure.FigureEditPolicy = _packages2.default.policy.EditPolicy.extend(\n/** @lends draw2d.policy.figure.FigureEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.FigureEditPolicy\",\n\n /**\n * Creates a new Router object\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * \n * Called if the user press the right mouse on the figure.<br>\n * You can either override the \"onContextMenu\" method of the figure or install an editor policy and override this method.\n * Booth is valid and possible.\n *\n * @param {draw2d.Figure|draw2d.shape.basic.Line} figure the figure below the mouse\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n * @since 4.4.0\n */\n onRightMouseDown: function onRightMouseDown(figure, x, y, shiftKey, ctrlKey) {}\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/GlowSelectionFeedbackPolicy.js\":\n/*!**********************************************************!*\\\n !*** ./src/policy/figure/GlowSelectionFeedbackPolicy.js ***!\n \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @example\n *\n * circle =new draw2d.shape.basic.Circle();\n * circle.installEditPolicy(new draw2d.policy.figure.GlowSelectionFeedbackPolicy());\n * canvas.add(circle,90,50);\n *\n * canvas.add(new draw2d.shape.basic.Label(\"Click on the circle to see the selection feedback\"),20,10);\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.SelectionFeedbackPolicy\n */\n_packages2.default.policy.figure.GlowSelectionFeedbackPolicy = _packages2.default.policy.figure.SelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.figure.GlowSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.GlowSelectionFeedbackPolicy\",\n\n /**\n * Creates a new Router object\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * \n * Called by the framework of the Policy should show a resize handle for the given shape\n *\n * @param {Boolean} isPrimarySelection\n */\n onSelect: function onSelect(canvas, figure, isPrimarySelection) {\n figure.setGlow(true);\n this.moved(canvas, figure);\n },\n\n /**\n * \n *\n * @param {draw2d.Figure} figure the unselected figure\n */\n onUnselect: function onUnselect(canvas, figure) {\n this._super(canvas, figure);\n figure.setGlow(false);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/HBusSelectionFeedbackPolicy.js\":\n/*!**********************************************************!*\\\n !*** ./src/policy/figure/HBusSelectionFeedbackPolicy.js ***!\n \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.policy.figure.HBusSelectionFeedbackPolicy = _packages2.default.policy.figure.BusSelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.figure.HBusSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.HBusSelectionFeedbackPolicy\",\n /**\n * Creates a new Router object\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * \n * Callback if the figure has been moved\n *\n * @param figure\n *\n * @template\n */\n moved: function moved(canvas, figure) {\n if (figure.selectionHandles.isEmpty()) {\n return; // silently\n }\n var r4 = figure.selectionHandles.find(function (handle) {\n return handle.type === 4;\n });\n var r8 = figure.selectionHandles.find(function (handle) {\n return handle.type === 8;\n });\n\n r4.setDimension(r4.getWidth(), figure.getHeight());\n r8.setDimension(r4.getWidth(), figure.getHeight());\n\n this._super(canvas, figure);\n }\n\n});\n/**\n * @class\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.BusSelectionFeedbackPolicy\n */\n\n/***/ }),\n\n/***/ \"./src/policy/figure/HorizontalEditPolicy.js\":\n/*!***************************************************!*\\\n !*** ./src/policy/figure/HorizontalEditPolicy.js ***!\n \\***************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * An EditPolicy for use with Figures. With this edit policy you can move the shape only in a horizontal manner.\n *\n *\n * @example\n * // add some demo figure to the canvas\n * var circle =new draw2d.shape.basic.Circle({diameter:50, x:10, y:30});\n * canvas.add(circle);\n *\n * // add the edit policy to the shape. At this point you can move the shape only\n * // horizontal\n * circle.installEditPolicy(new draw2d.policy.figure.HorizontalEditPolicy());\n *\n *\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.figure.DragDropEditPolicy\n */\n_packages2.default.policy.figure.HorizontalEditPolicy = _packages2.default.policy.figure.DragDropEditPolicy.extend(\n/** @lends draw2d.policy.figure.HorizontalEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.HorizontalEditPolicy\",\n\n /**\n * Creates a new constraint object\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n *\n * It is only possible to drag&drop the element in a horizontal line\n *\n * @param figure\n * @param {Number|draw2d.geo.Point} x\n * @param {number} [y]\n *\n * @returns {draw2d.geo.Point} the constraint position of the figure\n */\n adjustPosition: function adjustPosition(figure, x, y) {\n return new _packages2.default.geo.Point(x, figure.getY());\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/RectangleSelectionFeedbackPolicy.js\":\n/*!***************************************************************!*\\\n !*** ./src/policy/figure/RectangleSelectionFeedbackPolicy.js ***!\n \\***************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A SelectionFeedbackPolicy with resize handles (rectangles) on each side and corner of the shape\n *\n *\n * @example\n *\n * circle =new draw2d.shape.basic.Circle({diameter:50});\n * circle.installEditPolicy(new draw2d.policy.RectangleSelectionFeedbackPolicy());\n * canvas.add(circle,90,50);\n *\n * canvas.add(new draw2d.shape.basic.Label({text:\"Click on the circle to see the selection feedback\"}),20,10);\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.SelectionFeedbackPolicy\n */\n_packages2.default.policy.figure.RectangleSelectionFeedbackPolicy = _packages2.default.policy.figure.SelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.figure.RectangleSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.RectangleSelectionFeedbackPolicy\",\n /**\n * Creates a selection feedback for a shape.\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * @inheritdoc\n */\n onSelect: function onSelect(canvas, figure, isPrimarySelection) {\n if (figure.selectionHandles.isEmpty()) {\n // Add a dotted line rectangle to the figure. Override the show/hide method of the standard\n // figure to avoid adding these element to the hit test of the canvas. In this case the element\n // is just visible but not part of the model or responsible for any drag/drop operation\n // #2C70FF #2096fc\n var box = new _packages2.default.shape.basic.Rectangle({ bgColor: null, dashArray: \"- \", color: \"#2C70FF\", stroke: 0.5 });\n box.hide = function () {\n // IMPORTANT\n // don't add/remove this rectangle to the canvas resizeHandles. This rect isn't responsible for any hitTest or\n // dragDrop operation\n //canvas.resizeHandles.remove(box);\n box.setCanvas(null);\n };\n box.show = function (canvas) {\n box.setCanvas(canvas);\n // IMPORTANT\n // don't add/remove this rectangle to the canvas resizeHandles. This rect isn't responsible for any hitTest or\n // dragDrop operation\n //canvas.resizeHandles.remove(box);\n //canvas.resizeHandles.add(box);\n box.toFront(figure);\n };\n\n // create standard Resize handles for the figure\n //\n var r1 = this.createResizeHandle(figure, 1); // 1 = LEFT TOP\n var r3 = this.createResizeHandle(figure, 3); // 3 = RIGHT_TOP\n var r5 = this.createResizeHandle(figure, 5); // 5 = RIGHT_BOTTOM\n var r7 = this.createResizeHandle(figure, 7); // 7 = LEFT_BOTTOM\n figure.selectionHandles.add(r1, r3, r5, r7);\n r1.show(canvas);\n r3.show(canvas);\n r5.show(canvas);\n r7.show(canvas);\n\n // change the look&feel of the corner resizehandles if the\n // figure isn't resizeable\n //\n if (figure.isResizeable() === false) {\n var attr = { bgColor: null, draggable: false };\n r1.attr(attr);\n r3.attr(attr);\n r5.attr(attr);\n r7.attr(attr);\n r1.setDraggable(false);\n r3.setDraggable(false);\n r5.setDraggable(false);\n r7.setDraggable(false);\n }\n\n // show only the additional resizehandles if the figure is resizeable and didn't care about\n // the aspect ration\n //\n if (!figure.getKeepAspectRatio() && figure.isResizeable()) {\n var r2 = this.createResizeHandle(figure, 2); // 2 = CENTER_TOP\n var r4 = this.createResizeHandle(figure, 4); // 4 = RIGHT_MIDDLE\n var r6 = this.createResizeHandle(figure, 6); // 6 = CENTER_BOTTOM\n var r8 = this.createResizeHandle(figure, 8); // 8 = LEFT_MIDDLE\n figure.selectionHandles.add(r2, r4, r6, r8);\n r2.show(canvas);\n r4.show(canvas);\n r6.show(canvas);\n r8.show(canvas);\n }\n\n // add the reference of the \"ant box\" to the figure as well. But wee add them\n // to the end of the array because inherit classes expect the resizehandles\n // on index 0-7.\n //\n figure.selectionHandles.add(box);\n\n // call the box.show() at last to ensure that the resize handles are above the\n // rectangle. The rectangle did a toFront(parentShape);\n box.show(canvas);\n }\n this.moved(canvas, figure);\n },\n\n /**\n * \n * Callback if the figure has been moved. In this case we must update the position of the\n * resize handles and the \"ant\" box.\n *\n * @param figure\n *\n * @template\n */\n moved: function moved(canvas, figure) {\n\n if (figure.selectionHandles.isEmpty()) {\n return; // silently\n }\n\n var margin = 3 * canvas.getZoom();\n var objHeight = figure.getHeight();\n var objWidth = figure.getWidth();\n var xPos = figure.getAbsoluteX();\n var yPos = figure.getAbsoluteY();\n\n var r1 = figure.selectionHandles.find(function (handle) {\n return handle.type === 1;\n });\n var r3 = figure.selectionHandles.find(function (handle) {\n return handle.type === 3;\n });\n var r5 = figure.selectionHandles.find(function (handle) {\n return handle.type === 5;\n });\n var r7 = figure.selectionHandles.find(function (handle) {\n return handle.type === 7;\n });\n\n r1.setPosition(xPos - r1.getWidth(), yPos - r1.getHeight());\n r3.setPosition(xPos + objWidth, yPos - r3.getHeight());\n r5.setPosition(xPos + objWidth, yPos + objHeight);\n r7.setPosition(xPos - r7.getWidth(), yPos + objHeight);\n\n if (!figure.getKeepAspectRatio() && figure.isResizeable()) {\n var r2 = figure.selectionHandles.find(function (handle) {\n return handle.type === 2;\n });\n var r4 = figure.selectionHandles.find(function (handle) {\n return handle.type === 4;\n });\n var r6 = figure.selectionHandles.find(function (handle) {\n return handle.type === 6;\n });\n var r8 = figure.selectionHandles.find(function (handle) {\n return handle.type === 8;\n });\n\n r2.setPosition(xPos + objWidth / 2 - r2.getWidth() / 2, yPos - r2.getHeight());\n r4.setPosition(xPos + objWidth, yPos + objHeight / 2 - r4.getHeight() / 2);\n r6.setPosition(xPos + objWidth / 2 - r6.getWidth() / 2, yPos + objHeight);\n r8.setPosition(xPos - r8.getWidth(), yPos + objHeight / 2 - r8.getHeight() / 2);\n }\n var box = figure.selectionHandles.last();\n box.attr({\n x: xPos - margin,\n y: yPos - margin,\n width: objWidth + margin * 2,\n height: objHeight + margin * 2,\n stroke: canvas.getZoom()\n });\n\n box.setRotationAngle(figure.getRotationAngle());\n },\n\n createResizeHandle: function createResizeHandle(owner, type) {\n return new _packages2.default.ResizeHandle({ owner: owner, type: type, width: 10, height: 10 });\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/RegionEditPolicy.js\":\n/*!***********************************************!*\\\n !*** ./src/policy/figure/RegionEditPolicy.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * An EditPolicy for use with Figures. The constraint for RegionEditPolicy is a Rectangle. It is\n * not possible to move the related figure outside this constrained area.\n *\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.figure.DragDropEditPolicy\n */\n_packages2.default.policy.figure.RegionEditPolicy = _packages2.default.policy.figure.DragDropEditPolicy.extend(\n/** @lends draw2d.policy.figure.RegionEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.RegionEditPolicy\",\n\n /**\n * Creates a new constraint object\n *\n * @param {Number|draw2d.geo.Rectangle} x x coordinate or a rectangle as constraint for the assigned figure.\n * @param {Number} y\n * @param {Number} w\n * @param {Number} h\n */\n init: function init(x, y, w, h) {\n this._super();\n if (x instanceof _packages2.default.geo.Rectangle) {\n this.constRect = x;\n } else if (typeof h === \"number\") {\n this.constRect = new _packages2.default.geo.Rectangle(x, y, w, h);\n } else {\n throw \"Invalid parameter. RegionEditPolicy need a rectangle as parameter in the constructor\";\n }\n },\n\n /**\n *\n * Update the constraint bounding box for the policy.\n *\n * @param {draw2d.geo.Rectangle} boundingBox the constraint rectangle\n * @since 4.8.2\n * @returns {this}\n */\n setBoundingBox: function setBoundingBox(boundingBox) {\n this.constRect = boundingBox;\n\n return this;\n },\n\n /**\n *\n * Returns the constraint bounding box for the policy.\n *\n * @returns {draw2d.geo.Rectangle}\n */\n getBoundingBox: function getBoundingBox() {\n return this.constRect;\n },\n\n /**\n *\n * Adjust the coordinates to the rectangle/region of this constraint.\n *\n * @param {draw2d.Figure} figure\n * @param {Number|draw2d.geo.Point} x\n * @param {Number} [y]\n *\n * @returns {draw2d.geo.Point} the constraint position of the figure\n */\n adjustPosition: function adjustPosition(figure, x, y) {\n var r = null;\n if (x instanceof _packages2.default.geo.Point) {\n r = new _packages2.default.geo.Rectangle(x.x, x.y, figure.getWidth(), figure.getHeight());\n } else {\n r = new _packages2.default.geo.Rectangle(x, y, figure.getWidth(), figure.getHeight());\n }\n r = this.constRect.moveInside(r);\n return r.getTopLeft();\n },\n\n /**\n *\n * Adjust the dimension of the rectangle to fit into the region of the policy\n *\n * @param {draw2d.Figure} figure\n * @param {Number} w\n * @param {Number} h\n * @returns {draw2d.geo.Rectangle} the constraint position of the figure\n */\n adjustDimension: function adjustDimension(figure, w, h) {\n var diffW = figure.getAbsoluteX() + w - this.constRect.getRight();\n var diffH = figure.getAbsoluteY() + h - this.constRect.getBottom();\n\n if (diffW > 0) {\n w = w - diffW;\n }\n if (diffH > 0) {\n h = h - diffH;\n }\n\n return new _packages2.default.geo.Rectangle(0, 0, w, h);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/ResizeSelectionFeedbackPolicy.js\":\n/*!************************************************************!*\\\n !*** ./src/policy/figure/ResizeSelectionFeedbackPolicy.js ***!\n \\************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Selection feedback policy without \"marching ant lines\" or any other rectangle highlight. Just\n * some resize handles at each corner of the shape.\n *\n *\n * @example\n * circle =new draw2d.shape.basic.Circle();\n * circle.installEditPolicy(new draw2d.policy.ResizeSelectionFeedbackPolicy());\n * canvas.add(circle,90,50);\n *\n * canvas.add(new draw2d.shape.basic.Label({text:\"Click on the circle to see the selection feedback\"}),20,10);\n *\n * @author Andreas Herz\n * @since 4.0.0\n * @extends draw2d.policy.figure.SelectionFeedbackPolicy\n *\n */\n_packages2.default.policy.figure.ResizeSelectionFeedbackPolicy = _packages2.default.policy.figure.SelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.figure.ResizeSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.ResizeSelectionFeedbackPolicy\",\n /**\n * Creates a new Router object\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n *\n * Called by the framework of the Policy should show a resize handle for the given shape\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {draw2d.Figure} figure the selected figure\n * @param {Boolean} [isPrimarySelection]\n */\n onSelect: function onSelect(canvas, figure, isPrimarySelection) {\n\n if (figure.selectionHandles.isEmpty()) {\n // create standard Resize handles for the figure\n //\n var r1 = _packages2.default.Configuration.factory.createResizeHandle(figure, 1); // 1 = LEFT TOP\n var r3 = _packages2.default.Configuration.factory.createResizeHandle(figure, 3); // 3 = RIGHT_TOP\n var r5 = _packages2.default.Configuration.factory.createResizeHandle(figure, 5); // 5 = RIGHT_BOTTOM\n var r7 = _packages2.default.Configuration.factory.createResizeHandle(figure, 7); // 7 = LEFT_BOTTOM\n figure.selectionHandles.add(r1, r3, r5, r7);\n r1.show(canvas);\n r3.show(canvas);\n r5.show(canvas);\n r7.show(canvas);\n\n // The corner ResizeHandles are only draggable fi the figure is\n // resizeable. But the Resize handles are visible\n //\n\n // change the look&feel of the corner resizehandles if the\n // figure isn't resizeable\n //\n if (figure.isResizeable() === false) {\n r1.setBackgroundColor(null);\n r3.setBackgroundColor(null);\n r5.setBackgroundColor(null);\n r7.setBackgroundColor(null);\n r1.setDraggable(false);\n r3.setDraggable(false);\n r5.setDraggable(false);\n r7.setDraggable(false);\n }\n\n // show only the additional resizehandles if the figure is resizeable\n //\n if (!figure.getKeepAspectRatio() && figure.isResizeable()) {\n var r2 = _packages2.default.Configuration.factory.createResizeHandle(figure, 2); // 2 = CENTER_TOP\n var r4 = _packages2.default.Configuration.factory.createResizeHandle(figure, 4); // 4 = RIGHT_MIDDLE\n var r6 = _packages2.default.Configuration.factory.createResizeHandle(figure, 6); // 6 = CENTER_BOTTOM\n var r8 = _packages2.default.Configuration.factory.createResizeHandle(figure, 8); // 8 = LEFT_MIDDLE\n figure.selectionHandles.add(r2, r4, r6, r8);\n r2.show(canvas);\n r4.show(canvas);\n r6.show(canvas);\n r8.show(canvas);\n }\n }\n this.moved(canvas, figure);\n },\n\n /**\n *\n * Callback if the figure has been moved. In this case we must update the position of the\n * resize handles.\n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {draw2d.Figure} figure the moved figure\n *\n */\n moved: function moved(canvas, figure) {\n if (figure.selectionHandles.isEmpty()) {\n return; // silently\n }\n\n var objHeight = figure.getHeight();\n var objWidth = figure.getWidth();\n var xPos = figure.getX();\n var yPos = figure.getY();\n\n var r1 = figure.selectionHandles.find(function (handle) {\n return handle.type === 1;\n });\n var r3 = figure.selectionHandles.find(function (handle) {\n return handle.type === 3;\n });\n var r5 = figure.selectionHandles.find(function (handle) {\n return handle.type === 5;\n });\n var r7 = figure.selectionHandles.find(function (handle) {\n return handle.type === 7;\n });\n r1.setPosition(xPos - r1.getWidth(), yPos - r1.getHeight());\n r3.setPosition(xPos + objWidth, yPos - r3.getHeight());\n r5.setPosition(xPos + objWidth, yPos + objHeight);\n r7.setPosition(xPos - r7.getWidth(), yPos + objHeight);\n\n if (!figure.getKeepAspectRatio()) {\n var r2 = figure.selectionHandles.find(function (handle) {\n return handle.type === 2;\n });\n var r4 = figure.selectionHandles.find(function (handle) {\n return handle.type === 4;\n });\n var r6 = figure.selectionHandles.find(function (handle) {\n return handle.type === 6;\n });\n var r8 = figure.selectionHandles.find(function (handle) {\n return handle.type === 8;\n });\n\n r2.setPosition(xPos + objWidth / 2 - r2.getWidth() / 2, yPos - r2.getHeight());\n r4.setPosition(xPos + objWidth, yPos + objHeight / 2 - r4.getHeight() / 2);\n r6.setPosition(xPos + objWidth / 2 - r6.getWidth() / 2, yPos + objHeight);\n r8.setPosition(xPos - r8.getWidth(), yPos + objHeight / 2 - r8.getHeight() / 2);\n }\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/RoundRectangleSelectionFeedbackPolicy.js\":\n/*!********************************************************************!*\\\n !*** ./src/policy/figure/RoundRectangleSelectionFeedbackPolicy.js ***!\n \\********************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @example\n * circle =new draw2d.shape.basic.Circle();\n * circle.installEditPolicy(new draw2d.policy.RoundRectangleSelectionFeedbackPolicy());\n * canvas.add(circle,90,50);\n *\n * canvas.add(new draw2d.shape.basic.Label({text:\"Click on the circle to see the selection feedback\"}),20,10);\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.RectangleSelectionFeedbackPolicy\n */\n_packages2.default.policy.figure.RoundRectangleSelectionFeedbackPolicy = _packages2.default.policy.figure.RectangleSelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.figure.RoundRectangleSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.RoundRectangleSelectionFeedbackPolicy\",\n\n /**\n * Creates a new Router object\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n createResizeHandle: function createResizeHandle(owner, type) {\n return new _packages2.default.ResizeHandle({ owner: owner, type: type, width: 12, height: 12, radius: 4 });\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/SelectionFeedbackPolicy.js\":\n/*!******************************************************!*\\\n !*** ./src/policy/figure/SelectionFeedbackPolicy.js ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A {@link draw2d.policy.SelectionFeedbackPolicy} that is sensitive to the canvas selection. Subclasses will typically\n * decorate the {@link draw2d.Figure figure} with things like selection handles and/or focus feedback.\n * <br>\n * If you want to change the handle visibility for a figure, then you should use SelectionFeedbackPolicy to do that.\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.DragDropEditPolicy\n */\n_packages2.default.policy.figure.SelectionFeedbackPolicy = _packages2.default.policy.figure.SelectionPolicy.extend(\n/** @lends draw2d.policy.figure.SelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.SelectionFeedbackPolicy\",\n\n /**\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * \n *\n * @param {draw2d.Figure} figure the unselected figure\n */\n onUnselect: function onUnselect(canvas, figure) {\n this._super(canvas, figure);\n\n figure.selectionHandles.each(function (i, e) {\n return e.hide();\n });\n figure.selectionHandles = new _packages2.default.util.ArrayList();\n },\n\n /**\n * \n * Called by the host if the policy has been installed.\n *\n * @param {draw2d.Figure} figure\n */\n onInstall: function onInstall(figure) {\n this._super(figure);\n\n var canvas = figure.getCanvas();\n if (canvas !== null) {\n if (canvas.getSelection().contains(figure)) {\n this.onSelect(canvas, figure, true);\n }\n }\n },\n\n /**\n * \n * Called by the host if the policy has been uninstalled.\n *\n * @param {draw2d.Figure} figure\n */\n onUninstall: function onUninstall(figure) {\n this._super(figure);\n\n figure.selectionHandles.each(function (i, e) {\n return e.hide();\n });\n figure.selectionHandles = new _packages2.default.util.ArrayList();\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/SelectionPolicy.js\":\n/*!**********************************************!*\\\n !*** ./src/policy/figure/SelectionPolicy.js ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A {@link draw2d.policy.SelectionFeedbackPolicy} that is sensitive to the canvas selection. Subclasses will typically\n * decorate the {@link draw2d.Figure figure} with things like selection handles and/or focus feedback.\n * <br>\n * If you want to change the handle visibility for a figure, then you should use SelectionFeedbackPolicy to do that.\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.DragDropEditPolicy\n */\n_packages2.default.policy.figure.SelectionPolicy = _packages2.default.policy.figure.DragDropEditPolicy.extend(\n/** @lends draw2d.policy.figure.SelectionPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.SelectionPolicy\",\n\n /**\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n *\n *\n * @template\n * @param figure\n * @param isPrimarySelection\n */\n onSelect: function onSelect(canvas, figure, isPrimarySelection) {},\n\n /**\n *\n *\n * @param {draw2d.Figure} figure the unselected figure\n */\n onUnselect: function onUnselect(canvas, figure) {}\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/SlimSelectionFeedbackPolicy.js\":\n/*!**********************************************************!*\\\n !*** ./src/policy/figure/SlimSelectionFeedbackPolicy.js ***!\n \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Add only very small resize handles to the figure.\n *\n *\n *\n * @example\n * circle =new draw2d.shape.basic.Circle();\n * circle.installEditPolicy(new draw2d.policy.SlimSelectionFeedbackPolicy());\n * canvas.add(circle,90,50);\n *\n * canvas.add(new draw2d.shape.basic.Label({text:\"Click on the circle to see the selection feedback\"}),20,10);\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.RectangleSelectionFeedbackPolicy\n */\n_packages2.default.policy.figure.SlimSelectionFeedbackPolicy = _packages2.default.policy.figure.RectangleSelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.figure.SlimSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.SlimSelectionFeedbackPolicy\",\n\n /**\n * Creates a new Router object\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n createResizeHandle: function createResizeHandle(owner, type) {\n return new _packages2.default.ResizeHandle({ owner: owner, type: type, width: 6, height: 6, radius: 0 });\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/VBusSelectionFeedbackPolicy.js\":\n/*!**********************************************************!*\\\n !*** ./src/policy/figure/VBusSelectionFeedbackPolicy.js ***!\n \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.policy.figure.VBusSelectionFeedbackPolicy = _packages2.default.policy.figure.BusSelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.figure.VBusSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.VBusSelectionFeedbackPolicy\",\n /**\n * Creates a new Router object\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n *\n * Callback if the figure has been moved\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Figure} figure The related figure\n *\n **/\n moved: function moved(canvas, figure) {\n if (figure.selectionHandles.isEmpty()) {\n return; // silently\n }\n\n var r2 = figure.selectionHandles.find(function (handle) {\n return handle.type === 2;\n });\n var r6 = figure.selectionHandles.find(function (handle) {\n return handle.type === 6;\n });\n\n var objWidth = figure.getWidth();\n // adjust the resize handles on the left/right to the new dimension of the shape\n //\n r2.setDimension(objWidth, r2.getHeight());\n r6.setDimension(objWidth, r6.getHeight());\n\n this._super(canvas, figure);\n }\n\n});\n/**\n * @class\n *\n * Selection feedback policy for vertical bus figures.\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.BusSelectionFeedbackPolicy\n */\n\n/***/ }),\n\n/***/ \"./src/policy/figure/VertexSelectionFeedbackPolicy.js\":\n/*!************************************************************!*\\\n !*** ./src/policy/figure/VertexSelectionFeedbackPolicy.js ***!\n \\************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Called by the framework if the user edit the position of a figure with a drag drop operation.\n * Sub class like SelectionEditPolicy or RegionEditPolicy cam adjust th e position of the figure or the selections handles.\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.SelectionFeedbackPolicy\n */\n_packages2.default.policy.figure.VertexSelectionFeedbackPolicy = _packages2.default.policy.figure.SelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.figure.VertexSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.VertexSelectionFeedbackPolicy\",\n\n /**\n * Creates a new Router object\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n *\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Connection} connection the selected figure\n * @param {Boolean} isPrimarySelection\n */\n onSelect: function onSelect(canvas, connection, isPrimarySelection) {\n // \tthis._super(canvas, connection, isPrimarySelection);\n\n var points = connection.getVertices();\n for (var i = 0; i < points.getSize(); i++) {\n var handle = new _packages2.default.shape.basic.VertexResizeHandle(connection, i);\n connection.selectionHandles.add(handle);\n handle.setDraggable(connection.isResizeable());\n handle.show(canvas);\n\n if (i !== 0) {\n var _handle = new _packages2.default.shape.basic.GhostVertexResizeHandle(connection, i - 1);\n connection.selectionHandles.add(_handle);\n _handle.setDraggable(connection.isResizeable());\n _handle.show(canvas);\n }\n }\n\n this.moved(canvas, connection);\n },\n\n /**\n *\n * Callback method if the figure has been moved.\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Figure} figure The related figure\n */\n moved: function moved(canvas, figure) {\n figure.selectionHandles.each(function (i, e) {\n return e.relocate();\n });\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/figure/VerticalEditPolicy.js\":\n/*!*************************************************!*\\\n !*** ./src/policy/figure/VerticalEditPolicy.js ***!\n \\*************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.policy.figure.VerticalEditPolicy = _packages2.default.policy.figure.DragDropEditPolicy.extend(\n/** @lends draw2d.policy.figure.VerticalEditPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.VerticalEditPolicy\",\n\n /**\n * Creates a new constraint object\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n *\n * It is only possible to drag&drop the element in a vertical line\n *\n * @param {draw2d.Figure} figure\n * @param {Number|draw2d.geo.Point} x\n * @param {number} [y]\n * @returns {draw2d.geo.Point} the constraint position of the figure\n */\n adjustPosition: function adjustPosition(figure, x, y) {\n return new _packages2.default.geo.Point(figure.getX(), y);\n }\n\n});\n/**\n * @class\n *\n * An EditPolicy for use with Figures. With this edit policy you can move the shape only in a vertical manner.\n *\n *\n * @example\n * // add some demo figure to the canvas\n * var circle =new draw2d.shape.basic.Circle({diameter:50, x:10, y:30});\n * canvas.add(circle);\n *\n * // add the edit policy to the shape. At this point you can move the shape only\n * // horizontal\n * circle.installEditPolicy(new draw2d.policy.figure.VerticalEditPolicy());\n *\n *\n * @author Andreas Herz\n *\n * @extends draw2d.policy.figure.DragDropEditPolicy\n */\n\n/***/ }),\n\n/***/ \"./src/policy/figure/WidthSelectionFeedbackPolicy.js\":\n/*!***********************************************************!*\\\n !*** ./src/policy/figure/WidthSelectionFeedbackPolicy.js ***!\n \\***********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * This selection shows only selection handles for the width. It is only possible to change the width\n * of an shaped. The height stays always the same or is recalculated by the figure itself.\n *\n * @example\n * // add some demo figure to the canvas\n * //\n * let shape =new draw2d.shape.basic.Rectangle({width:50, height:100, x:10, y:30});\n * canvas.add(shape);\n *\n * // At this point you can only change the width of the shape\n * //\n * shape.installEditPolicy(new draw2d.policy.figure.WidthSelectionFeedbackPolicy());\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.SelectionFeedbackPolicy\n */\n_packages2.default.policy.figure.WidthSelectionFeedbackPolicy = _packages2.default.policy.figure.SelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.figure.BusSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.figure.BusSelectionFeedbackPolicy\",\n\n /**\n * Creates a new Router object\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n *\n * Called by the framework of the Policy should show a resize handle for the given shape\n *\n * @param {draw2d.Canvas} canvas the host of the diagram\n * @param {draw2d.Figure} figure the figure to select\n * @param {Boolean} isPrimarySelection\n */\n onSelect: function onSelect(canvas, figure, isPrimarySelection) {\n if (figure.selectionHandles.isEmpty()) {\n var r4 = new _packages2.default.ResizeHandle({ owner: figure, type: 4 }); // 4 = RIGHT_MIDDLE\n var r8 = new _packages2.default.ResizeHandle({ owner: figure, type: 8 }); // 8 = LEFT_MIDDLE\n\n r4.installEditPolicy(new _packages2.default.policy.figure.HorizontalEditPolicy());\n r8.installEditPolicy(new _packages2.default.policy.figure.HorizontalEditPolicy());\n figure.selectionHandles.add(r4, r8);\n\n r4.setDraggable(figure.isResizeable());\n r8.setDraggable(figure.isResizeable());\n\n r4.show(canvas);\n r8.show(canvas);\n }\n this.moved(canvas, figure);\n },\n\n /**\n *\n * Callback if the figure has been moved\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Figure} figure The related figure\n *\n * @template\n */\n moved: function moved(canvas, figure) {\n if (figure.selectionHandles.isEmpty()) {\n return; // silently\n }\n var r4 = figure.selectionHandles.find(function (handle) {\n return handle.type === 4;\n });\n var r8 = figure.selectionHandles.find(function (handle) {\n return handle.type === 8;\n });\n\n var objWidth = figure.getWidth();\n\n var xPos = figure.getX();\n var yPos = figure.getY();\n r4.setDimension(r4.getWidth(), figure.getHeight());\n r8.setDimension(r8.getWidth(), figure.getHeight());\n r4.setPosition(xPos + objWidth, yPos);\n r8.setPosition(xPos - r8.getWidth(), yPos);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/line/LineSelectionFeedbackPolicy.js\":\n/*!********************************************************!*\\\n !*** ./src/policy/line/LineSelectionFeedbackPolicy.js ***!\n \\********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.SelectionFeedbackPolicy\n */\n_packages2.default.policy.line.LineSelectionFeedbackPolicy = _packages2.default.policy.figure.SelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.line.LineSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.line.LineSelectionFeedbackPolicy\",\n\n /**\n * Creates a new selection feedback policy for a line or connection\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * \n * Called by the framework of the Policy should show a resize handle for the given shape\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Figure} figure The related figure\n * @param {Boolean} [isPrimarySelection]\n */\n onSelect: function onSelect(canvas, figure, isPrimarySelection) {\n if (figure.selectionHandles.isEmpty()) {\n figure.selectionHandles.add(new _packages2.default.shape.basic.LineStartResizeHandle(figure));\n figure.selectionHandles.add(new _packages2.default.shape.basic.LineEndResizeHandle(figure));\n\n figure.selectionHandles.each(function (i, e) {\n e.setDraggable(figure.isResizeable());\n e.show(canvas);\n });\n }\n this.moved(canvas, figure);\n },\n\n /**\n * \n * Callback method if the figure has been moved.\n *\n * @template\n */\n moved: function moved(canvas, figure) {\n figure.selectionHandles.each(function (i, e) {\n return e.relocate();\n });\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/line/OrthogonalSelectionFeedbackPolicy.js\":\n/*!**************************************************************!*\\\n !*** ./src/policy/line/OrthogonalSelectionFeedbackPolicy.js ***!\n \\**************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _jquery = __webpack_require__(/*! lib/jquery.contextmenu */ \"./src/lib/jquery.contextmenu.js\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nvar _contextmenu = __webpack_require__(/*! css/contextmenu.css */ \"./src/css/contextmenu.css\");\n\nvar _contextmenu2 = _interopRequireDefault(_contextmenu);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Feedback and edit policy for the InteractiveManhattanRouter.\n *\n * @author Andreas Herz\n * @extends draw2d.policy.line.LineSelectionFeedbackPolicy\n */\n// do not delete them\n_packages2.default.policy.line.OrthogonalSelectionFeedbackPolicy = _packages2.default.policy.line.LineSelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.line.OrthogonalSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.line.OrthogonalSelectionFeedbackPolicy\",\n\n /**\n * Creates a new Router object\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n // The ResizeHandle for the Policy. This is inline to avoid that a user want to use them without\n // the right installed policy.\n //\n this.ResizeHandle = _packages2.default.ResizeHandle.extend(\n /** @lends draw2d.policy.line.OrthogonalSelectionFeedbackPolicy.ResizeHandle.prototype */\n {\n\n NAME: \"draw2d.policy.line.OrthogonalSelectionFeedbackPolicy.ResizeHandle\",\n\n init: function init(owner, index) {\n this._super({ owner: owner });\n this.index = index;\n },\n\n /**\n * \n * Called if a drag&drop operation starts.<br>\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @private\n **/\n onDragStart: function onDragStart(x, y, shiftKey, ctrlKey) {\n this._super(x, y, shiftKey, ctrlKey);\n this.command = this.getCanvas().getPrimarySelection().createCommand(new _packages2.default.command.CommandType(_packages2.default.command.CommandType.MOVE_VERTICES));\n\n // Vertex is a reference and not a copy of the point\n this.vertex = this.owner.getVertex(this.index).clone();\n },\n\n /**\n * \n * Called from the framework during a drag&drop operation of the ResizeHandles\n *\n * @param {Number} dx the x difference between the start of the drag drop operation and now\n * @param {Number} dy the y difference between the start of the drag drop operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n *\n * @returns {Boolean}\n **/\n onDrag: function onDrag(dx, dy, dx2, dy2) {\n if (this.command == null) {\n return false;\n }\n\n var MINDIST = this.owner.getRouter().MINDIST || 10;\n\n var fromDir = this.owner.getSource().getConnectionDirection(this.owner.getTarget());\n var toDir = this.owner.getTarget().getConnectionDirection(this.owner.getSource());\n\n this.vertex.translate(dx2, dy2);\n\n var vertices = this.owner.getVertices();\n var count = vertices.getSize();\n //shortcut for math operations\n var max = Math.max;\n var min = Math.min;\n\n // Keep in mind: \"p1\" is always the dragged handle in the coding below\n // marked with an '*' in the diagram\n //\n\n // FIRST handle of the connection\n //\n if (this.index === 1) {\n var p0 = vertices.get(this.index - 1); // first vertex of the connection\n var p1 = vertices.get(this.index); // dragged vertex\n var p2 = vertices.get(this.index + 1); // additional neighbor\n\n // vertex alignment to handle:\n //\n // p0 +-----* p1 p1 *------+ p0\n // | |\n // | |\n // + p2 p2 +\n if (p1.x === p2.x && p0.y === p1.y) {\n switch (fromDir) {\n case _packages2.default.geo.Rectangle.DIRECTION_RIGHT:\n // p0 is on the left of p1\n //\n this.owner.setVertex(1, max(p0.x + MINDIST, this.vertex.x), p1.y); // p1\n this.owner.setVertex(2, max(p0.x + MINDIST, this.vertex.x), p2.y); // p2\n break;\n // p0 is on the right of p2\n //\n case _packages2.default.geo.Rectangle.DIRECTION_LEFT:\n this.owner.setVertex(1, min(p0.x - MINDIST, this.vertex.x), p1.y); // p1\n this.owner.setVertex(2, min(p0.x - MINDIST, this.vertex.x), p2.y); // p2\n break;\n }\n }\n\n // vertices alignment to handle:\n //\n // p0 + p1 *--------+ p2\n // | |\n // | |\n // p1 *-----+ p2 p0 +\n else {\n switch (fromDir) {\n case _packages2.default.geo.Rectangle.DIRECTION_UP:\n // p0 is below of p1\n //\n this.owner.setVertex(1, p1.x, min(p0.y - MINDIST, this.vertex.y)); // p1\n this.owner.setVertex(2, p2.x, min(p0.y - MINDIST, this.vertex.y)); // p2\n break;\n // p0 is above of p2\n //\n case _packages2.default.geo.Rectangle.DIRECTION_DOWN:\n this.owner.setVertex(1, p1.x, max(p0.y + MINDIST, this.vertex.y)); // p1\n this.owner.setVertex(2, p2.x, max(p0.y + MINDIST, this.vertex.y)); // p2\n break;\n }\n }\n }\n\n // LAST handle: Only the left hand side sibling can be changed\n //\n else if (this.index === count - 2) {\n var _p = vertices.get(this.index - 1); // neighbor of the dragged vertex\n var _p2 = vertices.get(this.index); // dragged vertex\n var _p3 = vertices.get(this.index + 1); // last vertex of the connection\n\n // vertices with this alignment.\n //\n // p2 +-----* p1 + p0\n // | |\n // | |\n // + p0 p2 +--------* p1\n if (_p3.x === _p2.x && _p.y === _p2.y) {\n switch (toDir) {\n // p0 is below of p1\n case _packages2.default.geo.Rectangle.DIRECTION_UP:\n this.owner.setVertex(count - 2, _p2.x, min(_p3.y - MINDIST, this.vertex.y)); // p1\n this.owner.setVertex(count - 3, _p.x, min(_p3.y - MINDIST, this.vertex.y)); // p2\n break;\n // p0 is above p2\n case _packages2.default.geo.Rectangle.DIRECTION_DOWN:\n this.owner.setVertex(count - 2, _p2.x, max(_p3.y + MINDIST, this.vertex.y)); // p1\n this.owner.setVertex(count - 3, _p.x, max(_p3.y + MINDIST, this.vertex.y)); // p2\n break;\n }\n }\n\n // vertices with this alignment.\n //\n // p2 + p0 +--------* p1\n // | |\n // | |\n // p1 *-----+ p0 p2 +\n else {\n switch (toDir) {\n case _packages2.default.geo.Rectangle.DIRECTION_RIGHT:\n // p0 is on the left of p1\n //\n this.owner.setVertex(count - 2, max(_p3.x + MINDIST, this.vertex.x), _p2.y); // p1\n this.owner.setVertex(count - 3, max(_p3.x + MINDIST, this.vertex.x), _p.y); // p2\n break;\n // p0 is on the right of p2\n //\n case _packages2.default.geo.Rectangle.DIRECTION_LEFT:\n this.owner.setVertex(count - 2, min(_p3.x - MINDIST, this.vertex.x), _p2.y); // p1\n this.owner.setVertex(count - 3, min(_p3.x - MINDIST, this.vertex.x), _p.y); // p2\n break;\n }\n }\n }\n // The resize handle is in the middle of the connection.\n // -> In this case the connection MUST HAVE at least 5 vertices\n //\n else {\n var p_m1 = vertices.get(this.index - 2);\n var _p4 = vertices.get(this.index - 1);\n var _p5 = vertices.get(this.index); // selected DragHandle\n var _p6 = vertices.get(this.index + 1);\n var p3 = vertices.get(this.index + 2);\n\n // vertices alignment to handle\n //\n // . .\n // . .\n // p1 *------->+ p0 p0 +<---------* p1\n // | . . |\n // | . . |\n // p2 | | p2\n // ...+... ......+.....\n //\n if (_p5.x === _p6.x && _p5.y === _p4.y) {\n // Exception handling if the dragged handle (p1) is near by the start of the connection\n // p_m1 is the start of the connection\n // p0 must be the immediate neighbor of p_m1\n //\n if (this.index - 2 === 0) {\n switch (fromDir) {\n case _packages2.default.geo.Rectangle.DIRECTION_RIGHT:\n this.owner.setVertex(this.index - 1, _p4.x, max(this.vertex.y, p_m1.y - MINDIST)); // p0\n this.owner.setVertex(this.index, this.vertex.x, max(this.vertex.y, p_m1.y - MINDIST)); // p1\n this.owner.setVertex(this.index + 1, this.vertex.x, _p6.y); // p2\n break;\n case _packages2.default.geo.Rectangle.DIRECTION_LEFT:\n this.owner.setVertex(this.index - 1, _p4.x, min(this.vertex.y, p_m1.y + MINDIST)); // p0\n this.owner.setVertex(this.index, this.vertex.x, this.vertex.y); // p1\n this.owner.setVertex(this.index + 1, this.vertex.x, _p6.y); // p2\n break;\n case _packages2.default.geo.Rectangle.DIRECTION_UP:\n this.owner.setVertex(this.index - 1, _p4.x, min(this.vertex.y, p_m1.y - MINDIST)); // p0\n this.owner.setVertex(this.index, this.vertex.x, min(this.vertex.y, p_m1.y - MINDIST)); // p1\n this.owner.setVertex(this.index + 1, this.vertex.x, _p6.y); // p2\n break;\n case _packages2.default.geo.Rectangle.DIRECTION_DOWN:\n this.owner.setVertex(this.index - 1, _p4.x, max(this.vertex.y, p_m1.y + MINDIST)); // p0\n this.owner.setVertex(this.index, this.vertex.x, max(this.vertex.y, p_m1.y + MINDIST)); // p1\n this.owner.setVertex(this.index + 1, this.vertex.x, _p6.y); // p2\n break;\n }\n }\n // Exception handling if the dragged handle (p1L) near by the end of the connection\n // p3 is the end of the connection\n //\n else if (this.index - count + 3 === 0) {\n switch (toDir) {\n case _packages2.default.geo.Rectangle.DIRECTION_RIGHT:\n this.owner.setVertex(this.index - 1, _p4.x, this.vertex.y); // p0\n this.owner.setVertex(this.index, max(this.vertex.x, p3.x + MINDIST), this.vertex.y); // p1\n this.owner.setVertex(this.index + 1, max(this.vertex.x, p3.x + MINDIST), _p6.y); // p2\n break;\n case _packages2.default.geo.Rectangle.DIRECTION_LEFT:\n this.owner.setVertex(this.index - 1, _p4.x, this.vertex.y); // p0\n this.owner.setVertex(this.index, min(this.vertex.x, p3.x - MINDIST), this.vertex.y); // p1\n this.owner.setVertex(this.index + 1, min(this.vertex.x, p3.x - MINDIST), _p6.y); // p2\n break;\n }\n } else {\n this.owner.setVertex(this.index - 1, _p4.x, this.vertex.y); // p0\n this.owner.setVertex(this.index, this.vertex); // p1\n this.owner.setVertex(this.index + 1, this.vertex.x, _p6.y); // p2\n }\n }\n // vertices alignment to handle\n //\n // ...+... ...+...\n // p0 | . | p0\n // | . . |\n // | . . |\n // p1 *----------+ p2 p2 +---------* p1\n // . .\n // . .\n else if (_p4.x === _p5.x && _p5.y === _p6.y) {\n // p_m1 is the start of the analyzed segment\n // p0 must be the immediate neighbor of p_m1\n //\n if (this.index - 2 === 0) {\n switch (fromDir) {\n case _packages2.default.geo.Rectangle.DIRECTION_RIGHT:\n this.owner.setVertex(this.index - 1, max(this.vertex.x, p_m1.x + MINDIST), _p4.y); // p0\n this.owner.setVertex(this.index, max(this.vertex.x, p_m1.x + MINDIST), this.vertex.y); // p1\n this.owner.setVertex(this.index + 1, _p6.x, this.vertex.y); // p2\n break;\n case _packages2.default.geo.Rectangle.DIRECTION_LEFT:\n this.owner.setVertex(this.index - 1, min(this.vertex.x, p_m1.x - MINDIST), _p4.y); // p0\n this.owner.setVertex(this.index, min(this.vertex.x, p_m1.x - MINDIST), this.vertex.y); // p1\n this.owner.setVertex(this.index + 1, _p6.x, this.vertex.y); // p2\n break;\n }\n }\n // p3 is the end point\n //\n else if (this.index - count + 3 === 0) {\n switch (toDir) {\n case _packages2.default.geo.Rectangle.DIRECTION_UP:\n this.owner.setVertex(this.index - 1, this.vertex.x, max(this.vertex.y, _p4.y)); // p0\n this.owner.setVertex(this.index, this.vertex.x, min(this.vertex.y, p3.y - MINDIST)); // p1\n this.owner.setVertex(this.index + 1, _p6.x, min(this.vertex.y, p3.y - MINDIST)); // p2\n break;\n case _packages2.default.geo.Rectangle.DIRECTION_DOWN:\n this.owner.setVertex(this.index - 1, this.vertex.x, _p4.y); // p0\n this.owner.setVertex(this.index, this.vertex.x, max(this.vertex.y, p3.y + MINDIST)); // p1\n this.owner.setVertex(this.index + 1, _p6.x, max(this.vertex.y, p3.y + MINDIST)); // p2\n break;\n }\n }\n // just any element in the middle of the connection\n //\n else {\n this.owner.setVertex(this.index - 1, this.vertex.x, _p4.y); // p0\n this.owner.setVertex(this.index, this.vertex); // p1\n this.owner.setVertex(this.index + 1, _p6.x, this.vertex.y); // p2\n }\n }\n }\n\n this.relocate();\n\n // update the command for the undo/redo stuff\n //\n if (this.command !== null) {\n this.command.updateVertices(this.owner.getVertices().clone());\n }\n\n // note that the user has changed the routing manually.\n // This skips the automatic routing.\n this.owner._routingMetaData.routedByUserInteraction = true;\n return true;\n },\n\n /**\n * Called after a drag and drop action.<br>\n * Sub classes can override this method to implement additional stuff. Don't forget to call the super implementation via <code>this._super();</code>\n *\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @returns {Boolean}\n */\n onDragEnd: function onDragEnd(x, y, shiftKey, ctrlKey) {\n var stack = this.getCanvas().getCommandStack();\n\n stack.execute(this.command);\n this.command = null;\n return true;\n },\n\n /**\n * \n * Controls the location of the resize handle\n *\n * @template\n **/\n relocate: function relocate() {\n\n var resizeWidthHalf = this.getWidth() / 2;\n var resizeHeightHalf = this.getHeight() / 2;\n\n var anchor = this.owner.getVertices().get(this.index);\n if (anchor) this.setPosition(anchor.x - resizeWidthHalf, anchor.y - resizeHeightHalf);\n }\n\n });\n },\n\n /**\n * \n *\n * @template\n * @param {draw2d.Connection} connection the selected figure\n * @param {Boolean} isPrimarySelection\n */\n onSelect: function onSelect(canvas, connection, isPrimarySelection) {\n this._super(canvas, connection, isPrimarySelection);\n\n var points = connection.getVertices();\n var i = 1;\n for (; i < points.getSize() - 1; i++) {\n var handle = new this.ResizeHandle(connection, i);\n connection.selectionHandles.add(handle);\n handle.setDraggable(connection.isResizeable());\n handle.show(canvas);\n }\n\n this.moved(canvas, connection);\n },\n\n /**\n * \n * remove the segment with the given index.\n * You must check if it possible to remove the segment before. The method didn'T do any consistency checks.\n *\n * @param conn\n * @param segmentIndex\n */\n removeSegment: function removeSegment(conn, segmentIndex) {\n var PADDING = 10;\n\n var segmentCount = conn.getVertices().getSize() - 1;\n\n var fromPt = conn.getStartPoint();\n var fromDir = conn.getSource().getConnectionDirection(conn.getTarget());\n\n var toPt = conn.getEndPoint();\n var toDir = conn.getTarget().getConnectionDirection(conn.getSource());\n\n var p0 = conn.getVertex(segmentIndex - 1);\n var p1 = conn.getVertex(segmentIndex);\n var p2 = conn.getVertex(segmentIndex + 1);\n var p3 = conn.getVertex(segmentIndex + 2);\n\n // p0 .\n // Es wird ein Horizontales Segment .\n // geloescht. Es muessen somit die Punkte .\n // p0 und p3 neu gesetzt werden. p1 +------*-----+ p2\n // Ihre neue X-Koordinate ist somit in der ^ .\n // Mitte des geloeschten Segmentes newX .\n // . p3\n //\n if (p1.y === p2.y) {\n var _newX = (p1.x + p2.x) / 2;\n // Die neue X-Koordinate muss auf jeden Falls zwischen p-1 und p4 liegen\n //\n if (segmentIndex === 1) {\n switch (fromDir) {\n case _packages2.default.geo.Rectangle.DIRECTION_RIGHT:\n _newX = Math.max(_newX, fromPt.x + PADDING);\n break;\n case _packages2.default.geo.Rectangle.DIRECTION_LEFT:\n _newX = Math.min(_newX, fromPt.x - PADDING);\n break;\n case _packages2.default.geo.Rectangle.DIRECTION_UP:\n _newX = fromPt.x;\n break;\n case _packages2.default.geo.Rectangle.DIRECTION_DOWN:\n _newX = fromPt.x;\n break;\n }\n }\n\n if (segmentIndex === segmentCount - 2) {\n switch (fromDir) {\n case _packages2.default.geo.Rectangle.DIRECTION_RIGHT:\n _newX = Math.max(_newX, toPt.x + PADDING);\n break;\n case _packages2.default.geo.Rectangle.DIRECTION_LEFT:\n _newX = Math.min(_newX, toPt.x - PADDING);\n break;\n case _packages2.default.geo.Rectangle.DIRECTION_UP:\n _newX = toPt.x;\n break;\n case _packages2.default.geo.Rectangle.DIRECTION_DOWN:\n _newX = toPt.x;\n break;\n }\n }\n\n conn.setVertex(segmentIndex - 1, new _packages2.default.geo.Point(_newX, p0.y));\n conn.setVertex(segmentIndex + 2, new _packages2.default.geo.Point(_newX, p3.y));\n\n conn.removeVertexAt(segmentIndex);\n conn.removeVertexAt(segmentIndex);\n conn._routingMetaData.routedByUserInteraction = true;\n }\n\n // p2 p3\n // Es wird ein vertikales Segment +..........+\n // geloescht. Es muessen somit die Punkte |\n // p0 und p3 neu gesetzt werden. |\n // Ihre neue Y-Koordinate ist somit in der |\n // Mitte des geloeschten Segmentes p0 | p1\n // +........+\n //\n else if (p1.x === p2.x) {\n var newY = (p1.y + p2.y) / 2;\n // Die neue Y-Koordinate muss auf jeden Falls zwischen p-1 und p4 liegen\n //\n if (segmentIndex === 1) {\n switch (fromDir) {\n case _packages2.default.geo.Rectangle.DIRECTION_RIGHT:\n case _packages2.default.geo.Rectangle.DIRECTION_LEFT:\n newY = fromPt.y;\n break;\n case _packages2.default.geo.Rectangle.DIRECTION_UP:\n case _packages2.default.geo.Rectangle.DIRECTION_DOWN:\n debugger; // newX is newer read....why did I calculate them?!\n newX = fromPt.x;\n break;\n }\n }\n if (segmentIndex === segmentCount - 2) {\n switch (toDir) {\n case _packages2.default.geo.Rectangle.DIRECTION_RIGHT:\n case _packages2.default.geo.Rectangle.DIRECTION_LEFT:\n newY = toPt.y;\n break;\n case _packages2.default.geo.Rectangle.DIRECTION_UP:\n case _packages2.default.geo.Rectangle.DIRECTION_DOWN:\n debugger; // newX is newer read....why did I calculate them?!\n newX = toPt.x;\n break;\n }\n }\n\n conn.setVertex(segmentIndex - 1, new _packages2.default.geo.Point(p0.x, newY));\n conn.setVertex(segmentIndex + 2, new _packages2.default.geo.Point(p3.x, newY));\n\n conn.removeVertexAt(segmentIndex);\n conn.removeVertexAt(segmentIndex);\n conn._routingMetaData.routedByUserInteraction = true;\n }\n },\n\n /**\n * \n * split the segment with the given index and insert a new segment.\n *\n * @param conn\n * @param segmentIndex\n */\n splitSegment: function splitSegment(conn, segmentIndex, x, y) {\n var segmentCount = conn.getVertices().getSize() - 1;\n var p1 = conn.getVertex(segmentIndex);\n var p2 = conn.getVertex(segmentIndex + 1);\n var length = 40;\n\n // the selected segment is vertical\n //\n if (p1.x === p2.x) {\n conn._routingMetaData.routedByUserInteraction = true;\n // edge case of an ManhattanRouter: One segment. This happens if the source/target on the same x - coordinate\n //\n if (segmentCount === 1) {\n // + p1\n // |\n // np1 +-----+ np2\n // |\n // |\n // np3 +-----+ np3\n // |\n // |\n // + p2\n //\n var newSegLength = p1.getDistance(p2) / 4 / 2;\n var np1 = new _packages2.default.geo.Point(p1.x, y - newSegLength);\n var np2 = new _packages2.default.geo.Point(p2.x + length, y - newSegLength);\n var np3 = new _packages2.default.geo.Point(p2.x + length, y + newSegLength);\n var np4 = new _packages2.default.geo.Point(p2.x, y + newSegLength);\n\n conn.insertVertexAt(segmentIndex + 1, np1);\n conn.insertVertexAt(segmentIndex + 2, np2);\n conn.insertVertexAt(segmentIndex + 3, np3);\n conn.insertVertexAt(segmentIndex + 4, np4);\n } else {\n var _np = new _packages2.default.geo.Point(0, 0);\n var _np2 = new _packages2.default.geo.Point(0, 0);\n // p2 +\n // .\n // np1 +----+ np2\n // .\n // .\n // + p1\n // p1 ist der Startpunkt und darf somit nicht verschoben werden\n //\n if (segmentIndex === 0) {\n _np.y = y;\n _np.x = p1.x;\n _np2.y = y;\n _np2.x = p2.x + length;\n conn.setVertex(segmentIndex + 1, new _packages2.default.geo.Point(_np2.x, p2.y));\n }\n // p2 ist der Schlusspunkt und darf somit nicht veaendert werden\n //\n else if (segmentIndex === segmentCount - 1) {\n _np.y = y;\n _np.x = p1.x - length;\n _np2.y = y;\n _np2.x = p2.x;\n conn.setVertex(segmentIndex, new _packages2.default.geo.Point(_np.x, p1.y));\n } else {\n _np.y = y;\n _np.x = p1.x - length / 2;\n _np2.y = y;\n _np2.x = p2.x + length / 2;\n conn.setVertex(segmentIndex, new _packages2.default.geo.Point(_np.x, p1.y));\n conn.setVertex(segmentIndex + 1, new _packages2.default.geo.Point(_np2.x, p2.y));\n }\n\n conn.insertVertexAt(segmentIndex + 1, _np);\n conn.insertVertexAt(segmentIndex + 2, _np2);\n }\n }\n // the selected segment is horizontal\n //\n else if (p1.y == p2.y) {\n conn._routingMetaData.routedByUserInteraction = true;\n // edge case of an ManhattanRouter: One segment. This happens if the source/target on the same y - coordinate\n //\n if (segmentCount === 1) {\n // np2 +---------+ np3\n // | |\n // --------+np1 np4+--------\n //\n var _newSegLength = p1.getDistance(p2) / 4 / 2;\n var _np3 = new _packages2.default.geo.Point(x - _newSegLength, p1.y);\n var _np4 = new _packages2.default.geo.Point(x - _newSegLength, p1.y - length);\n var _np5 = new _packages2.default.geo.Point(x + _newSegLength, p1.y - length);\n var _np6 = new _packages2.default.geo.Point(x + _newSegLength, p1.y);\n\n conn.insertVertexAt(segmentIndex + 1, _np3);\n conn.insertVertexAt(segmentIndex + 2, _np4);\n conn.insertVertexAt(segmentIndex + 3, _np5);\n conn.insertVertexAt(segmentIndex + 4, _np6);\n } else {\n // p1 np1\n // +.........+\n // |\n // |\n // | np2 p2\n // +.........+\n var _np7 = new _packages2.default.geo.Point(0, 0);\n var _np8 = new _packages2.default.geo.Point(0, 0);\n\n // p1 ist der Startpunkt und darf somit nicht verschoben werden\n //\n if (segmentIndex === 0) {\n _np7.x = x;\n _np7.y = p1.y;\n _np8.x = x;\n _np8.y = p2.y + length;\n conn.setVertex(segmentIndex + 1, new _packages2.default.geo.Point(p2.x, _np8.y));\n }\n // p2 ist der Schlusspunkt und darf somit nicht veaendert werden\n //\n else if (segmentIndex === segmentCount - 1) {\n _np7.x = x;\n _np7.y = p1.y - length;\n _np8.x = x;\n _np8.y = p2.y;\n conn.setVertex(segmentIndex, new _packages2.default.geo.Point(p1.x, _np7.y));\n } else {\n _np7.x = x;\n _np7.y = p1.y - length / 2;\n _np8.x = x;\n _np8.y = p2.y + length / 2;\n conn.setVertex(segmentIndex, new _packages2.default.geo.Point(p1.x, _np7.y));\n conn.setVertex(segmentIndex + 1, new _packages2.default.geo.Point(p2.x, _np8.y));\n }\n conn.insertVertexAt(segmentIndex + 1, _np7);\n conn.insertVertexAt(segmentIndex + 2, _np8);\n }\n }\n },\n\n /**\n * \n * Called if the user press the right mouse on the figure.<br>\n * You can either override the \"onContextMenu\" method of the figure or install an editor policy and override this method.\n * Booth is valid and possible.\n *\n * @param {draw2d.shape.basic.Line} conn the polyline below the mouse\n * @param {Number} x the x-coordinate of the mouse down event\n * @param {Number} y the y-coordinate of the mouse down event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n * @since 4.4.0\n */\n onRightMouseDown: function onRightMouseDown(conn, x, y, shiftKey, ctrlKey) {\n var _this = this;\n\n var segment = conn.hitSegment(x, y);\n var items = { \"split\": { name: _packages2.default.Configuration.i18n.menu.addSegment } };\n\n if (segment === null) {\n return;\n }\n\n if (conn.getRouter().canRemoveSegmentAt(conn, segment.index)) {\n items.remove = { name: _packages2.default.Configuration.i18n.menu.deleteSegment };\n }\n\n $.contextMenu({\n selector: 'body',\n events: {\n hide: function hide() {\n $.contextMenu('destroy');\n }\n },\n callback: function callback(key, options) {\n switch (key) {\n case \"remove\":\n {\n // deep copy of the vertices of the connection for the command stack to avoid side effects\n var originalVertices = conn.getVertices().clone(true);\n _this.removeSegment(conn, segment.index);\n var newVertices = conn.getVertices().clone(true);\n conn.getCanvas().getCommandStack().execute(new _packages2.default.command.CommandReplaceVertices(conn, originalVertices, newVertices));\n }\n break;\n case \"split\":\n {\n // deep copy of the vertices of the connection for the command stack to avoid side effects\n var _originalVertices = conn.getVertices().clone(true);\n _this.splitSegment(conn, segment.index, x, y);\n var _newVertices = conn.getVertices().clone(true);\n conn.getCanvas().getCommandStack().execute(new _packages2.default.command.CommandReplaceVertices(conn, _originalVertices, _newVertices));\n }\n break;\n default:\n break;\n }\n },\n x: x,\n y: y,\n items: items\n });\n }\n});\n\n/***/ }),\n\n/***/ \"./src/policy/line/VertexSelectionFeedbackPolicy.js\":\n/*!**********************************************************!*\\\n !*** ./src/policy/line/VertexSelectionFeedbackPolicy.js ***!\n \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Feedback and edit policy for the VertexRouter.\n *\n * @author Andreas Herz\n * @extends draw2d.policy.line.LineSelectionFeedbackPolicy\n */\n_packages2.default.policy.line.VertexSelectionFeedbackPolicy = _packages2.default.policy.line.LineSelectionFeedbackPolicy.extend(\n/** @lends draw2d.policy.line.VertexSelectionFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.line.VertexSelectionFeedbackPolicy\",\n\n /**\n *\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n * \n *\n * @param {draw2d.Canvas} canvas the related canvas\n * @param {draw2d.Connection} figure the selected figure\n * @param {Boolean} isPrimarySelection\n */\n onSelect: function onSelect(canvas, figure, isPrimarySelection) {\n var startHandle = new _packages2.default.shape.basic.LineStartResizeHandle(figure);\n var endHandle = new _packages2.default.shape.basic.LineEndResizeHandle(figure);\n figure.selectionHandles.add(startHandle);\n figure.selectionHandles.add(endHandle);\n\n var points = figure.getVertices();\n var count = points.getSize() - 1;\n var i = 1;\n for (; i < count; i++) {\n figure.selectionHandles.add(new _packages2.default.shape.basic.VertexResizeHandle(figure, i));\n figure.selectionHandles.add(new _packages2.default.shape.basic.GhostVertexResizeHandle(figure, i - 1));\n }\n\n figure.selectionHandles.add(new _packages2.default.shape.basic.GhostVertexResizeHandle(figure, i - 1));\n\n figure.selectionHandles.each(function (i, e) {\n e.setDraggable(figure.isResizeable());\n e.show(canvas);\n });\n\n this.moved(canvas, figure);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/port/ElasticStrapFeedbackPolicy.js\":\n/*!*******************************************************!*\\\n !*** ./src/policy/port/ElasticStrapFeedbackPolicy.js ***!\n \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A draw2d.policy.SelectionFeedbackPolicy that is sensitive to the canvas selection. Subclasses will typically\n * decorate the {@link draw2d.Figure figure} with things like selection handles and/or focus feedback.\n * <br>\n * If you want to change the handle visibility for a figure, then you should use SelectionFeedbackPolicy to do that.\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.DragDropEditPolicy\n */\n_packages2.default.policy.port.ElasticStrapFeedbackPolicy = _packages2.default.policy.port.PortFeedbackPolicy.extend(\n/** @lends draw2d.policy.port.ElasticStrapFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.port.ElasticStrapFeedbackPolicy\",\n\n /**\n * Creates a new Router object\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n this.connectionLine = null;\n },\n\n /**\n *\n * Called by the framework if the related shape has init a drag&drop\n * operation\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Figure} figure The related figure\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @returns {Boolean} return <b>false</b> to send a veto to the drag operation\n */\n onDragStart: function onDragStart(canvas, figure, x, y, shiftKey, ctrlKey) {\n this.connectionLine = new _packages2.default.shape.basic.Line();\n this.connectionLine.setCanvas(canvas);\n this.connectionLine.getShapeElement();\n\n this.onDrag(canvas, figure);\n\n return true;\n },\n\n /**\n *\n * Called by the framework during drag a figure.\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Figure} figure The related figure\n */\n onDrag: function onDrag(canvas, figure) {\n var x1 = figure.ox + figure.getParent().getAbsoluteX();\n var y1 = figure.oy + figure.getParent().getAbsoluteY();\n\n this.connectionLine.setStartPosition(x1, y1);\n this.connectionLine.setEndPosition(figure.getAbsoluteX(), figure.getAbsoluteY());\n },\n\n /**\n *\n * Called by the framework if the drag drop operation ends.\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Figure} figure The related figure\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onDragEnd: function onDragEnd(canvas, figure, x, y, shiftKey, ctrlKey) {\n this.connectionLine.setCanvas(null);\n this.connectionLine = null;\n },\n\n onHoverEnter: function onHoverEnter(canvas, draggedFigure, hoverFiger) {\n this.connectionLine.setGlow(true);\n hoverFiger.setGlow(true);\n },\n\n onHoverLeave: function onHoverLeave(canvas, draggedFigure, hoverFiger) {\n hoverFiger.setGlow(false);\n this.connectionLine.setGlow(false);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/port/IntrusivePortsFeedbackPolicy.js\":\n/*!*********************************************************!*\\\n !*** ./src/policy/port/IntrusivePortsFeedbackPolicy.js ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _shifty = __webpack_require__(/*! shifty */ \"./node_modules/shifty/dist/shifty.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.DragDropEditPolicy\n */\n_packages2.default.policy.port.IntrusivePortsFeedbackPolicy = _packages2.default.policy.port.PortFeedbackPolicy.extend(\n/** @lends draw2d.policy.port.IntrusivePortsFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.port.IntrusivePortsFeedbackPolicy\",\n\n /**\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n this.connectionLine = null;\n this.tweenable = null;\n this.growFactor = 2;\n },\n\n /**\n *\n * Called by the framework if the related shape has init a drag&drop\n * operation\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Figure} figure The related figure\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onDragStart: function onDragStart(canvas, figure, x, y, shiftKey, ctrlKey) {\n var allPorts = canvas.getAllPorts().clone();\n\n // filter all candidates for the DropEvent\n //\n allPorts.grep(function (p) {\n return p.NAME !== figure.NAME && p.parent !== figure.parent && p.getSemanticGroup() === figure.getSemanticGroup() || p instanceof _packages2.default.HybridPort || figure instanceof _packages2.default.HybridPort;\n });\n\n var start = 0;\n allPorts.each(function (i, element) {\n if (typeof element.__beforeInflate === \"undefined\") {\n element.__beforeInflate = element.getWidth();\n }\n start = element.__beforeInflate;\n });\n\n // Animate the ports for a visual feedback\n //\n this.tweenable = new _shifty.Tweenable();\n this.tweenable.tween({\n from: { 'size': start },\n to: { 'size': start * this.growFactor },\n duration: 200,\n easing: \"easeOutSine\",\n step: function step(params) {\n allPorts.each(function (i, element) {\n // IMPORTANT shortcut to avoid rendering errors!!\n // performance shortcut to avoid a lot of events and recalculate/routing of all related connections\n // for each setDimension call. Additional the connection is following a port during Drag&Drop operation\n element.shape.attr({ rx: params.size / 2, ry: params.size / 2 });\n element.width = element.height = params.size;\n element.fireEvent(\"resize\");\n });\n }\n });\n\n this.connectionLine = new _packages2.default.shape.basic.Line();\n this.connectionLine.setCanvas(canvas);\n this.connectionLine.getShapeElement();\n this.connectionLine.setDashArray(\"- \");\n this.connectionLine.setColor(\"#30c48a\");\n\n this.onDrag(canvas, figure);\n\n return true;\n },\n\n /**\n *\n * Called by the framework during drag a figure.\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Figure} figure The related figure\n * @template\n */\n onDrag: function onDrag(canvas, figure) {\n var x1 = figure.ox + figure.getParent().getAbsoluteX();\n var y1 = figure.oy + figure.getParent().getAbsoluteY();\n\n this.connectionLine.setStartPosition(x1, y1);\n this.connectionLine.setEndPosition(figure.getAbsoluteX(), figure.getAbsoluteY());\n },\n\n /**\n *\n * Called by the framework if the drag drop operation ends.\n *\n * @param {draw2d.Canvas} canvas The host canvas\n * @param {draw2d.Figure} figure The related figure\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onDragEnd: function onDragEnd(canvas, figure, x, y, shiftKey, ctrlKey) {\n if (this.tweenable) {\n this.tweenable.stop(true);\n this.tweenable.dispose();\n this.tweenable = null;\n }\n\n var allPorts = canvas.getAllPorts().clone();\n // filter all candidates for the DropEvent\n //\n allPorts.grep(function (p) {\n return p.__beforeInflate;\n });\n\n allPorts.each(function (i, element) {\n // IMPORTANT shortcut to avoid rendering errors!!\n // performance shortcut to avoid a lot of events and recalculate/routing of all related connections\n // for each setDimension call. Additional the connection is following a port during Drag&Drop operation\n element.shape.attr({ rx: element.__beforeInflate / 2, ry: element.__beforeInflate / 2 });\n element.width = element.height = element.__beforeInflate;\n delete element.__beforeInflate;\n });\n this.connectionLine.setCanvas(null);\n this.connectionLine = null;\n },\n\n onHoverEnter: function onHoverEnter(canvas, draggedFigure, hoverFigure) {\n this.connectionLine.setGlow(true);\n hoverFigure.setGlow(true);\n },\n\n onHoverLeave: function onHoverLeave(canvas, draggedFigure, hoverFigure) {\n hoverFigure.setGlow(false);\n if (this.connectionLine === null) {\n debugger;\n }\n this.connectionLine.setGlow(false);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/policy/port/PortFeedbackPolicy.js\":\n/*!***********************************************!*\\\n !*** ./src/policy/port/PortFeedbackPolicy.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Base class for all port feedback policies. Used for grow, highlight or\n * other decorations during drag&drop and connecting of ports.\n *\n * @author Andreas Herz\n * @extends draw2d.policy.figure.DragDropEditPolicy\n */\n_packages2.default.policy.port.PortFeedbackPolicy = _packages2.default.policy.figure.DragDropEditPolicy.extend(\n/** @lends draw2d.policy.port.PortFeedbackPolicy.prototype */\n{\n\n NAME: \"draw2d.policy.port.PortFeedbackPolicy\",\n\n /**\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n },\n\n /**\n *\n * Called if the dragged port hove another port\n *\n * @param {draw2d.Canvas} canvas\n * @param {draw2d.Port} draggedFigure\n * @param {draw2d.Figure} hoverFigure\n */\n onHoverEnter: function onHoverEnter(canvas, draggedFigure, hoverFigure) {},\n\n /**\n *\n * Fired if the dragged figures leaves the hover figure\n *\n * @param {draw2d.Canvas} canvas\n * @param {draw2d.Port} draggedFigure\n * @param {draw2d.Figure} hoverFigure\n */\n onHoverLeave: function onHoverLeave(canvas, draggedFigure, hoverFigure) {}\n});\n\n/***/ }),\n\n/***/ \"./src/shape/analog/OpAmp.js\":\n/*!***********************************!*\\\n !*** ./src/shape/analog/OpAmp.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Hand drawn arrow which points down left\n *\n *\n * @example\n * let figure = new draw2d.shape.analog.OpAmp({x:10, y:10});\n *\n * canvas.add(figure);\n *\n *\n * @extends draw2d.SVGFigure\n */\n_packages2.default.shape.analog.OpAmp = _packages2.default.SVGFigure.extend(\n/** @lends draw2d.shape.analog.OpAmp.prototype */\n{\n\n NAME: \"draw2d.shape.analog.OpAmp\",\n\n // custom locator for the special design of the OpAmp Input area\n MyInputPortLocator: _packages2.default.layout.locator.PortLocator.extend({\n init: function init() {\n this._super();\n },\n relocate: function relocate(index, port) {\n var parent = port.getParent();\n var calcY = (8 + 18.5 * index) * parent.scaleY;\n this.applyConsiderRotation(port, 1, calcY);\n }\n }),\n\n /**\n * Create a new instance\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ stroke: 0, bgColor: \"#f0f0ff\" }, attr), setter, getter);\n\n this.inputLocator = new this.MyInputPortLocator();\n\n this.createPort(\"input\", this.inputLocator);\n this.createPort(\"input\", this.inputLocator);\n\n this.createPort(\"output\");\n },\n\n /**\n * @inheritdoc\n */\n getSVG: function getSVG() {\n return '<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"50\" height=\"50\">' + '<path d=\"m8.2627,0l0,35.36035l31.23926,-17.76025l-31.23926,-17.60011l0,0l0,0.00001zm2.27832,27.36719l4.08105,0m-2.10449,-2.20703l0,4.27979m2.26367,-21.35938l-4.15918,0\" stroke=\"#1B1B1B\" fill=\"none\"/>' + '<line x1=\"0.53516\" y1=\"8\" x2=\"8.21191\" y2=\"8\" stroke=\"#010101\"/>' + '<line x1=\"39.14941\" y1=\"18\" x2=\"45.81055\" y2=\"18\" stroke=\"#010101\" />' + '<line x1=\"0.53516\" y1=\"27\" x2=\"8.21191\" y2=\"27\" stroke=\"#010101\" />' + '</svg>';\n },\n\n /**\n * @inheritdoc\n */\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n attributes = attributes || {};\n\n // redirect the backgroundColor to an internal SVG node.\n // In this case only a small part of the shape are filled with the background color\n // and not the complete rectangle/bounding box\n //\n attributes[\"fill\"] = \"none\";\n if (this.bgColor != null) {\n this.svgNodes[0].attr({ fill: this.bgColor.rgba() });\n }\n\n this._super(attributes);\n\n return this;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/analog/ResistorBridge.js\":\n/*!********************************************!*\\\n !*** ./src/shape/analog/ResistorBridge.js ***!\n \\********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @example\n *\n * let figure = new draw2d.shape.analog.ResistorBridge({x:10, y:10});\n *\n * canvas.add(figure);\n *\n *\n * @extends draw2d.SVGFigure\n */\n_packages2.default.shape.analog.ResistorBridge = _packages2.default.SVGFigure.extend(\n/** @lends draw2d.shape.analog.ResistorBridge.prototype */\n{\n\n NAME: \"draw2d.shape.analog.ResistorBridge\",\n\n // custom locator for the special design of the ResistorBridge Input area\n MyInputPortLocator: _packages2.default.layout.locator.PortLocator.extend({\n init: function init() {\n this._super();\n },\n relocate: function relocate(index, figure) {\n var w = figure.getParent().getWidth();\n var h = figure.getParent().getHeight();\n this.applyConsiderRotation(figure, w / 2 + 1, h * index);\n }\n }),\n\n // custom locator for the special design of the ResistorBridge Input area\n MyOutputPortLocator: _packages2.default.layout.locator.PortLocator.extend({\n init: function init() {\n this._super();\n },\n relocate: function relocate(index, figure) {\n var w = figure.getParent().getWidth();\n var h = figure.getParent().getHeight();\n\n this.applyConsiderRotation(figure, w * (index - 2), h / 2);\n }\n }),\n\n /**\n * Create a new instance\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n\n this.inputLocator = new this.MyInputPortLocator();\n this.outputLocator = new this.MyOutputPortLocator();\n\n this.createPort(\"hybrid\", this.inputLocator);\n this.createPort(\"hybrid\", this.inputLocator);\n\n this.createPort(\"hybrid\", this.outputLocator);\n this.createPort(\"hybrid\", this.outputLocator);\n },\n\n /**\n * @inheritdoc\n */\n getSVG: function getSVG() {\n return '<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">' + '<path fill=\"#010101\" stroke=\"#010101\" stroke-miterlimit=\"14.3\" id=\"path12322\" d=\"m47.62207,22.71094l0,0c0.73145,0.73242 0.71777,1.93359 -0.03027,2.68164c-0.74805,0.74951 -1.94922,0.76123 -2.68073,0.0293c-0.73138,-0.73242 -0.71967,-1.93211 0.03033,-2.68115c0.74707,-0.74803 1.94727,-0.76219 2.68066,-0.02979l0,0z\"/>' + '<path fill=\"#010101\" stroke=\"#010101\" stroke-miterlimit=\"14.3\" id=\"path12324\" d=\"m25.84082,0.93115l0,0c0.73145,0.73096 0.71875,1.93359 -0.02832,2.68066c-0.75,0.74951 -1.94922,0.76123 -2.68164,0.0293c-0.73242,-0.73241 -0.71973,-1.93164 0.0293,-2.68065c0.74805,-0.74756 1.94922,-0.76172 2.68066,-0.0293l0,0l0,-0.00002z\"/>' + '<path fill=\"#010101\" stroke=\"#010101\" stroke-miterlimit=\"14.3\" id=\"path12326\" d=\"m25.75098,44.58203l0,0c0.73145,0.73193 0.71875,1.93311 -0.02832,2.68115c-0.75,0.74902 -1.94922,0.76074 -2.68262,0.0293c-0.73145,-0.73193 -0.71973,-1.93262 0.03033,-2.68164c0.74707,-0.74756 1.94922,-0.76123 2.68066,-0.02879l0,0l-0.00006,-0.00002z\"/>' + '<path fill=\"#010101\" stroke=\"#010101\" stroke-miterlimit=\"14.3\" id=\"path12328\" d=\"m3.9707,22.80127l0,0c0.73242,0.73193 0.71777,1.93359 -0.0293,2.68115c-0.74902,0.74951 -1.94922,0.76172 -2.68164,0.0293c-0.73145,-0.73242 -0.71973,-1.93164 0.03027,-2.68115c0.74707,-0.74707 1.94922,-0.76074 2.68066,-0.0293l0,0z\"/>' + '<polyline fill=\"none\" stroke=\"#010101\" id=\"polyline12334\" points=\"24.908203125,45.49267578125 31.71875,38.68310546875 31.2119140625,36.98876953125 34.892578125,37.95703125 33.953125,34.22265625 37.6650390625,35.18359375 36.6767578125,31.52490234375 40.3759765625,32.47314453125 39.873046875,30.52783203125 45.884765625,24.51708984375 \" stroke-miterlimit=\"14.3\"/>' + '<polyline fill=\"#010101\" id=\"polyline12338\" points=\"36.3408203125,23.98876953125 38.146484375,29.55810546875 33.630859375,29.55810546875 35.435546875,23.98779296875 \"/>' + '<line fill=\"none\" stroke=\"#010101\" id=\"line12340\" y2=\"28.90967\" x2=\"35.8877\" y1=\"41.13428\" x1=\"35.88867\" stroke-miterlimit=\"14.3\"/>' + '<polyline fill=\"none\" stroke=\"#010101\" id=\"polyline12346\" points=\"3.2109375,23.79248046875 10.01953125,16.98388671875 9.513671875,15.2890625 13.193359375,16.25732421875 12.251953125,12.5234375 15.9658203125,13.48486328125 14.9775390625,9.82568359375 18.6767578125,10.7734375 18.173828125,8.82958984375 24.185546875,2.81787109375 \" stroke-miterlimit=\"14.3\"/>' + '<polyline fill=\"#010101\" id=\"polyline12350\" points=\"13.126953125,23.80419921875 11.3212890625,18.236328125 15.8369140625,18.236328125 14.0322265625,23.806640625 \"/>' + '<line fill=\"none\" stroke=\"#010101\" id=\"line12352\" y2=\"18.8833\" x2=\"13.58008\" y1=\"6.65967\" x1=\"13.5791\" stroke-miterlimit=\"14.3\"/>' + '<polyline fill=\"none\" stroke=\"#010101\" id=\"polyline12358\" points=\"46.65625,24.33642578125 39.84765625,17.52783203125 38.154296875,18.033203125 39.1220703125,14.353515625 35.3876953125,15.29345703125 36.34765625,11.58056640625 32.689453125,12.56884765625 33.6376953125,8.86865234375 31.6923828125,9.373046875 24.322265625,2.00341796875 \" stroke-miterlimit=\"14.3\"/>' + '<polyline fill=\"#010101\" id=\"polyline12362\" points=\"36.578125,1.87109375 38.3828125,7.439453125 33.8681640625,7.439453125 35.6728515625,1.869140625 \"/>' + '<line fill=\"none\" stroke=\"#010101\" id=\"line12364\" y2=\"6.7915\" x2=\"36.125\" y1=\"19.01758\" x1=\"36.125\" stroke-miterlimit=\"14.3\"/>' + '<polyline fill=\"none\" stroke=\"#010101\" id=\"polyline12370\" points=\"24.494140625,46.49951171875 17.685546875,39.69091796875 15.9921875,40.1953125 16.958984375,36.515625 13.2265625,37.45556640625 14.185546875,33.7421875 10.52734375,34.73193359375 11.474609375,31.03125 9.529296875,31.53515625 2.1611328125,24.166015625 \" stroke-miterlimit=\"14.3\"/>' + '<polyline fill=\"#010101\" id=\"polyline12374\" points=\"12.150390625,44.80029296875 10.34765625,39.23193359375 14.861328125,39.23095703125 13.0556640625,44.80224609375 \"/>' + '<line fill=\"none\" stroke=\"#010101\" id=\"line12376\" y2=\"39.87891\" x2=\"12.60352\" y1=\"27.6543\" x1=\"12.60352\" stroke-miterlimit=\"14.3\"/>' + '</svg>';\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/analog/ResistorVertical.js\":\n/*!**********************************************!*\\\n !*** ./src/shape/analog/ResistorVertical.js ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @example\n *\n * let figure = new draw2d.shape.analog.ResistorVertical({x:10, y:10});\n *\n * canvas.add(figure);\n *\n *\n * @extends draw2d.SVGFigure\n */\n_packages2.default.shape.analog.ResistorVertical = _packages2.default.SetFigure.extend(\n/** @lends draw2d.shape.analog.ResistorVertical.prototype */\n{\n\n NAME: \"draw2d.shape.analog.ResistorVertical\",\n\n // custom locator for the special design of the Input area\n MyInputPortLocator: _packages2.default.layout.locator.PortLocator.extend({\n init: function init() {\n this._super();\n },\n relocate: function relocate(index, figure) {\n var w = figure.getParent().getWidth();\n var h = figure.getParent().getHeight();\n this.applyConsiderRotation(figure, w / 2, h);\n }\n }),\n\n // custom locator for the special design of the Output area\n MyOutputPortLocator: _packages2.default.layout.locator.PortLocator.extend({\n init: function init() {\n this._super();\n },\n relocate: function relocate(index, figure) {\n var w = figure.getParent().getWidth();\n this.applyConsiderRotation(figure, w / 2, 0);\n }\n }),\n\n /**\n * Create a new instance\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n\n this._super(extend({ width: 30, height: 50, bgColor: null }, attr), setter, getter);\n\n this.inputLocator = new this.MyInputPortLocator();\n this.outputLocator = new this.MyOutputPortLocator();\n\n this.createPort(\"hybrid\", this.inputLocator);\n this.createPort(\"hybrid\", this.outputLocator);\n },\n\n /**\n * @inheritdoc\n */\n createSet: function createSet() {\n var set = this._super();\n\n set.push(this.canvas.paper.path(\"M15,0 L15,5 L0,7.5 L30,10 L0,15 L30,20 L0,25 L30,30 L15,32.5 L15,40\"));\n\n return set;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/analog/VoltageSupplyHorizontal.js\":\n/*!*****************************************************!*\\\n !*** ./src/shape/analog/VoltageSupplyHorizontal.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @example\n *\n * let figure = new draw2d.shape.analog.VoltageSupplyHorizontal({x:10, y:10});\n *\n * canvas.add(figure);\n *\n *\n * @extends draw2d.SVGFigure\n */\n_packages2.default.shape.analog.VoltageSupplyHorizontal = _packages2.default.SVGFigure.extend(\n/** @lends draw2d.shape.analog.VoltageSupplyHorizontal.prototype */\n{\n\n NAME: \"draw2d.shape.analog.VoltageSupplyHorizontal\",\n\n // custom locator for the special design of the Input area\n MyInputPortLocator: _packages2.default.layout.locator.PortLocator.extend({\n init: function init() {\n this._super();\n },\n relocate: function relocate(index, figure) {\n var h = figure.getParent().getHeight();\n this.applyConsiderRotation(figure, 0, h / 2);\n }\n }),\n\n // custom locator for the special design of the Output area\n MyOutputPortLocator: _packages2.default.layout.locator.PortLocator.extend({\n init: function init() {\n this._super();\n },\n relocate: function relocate(index, figure) {\n var w = figure.getParent().getWidth();\n var h = figure.getParent().getHeight();\n this.applyConsiderRotation(figure, w, h / 2);\n }\n }),\n\n /**\n * Create a new instance\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 30 }, attr), setter, getter);\n\n this.createPort(\"hybrid\", new this.MyInputPortLocator()); // GND\n this.createPort(\"hybrid\", new this.MyOutputPortLocator()); // VCC\n },\n\n /**\n * @inheritdoc\n */\n getSVG: function getSVG() {\n return '<svg width=\"49\" height=\"28\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">' + '<path d=\"m24.99933,18.95592l0,-9.54576m-5.78374,-9.40907l0,28.35939m-5.78718,-9.40457l0,-9.54576m-5.78374,-9.40907l0,28.35939\" id=\"path10566\" stroke-miterlimit=\"14.3\" stroke=\"#010101\" fill=\"none\"/>' + '<path d=\"m26.79878,14.13039l6.90583,0m-33.22691,0l6.90583,0\" id=\"path10568\" stroke-miterlimit=\"14.3\" stroke-linecap=\"square\" stroke=\"#010101\" fill=\"none\"/>' + '</svg>';\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/analog/VoltageSupplyVertical.js\":\n/*!***************************************************!*\\\n !*** ./src/shape/analog/VoltageSupplyVertical.js ***!\n \\***************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n *\n * @example\n *\n * let figure = new draw2d.shape.analog.VoltageSupplyVertical({x:10, y:10});\n *\n * canvas.add(figure);\n *\n *\n * @extends draw2d.SVGFigure\n */\n_packages2.default.shape.analog.VoltageSupplyVertical = _packages2.default.SVGFigure.extend(\n/** @lends draw2d.shape.analog.VoltageSupplyVertical.prototype */\n{\n\n NAME: \"draw2d.shape.analog.VoltageSupplyVertical\",\n\n // custom locator for the special design of the Input area\n MyInputPortLocator: _packages2.default.layout.locator.PortLocator.extend({\n init: function init() {\n this._super();\n },\n relocate: function relocate(index, figure) {\n var w = figure.getParent().getWidth();\n var h = figure.getParent().getHeight();\n this.applyConsiderRotation(figure, w / 2, h);\n }\n }),\n\n // custom locator for the special design of the Output area\n MyOutputPortLocator: _packages2.default.layout.locator.PortLocator.extend({\n init: function init() {\n this._super();\n },\n relocate: function relocate(index, figure) {\n var w = figure.getParent().getWidth();\n this.applyConsiderRotation(figure, w / 2, 0);\n }\n }),\n\n /**\n * Create a new instance\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 30, height: 50 }, attr), setter, getter);\n\n this.inputLocator = new this.MyInputPortLocator();\n this.outputLocator = new this.MyOutputPortLocator();\n\n this.createPort(\"hybrid\", this.inputLocator); // GND\n this.createPort(\"hybrid\", this.outputLocator); // VCC\n },\n\n /**\n * @inheritdoc\n */\n getSVG: function getSVG() {\n return '<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">' + '<path d=\"m19.62398,12.37594l-9.87926,0m-9.74355,8.22145l29.36289,0m-9.74007,8.22469l-9.87927,0m-9.74355,8.22145l29.36289,0\" id=\"path10560\" stroke-miterlimit=\"14.3\" stroke=\"#010101\" fill=\"none\"/>' + '<path d=\"m14.63157,9.81646l0,-9.81646m0,47.2328l0,-9.81646\" id=\"path10562\" stroke-miterlimit=\"14.3\" stroke-linecap=\"square\" stroke=\"#010101\" fill=\"none\"/>' + '</svg>';\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/arrow/CalligrapherArrowDownLeft.js\":\n/*!******************************************************!*\\\n !*** ./src/shape/arrow/CalligrapherArrowDownLeft.js ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Hand drawn arrow which points down left\n *\n *\n * @example\n *\n * let figure = new draw2d.shape.arrow.CalligrapherArrowDownLeft({x:10,y:10, color:\"#3d3d3d\"});\n *\n * canvas.add(figure);\n *\n *\n * @extends draw2d.SVGFigure\n */\n_packages2.default.shape.arrow.CalligrapherArrowDownLeft = _packages2.default.SVGFigure.extend(\n/** @lends draw2d.shape.arrow.CalligrapherArrowDownLeft.prototype */\n{\n\n NAME: \"draw2d.shape.arrow.CalligrapherArrowDownLeft\",\n\n /**\n * Create a new instance\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(attr);\n },\n\n getSVG: function getSVG() {\n return '<svg width=\"180\" height=\"300\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">' + ' <path style=\"fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none\" id=\"path3084\" d=\"m 159.63578,17.846597 c 0.43137,9.44641 -0.0636,18.88035 -0.8284,28.30165 c -1.73211,18.38336 -4.05381,36.71698 -6.08253,55.075313 c -1.61738,13.7075 -3.03402,27.43467 -3.97611,41.19113 c -1.09101,11.16584 -1.31019,22.36559 -1.28541,33.56466 c -0.1328,4.82188 0.3218,9.6468 0.14332,14.46812 c -0.0888,2.39977 -0.28315,3.73625 -0.55012,6.12095 c -0.85848,4.73147 -2.27416,9.40019 -4.7769,13.68272 c -1.47003,2.51544 -3.78493,5.6647 -5.47739,8.05048 c -5.02888,6.66256 -11.08555,12.65652 -18.10552,17.75963 c -4.23302,3.07716 -7.74942,5.12065 -12.22081,7.86298 c -13.253319,6.72606 -25.889792,15.11686 -40.84124,18.60576 c -3.016829,0.7039 -4.431417,0.8157 -7.450859,1.2076 c -6.983246,0.5774 -14.009174,0.3375 -21.010676,0.2509 c -3.278795,-0.033 -6.55749,0.01 -9.835897,0.045 c 0,0 20.838833,-13.2364 20.838833,-13.2364 l 0,0 c 3.147056,0.093 6.294483,0.1852 9.443646,0.2007 c 6.966697,0.011 13.971433,0.1301 20.897176,-0.6344 c 3.732439,-0.5577 7.321215,-1.2431 10.881203,-2.4145 c 1.517208,-0.4992 5.830867,-2.43339 4.487902,-1.6386 c -6.098183,3.6088 -25.104875,12.8748 -9.52514,5.223 c 4.40875,-2.5927 8.262057,-4.7459 12.425175,-7.65986 c 6.839117,-4.78709 12.633657,-10.50427 17.500607,-16.86761 c 2.53518,-3.56692 5.24684,-7.12748 7.07617,-11.03446 c 1.42357,-3.0404 2.21532,-6.28727 2.91146,-9.50152 c 0.91919,-6.88822 1.03991,-13.81392 1.25118,-20.74151 c 0.47683,-11.27871 0.96259,-22.55877 1.61689,-33.83062 c 1.21127,-14.03392 3.64191,-27.94339 5.46543,-41.92167 c 2.26899,-18.186603 4.6835,-36.384373 5.4487,-54.679643 c 0.0788,-2.46092 0.23808,-4.92087 0.23618,-7.38276 c -0.005,-6.45916 -0.62194,-13.00218 -2.13821,-19.32664 c 0,0 23.48134,-10.73998 23.48134,-10.73998 z\" inkscape:connector-curvature=\"0\" />' + ' <path style=\"fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none\" id=\"path3086\" d=\"m 41.271518,252.40239 c 2.465518,-0.7264 4.879503,-1.7726 7.145328,-2.9859 c 0.955597,-0.5117 3.736822,-2.1986 2.791991,-1.6673 c -5.218817,2.9348 -10.409826,5.9187 -15.61474,8.878 c 5.366557,-3.4898 10.227818,-7.6685 14.119927,-12.75576 c 3.507157,-5.09382 4.097613,-11.17122 4.301158,-17.17644 c 0.02635,-3.95844 -0.31227,-7.90612 -0.635377,-11.84752 c 0,0 19.920693,-10.3059 19.920693,-10.3059 l 0,0 c 0.171761,4.05015 0.409899,8.09777 0.50079,12.15101 c -0.185739,6.23619 -0.347804,12.66862 -3.492579,18.24747 c -0.503375,0.75197 -0.961922,1.53596 -1.510126,2.25591 c -3.478528,4.56826 -8.226837,8.04586 -12.757403,11.47443 c -7.345206,4.3297 -14.671333,8.692 -22.035619,12.9891 c -3.551305,2.0723 -7.368692,3.8726 -11.394645,4.7773 c 0,0 18.660602,-14.0344 18.660602,-14.0344 z\" inkscape:connector-curvature=\"0\" />' + ' <path style=\"fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none\" id=\"path3088\" d=\"m 37.815923,255.49919 c 3.41111,0.1581 6.814569,0.2213 10.182693,0.8184 c 6.92998,2.6928 13.533527,6.2357 20.043462,9.8162 c 3.912139,2.1362 7.91195,4.4644 10.690321,8.0298 c 1.039962,1.2802 1.510411,2.7604 1.893523,4.3313 c 0,0 -20.370847,10.9259 -20.370847,10.9259 l 0,0 c -0.225419,-1.2711 -0.55067,-2.4558 -1.329618,-3.5184 c -2.332229,-3.3633 -5.869056,-5.6279 -9.247191,-7.8233 c -6.335066,-3.7106 -12.98611,-7.1834 -20.232784,-8.6836 c -3.497247,-0.3814 -7.011372,-0.4307 -10.521829,-0.1703 c 0,0 18.89227,-13.726 18.89227,-13.726 z\" inkscape:connector-curvature=\"0\" />' + '</svg>';\n },\n\n /**\n *\n * propagate all attributes like color, stroke,... to the shape element\n **/\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n if (this.svgNodes !== null) {\n this.svgNodes.attr({ fill: this.color.rgba() });\n }\n\n this._super(attributes);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/arrow/CalligrapherArrowLeft.js\":\n/*!**************************************************!*\\\n !*** ./src/shape/arrow/CalligrapherArrowLeft.js ***!\n \\**************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Hand drawn arrow to the left.\n *\n *\n * @example\n *\n * let figure = new draw2d.shape.arrow.CalligrapherArrowLeft({x:10, y:10, color:\"#3d3d3d\"});\n *\n * canvas.add(figure);\n *\n * @extends draw2d.SVGFigure\n */\n_packages2.default.shape.arrow.CalligrapherArrowLeft = _packages2.default.SVGFigure.extend(\n/** @lends draw2d.shape.arrow.CalligrapherArrowLeft.prototype */\n{\n NAME: \"draw2d.shape.arrow.CalligrapherArrowLeft\",\n\n /**\n * Creates a new instance\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(attr);\n },\n\n getSVG: function getSVG() {\n return '<svg width=\"230\" height=\"60\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">' + ' <path style=\"fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none\" id=\"path3024\" d=\"m 218.87943,27.464763 c -1.21088,-0.0563 -2.42064,-0.14616 -3.63262,-0.16893 c -5.82495,-0.10948 -18.61676,-0.0226 -22.97385,0.0122 c -7.12848,0.057 -14.25673,0.14021 -21.38495,0.22333 c -9.03765,0.10539 -18.07511,0.22813 -27.11266,0.3422 c -10.2269,0.11878 -20.4538,0.23756 -30.6807,0.35634 c -35.488759,0.4089 -70.975849,0.82793 -106.4669238,0.95195 c 0,0 7.9718628,-5.70244 7.9718628,-5.70244 l 0,0 c 6.374241,0.28694 12.745594,0.64561 19.122722,0.86083 c 28.09499,0.94816 56.21338,0.92473 84.315959,0.32205 c 10.51273,-0.32805 21.0288,-0.56402 31.53819,-0.98412 c 27.47361,-1.09824 54.91405,-2.91665 82.28177,-5.53697 c 0,0 -12.9788,9.32351 -12.9788,9.32351 z\" inkscape:connector-curvature=\"0\" />' + ' <path style=\"fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none\" id=\"path3026\" d=\"m 100.75066,1.6309831 c -7.165239,3.9571 -14.284929,7.47866 -22.036659,10.2707299 c -5.00195,1.80163 -10.10374,3.31886 -15.2402,4.79424 c -8.25878,2.37815 -16.55626,4.65805 -24.9012,6.79479 c -2.89107,0.71593 -5.74687,1.56407 -8.66266,2.20424 c -3.211679,0.70512 -6.49468,1.17333 -9.752959,1.6747 c -5.447101,0.92112 -10.9044008,1.81762 -16.3983488,2.50082 c -1.608931,0.0814 -0.850754,0.10697 -2.275834,-0.0365 C 20.004071,21.041553 19.256899,21.517873 32.515691,19.216243 c 6.21537,-1.05913 12.34875,-2.37668 18.3945,-4.03234 c 8.12719,-2.02803 16.23765,-4.1157 24.26421,-6.4321199 c 5.23574,-1.55053 10.41682,-3.15473 15.46857,-5.12875 c 1.38953,-0.54295 2.7579,-1.12682 4.12253,-1.71603 c 0.98421,-0.42496 3.86537,-1.81801999 2.92296,-1.32600999 C 93.642191,2.6934931 89.529511,4.7073031 85.450031,6.7704531 l 15.300629,-5.1394 z\" inkscape:connector-curvature=\"0\" sodipodi:nodetypes=\"csccsccccccsssccc\" />' + ' <path style=\"fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none\" id=\"path3028\" d=\"m 80.764281,58.068863 c -2.45498,-3.50762 -6.58178,-6.10525 -10.40324,-8.66732 c -4.30614,-2.72676 -7.93958,-6.28283 -12.6021,-8.28702 c -7.39912,-4.50257 -11.70055,-7.85592 -20.85866,-9.23429 c -4.9257,-0.85706 -17.294247,-1.32043 -22.226462,-2.15427 c -3.445882,-0.42869 -6.2035918,0.70541 -9.6845138,0.57715 c -1.496337,-0.0586 -2.99355,-0.0965 -4.491229,-0.12472 l 13.9525278,-6.24562 l 3.25,-1.17153 c 1.441459,0.0813 -1.116338,0.15309 0.325505,0.23016 c 3.574557,0.17902 7.211864,0.0695 10.712655,0.73822 c 4.723107,1.08097 9.443947,2.1624 14.234177,3.05317 c 2.76739,0.64203 3.92627,0.87082 6.64127,1.66289 c 4.42146,1.28993 8.60075,3.01513 12.86503,4.58129 c 1.90199,0.73446 5.05193,1.93181 6.89302,2.7216 c 4.92005,2.11061 9.5916,4.57045 13.9716,7.31023 c 4.16708,2.62011 8.48023,5.20033 11.72012,8.56863 z\" inkscape:connector-curvature=\"0\" sodipodi:nodetypes=\"ccccccccccccscsccc\" />' + '</svg>';\n },\n\n /**\n *\n * propagate all attributes like color, stroke,... to the shape element\n **/\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n if (this.svgNodes !== null) {\n this.svgNodes.attr({ fill: this.color.rgba() });\n }\n\n this._super(attributes);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/Arc.js\":\n/*!********************************!*\\\n !*** ./src/shape/basic/Arc.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Oval figure.\n * @example\n *\n * let arc = new draw2d.shape.basic.Arc({diameter:150, x:50, y:10, startAngle:0, endAngle:45});\n *\n * canvas.add(arc);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.VectorFigure\n */\n_packages2.default.shape.basic.Arc = _packages2.default.SetFigure.extend(\n/** @lends draw2d.shape.basic.Arc.prototype */\n{\n\n NAME: \"draw2d.shape.basic.Arc\",\n\n /**\n * Creates a new figure element which are not assigned to any canvas.\n *\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this.startAngle = 180;\n this.endAngle = 360;\n\n this._super((0, _extend2.default)({ width: 80, height: 50, bgColor: null, color: \"#1B1B1B\" }, attr), setter, getter);\n this.strokeScale = false; // scale the stroke width of the children nodes if the parent resize\n },\n\n /**\n * @template\n **/\n createSet: function createSet() {\n this.canvas.paper.setStart();\n\n var flag = this.endAngle - this.startAngle > 180;\n var a1 = this.startAngle % 360 * Math.PI / 180;\n var a2 = this.endAngle % 360 * Math.PI / 180;\n\n var w2 = this.getWidth() / 2;\n var h2 = this.getHeight() / 2;\n\n this.canvas.paper.path([[\"M\", w2, h2, \"l\", w2 * Math.cos(a1), h2 * Math.sin(a1), \"A\", w2, h2, 0, +flag, 1, w2 + w2 * Math.cos(a2), h2 + h2 * Math.sin(a2), \"z\"]].join(\"\")).attr({ \"fill\": \"#fff0f0\" });\n\n return this.canvas.paper.setFinish();\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/Circle.js\":\n/*!***********************************!*\\\n !*** ./src/shape/basic/Circle.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * A circle figure with basic background and stroke API. <br>\n * A circle can not be streched. <strong>The aspect ration is always 1:1</strong>.\n *\n *\n * @example\n *\n * let shape = new draw2d.shape.basic.Circle({x:40,y:10, stroke:3, color:\"#3d3d3d\", bgColor:\"#3dff3d\"});\n *\n * canvas.add(shape);\n *\n *\n * @author Andreas Herz\n * @extends draw2d.shape.basic.Oval\n */\n_packages2.default.shape.basic.Circle = _packages2.default.shape.basic.Oval.extend(\n/** @lends draw2d.shape.basic.Circle.prototype */\n{\n\n NAME: \"draw2d.shape.basic.Circle\",\n\n /**\n *\n * @param {Object} [attr] the configuration of the shape\n * @param {Object} [setter] add or replace setter methods\n * @param {Object} [getter] add or replace getter methods\n **/\n init: function init(attr, setter, getter) {\n this._super(attr, (0, _extend2.default)({\n // @attr {Number} diameter the diameter of the circle */\n diameter: this.setDiameter,\n // @attr {Number} radius the radius of the circle */\n radius: this.setRadius\n }, setter), (0, _extend2.default)({\n diameter: this.getDiameter,\n radius: this.getRadius\n }, getter));\n\n this.setKeepAspectRatio(true);\n },\n\n /**\n *\n * Set the diameter of the circle. The center of the circle will be retained.\n *\n * @param {Number} d The new diameter of the circle.\n * @since 4.0.0\n * @returns {this}\n **/\n setDiameter: function setDiameter(d) {\n var center = this.getCenter();\n this.setDimension(d, d);\n this.setCenter(center);\n this.fireEvent(\"change:diameter\", { value: d });\n\n return this;\n },\n\n /**\n *\n * Get the diameter of the circle.\n *\n * @since 4.0.0\n * @returns {Number} the diameter of the circle\n **/\n getDiameter: function getDiameter() {\n return this.getWidth();\n },\n\n /**\n *\n * Set the radius of the circle. The center of the circle will be retained.\n *\n * @param {Number} r The new radius of the circle.\n * @since 4.0.0\n * @returns {this}\n **/\n setRadius: function setRadius(r) {\n this.setDiameter(r * 2);\n this.fireEvent(\"change:radius\", { value: r });\n\n return this;\n },\n\n /**\n * Get the radius of the circle\n *\n * @returns {Number} the radius of the circle\n */\n getRadius: function getRadius() {\n return this.getWidth / 2;\n },\n\n /**\n * @inheritdoc\n * @returns {Object}\n */\n getPersistentAttributes: function getPersistentAttributes() {\n var memento = this._super();\n // delete the radius attribute of the parent. Because the \"radius\" is the corner radius\n // of the shape and not the \"radius\" of the circle. Design flaw. :-/\n delete memento.radius;\n\n return memento;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/Diamond.js\":\n/*!************************************!*\\\n !*** ./src/shape/basic/Diamond.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * A Diamond Figure.\n *\n *\n * @example\n *\n * let d1 = new draw2d.shape.basic.Diamond({x:10,y:10});\n * let d2 = new draw2d.shape.basic.Diamond({x:100,y:10, bgColor:\"#f0f000\", alpha:0.7, width:100, height:60});\n *\n * canvas.add(d1);\n * canvas.add(d2);\n *\n * canvas.setCurrentSelection(d2);\n *\n * @author Andreas Herz\n * @extends draw2d.VectorFigure\n */\n_packages2.default.shape.basic.Diamond = _packages2.default.shape.basic.Polygon.extend(\n/** @lends draw2d.shape.basic.Diamond.prototype */\n{\n\n NAME: \"draw2d.shape.basic.Diamond\",\n\n /**\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ bgColor: \"#00a3f6\", color: \"#1B1B1B\" }, attr), setter, getter);\n\n var pos = this.getPosition();\n\n this.resetVertices();\n\n var box = this.getBoundingBox();\n this.addVertex(box.w / 2, 0); // Go to the top center..\n this.addVertex(box.w, box.h / 2); // ...draw line to the right middle\n this.addVertex(box.w / 2, box.h); // ...bottom center...\n this.addVertex(0, box.h / 2); // ...left middle...\n\n // override the selection handler from the polygon. Because the vertices of\n // the diamond are not selectable and modifiable\n //\n this.installEditPolicy(new _packages2.default.policy.figure.RectangleSelectionFeedbackPolicy());\n\n this.setPosition(pos);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/GhostVertexResizeHandle.js\":\n/*!****************************************************!*\\\n !*** ./src/shape/basic/GhostVertexResizeHandle.js ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * ResizeHandle for a vertex edit policy. Click of this kind of resize handles\n * adds a new vertex to the polyline or polygon.\n *\n *\n * @author Andreas Herz\n * @extends draw2d.shape.basic.LineResizeHandle\n */\n_packages2.default.shape.basic.GhostVertexResizeHandle = _packages2.default.shape.basic.LineResizeHandle.extend(\n/** @lends draw2d.shape.basic.GhostVertexResizeHandle.prototype */\n{\n\n NAME: \"draw2d.shape.basic.GhostVertexResizeHandle\",\n\n /**\n *\n *\n */\n init: function init(owner, precursorIndex) {\n this.maxOpacity = 0.35;\n this.precursorIndex = precursorIndex;\n\n this._super({ owner: owner, opacity: this.maxOpacity });\n },\n\n createShapeElement: function createShapeElement() {\n var shape = this._super();\n\n shape.attr({ \"cursor\": \"pointer\" });\n\n return shape;\n },\n\n /**\n *\n * Set the alpha blending of this figure.\n *\n * @param {Number} percent Value between [0..1].\n * @template\n **/\n setAlpha: function setAlpha(percent) {\n this._super(Math.min(this.maxOpacity, Math.max(0, parseFloat(percent))));\n\n return this;\n },\n\n /**\n *\n * Called when a user clicks on the element\n *\n * @template\n */\n onClick: function onClick() {\n var cmd = new _packages2.default.command.CommandAddVertex(this.owner, this.precursorIndex + 1, this.getAbsoluteX() + this.getWidth() / 2, this.getAbsoluteY() + this.getHeight() / 2);\n this.getCanvas().getCommandStack().execute(cmd);\n },\n\n /**\n * Called if the drag and drop action begins. You can return [false] if you\n * want avoid the that the figure can be move.\n *\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @type {Boolean}\n **/\n onDragStart: function onDragStart(x, y, shiftKey, ctrlKey) {\n return true;\n },\n\n /**\n *\n * Called from the framework during a drag&drop operation\n *\n * @param {Number} dx the x difference between the start of the drag drop operation and now\n * @param {Number} dy the y difference between the start of the drag drop operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n * @returns {Boolean}\n **/\n onDrag: function onDrag(dx, dy, dx2, dy2) {\n return true;\n },\n\n /**\n * Called after a drag and drop action.<br>\n * Sub classes can override this method to implement additional stuff. Don't forget to call the super implementation via <code>this._super();</code>\n *\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @returns {Boolean}\n */\n onDragEnd: function onDragEnd(x, y, shiftKey, ctrlKey) {\n // fire an event\n // @since 5.3.3\n this.fireEvent(\"dragend\", { x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n\n return true;\n },\n\n /**\n *\n * Controls the location of the resize handle\n *\n * @template\n **/\n relocate: function relocate() {\n var p1 = this.owner.getVertices().get(this.precursorIndex);\n var p2 = this.owner.getVertices().get(this.precursorIndex + 1);\n\n this.setPosition((p2.x - p1.x) / 2 + p1.x - this.getWidth() / 2, (p2.y - p1.y) / 2 + p1.y - this.getHeight() / 2);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/Image.js\":\n/*!**********************************!*\\\n !*** ./src/shape/basic/Image.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Simple Image shape.\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.node.Node\n */\n_packages2.default.shape.basic.Image = _packages2.default.shape.node.Node.extend(\n/** @lends draw2d.shape.basic.Image.prototype */\n{\n\n NAME: \"draw2d.shape.basic.Image\",\n\n /**\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(attr, (0, _extend2.default)({\n // @attr {String} path the image path (absolute or relative) of the shape */\n path: this.setPath\n }, setter), (0, _extend2.default)({\n path: this.getPath\n }, getter));\n },\n\n /**\n * \n * Set the image path attribute of the Image shape and repaint them.\n * The path can be relative or absolute\n *\n * @param path\n * @since 2.8.0\n */\n setPath: function setPath(path) {\n this.path = path;\n\n if (this.shape !== null) {\n this.shape.attr({ src: this.path });\n }\n this.fireEvent(\"change:path\", { value: this.path });\n\n return this;\n },\n\n /**\n * \n * Return the image path attribute of the shape.\n *\n * @returns {String}\n * @since 2.8.0\n */\n getPath: function getPath() {\n return this.path;\n },\n\n /**\n * @inheritdoc\n */\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return this;\n }\n\n attributes = attributes || {};\n\n attributes.x = this.getAbsoluteX();\n attributes.y = this.getAbsoluteY();\n attributes.width = this.getWidth();\n attributes.height = this.getHeight();\n attributes.src = this.path;\n\n // propagate the width/height and the display:inline-block as CSS attribute as well because Chrome\n // did some \"flickering\" in some versions and sometimes the image disappear complete\n $(this.shape.node).css({ display: \"inline-block\", \"width\": attributes.width, \"height\": attributes.height });\n\n this._super(attributes);\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n createShapeElement: function createShapeElement() {\n return this.canvas.paper.image(this.path, this.getX(), this.getY(), this.getWidth(), this.getHeight());\n },\n\n /**\n * @inheritdoc\n */\n getPersistentAttributes: function getPersistentAttributes() {\n return (0, _extend2.default)(this._super(), {\n path: this.path\n });\n },\n\n /**\n * @inheritdoc\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this._super(memento);\n if (typeof memento.path !== \"undefined\") {\n this.setPath(memento.path);\n }\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/Label.js\":\n/*!**********************************!*\\\n !*** ./src/shape/basic/Label.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _JSONUtil = __webpack_require__(/*! ../../util/JSONUtil */ \"./src/util/JSONUtil.js\");\n\nvar _JSONUtil2 = _interopRequireDefault(_JSONUtil);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Implements a simple text label.\n *\n *\n * @example\n *\n * let shape = new draw2d.shape.basic.Label({text:\"This is a simple label\", x:40, y:10});\n *\n * canvas.add(shape);\n *\n * @author Andreas Herz\n * @extends draw2d.SetFigure\n */\n_packages2.default.shape.basic.Label = _packages2.default.SetFigure.extend(\n/** @lends draw2d.shape.basic.Label.prototype */\n{\n\n NAME: \"draw2d.shape.basic.Label\",\n\n FONT_FALLBACK: {\n 'Georgia': 'Georgia, serif',\n 'Palatino Linotype': '\"Palatino Linotype\", \"Book Antiqua\", Palatino, serif',\n 'Times New Roman': '\"Times New Roman\", Times, serif',\n 'Arial': 'Arial, Helvetica, sans-serif',\n 'Arial Black': '\"Arial Black\", Gadget, sans-serif',\n 'Comic Sans MS': '\"Comic Sans MS\", cursive, sans-serif',\n 'Impact': 'Impact, Charcoal, sans-serif',\n 'Lucida Sans Unicode': '\"Lucida Sans Unicode\", \"Lucida Grande\", sans-serif',\n 'Tahoma, Geneva': 'Tahoma, Geneva, sans-seri',\n 'Trebuchet MS': '\"Trebuchet MS\", Helvetica, sans-serif',\n 'Verdana': 'Verdana, Geneva, sans-serif',\n 'Courier New': '\"Courier New\", Courier, monospace',\n 'Lucida Console': '\"Lucida Console\", Monaco, monospace'\n },\n\n /**\n * Creates a new text element.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n\n this.text = \"\";\n // for performance reasons\n //\n this.cachedWidth = null;\n this.cachedHeight = null;\n this.cachedMinWidth = null;\n this.cachedMinHeight = null;\n\n // appearance of the shape\n //\n this.fontSize = 12;\n this.fontColor = new _packages2.default.util.Color(\"#080808\");\n this.fontFamily = null;\n this.padding = { top: 4, right: 4, bottom: 4, left: 4 };\n\n this.outlineStroke = 0;\n this.outlineColor = new _packages2.default.util.Color(null);\n\n this.bold = false;\n\n // behavior of the shape\n //\n this.editor = null;\n\n this._super((0, _extend2.default)({ stroke: 1, width: 1, height: 1, resizeable: false }, attr), (0, _extend2.default)({\n // @attr {String} text the text to show */\n text: this.setText,\n // @attr {String} set the editor to use see {@link draw2d.ui.LabelEditor} */\n editor: this.installEditor,\n // @attr {Number} outlineStroke the line width of the text to draw. Fill color and outline of the text can be different. */\n outlineStroke: this.setOutlineStroke,\n // @attr {String|draw2d.util.Color} outlineColor the outline color of the text */\n outlineColor: this.setOutlineColor,\n // @attr {String} fontFamily the font to use*/\n fontFamily: this.setFontFamily,\n // @attr {Number} fontSize the font size to use */\n fontSize: this.setFontSize,\n // @attr {String|draw2d.util.Color} fontColor the font color */\n fontColor: this.setFontColor,\n // @attr {Number} padding the padding in pixel around the text */\n padding: this.setPadding,\n // @attr {Boolean} bold indicator if bold text should be used*/\n bold: this.setBold\n }, setter), (0, _extend2.default)({\n text: this.getText,\n outlineStroke: this.getOutlineStroke,\n outlineColor: this.getOutlineColor,\n fontFamily: this.getFontFamily,\n fontSize: this.getFontSize,\n fontColor: this.getFontColor,\n padding: this.getPadding,\n bold: this.isBold\n }, getter));\n\n this.installEditPolicy(new _packages2.default.policy.figure.AntSelectionFeedbackPolicy());\n\n // some performance improvements\n this.lastAppliedLabelRotation = \"\";\n this.lastAppliedTextAttributes = {};\n },\n\n /**\n *\n * Creates the shape object for a text node.\n *\n * @private\n **/\n createSet: function createSet() {\n return this.canvas.paper.text(0, 0, this.text);\n },\n\n /**\n *\n * Set the canvas element of this figures.\n *\n * @param {draw2d.Canvas} canvas the new parent of the figure or null\n * @private\n */\n setCanvas: function setCanvas(canvas) {\n this.clearCache();\n this._super(canvas);\n this.clearCache();\n },\n\n /**\n *\n * Trigger the repaint of the element and transport all style properties to the visual representation.<br>\n * Called by the framework.\n *\n * @private\n **/\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null || this.parent && this.parent.repaintBlocked === true) {\n return;\n }\n\n // style the label\n var lattr = this.calculateTextAttr();\n lattr.text = this.text;\n\n var attrDiff = _JSONUtil2.default.flatDiff(lattr, this.lastAppliedTextAttributes);\n this.lastAppliedTextAttributes = lattr;\n\n // the two \"attr\" calls takes 2/3 of the complete method call (chrome performance check).\n // now we check if any changes happens and call this method only if necessary.\n if (Object.getOwnPropertyNames(attrDiff).length > 0) {\n this.svgNodes.attr(lattr);\n // set of the x/y must be done AFTER the font-size and bold has been set.\n // Reason: the getBBox method needs the font attributes for calculation\n this.svgNodes.attr({\n x: this.padding.left + this.stroke,\n y: this.svgNodes.getBBox(true).height / 2 + this.padding.top + this.getStroke()\n });\n }\n this._super(attributes);\n },\n\n /**\n *\n * @private\n */\n calculateTextAttr: function calculateTextAttr() {\n var lattr = {\n \"text-anchor\": \"start\",\n \"font-size\": this.fontSize,\n \"font-weight\": this.bold === true ? \"bold\" : \"normal\",\n fill: this.fontColor.rgba(),\n stroke: this.outlineColor.rgba(),\n \"stroke-width\": this.outlineStroke\n };\n if (this.fontFamily !== null) {\n lattr[\"font-family\"] = this.fontFamily;\n }\n return lattr;\n },\n\n /**\n * @private\n * @returns {this}\n */\n applyTransformation: function applyTransformation() {\n var ts = \"R\" + this.rotationAngle;\n // if(ts!==this.lastAppliedLabelRotation){\n this.shape.transform(ts);\n this.lastAppliedLabelRotation = ts;\n // }\n\n this.svgNodes.transform(\"R\" + this.rotationAngle + \"T\" + this.getAbsoluteX() + \",\" + this.getAbsoluteY());\n\n return this;\n },\n\n /**\n *\n * Set the new font size in [pt].\n *\n * @returns {this}\n * @param {Number} size The new font size in <code>pt</code>\n **/\n setFontSize: function setFontSize(size) {\n this.clearCache();\n this.fontSize = size;\n\n this.repaint();\n\n this.fireEvent(\"change:fontSize\", { value: this.fontSize });\n this.fireEvent(\"resize\");\n\n // Update the resize handles if the user change the position of the element via an API call.\n //\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this.canvas, _this);\n }\n });\n\n return this;\n },\n\n /**\n *\n * Return the current used font size in px.\n *\n * @returns {Number}\n * @since 4.0.1\n */\n getFontSize: function getFontSize() {\n return this.fontSize;\n },\n\n /**\n *\n * Set the label to <b>bold</b> or <b>normal</b> font weight.\n *\n * @param {Boolean} bold The bold flag for the label\n * @since 2.4.1\n * @returns {this}\n **/\n setBold: function setBold(bold) {\n this.clearCache();\n this.bold = bold;\n this.repaint();\n\n this.fireEvent(\"change:bold\", { value: this.bold });\n this.fireEvent(\"resize\");\n\n // Update the resize handles if the user change the position of the element via an API call.\n //\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this.canvas, _this);\n }\n });\n\n return this;\n },\n\n /**\n *\n * Return the \"bold\" attribute of the label\n *\n * @since 5.0.0\n * @returns {Boolean}\n */\n isBold: function isBold() {\n return this.bold;\n },\n\n /**\n *\n * Set the outline color of the font.\n *\n * @param {draw2d.util.Color/String} color The new color of the line.\n * @since 4.2.1\n * @returns {this}\n **/\n setOutlineColor: function setOutlineColor(color) {\n this.outlineColor = new _packages2.default.util.Color(color);\n this.repaint();\n this.fireEvent(\"change:outlineColor\", { value: this.outlineColor });\n\n return this;\n },\n\n /**\n *\n * The outline color of the text\n *\n * @returns {draw2d.util.Color}\n * @since 4.2.1\n */\n getOutlineColor: function getOutlineColor() {\n return this.outlineColor;\n },\n\n /**\n *\n * Set the stroke of the text to use.\n *\n * @param {Number} w The new line width of the figure\n * @since 4.2.1\n * @returns {this}\n **/\n setOutlineStroke: function setOutlineStroke(w) {\n this.outlineStroke = w;\n this.repaint();\n this.fireEvent(\"change:outlineStroke\", { value: this.outlineStroke });\n\n return this;\n },\n\n /**\n *\n * The used outline line width.\n *\n * @type {Number}\n * @since 4.2.1\n **/\n getOutlineStroke: function getOutlineStroke() {\n return this.outlineStroke;\n },\n\n /**\n *\n * Set the color of the font.\n *\n * @param {draw2d.util.Color|String} color The new color of the line.\n * @returns {this}\n **/\n setFontColor: function setFontColor(color) {\n this.fontColor = new _packages2.default.util.Color(color);\n this.repaint();\n this.fireEvent(\"change:fontColor\", { value: this.fontColor });\n\n return this;\n },\n\n /**\n *\n * The current used font color\n *\n * @returns {draw2d.util.Color}\n */\n getFontColor: function getFontColor() {\n return this.fontColor;\n },\n\n /**\n *\n * Set the padding of the element\n *\n * // Alternatively you can use the attr method:\n * //\n * // set the padding for top,left,bottom,right in one call\n * figure.attr({\n * padding: 3\n * });\n *\n * // update the padding left and top\n * figure.attr({\n * padding: {left:3, top:30}\n * });\n *\n * @param {Number|Object} padding The new padding\n * @returns {this}\n **/\n setPadding: function setPadding(padding) {\n this.clearCache();\n if (typeof padding === \"number\") {\n this.padding = { top: padding, right: padding, bottom: padding, left: padding };\n } else {\n this.padding = (0, _extend2.default)(this.padding, padding);\n }\n this.repaint();\n this.fireEvent(\"change:padding\", { value: this.padding });\n\n return this;\n },\n\n /**\n *\n * Get the padding of the element.\n *\n * @since 4.0.1\n **/\n getPadding: function getPadding() {\n return this.padding;\n },\n\n /**\n *\n * Set the font family to use. If you use the shown font names the typical fallback\n * font are installed as well.\n *\n * <b>Serif Fonts</b>\n * <ul>\n * <li><span style=\"font-family:'Georgia'\">Georgia</span></li>\n * <li><span style=\"font-family:'Palatino Linotype'\">Palatino Linotype</span></li>\n * <li><span style=\"font-family:'Times New Roman'\">Times New Roman</span></li>\n * </ul>\n *\n * <b>Sans-Serif Fonts</b>\n * <ul>\n * <li><span style=\"font-family:'Arial'\">Arial</span></li>\n * <li><span style=\"font-family:'Arial Black'\">Arial Black</span></li>\n * <li><span style=\"font-family:'Comic Sans MS'\">Comic Sans MS</span></li>\n * <li><span style=\"font-family:'Impact, Charcoal'\">Impact, Charcoal</span></li>\n * <li><span style=\"font-family:'Lucida Sans Unicode'\">Lucida Sans Unicode</span></li>\n * <li><span style=\"font-family:'Tahoma, Geneva'\">Tahoma, Geneva</span></li>\n * <li><span style=\"font-family:'Trebuchet MS'\">Trebuchet MS</span> </li>\n * <li><span style=\"font-family:'Verdana'\">Verdana</span></li>\n * </ul>\n *\n * <b>Monospace Fonts</b>\n * <ul>\n * <li><span style=\"font-family:'Courier New'\">Courier New</span></li>\n * <li><span style=\"font-family:'Lucida Console'\">Lucida Console</span></li>\n * </ul>\n *\n * @param {String} font The font to use\n * @returns {this}\n **/\n setFontFamily: function setFontFamily(font) {\n this.clearCache();\n\n // check for fallback\n //\n if (typeof font !== \"undefined\" && font !== null && typeof this.FONT_FALLBACK[font] !== \"undefined\") {\n font = this.FONT_FALLBACK[font];\n }\n\n this.fontFamily = font;\n this.repaint();\n this.fireEvent(\"change:fontFamily\", { value: this.fontFamily });\n\n return this;\n },\n\n /**\n *\n * Returns the used font family of the label.\n *\n * @returns {String}\n */\n getFontFamily: function getFontFamily() {\n return this.fontFamily;\n },\n\n /**\n *\n * A Label did have \"autosize\". Do nothing at all.\n *\n * @returns {this}\n **/\n setDimension: function setDimension(w, h) {\n this.clearCache();\n\n this._super(w, h);\n\n return this;\n },\n\n /**\n *\n * clear the internal cache for width/height precalculation\n * @private\n */\n clearCache: function clearCache() {\n this.portRelayoutRequired = true;\n this.cachedMinWidth = null;\n this.cachedMinHeight = null;\n this.cachedWidth = null;\n this.cachedHeight = null;\n this.lastAppliedTextAttributes = {};\n\n return this;\n },\n\n /**\n *\n * This value is relevant for the interactive resize of the figure.\n *\n * @returns {Number} Returns the min. width of this object.\n */\n getMinWidth: function getMinWidth() {\n if (this.shape === null) {\n return 0;\n }\n\n if (this.cachedMinWidth === null) {\n this.cachedMinWidth = this.svgNodes.getBBox(true).width + this.padding.left + this.padding.right + 2 * this.getStroke();\n }\n\n return this.cachedMinWidth;\n },\n\n /**\n *\n * This value is relevant for the interactive resize of the figure.\n *\n * @returns {Number} Returns the min. width of this object.\n */\n getMinHeight: function getMinHeight() {\n if (this.shape === null) {\n return 0;\n }\n\n if (this.cachedMinHeight === null) {\n this.cachedMinHeight = this.svgNodes.getBBox(true).height + this.padding.top + this.padding.bottom + 2 * this.getStroke();\n }\n\n return this.cachedMinHeight;\n },\n\n /**\n *\n * Return the calculate width of the set. This calculates the bounding box of all elements.\n *\n * @returns {Number} the calculated width of the label\n **/\n getWidth: function getWidth() {\n if (this.shape === null) {\n return 0;\n }\n\n if (this.cachedWidth === null) {\n if (this.resizeable === true) {\n this.cachedWidth = Math.max(this.width, this.getMinWidth());\n } else {\n this.cachedWidth = this.getMinWidth();\n }\n }\n\n return this.cachedWidth;\n },\n\n /**\n *\n * Return the calculated height of the set. This calculates the bounding box of all elements.\n *\n * @returns {Number} the calculated height of the label\n */\n getHeight: function getHeight() {\n if (this.shape === null) {\n return 0;\n }\n\n if (this.cachedHeight === null) {\n this.cachedHeight = Math.max(this.height, this.getMinHeight());\n }\n\n return this.cachedHeight;\n },\n\n /**\n *\n * Set an editor for the label. This can be a dialog or inplace editor for the\n * Text.<br>\n * The editor will be activated if you doubleClick on the label.\n *\n * @param {draw2d.ui.LabelEditor|String} editor\n */\n installEditor: function installEditor(editor) {\n if (typeof editor === \"string\") {\n editor = eval(\"new \" + editor + \"()\");\n }\n this.editor = editor;\n\n return this;\n },\n\n /**\n *\n * Called when a user dbl clicks on the element\n *\n */\n onDoubleClick: function onDoubleClick() {\n if (this.editor !== null) {\n this.editor.start(this);\n }\n },\n\n /**\n *\n * Returns the current text of the label.\n *\n * @returns the current display text of the label\n * @type {String}\n **/\n getText: function getText() {\n return this.text;\n },\n\n /**\n *\n * Set the text for the label. Use \\n for multiline text.\n *\n * @param {String} text The new text for the label.\n * @returns {this}\n **/\n setText: function setText(text) {\n this.clearCache();\n this.text = text;\n\n this.repaint();\n // Update the resize handles if the user change the position of the element via an API call.\n //\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this.canvas, _this);\n }\n });\n\n this.fireEvent(\"resize\");\n this.fireEvent(\"change:text\", { value: this.text });\n\n if (this.parent !== null) {\n this.parent.repaint();\n }\n\n return this;\n },\n\n /**\n *\n * Detect whenever the hands over coordinate is inside the figure.\n * The default implementation is a simple bounding box test.\n *\n * @param {Number} iX\n * @param {Number} iY\n * @param {Number} [corona]\n *\n * @returns {Boolean}\n */\n hitTest: function hitTest(x, y, corona) {\n\n // apply a simple bounding box test if the label isn'T rotated\n //\n if (this.rotationAngle === 0) {\n return this._super(x, y, corona);\n }\n\n var boundingBox = this.getBoundingBox();\n if (typeof corona === \"number\") {\n boundingBox.scale(corona, corona);\n }\n\n // rotate the box with the current matrix of the\n // shape\n var matrix = this.shape.matrix;\n var points = boundingBox.getVertices();\n points.each(function (i, point) {\n var x = matrix.x(point.x, point.y);\n var y = matrix.y(point.x, point.y);\n point.x = x;\n point.y = y;\n });\n\n var polySides = 4;\n\n var j = polySides - 1;\n var oddNodes = false;\n\n for (var i = 0; i < polySides; i++) {\n var pi = points.get(i);\n var pj = points.get(j);\n if ((pi.y < y && pj.y >= y || pj.y < y && pi.y >= y) && (pi.x <= x || pj.x <= x)) {\n if (pi.x + (y - pi.y) / (pj.y - pi.y) * (pj.x - pi.x) < x) {\n oddNodes = !oddNodes;\n }\n }\n j = i;\n }\n return oddNodes;\n },\n\n /**\n *\n * Return an objects with all important attributes for XML or JSON serialization\n *\n * @returns {Object}\n */\n getPersistentAttributes: function getPersistentAttributes() {\n var memento = this._super();\n\n memento.text = this.text;\n memento.outlineStroke = this.outlineStroke;\n memento.outlineColor = this.outlineColor.rgba();\n memento.fontSize = this.fontSize;\n memento.fontColor = this.fontColor.rgba();\n memento.fontFamily = this.fontFamily;\n\n if (this.editor !== null) {\n memento.editor = this.editor.NAME;\n }\n return memento;\n },\n\n /**\n *\n * Apply all attributes from the serialized properties to the shape.\n * Used during JSON serialisation.\n *\n * @param {Object} memento\n * @returns {this}\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this._super(memento);\n if (typeof memento.text !== \"undefined\") {\n this.setText(memento.text);\n }\n if (typeof memento.outlineStroke !== \"undefined\") {\n this.setOutlineStroke(memento.outlineStroke);\n }\n if (typeof memento.outlineColor !== \"undefined\") {\n this.setOutlineColor(memento.outlineColor);\n }\n if (typeof memento.fontFamily !== \"undefined\") {\n this.setFontFamily(memento.fontFamily);\n }\n if (typeof memento.fontSize !== \"undefined\") {\n this.setFontSize(memento.fontSize);\n }\n if (typeof memento.fontColor !== \"undefined\") {\n this.setFontColor(memento.fontColor);\n }\n\n if (typeof memento.editor === \"string\") {\n this.installEditor(eval(\"new \" + memento.editor + \"()\"));\n }\n\n return this;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/Line.js\":\n/*!*********************************!*\\\n !*** ./src/shape/basic/Line.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _JSONUtil = __webpack_require__(/*! ../../util/JSONUtil */ \"./src/util/JSONUtil.js\");\n\nvar _JSONUtil2 = _interopRequireDefault(_JSONUtil);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n/**\n * @class\n * The base class for all visible elements inside a canvas.\n *\n *\n * @example\n *\n * // Create the line and modify the start/end after inserting them into\n * // the canvas\n * let line1 = new draw2d.shape.basic.Line({startX:30, startY:30, endX:100, endY:80});\n *\n * canvas.add(line1);\n *\n * // Create the line with a given start/end coordinate in the constructor\n * //\n * let line2 = new draw2d.shape.basic.Line({\n * startX:20,\n * startY:80,\n * endX:200,\n * endY:150,\n * stroke:3,\n * color:\"#1d1dff\"\n * });\n * canvas.add(line2);\n *\n * @author Andreas Herz\n * @extends draw2d.Figure\n */\n_packages2.default.shape.basic.Line = _packages2.default.Figure.extend(\n/** @lends draw2d.shape.basic.Line.prototype */\n{\n\n NAME: \"draw2d.shape.basic.Line\",\n\n DEFAULT_COLOR: new _packages2.default.util.Color(0, 0, 0),\n\n /**\n * Creates a new figure element which are not assigned to any canvas witht he given start and\n * end coordinate.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n // click area for the line hit test\n this.corona = 10;\n this.isGlowing = false;\n this.lineColor = this.DEFAULT_COLOR;\n this.stroke = 1;\n this.outlineStroke = 0;\n this.outlineColor = new _packages2.default.util.Color(null);\n this.outlineVisible = false;\n\n this.draggedSegment = null;\n\n this.dasharray = null;\n\n this.start = new _packages2.default.geo.Point(30, 30);\n this.end = new _packages2.default.geo.Point(100, 100);\n\n this.vertices = new _packages2.default.util.ArrayList();\n this.vertices.add(this.start.clone());\n this.vertices.add(this.end.clone());\n\n this._super((0, _extend2.default)({\n deleteable: false,\n selectable: true\n }, attr), (0, _extend2.default)({}, {\n // @attr {Number} start the coordinates of the start point */\n start: this.setStartPosition,\n // @attr {Number} startX the x coordinate of the start point */\n startX: this.setStartX,\n // @attr {Number} startY the y coordinate of the start point */\n startY: this.setStartY,\n // @attr {Number} end the coordinates of the end point */\n end: this.setEndPosition,\n // @attr {Number} endX the x coordinate of the end */\n endX: this.setEndX,\n // @attr {Number} endY the y coordinate of the end */\n endY: this.setEndY,\n // @attr {Number} vertices the x coordinate of the start point */\n vertices: this.setVertices,\n // @attr {String | draw2d.util.Color} outlineColor the outline color of the line */\n outlineColor: this.setOutlineColor,\n // @attr {Number} outlineStroke the line width of the outline */\n outlineStroke: this.setOutlineStroke,\n // @attr {String|draw2d.util.Color} color the color of the line */\n color: this.setColor,\n // @attr {Number} stroke the line width of the color */\n stroke: this.setStroke,\n corona: this.setCorona,\n // @attr {String} dasharray the line pattern see {@link draw2d.shape.basic.Line#setDashArray} for more information*/\n dasharray: this.setDashArray,\n // @attr {Boolean} glow the glow flag for the shape. The representation of the \"glow\" depends on the shape */\n glow: this.setGlow\n }, setter), (0, _extend2.default)({}, {\n start: this.getStartPosition,\n end: this.getEndPosition,\n outlineColor: this.getOutlineColor,\n outlineStroke: this.getOutlineStroke,\n stroke: this.getStroke,\n corona: this.getCorona,\n color: this.getColor,\n dasharray: this.getDashArray,\n vertices: this.getVertices\n }, getter));\n\n // some router installs a edit policy. In this case we want delete them\n //\n if (this.editPolicy.getSize() === 0) {\n this.installEditPolicy(new _packages2.default.policy.line.LineSelectionFeedbackPolicy());\n }\n },\n\n /**\n *\n * Set the outline color of the line.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * outlineColor: color\n * });\n *\n * @param {draw2d.util.Color/String} color The new color of the line.\n * @since 4.2.1\n **/\n setOutlineColor: function setOutlineColor(color) {\n this.outlineColor = new _packages2.default.util.Color(color);\n this.repaint();\n this.fireEvent(\"change:outlineColor\", { value: this.outlineColor });\n\n return this;\n },\n\n /**\n *\n * The outline color of the text\n *\n * @returns {draw2d.util.Color}\n * @since 4.2.1\n */\n getOutlineColor: function getOutlineColor() {\n return this.outlineColor;\n },\n\n /**\n *\n * Set the outline stroke of the line to use.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * outlineStroke: w\n * });\n *\n * @param {Number} w The new outline width of the line\n * @since 4.2.1\n **/\n setOutlineStroke: function setOutlineStroke(w) {\n this.outlineStroke = w;\n this.repaint();\n this.fireEvent(\"change:outlineStroke\", { value: this.outlineStroke });\n\n return this;\n },\n\n /**\n *\n * The used outline line width.\n *\n * @returns {Number}\n * @since 4.2.1\n **/\n getOutlineStroke: function getOutlineStroke() {\n return this.outlineStroke;\n },\n\n /**\n *\n * Called if the drag and drop action begins. You can return [false] if you\n * want avoid that the figure can be move.\n *\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @returns {Boolean} true if the figure accepts dragging\n **/\n onDragStart: function onDragStart(x, y, shiftKey, ctrlKey, isFaked) {\n var result = this._super(x, y, shiftKey, ctrlKey);\n\n if (result === true && isFaked !== true) {\n this.draggedSegment = { index: 0, start: this.start, end: this.end };\n }\n return result;\n },\n\n /**\n *\n * Don't call them manually. This will be done by the framework.<br>\n * Will be called if the object are moved via drag and drop.\n * Sub classes can override this method to implement additional stuff. Don't forget to call\n * the super implementation via <code>this._super(dx, dy, dx2, dy2);</code>\n * @private\n * @param {Number} dx the x difference between the start of the drag drop operation and now\n * @param {Number} dy the y difference between the start of the drag drop operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n **/\n onDrag: function onDrag(dx, dy, dx2, dy2) {\n if (this.command === null) {\n return;\n }\n\n this.vertices.each(function (i, e) {\n e.translate(dx2, dy2);\n });\n this.command.updateVertices(this.vertices.clone());\n\n // start/end are separate draw2d.geo.Point objects. Required for routing and determining if a node is dragged away\n // from the connection. In this case we must modify the start/end by hand\n this.start.translate(dx2, dy2);\n this.end.translate(dx2, dy2);\n\n this.svgPathString = null;\n this._super(dx, dy, dx2, dy2);\n },\n\n /**\n *\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onDragEnd: function onDragEnd(x, y, shiftKey, ctrlKey) {\n var _this2 = this;\n\n // Element ist zwar schon an seine Position, das Command muss aber trotzdem\n // in dem CommandStack gelegt werden damit das Undo funktioniert.\n //\n this.isInDragDrop = false;\n this.draggedSegment = null;\n\n if (this.command === null) {\n return;\n }\n\n this.canvas.getCommandStack().execute(this.command);\n this.command = null;\n this.isMoving = false;\n\n // notify all installed policies\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.onDragEnd(_this2.canvas, _this2, x, y, shiftKey, ctrlKey);\n }\n });\n\n // inform all other listener\n this.fireEvent(\"move\", { figure: this, dx: 0, dy: 0 });\n\n // fire an event\n // @since 5.3.3\n this.fireEvent(\"dragend\", { x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n },\n\n /**\n *\n * Called when a user clicks on the element.\n *\n * // Alternatively you can register for this event with\n * figure.on(\"click\", function(emitterFigure){\n * alert(\"clicked\");\n * });\n *\n * @template\n * @since 4.0.0\n */\n onClick: function onClick() {},\n\n /**\n *\n * Set the line style for this object.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * dasharray: dashPattern\n * });\n *\n * @param {String} dashPattern Can be one of this [\"\", \"-\", \".\", \"-.\", \"-..\", \". \", \"- \", \"--\", \"- .\", \"--.\", \"--..\"]\n */\n setDashArray: function setDashArray(dashPattern) {\n this.dasharray = dashPattern;\n this.repaint();\n\n this.fireEvent(\"change:dashArray\", { value: this.dasharray });\n\n return this;\n },\n\n /**\n *\n * Get the line style for this object.\n *\n * // Alternatively you can use the attr method:\n * figure.attr(\"dasharray\");\n *\n * @since 5.1.0\n */\n getDashArray: function getDashArray() {\n return this.dasharray;\n },\n\n /**\n *\n * Called by the framework. Don't call them manually.\n *\n * @private\n **/\n createShapeElement: function createShapeElement() {\n var set = this.canvas.paper.set();\n\n // the drop shadow or border line\n set.push(this.canvas.paper.path(\"M\" + this.start.x + \" \" + this.start.y + \"L\" + this.end.x + \" \" + this.end.y));\n // the main path\n set.push(this.canvas.paper.path(\"M\" + this.start.x + \" \" + this.start.y + \"L\" + this.end.x + \" \" + this.end.y));\n set.node = set.items[1].node;\n\n // indicate that the outline is visible at the moment\n // the repaint update the status correct and set the attributes for\n // the first time\n this.outlineVisible = true; //this.outlineStroke>0;\n\n return set;\n },\n\n /**\n * @inheritdoc\n *\n */\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n // don't override existing values\n //\n if (typeof attributes === \"undefined\") {\n attributes = {\n \"stroke\": this.lineColor.rgba(),\n \"stroke-width\": this.stroke,\n \"path\": [\"M\", this.start.x, this.start.y, \"L\", this.end.x, this.end.y].join(\" \")\n };\n } else {\n // may a router has calculate another path. don't override them.\n if (typeof attributes.path === \"undefined\") {\n attributes.path = [\"M\", this.start.x, this.start.y, \"L\", this.end.x, this.end.y].join(\" \");\n }\n _JSONUtil2.default.ensureDefault(attributes, \"stroke\", this.lineColor.rgba());\n _JSONUtil2.default.ensureDefault(attributes, \"stroke-width\", this.stroke);\n }\n\n _JSONUtil2.default.ensureDefault(attributes, \"stroke-dasharray\", this.dasharray);\n this._super(attributes);\n\n if (this.outlineStroke > 0) {\n this.shape.items[0].attr({\n \"stroke-width\": this.outlineStroke + this.stroke,\n \"stroke\": this.outlineColor.rgba()\n });\n if (this.outlineVisible === false) this.shape.items[0].show();\n this.outlineVisible = true;\n } else if (this.outlineVisible === true) {\n // reset them once\n this.shape.items[0].attr({ \"stroke-width\": 0, \"stroke\": \"none\" });\n this.shape.items[0].hide();\n this.outlineVisible = false;\n }\n },\n\n /**\n *\n * Moves the element to the background. Additional\n * the internal model changed as well.\n *\n * @since 4.7.2\n */\n toBack: function toBack(figure) {\n this._super(figure);\n\n if (this.outlineVisible === true) {\n this.shape.items[0].insertBefore(this.shape.items[1]);\n }\n\n return this;\n },\n\n /**\n *\n * Highlight the element or remove the highlighting\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * glow: flag\n * });\n *\n * @param {Boolean} flag indicates glow/noGlow\n * @template\n */\n setGlow: function setGlow(flag) {\n if (this.isGlowing === flag) {\n return;\n }\n\n if (flag === true) {\n // store old values for restore\n this._lineColor = this.lineColor;\n this._stroke = this.stroke;\n\n this.setColor(new _packages2.default.util.Color(\"#3f72bf\"));\n this.setStroke(this.stroke * 4 | 0);\n } else {\n this.setColor(this._lineColor);\n this.setStroke(this._stroke);\n }\n\n this.isGlowing = flag;\n\n return this;\n },\n\n /**\n * You can't drag&drop the resize handles if the line not resizeable.\n * @returns boolean\n **/\n isResizeable: function isResizeable() {\n return true;\n },\n\n /**\n * Set the line width. This enforce a repaint of the line.\n * This method fires a <i>document dirty</i> event.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * stroke: w\n * });\n *\n * @param {Number} w The new line width of the figure.\n **/\n setStroke: function setStroke(w) {\n this.stroke = parseFloat(w);\n\n this.repaint();\n this.fireEvent(\"change:stroke\", { value: this.stroke });\n\n return this;\n },\n\n /**\n *\n * The used line width.\n *\n * @returns {Number}\n **/\n getStroke: function getStroke() {\n return this.stroke;\n },\n\n /**\n * click area for the line hit test.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * corona: w\n * });\n *\n * @param {Number} w The new click hit offset\n **/\n setCorona: function setCorona(w) {\n this.corona = parseFloat(w);\n return this;\n },\n\n /**\n *\n * The used corona hitTest area.\n *\n * @returns {Number}\n **/\n getCorona: function getCorona() {\n return this.corona;\n },\n\n /**\n *\n * Set the color of the line.\n * This method fires a <i>document dirty</i> event.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * color: color\n * });\n *\n * @param {draw2d.util.Color|String} color The new color of the line.\n **/\n setColor: function setColor(color) {\n this.lineColor = new _packages2.default.util.Color(color);\n this.repaint();\n this.fireEvent(\"change:color\", { value: this.lineColor });\n\n return this;\n },\n\n /**\n *\n * Return the current paint color.\n *\n * @returns {draw2d.util.Color} The paint color of the line.\n **/\n getColor: function getColor() {\n return this.lineColor;\n },\n\n /**\n *\n * Translate the line with the given x/y offset.\n *\n * @param {Number} dx The new x translate offset\n * @param {Number} dy The new y translate offset\n * @since 4.1.0\n **/\n translate: function translate(dx, dy) {\n this.vertices.each(function (i, e) {\n e.translate(dx, dy);\n });\n\n // update start/end if the first or last vertex has been changed\n //\n this.start = this.vertices.first().clone();\n this.end = this.vertices.last().clone();\n\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this.canvas, _this);\n }\n });\n\n this.svgPathString = null;\n this.repaint();\n\n return this;\n },\n\n /**\n *\n * return the bounding box of the line or polygon\n *\n * TODO: precalculate or cache this values\n *\n * @returns {draw2d.geo.Rectangle}\n * @since 4.8.2\n */\n getBoundingBox: function getBoundingBox() {\n var minX = Math.min.apply(Math, _toConsumableArray(this.vertices.asArray().map(function (n) {\n return n.x;\n })));\n var minY = Math.min.apply(Math, _toConsumableArray(this.vertices.asArray().map(function (n) {\n return n.y;\n })));\n var maxX = Math.max.apply(Math, _toConsumableArray(this.vertices.asArray().map(function (n) {\n return n.x;\n })));\n var maxY = Math.max.apply(Math, _toConsumableArray(this.vertices.asArray().map(function (n) {\n return n.y;\n })));\n var width = maxX - minX;\n var height = maxY - minY;\n\n return new _packages2.default.geo.Rectangle(minX, minY, width, height);\n },\n\n /**\n *\n * Set the start point of the line.\n * This method fires a <i>document dirty</i> event.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * startX: x,\n * startY: y\n * });\n *\n * @param {Number|draw2d.geo.Point} x the x coordinate of the start point\n * @param {Number} [y] the y coordinate of the start point\n **/\n setStartPosition: function setStartPosition(x, y) {\n var pos = new _packages2.default.geo.Point(x, y);\n if (this.start.equals(pos)) {\n return this;\n }\n\n this.start.setPosition(pos);\n this.vertices.first().setPosition(pos);\n this.repaint();\n\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this.canvas, _this);\n }\n });\n this.fireEvent(\"change:start\", { value: this.start });\n\n return this;\n },\n /** @deprecated */\n setStartPoint: function setStartPoint(x, y) {\n return this.setStartPosition(x, y);\n },\n\n setStartX: function setStartX(x) {\n this.setStartPosition(x, this.start.y);\n },\n\n setStartY: function setStartY(y) {\n this.setStartPosition(this.start.x, y);\n },\n\n setEndX: function setEndX(x) {\n this.setEndPosition(x, this.end.y);\n },\n\n setEndY: function setEndY(y) {\n this.setEndPosition(this.end.x, y);\n },\n\n /**\n * Set the end point of the line.\n * This method fires a <i>document dirty</i> event.\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * endX: 3,\n * endY: 10\n * });\n *\n * // or\n * figure.attr({\n * end: {x:3, y:10}\n * });\n * @param {Number|draw2d.geo.Point} x the x coordinate or a draw2d.geo.Point of the end point\n * @param {Number} [y] the y coordinate of the end point\n **/\n setEndPosition: function setEndPosition(x, y) {\n var pos = new _packages2.default.geo.Point(x, y);\n if (this.end.equals(pos)) {\n return this;\n }\n\n this.end.setPosition(pos);\n this.vertices.last().setPosition(pos);\n this.repaint();\n\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this.canvas, _this);\n }\n });\n\n this.fireEvent(\"change:end\", { value: this.end });\n\n return this;\n },\n /** @deprecated **/\n setEndPoint: function setEndPoint(x, y) {\n return this.setEndPosition(x, y);\n },\n\n /**\n *\n * Return the x coordinate of the start.\n * @returns {Number}\n **/\n getStartX: function getStartX() {\n return this.start.x;\n },\n\n /**\n *\n * Return the y coordinate of the start.\n *\n * @returns {Number}\n **/\n getStartY: function getStartY() {\n return this.start.y;\n },\n\n /**\n *\n * Return the start point.\n *\n * @returns {draw2d.geo.Point}\n **/\n getStartPosition: function getStartPosition() {\n return this.start.clone();\n },\n /** @deprecated **/\n getStartPoint: function getStartPoint() {\n return this.getStartPosition();\n },\n\n /**\n *\n * Return the x coordinate of the end point\n *\n * @returns {Number}\n **/\n getEndX: function getEndX() {\n return this.end.x;\n },\n\n /**\n *\n * Return the y coordinate of the end point.\n *\n * @returns {Number}\n **/\n getEndY: function getEndY() {\n return this.end.y;\n },\n\n /**\n *\n * Return the end point.\n *\n * @returns {draw2d.geo.Point}\n **/\n getEndPosition: function getEndPosition() {\n return this.end.clone();\n },\n /**\n * @deprecated use `getEndPosition`\n * @returns {draw2d.geo.Point}\n **/\n getEndPoint: function getEndPoint() {\n return this.getEndPosition();\n },\n\n /**\n *\n * The x-offset related to the parent figure or canvas.\n *\n * @returns {Number} the x-offset to the parent figure\n **/\n getX: function getX() {\n return this.getBoundingBox().x;\n },\n\n /**\n *\n * The x-offset related to the parent figure or canvas.\n *\n * @returns {Number} the x-offset to the parent figure\n **/\n getY: function getY() {\n return this.getBoundingBox().y;\n },\n\n /**\n *\n * Return the Vertex with the given index.\n *\n * @param {Number} index the index of the vertex to return\n */\n getVertex: function getVertex(index) {\n return this.vertices.get(index);\n },\n\n /**\n *\n * Update the vertex at the give position with the new coordinate\n *\n * @param {Number} index the index of the vertex to update\n * @param {Number|draw2d.geo.Point} x the x coordinate or the draw2d.geo.Point object\n * @param {Number} [y] the y coordinate or undefined of the second argument is a point\n *\n * @since 4.0.0\n */\n setVertex: function setVertex(index, x, y) {\n if (x instanceof _packages2.default.geo.Point) {\n y = x.y;\n x = x.x;\n }\n\n var vertex = this.vertices.get(index);\n\n // invalid point or nothing to do\n //\n if (vertex === null || vertex.x === x && vertex.y === y) {\n return;\n }\n\n vertex.x = parseFloat(x);\n vertex.y = parseFloat(y);\n\n // update start/end if the first or last vertex has been changed\n //\n this.start = this.vertices.first().clone();\n this.end = this.vertices.last().clone();\n\n this.svgPathString = null;\n this.routingRequired = true;\n this.repaint();\n\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this.canvas, _this);\n }\n });\n this.fireEvent(\"change:vertices\", { value: this.vertices });\n\n return this;\n },\n\n /**\n *\n * Returns the vertices of the connection\n *\n * @returns {draw2d.util.ArrayList} an draw2d.util.ArrayList of type draw2d.Point\n **/\n getVertices: function getVertices() {\n return this.vertices;\n },\n\n /**\n *\n * Update the vertices of the object. The given array is copied and assigned.\n *\n * @param {draw2d.util.ArrayList|Array} vertices the new vertices of the polyline.\n *\n * @since 4.0.1\n */\n setVertices: function setVertices(vertices) {\n var _this3 = this;\n\n var _this = this;\n // convert json document/array to draw2d ArrayList\n //\n if (Array.isArray(vertices)) {\n this.vertices = new _packages2.default.util.ArrayList();\n vertices.forEach(function (element) {\n _this3.vertices.add(new _packages2.default.geo.Point(element));\n });\n }\n // use the given ArrayList\n //\n else if (vertices instanceof _packages2.default.util.ArrayList) {\n this.vertices = vertices.clone(true);\n } else {\n throw \"invalid argument for Line.setVertices\";\n }\n\n // can happen if the given vertices array is empty\n //\n if (this.vertices.getSize() > 1) {\n this.start = this.vertices.first().clone();\n this.end = this.vertices.last().clone();\n }\n\n // update the UI and the segment parts\n this.svgPathString = null;\n this.repaint();\n\n // align the SelectionHandles to the new situation\n // This is a Hack....normally this should be done below and the Line shouldn't know\n // something about this issue....this is complete a \"EditPolicy\" domain to handle this.\n if (!this.selectionHandles.isEmpty()) {\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy) {\n e.onUnselect(_this.canvas, _this);\n e.onSelect(_this.canvas, _this);\n }\n });\n }\n\n // notify the listener about the changes\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this.canvas, _this);\n }\n });\n\n this.fireEvent(\"change:vertices\", { value: this.vertices });\n\n return this;\n },\n\n /**\n *\n * Return the segments of the line with {start:s, end: e} JSON array list\n *\n * @returns {draw2d.util.ArrayList}\n */\n getSegments: function getSegments() {\n var result = new _packages2.default.util.ArrayList();\n result.add({ start: this.getStartPosition(), end: this.getEndPosition() });\n\n return result;\n },\n\n /**\n *\n * Returns the length of the line.\n *\n * @returns {Number}\n **/\n getLength: function getLength() {\n return Math.sqrt((this.start.x - this.end.x) * (this.start.x - this.end.x) + (this.start.y - this.end.y) * (this.start.y - this.end.y));\n },\n\n /**\n *\n * Returns the angle of the line in degree.\n *\n * <pre>\n * 270°\n * |\n * |\n * |\n * |\n * 180° -------------------------+------------------------> +X\n * | 0°\n * |\n * |\n * |\n * V +Y\n * 90°\n * </pre>\n * @returns {Number}\n **/\n getAngle: function getAngle() {\n var length = this.getLength();\n var angle = -(180 / Math.PI) * Math.asin((this.start.y - this.end.y) / length);\n\n if (angle < 0) {\n if (this.end.x < this.start.x) {\n angle = Math.abs(angle) + 180;\n } else {\n angle = 360 - Math.abs(angle);\n }\n } else {\n if (this.end.x < this.start.x) {\n angle = 180 - angle;\n }\n }\n return angle;\n },\n\n /**\n *\n * Returns the Command to perform the specified Request or null if the shape want cancel the\n * operation or it can't operate the command.\n *\n * @param {draw2d.command.CommandType} request describes the Command being requested\n * @returns {draw2d.command.Command} null or a Command\n * @private\n **/\n createCommand: function createCommand(request) {\n if (request.getPolicy() === _packages2.default.command.CommandType.MOVE) {\n if (this.isDraggable()) {\n return new _packages2.default.command.CommandMoveVertices(this);\n }\n }\n\n if (request.getPolicy() === _packages2.default.command.CommandType.DELETE) {\n if (this.isDeleteable()) {\n return new _packages2.default.command.CommandDelete(this);\n }\n }\n\n if (request.getPolicy() === _packages2.default.command.CommandType.MOVE_BASEPOINT) {\n if (this.isDraggable()) {\n return new _packages2.default.command.CommandMoveVertex(this);\n }\n }\n\n return null;\n },\n\n installEditPolicy: function installEditPolicy(policy) {\n if (!(policy instanceof _packages2.default.policy.line.LineSelectionFeedbackPolicy) && policy instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy) {\n return; // silently\n }\n\n this._super(policy);\n },\n\n /**\n *\n * Checks if the hands over coordinate close to the line. The 'corona' is considered\n * for this test. This means the point isn't direct on the line. Is it only close to the\n * line!\n *\n * @param {Number} px the x coordinate of the test point\n * @param {Number} py the y coordinate of the test point\n * @returns {Boolean}\n **/\n hitTest: function hitTest(px, py) {\n return _packages2.default.shape.basic.Line.hit(this.corona + this.stroke, this.start.x, this.start.y, this.end.x, this.end.y, px, py);\n },\n\n /**\n *\n * Returns the projection of the point on the line.\n *\n * @param {Number} px the x coordinate of the test point\n * @param {Number} py the y coordinate of the test point\n * @returns {draw2d.geo.Point}\n **/\n pointProjection: function pointProjection(px, py) {\n var pt = new _packages2.default.geo.Point(px, py);\n var p1 = this.getStartPosition();\n var p2 = this.getEndPosition();\n return _packages2.default.geo.Line.pointProjection(p1.x, p1.y, p2.x, p2.y, pt.x, pt.y);\n },\n\n /**\n *\n * Returns the point onto the line which has the 'percentage' position onto the line.\n *\n * @param {Number} percentage value between [0..1]\n * @returns {*}\n */\n lerp: function lerp(percentage) {\n var p1 = this.getStartPosition();\n var p2 = this.getEndPosition();\n percentage = Math.min(1, Math.max(0, percentage));\n return new _packages2.default.geo.Point(p1.x + (p2.x - p1.x) * percentage, p1.y + (p2.y - p1.y) * percentage);\n },\n\n /**\n *\n * Return all intersection points between the given Line.\n *\n * @param {draw2d.shape.basic.Line} other\n * @returns {draw2d.util.ArrayList}\n */\n intersection: function intersection(other) {\n var result = new _packages2.default.util.ArrayList();\n\n // empty result. the lines are equal...infinit array\n if (other === this) {\n return result;\n }\n\n var segments1 = this.getSegments();\n var segments2 = other.getSegments();\n\n segments1.each(function (i, s1) {\n segments2.each(function (j, s2) {\n var p = _packages2.default.shape.basic.Line.intersection(s1.start, s1.end, s2.start, s2.end);\n if (p !== null) {\n result.add(p);\n }\n });\n });\n return result;\n },\n\n /**\n *\n * Return an objects with all important attributes for XML or JSON serialization\n *\n * @returns {Object}\n */\n getPersistentAttributes: function getPersistentAttributes() {\n var memento = this._super();\n delete memento.x;\n delete memento.y;\n delete memento.width;\n delete memento.height;\n\n memento.stroke = this.stroke;\n memento.color = this.getColor().rgba();\n memento.outlineStroke = this.outlineStroke;\n memento.outlineColor = this.outlineColor.rgba();\n if (this.dasharray !== null) {\n memento.dasharray = this.dasharray;\n }\n\n if (this.editPolicy.getSize() > 0) {\n memento.policy = this.editPolicy.first().NAME;\n }\n\n // the attribute \"vertex\" will be overridden by a router if the element is a\n // \"PolyLine\" instance and has the correct router. Connections mainly ignore this\n // attribute because the start/end is defined by the ports and the vertices in between are\n // calculated by a router.\n memento.vertex = [];\n this.getVertices().each(function (i, e) {\n memento.vertex.push({ x: e.x, y: e.y });\n });\n\n return memento;\n },\n\n /**\n *\n * Read all attributes from the serialized properties and transfer them into the shape.\n *\n * @param {Object} memento\n * @returns {this}\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this._super(memento);\n\n if (typeof memento.dasharray === \"string\") {\n this.dasharray = memento.dasharray;\n }\n if (typeof memento.stroke !== \"undefined\") {\n this.setStroke(parseFloat(memento.stroke));\n }\n if (typeof memento.color !== \"undefined\") {\n this.setColor(memento.color);\n }\n if (typeof memento.outlineStroke !== \"undefined\") {\n this.setOutlineStroke(memento.outlineStroke);\n }\n if (typeof memento.outlineColor !== \"undefined\") {\n this.setOutlineColor(memento.outlineColor);\n }\n if (typeof memento.policy !== \"undefined\") {\n try {\n this.installEditPolicy(eval(\"new \" + memento.policy + \"()\"));\n } catch (exc) {\n debug.warn(\"Unable to install edit policy '\" + memento.policy + \"' forced by \" + this.NAME + \".setPersistentAttributes. Using default.\");\n }\n }\n\n // restore the vertex of the connection/line if any are given\n //\n // it makes no sense to restore vertices with only zero or one vertex. This\n // isn't a \"line\" at all.\n if (Array.isArray(memento.vertex) && memento.vertex.length > 1) {\n this.setVertices(memento.vertex);\n }\n\n return this;\n }\n});\n\n/**\n * see: http://en.wikipedia.org/wiki/Line-line_intersection\n *\n * @param {draw2d.geo.Point} a1\n * @param {draw2d.geo.Point} a2\n * @param {draw2d.geo.Point} b1\n * @param {draw2d.geo.Point} b2\n *\n * @static\n * @private\n * @returns {draw2d.geo.Point}\n */\n_packages2.default.shape.basic.Line.intersection = function (a1, a2, b1, b2) {\n var result = null;\n\n var ua_t = (b2.x - b1.x) * (a1.y - b1.y) - (b2.y - b1.y) * (a1.x - b1.x);\n var ub_t = (a2.x - a1.x) * (a1.y - b1.y) - (a2.y - a1.y) * (a1.x - b1.x);\n var u_b = (b2.y - b1.y) * (a2.x - a1.x) - (b2.x - b1.x) * (a2.y - a1.y);\n\n if (u_b !== 0) {\n var ua = ua_t / u_b;\n var ub = ub_t / u_b;\n\n if (0 <= ua && ua <= 1 && 0 <= ub && ub <= 1) {\n result = new _packages2.default.geo.Point(a1.x + ua * (a2.x - a1.x) | 0, a1.y + ua * (a2.y - a1.y) | 0);\n\n // determine if the lines are crossing or just touching\n //\n result.justTouching = 0 === ua || ua === 1 || 0 === ub || ub === 1;\n }\n }\n\n return result;\n};\n\n/**\n * Static util function to determine is a point(px,py) on the line(x1,y1,x2,y2)\n * A simple hit test.\n *\n * @returns {Boolean}\n * @static\n * @private\n * @param {Number} coronaWidth the accepted corona for the hit test\n * @param {Number} X1 x coordinate of the start point of the line\n * @param {Number} Y1 y coordinate of the start point of the line\n * @param {Number} X2 x coordinate of the end point of the line\n * @param {Number} Y2 y coordinate of the end point of the line\n * @param {Number} px x coordinate of the point to test\n * @param {Number} py y coordinate of the point to test\n **/\n_packages2.default.shape.basic.Line.hit = function (coronaWidth, X1, Y1, X2, Y2, px, py) {\n return _packages2.default.geo.Line.distance(X1, Y1, X2, Y2, px, py) < coronaWidth;\n};\n\n/***/ }),\n\n/***/ \"./src/shape/basic/LineEndResizeHandle.js\":\n/*!************************************************!*\\\n !*** ./src/shape/basic/LineEndResizeHandle.js ***!\n \\************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Selection handle for connections and normal lines.\n *\n *\n * @author Andreas Herz\n * @extends draw2d.shape.basic.LineResizeHandle\n */\n_packages2.default.shape.basic.LineEndResizeHandle = _packages2.default.shape.basic.LineResizeHandle.extend(\n/** @lends draw2d.shape.basic.LineEndResizeHandle.prototype */\n{\n\n NAME: \"draw2d.shape.basic.LineEndResizeHandle\",\n\n /**\n *\n */\n init: function init(figure) {\n this._super({ owner: figure, index: figure.getVertices().getSize() - 1 });\n },\n\n /**\n *\n * Return the Port assigned to this ResizeHandle if the line is an instance of draw2d.Connection\n *\n * @returns {draw2d.Port}\n */\n getRelatedPort: function getRelatedPort() {\n if (this.owner instanceof _packages2.default.Connection) {\n return this.owner.getTarget();\n }\n\n return null;\n },\n\n /**\n *\n * Return the peer Port assigned to this ResizeHandle if the line is an instance of draw2d.Connection\n *\n * @returns {draw2d.Port}\n */\n getOppositePort: function getOppositePort() {\n if (this.owner instanceof _packages2.default.Connection) {\n return this.owner.getSource();\n }\n\n return null;\n },\n\n /**\n *\n * Called from the framework during a drag&drop operation\n *\n * @param {Number} dx the x difference between the start of the drag drop operation and now\n * @param {Number} dy the y difference between the start of the drag drop operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n * @returns {Boolean}\n * @private\n **/\n onDrag: function onDrag(dx, dy, dx2, dy2) {\n this._super(dx, dy, dx2, dy2);\n\n var objPos = this.owner.getEndPoint().clone();\n objPos.translate(dx2, dy2);\n\n if (this.command !== null) {\n this.command.updatePosition(objPos);\n }\n\n this.owner.setEndPoint(objPos);\n\n this.owner.isMoving = true;\n\n return true;\n },\n\n /**\n *\n * Resizehandle has been drop on a InputPort/OutputPort.\n *\n * @param {draw2d.Figure} dropTarget\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @private\n **/\n onDrop: function onDrop(dropTarget, x, y, shiftKey, ctrlKey) {\n this.owner.isMoving = false;\n\n if (this.owner instanceof _packages2.default.Connection && this.command !== null) {\n this.command.setNewPorts(this.owner.getSource(), dropTarget);\n this.getCanvas().getCommandStack().execute(this.command);\n }\n this.command = null;\n },\n\n /**\n *\n * Controls the location of the resize handle\n *\n **/\n relocate: function relocate() {\n\n var resizeWidthHalf = this.getWidth() / 2;\n var resizeHeightHalf = this.getHeight() / 2;\n\n var anchor = this.owner.getEndPoint();\n\n this.setPosition(anchor.x - resizeWidthHalf, anchor.y - resizeHeightHalf);\n\n return this;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/LineResizeHandle.js\":\n/*!*********************************************!*\\\n !*** ./src/shape/basic/LineResizeHandle.js ***!\n \\*********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Base class for selection handle for connections and normal lines.\n *\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.basic.Circle\n */\n_packages2.default.shape.basic.LineResizeHandle = _packages2.default.shape.basic.Circle.extend(\n/** @lends draw2d.shape.basic.LineResizeHandle.prototype */\n{\n\n NAME: \"draw2d.shape.basic.LineResizeHandle\",\n\n /**\n *\n */\n init: function init(attr, setter, getter) {\n var _this = this;\n\n this.zoomCallback = function () {\n _this.attr({\n width: _this.origWidth * _this.getCanvas().getZoom(),\n height: _this.origHeight * _this.getCanvas().getZoom(),\n stroke: _this.origStroke * _this.getCanvas().getZoom()\n });\n // size of the ResizeHandle has changed. Force a reposition of handle\n //\n if (!_this.blockEvent) _this.owner.fireEvent(\"move\", {});\n };\n\n this._super((0, _extend2.default)({\n bgColor: \"#5bcaff\",\n stroke: 1,\n width: 10,\n height: 10,\n minWidth: 0.3,\n minHeight: 0.3,\n selectable: false\n }, attr), (0, _extend2.default)({\n owner: this.setOwner,\n index: this.setIndex\n }, setter), (0, _extend2.default)({\n owner: this.getOwner,\n index: this.getIndex\n }, getter));\n\n // required in the SelectionEditPolicy to indicate the type of figure\n // which the user clicks\n this.isResizeHandle = true;\n this.currentTarget = null;\n\n this.origWidth = this.width;\n this.origHeight = this.height;\n this.origStroke = this.stroke;\n },\n\n /**\n * \n * Returns the current used SVG as string\n *\n * @returns {String}\n */\n getOwner: function getOwner() {\n return this.owner;\n },\n\n setOwner: function setOwner(owner) {\n this.owner = owner;\n return this;\n },\n\n /**\n * \n * Returns the index of the selection. In case of a PlyLine the count is dynamic.\n *\n * @returns {Number}\n */\n getIndex: function getIndex() {\n return this.index;\n },\n\n setIndex: function setIndex(index) {\n this.index = index;\n return this;\n },\n\n /**\n * @inheritdoc\n */\n createShapeElement: function createShapeElement() {\n var shape = this._super();\n\n shape.attr({ \"cursor\": \"move\" });\n return shape;\n },\n\n /**\n * @inheritdoc\n **/\n setBackgroundColor: function setBackgroundColor(color) {\n color = new _packages2.default.util.Color(color);\n\n this.bgGradient = \"r(.4,.3)\" + color.hash() + \"-\" + color.darker(0.1).hash() + \":60-\" + color.darker(0.2).hash();\n this._super(color);\n this.setColor(color.darker(0.3));\n\n return this;\n },\n\n /**\n * \n * Return the port below the ResizeHandle.\n *\n * @template\n * @returns {draw2d.Port}\n */\n getRelatedPort: function getRelatedPort() {\n return null;\n },\n\n /**\n * \n * Return the port of the other side of the related connection.\n *\n * @template\n * @returns {draw2d.Port}\n */\n getOppositePort: function getOppositePort() {\n return null;\n },\n\n /**\n * @inheritdoc\n */\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n attributes = attributes || {};\n\n if (this.bgColor.hash() === \"none\") {\n attributes.fill = this.bgColor.rgba();\n } else if (this.getAlpha() < 0.9) {\n attributes.fill = this.bgColor.rgba();\n } else {\n attributes.fill = this.bgGradient;\n }\n\n this._super(attributes);\n },\n\n /**\n * Called if the drag and drop action begins. You can return [false] if you\n * want avoid the that the figure can be move.\n *\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @type {Boolean}\n **/\n onDragStart: function onDragStart(x, y, shiftKey, ctrlKey) {\n this.command = this.owner.createCommand(new _packages2.default.command.CommandType(_packages2.default.command.CommandType.MOVE_BASEPOINT));\n // no drag&drop allowed if we didn'T have a valid command.\n // This is one way to send a veto for Connection reconnect\n if (this.command !== null) {\n this.command.setIndex(this.index);\n }\n\n this.setAlpha(0.2);\n this.shape.attr({ \"cursor\": \"crosshair\" });\n\n // fire an event\n // @since 5.3.3\n this.fireEvent(\"dragstart\", { x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n\n return true;\n },\n\n /**\n * \n * Called from the framework during a drag&drop operation\n *\n * @param {Number} dx the x difference between the start of the drag drop operation and now\n * @param {Number} dy the y difference between the start of the drag drop operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n * @returns {Boolean}\n * @private\n **/\n onDrag: function onDrag(dx, dy, dx2, dy2) {\n this.setPosition(this.x + dx2, this.y + dy2);\n\n var port = this.getOppositePort();\n\n var target = port !== null ? port.getCanvas().getBestFigure(this.getX(), this.getY(), [this, this.owner]) : null;\n\n // the hovering element has been changed\n if (target !== this.currentTarget) {\n\n if (this.currentTarget !== null) {\n this.currentTarget.onDragLeave(port);\n this.currentTarget.setGlow(false);\n this.currentTarget.fireEvent(\"dragLeave\", { draggingElement: port });\n }\n\n if (target !== null) {\n this.currentTarget = target.delegateTarget(port);\n if (this.currentTarget !== null) {\n this.currentTarget.setGlow(true);\n this.currentTarget.onDragEnter(port); // legacy\n this.currentTarget.fireEvent(\"dragEnter\", { draggingElement: port });\n }\n }\n }\n\n return true;\n },\n\n /**\n * Called after a drag and drop action.<br>\n * Sub classes can override this method to implement additional stuff. Don't forget to call the super implementation via <code>this._super();</code>\n *\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @returns {Boolean}\n */\n onDragEnd: function onDragEnd(x, y, shiftKey, ctrlKey) {\n if (!this.isDraggable()) {\n return false;\n }\n\n this.shape.attr({ \"cursor\": \"move\" });\n\n var port = this.getOppositePort();\n if (port !== null) {\n if (this.currentTarget !== null) {\n\n this.onDrop(this.currentTarget, x, y, shiftKey, ctrlKey);\n this.currentTarget.onDragLeave(port);\n this.currentTarget.setGlow(false);\n this.currentTarget.fireEvent(\"dragLeave\", { draggingElement: port });\n this.currentTarget.onCatch(this, x, y, shiftKey, ctrlKey);\n this.currentTarget = null;\n }\n }\n\n this.owner.isMoving = false;\n // A Connection is stuck to the corresponding ports. So we must reset the position\n // to the origin port if we doesn't drop the ResizeHandle on a other port.\n //\n if (this.owner instanceof _packages2.default.Connection) {\n if (this.command !== null) {\n this.command.cancel();\n }\n }\n //\n else {\n // An non draggable resizeHandle doesn't create a move/resize command.\n // This happens if the selected figure has set \"isResizeable=false\".\n //\n if (this.command !== null) {\n this.getCanvas().getCommandStack().execute(this.command);\n }\n }\n this.command = null;\n\n this.setAlpha(1);\n\n // fire an event\n // @since 5.3.3\n this.fireEvent(\"dragend\", { x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n },\n\n /**\n * \n * Controls the position of the ResizeHandle\n * Called by the framework.\n *\n **/\n relocate: function relocate() {\n\n return this;\n },\n\n /**\n * \n * The LineResizeHandle didn't support the SnapToHelper feature if the\n * corresponding object is an Connection. A Connection is always bounded to\n * Port. In this case it makes no sense to use a Grid or Geometry for snapping.\n *\n * @returns {Boolean} return false if the corresponding object didn't support snapTo\n **/\n supportsSnapToHelper: function supportsSnapToHelper() {\n if (this.owner instanceof _packages2.default.Connection) {\n return false;\n }\n\n return true;\n },\n\n /**\n * \n * Show the ResizeHandle and add it to the canvas.<br>\n * Additional bring it in to the front of other figures.\n *\n * @param {draw2d.Canvas} canvas the canvas to use\n * @param {Number} x the x-position\n * @param {Number} y the y-position\n **/\n show: function show(canvas, x, y) {\n if (x) debugger;\n // don't call the parent function. The parent functions make this object selectable/deleteable\n // and a resize handle can't be deleted.\n this.setCanvas(canvas);\n try {\n this.blockEvent = true;\n this.zoomCallback();\n } finally {\n this.blockEvent = false;\n }\n\n // this.setPosition(x,y);\n this.shape.toFront();\n this.canvas.resizeHandles.add(this);\n },\n\n /**\n * \n * Hide the resize handle and remove it from the canvas.\n *\n **/\n hide: function hide() {\n // don't call the parent function. The parent functions delete this object\n // and a resize handle shouldn't be deleted.\n if (this.shape === null) {\n return;\n }\n\n this.canvas.resizeHandles.remove(this);\n this.setCanvas(null);\n },\n\n setCanvas: function setCanvas(canvas) {\n\n if (this.canvas !== null) {\n this.canvas.off(this.zoomCallback);\n }\n\n this._super(canvas);\n\n if (this.canvas !== null) {\n this.canvas.on(\"zoom\", this.zoomCallback);\n }\n },\n\n /**\n * \n * Override this method and redirect them to the canvas. A ResizeHandle didn't support\n * Keyboard interaction at the moment.\n *\n * @param {Number} keyCode the id of the pressed key\n * @param {Boolean} ctrl true if the user has pressed the CTRL/STRG key as well.\n **/\n onKeyDown: function onKeyDown(keyCode, ctrl) {\n // don't call the parent function. The parent functions delete this object\n // and a resize handle can't be deleted.\n this.canvas.onKeyDown(keyCode, ctrl);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/LineStartResizeHandle.js\":\n/*!**************************************************!*\\\n !*** ./src/shape/basic/LineStartResizeHandle.js ***!\n \\**************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Selection handle for connections and normal lines.\n *\n * @author Andreas Herz\n * @extends draw2d.shape.basic.LineResizeHandle\n */\n_packages2.default.shape.basic.LineStartResizeHandle = _packages2.default.shape.basic.LineResizeHandle.extend(\n/** @lends draw2d.shape.basic.LineStartResizeHandle.prototype */\n{\n\n NAME: \"draw2d.shape.basic.LineStartResizeHandle\",\n\n /**\n *\n */\n init: function init(figure) {\n this._super({ owner: figure, index: 0 });\n },\n\n /**\n * Returns the Port below the ResizeHandle\n *\n * @returns {draw2d.Port}\n */\n getRelatedPort: function getRelatedPort() {\n if (this.owner instanceof _packages2.default.Connection) return this.owner.getSource();\n\n return null;\n },\n\n /**\n * Returns the Port on the opposite side of the ResizeHandle\n *\n * @returns {draw2d.Port}\n */\n getOppositePort: function getOppositePort() {\n if (this.owner instanceof _packages2.default.Connection) return this.owner.getTarget();\n\n return null;\n },\n\n /**\n * \n * Called from the framework during a drag&drop operation\n *\n * @param {Number} dx the x difference between the start of the drag drop operation and now\n * @param {Number} dy the y difference between the start of the drag drop operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n * @returns {Boolean}\n **/\n onDrag: function onDrag(dx, dy, dx2, dy2) {\n this._super(dx, dy, dx2, dy2);\n\n var objPos = this.owner.getStartPoint();\n objPos.translate(dx2, dy2);\n\n if (this.command !== null) {\n this.command.updatePosition(objPos);\n }\n this.owner.setStartPoint(objPos);\n\n this.owner.isMoving = true;\n\n return true;\n },\n\n /**\n * \n * Resize handle has been drop on a InputPort/OutputPort.\n *\n * @param {draw2d.Port} dropTarget\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n **/\n onDrop: function onDrop(dropTarget, x, y, shiftKey, ctrlKey) {\n this.owner.isMoving = false;\n\n // The ResizeHandle of a Connection has been dropped on a Port\n // This will enforce a ReconnectCommand\n if (this.owner instanceof _packages2.default.Connection && this.command !== null) {\n this.command.setNewPorts(dropTarget, this.owner.getTarget());\n this.getCanvas().getCommandStack().execute(this.command);\n }\n this.command = null;\n },\n\n /**\n * \n * Controls the location of the resize handle\n **/\n relocate: function relocate() {\n var resizeWidthHalf = this.getWidth() / 2;\n var resizeHeightHalf = this.getHeight() / 2;\n\n var anchor = this.owner.getStartPoint();\n\n this.setPosition(anchor.x - resizeWidthHalf, anchor.y - resizeHeightHalf);\n\n return this;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/Oval.js\":\n/*!*********************************!*\\\n !*** ./src/shape/basic/Oval.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Oval figure.\n *\n * @example\n *\n * let oval = new draw2d.shape.basic.Oval({width:150, height:100, x:50, y:10});\n *\n * canvas.add(oval);\n *\n * @author Andreas Herz\n * @extends draw2d.VectorFigure\n */\n_packages2.default.shape.basic.Oval = _packages2.default.VectorFigure.extend(\n/** @lends draw2d.shape.basic.Oval.prototype */\n{\n\n NAME: \"draw2d.shape.basic.Oval\",\n\n /**\n *\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super((0, _extend2.default)({\n bgColor: \"#C02B1D\",\n color: \"#1B1B1B\"\n }, attr), (0, _extend2.default)({\n center: this.setCenter\n }, setter), getter);\n },\n\n /**\n * @template\n **/\n createShapeElement: function createShapeElement() {\n var halfW = this.getWidth() / 2;\n var halfH = this.getHeight() / 2;\n\n return this.canvas.paper.ellipse(this.getAbsoluteX() + halfW, this.getAbsoluteY() + halfH, halfW, halfH);\n },\n\n /**\n *\n * Get the center of the figure\n *\n */\n getCenter: function getCenter() {\n var w2 = this.getWidth() / 2;\n var h2 = this.getHeight() / 2;\n\n return this.getPosition().translated(w2, h2);\n },\n\n /**\n *\n * Set the center of the figure.\n *\n * @param {Number|draw2d.geo.Point} x the new x coordinate of the center or a draw2d.geo.Point object with the center\n * @param {Number} [y] the y coordinate of the new center of the first argument isn't a draw2d.geo.Point object\n */\n setCenter: function setCenter(x, y) {\n var pos = new _packages2.default.geo.Point(x, y);\n var w2 = this.getWidth() / 2;\n var h2 = this.getHeight() / 2;\n\n pos.translate(-w2, -h2);\n this.setPosition(pos);\n\n this.fireEvent(\"change:center\", { value: { x: x, y: y } });\n\n return this;\n },\n\n /**\n * @inheritdoc\n *\n * @template\n **/\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n attributes = attributes || {};\n\n // don't override cx/cy if inherited class has set the center already.\n if (typeof attributes.rx === \"undefined\") {\n attributes.rx = this.width / 2;\n attributes.ry = this.height / 2;\n }\n\n // don't override cx/cy if inherited class has set the center already.\n if (typeof attributes.cx === \"undefined\") {\n attributes.cx = this.getAbsoluteX() + attributes.rx;\n attributes.cy = this.getAbsoluteY() + attributes.ry;\n }\n\n this._super(attributes);\n },\n\n /**\n *\n *\n * NOTE: Rotation will need to be added to this function\n *\n **/\n intersectionWithLine: function intersectionWithLine(a1, a2) {\n var rx = this.getWidth() / 2;\n var ry = this.getHeight() / 2;\n\n var result = new _packages2.default.util.ArrayList();\n\n var origin = new _packages2.default.geo.Point(a1.x, a1.y);\n var dir = a2.subtract(a1);\n var center = new _packages2.default.geo.Point(this.getAbsoluteX() + rx, this.getAbsoluteY() + ry);\n var diff = origin.subtract(center);\n var mDir = new _packages2.default.geo.Point(dir.x / (rx * rx), dir.y / (ry * ry));\n var mDiff = new _packages2.default.geo.Point(diff.x / (rx * rx), diff.y / (ry * ry));\n\n var a = dir.dot(mDir);\n var b = dir.dot(mDiff);\n var c = diff.dot(mDiff) - 1.0;\n var d = b * b - a * c;\n\n if (d < 0) {\n // \"Outside\"\n } else if (d > 0) {\n var root = Math.sqrt(d);\n var t_a = (-b - root) / a;\n var t_b = (-b + root) / a;\n\n if ((t_a < 0 || 1 < t_a) && (t_b < 0 || 1 < t_b)) {\n if (t_a < 0 && t_b < 0 || t_a > 1 && t_b > 1) {\n //\"Outside\";\n } else {\n //\"Inside\";\n }\n } else {\n if (0 <= t_a && t_a <= 1) result.add(a1.lerp(a2, t_a));\n if (0 <= t_b && t_b <= 1) result.add(a1.lerp(a2, t_b));\n }\n } else {\n var t = -b / a;\n if (0 <= t && t <= 1) {\n result.add(a1.lerp(a2, t));\n } else {\n //\"Outside\";\n }\n }\n\n return result;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/PolyLine.js\":\n/*!*************************************!*\\\n !*** ./src/shape/basic/PolyLine.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _JSONUtil = __webpack_require__(/*! ../../util/JSONUtil */ \"./src/util/JSONUtil.js\");\n\nvar _JSONUtil2 = _interopRequireDefault(_JSONUtil);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A PolyLine is a line with more than 2 points.\n *\n *\n * @example\n *\n * let line = new draw2d.shape.basic.PolyLine();\n * line.setVertices([{x:10,y:10},{x:80,y:70},{x:100,y:110}]);\n * canvas.add(line);\n *\n *\n * canvas.setCurrentSelection(line);\n *\n * @author Andreas Herz\n * @extends draw2d.shape.basic.Line\n */\n_packages2.default.shape.basic.PolyLine = _packages2.default.shape.basic.Line.extend(\n/** @lends draw2d.shape.basic.PolyLine.prototype */\n{\n\n NAME: \"draw2d.shape.basic.PolyLine\",\n\n /**\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n // internal status handling for performance reasons\n //\n this.svgPathString = null;\n this.oldPoint = null;\n\n this.router = null;\n this.routingRequired = true;\n this.lineSegments = new _packages2.default.util.ArrayList();\n\n this.radius = \"\";\n\n this._super((0, _extend2.default)({\n router: new _packages2.default.layout.connection.VertexRouter()\n }, attr), (0, _extend2.default)({}, {\n // @attr {draw2d.layout.connection.ConnectionRouter} the router to use to layout the polyline */\n router: this.setRouter,\n // @attr {Number} radius the radius to render the line edges */\n radius: this.setRadius\n }, setter), (0, _extend2.default)({}, {\n router: this.getRouter,\n radius: this.getRadius\n }, getter));\n },\n\n /**\n * \n * Sets the corner radius of the edges.\n *\n * @param {Number} radius the corner radius\n * @since 4.2.1\n */\n setRadius: function setRadius(radius) {\n this.radius = radius;\n this.svgPathString = null;\n this.repaint();\n this.fireEvent(\"change:radius\", { value: this.radius });\n\n return this;\n },\n\n setOutlineStroke: function setOutlineStroke(w) {\n if (this.outlineStroke !== w) {\n this.svgPathString = null;\n this.routingRequired = true;\n }\n this._super(w);\n\n return this;\n },\n\n /**\n * \n * Get the corner radius of the edges.\n *\n * @returns {Number}\n * @since 4.2.1\n */\n getRadius: function getRadius() {\n return this.radius;\n },\n\n /**\n * \n * Set the start point of the line.\n *\n * @param {Number} x the x coordinate of the start point\n * @param {Number} y the y coordinate of the start point\n **/\n setStartPoint: function setStartPoint(x, y) {\n if (this.vertices.getSize() > 0) {\n this.vertices.first().setPosition(x, y);\n } else {\n this.vertices.add(new _packages2.default.geo.Point(x, y));\n }\n this.start = this.vertices.first().clone();\n // if(this.isInDragDrop===false)\n this.calculatePath({ startMoved: true, endMoved: false });\n\n this.repaint();\n\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this.canvas, _this);\n }\n });\n\n this.fireEvent(\"change:start\", { value: this.start });\n\n return this;\n },\n\n /**\n * \n * Set the end point of the line.\n *\n * @param {Number} x the x coordinate of the end point\n * @param {Number} y the y coordinate of the end point\n */\n setEndPoint: function setEndPoint(x, y) {\n if (this.vertices.getSize() > 1) {\n this.vertices.last().setPosition(x, y);\n } else {\n this.vertices.add(new _packages2.default.geo.Point(x, y));\n }\n this.end = this.vertices.last().clone();\n\n if (this.isInDragDrop === false) this.calculatePath({ startMoved: false, endMoved: true });\n\n this.repaint();\n\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this.canvas, _this);\n }\n });\n this.fireEvent(\"change:end\", { value: this.end });\n\n return this;\n },\n\n /**\n * \n * Inserts the draw2d.geo.Point object into the vertex list of the polyline just after the object with the given index.\n *\n * @param {Number|draw2d.geo.Point} x the x coordinate or the draw2d.geo.Point object\n * @param {Number} [y] the y coordinate or undefined of the second argument is a point\n *\n * @since 4.0.0\n */\n addVertex: function addVertex(x, y) {\n this.vertices.add(new _packages2.default.geo.Point(x, y));\n\n this.start = this.vertices.first().clone();\n this.end = this.vertices.last().clone();\n\n this.svgPathString = null;\n this.repaint();\n\n if (!this.selectionHandles.isEmpty()) {\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy) {\n e.onUnselect(_this.canvas, _this);\n e.onSelect(_this.canvas, _this);\n }\n });\n }\n this.fireEvent(\"change:vertices\", { value: this.vertices });\n\n return this;\n },\n\n /**\n * \n * Inserts the draw2d.geo.Point object into the vertex list of the polyline just after the object with the given index.\n *\n * @param {Number} index the insert index\n * @param {Number|draw2d.geo.Point} x the x coordinate or the draw2d.geo.Point object\n * @param {Number} [y] the y coordinate or undefined of the second argument is a point\n *\n * @since 4.0.0\n */\n insertVertexAt: function insertVertexAt(index, x, y) {\n var vertex = new _packages2.default.geo.Point(x, y);\n\n this.vertices.insertElementAt(vertex, index);\n\n this.start = this.vertices.first().clone();\n this.end = this.vertices.last().clone();\n\n this.svgPathString = null;\n this.repaint();\n\n if (!this.selectionHandles.isEmpty()) {\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy) {\n e.onUnselect(_this.canvas, _this);\n e.onSelect(_this.canvas, _this);\n }\n });\n }\n this.fireEvent(\"change:vertices\", { value: this.vertices });\n\n return this;\n },\n\n /**\n * \n * Remove a vertex from the polyline and return the removed point. The current installed connection router\n * can send an veto for this operation.\n *\n * @param index\n * @returns {draw2d.geo.Point} the removed point or null of the current router decline this operation\n * @since 4.0.0\n */\n removeVertexAt: function removeVertexAt(index) {\n var removedPoint = this.vertices.removeElementAt(index);\n\n this.start = this.vertices.first().clone();\n this.end = this.vertices.last().clone();\n\n this.svgPathString = null;\n this.repaint();\n\n if (!this.selectionHandles.isEmpty()) {\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy) {\n e.onUnselect(_this.canvas, _this);\n e.onSelect(_this.canvas, _this);\n }\n });\n }\n this.fireEvent(\"change:vertices\", { value: this.vertices });\n\n return removedPoint;\n },\n\n /**\n * \n * Set the router for this connection.\n *\n * @param {draw2d.layout.connection.ConnectionRouter} [router] the new router for this connection or null if the connection should use the default routing\n **/\n setRouter: function setRouter(router) {\n if (this.router !== null) {\n this.router.onUninstall(this);\n }\n\n if (typeof router === \"undefined\" || router === null) {\n this.router = new _packages2.default.layout.connection.DirectRouter();\n } else {\n this.router = router;\n }\n\n this.router.onInstall(this);\n\n this.routingRequired = true;\n\n // repaint the connection with the new router\n this.repaint();\n\n this.fireEvent(\"change:router\", { value: this.router });\n\n return this;\n },\n\n /**\n * \n * Return the current active router of this connection.\n *\n * @returns draw2d.layout.connection.ConnectionRouter\n **/\n getRouter: function getRouter() {\n return this.router;\n },\n\n /**\n * \n * Calculate the path of the polyline\n *\n * @param {Object} [routingHints] some helper attributes for the router\n * @param {Boolean} routingHints.startMoved is true if just the start location has moved\n * @param {Boolean} routingHints.endMoved is true if the destination location has changed\n * @param {Boolean} routingHints.oldVertices store old vertices for after processing\n *\n * @private\n */\n calculatePath: function calculatePath(routingHints) {\n routingHints = routingHints || {};\n\n if (this.shape === null) {\n return;\n }\n\n this.svgPathString = null;\n\n routingHints.oldVertices = this.vertices;\n\n // cleanup the routing cache\n //\n this.oldPoint = null;\n this.lineSegments = new _packages2.default.util.ArrayList();\n this.vertices = new _packages2.default.util.ArrayList();\n\n // Use the internal router\n //\n this.router.route(this, routingHints);\n this.routingRequired = false;\n this.fireEvent(\"routed\");\n this.fireEvent(\"change:route\", {});\n },\n\n /**\n * @inheritdoc\n */\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return this;\n }\n\n if (this.svgPathString === null || this.routingRequired === true) {\n this.calculatePath();\n }\n\n if (typeof attributes === \"undefined\") {\n attributes = {};\n }\n attributes.path = this.svgPathString;\n _JSONUtil2.default.ensureDefault(attributes, \"stroke-linecap\", \"round\");\n _JSONUtil2.default.ensureDefault(attributes, \"stroke-linejoin\", \"round\");\n\n return this._super(attributes);\n },\n\n /**\n * \n * Return all line segments of the polyline.\n *\n * @returns {draw2d.util.ArrayList}\n */\n getSegments: function getSegments() {\n return this.lineSegments;\n },\n\n /**\n * used for the router to add the calculated points\n *\n * @param p\n * @param y\n */\n addPoint: function addPoint(p, y) {\n if (typeof y !== \"undefined\") {\n p = new _packages2.default.geo.Point(p, y);\n }\n this.vertices.add(p);\n\n if (this.oldPoint !== null) {\n // store the painted line segment for the \"mouse selection test\"\n // (required for user interaction)\n this.lineSegments.add({\n start: this.oldPoint,\n end: p\n });\n }\n this.svgPathString = null;\n this.oldPoint = p;\n },\n\n /**\n * \n * Called if the drag and drop action begins. You can return [false] if you\n * want avoid that the figure can be move.\n *\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @returns {Boolean} true if the figure accepts dragging\n **/\n onDragStart: function onDragStart(x, y, shiftKey, ctrlKey, isFaked) {\n var result = this._super(x, y, shiftKey, ctrlKey, isFaked);\n\n if (result === true && isFaked !== true) {\n this.draggedSegment = this.hitSegment(x, y);\n }\n return result;\n },\n\n /**\n * \n * Returns the length of the polyline.\n *\n * @returns {Number}\n * @since 6.1.43\n **/\n getLength: function getLength() {\n var result = 0;\n for (var i = 0; i < this.lineSegments.getSize(); i++) {\n var segment = this.lineSegments.get(i);\n var p1 = segment.start;\n var p2 = segment.end;\n result += Math.sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y));\n }\n return result;\n },\n\n setVertices: function setVertices(vertices) {\n // inform the router tha the vertices has set outside. This switch some\n // router from full autoroute to half autoroute\n this.router.verticesSet(this);\n\n this._super(vertices);\n },\n\n /**\n * \n * Returns the projection of the point on the line.\n *\n * @param {Number} px the x coordinate of the test point\n * @param {Number} py the y coordinate of the test point\n * @returns {draw2d.geo.Point}\n **/\n pointProjection: function pointProjection(px, py) {\n var result = null,\n projection = null,\n p1 = null,\n p2 = null,\n segment = null;\n var lastDist = Number.MAX_SAFE_INTEGER;\n var pt = new _packages2.default.geo.Point(px, py);\n for (var i = 0; i < this.lineSegments.getSize(); i++) {\n segment = this.lineSegments.get(i);\n p1 = segment.start;\n p2 = segment.end;\n projection = _packages2.default.geo.Line.pointProjection(p1.x, p1.y, p2.x, p2.y, pt.x, pt.y);\n if (projection !== null) {\n var dist = projection.distance(pt);\n if (result == null || dist < lastDist) {\n result = projection;\n result.index = i;\n lastDist = dist;\n }\n }\n }\n\n if (result !== null) {\n var length = 0;\n var _segment = void 0;\n for (var _i = 0; _i < result.index; _i++) {\n _segment = this.lineSegments.get(_i);\n length += _segment.start.distance(_segment.end);\n }\n _segment = this.lineSegments.get(result.index);\n p1 = _segment.start;\n p2 = _segment.end;\n length += p1.distance(p2) * _packages2.default.geo.Line.inverseLerp(p2.x, p2.y, p1.x, p1.y, result.x, result.y);\n result.percentage = 1.0 / this.getLength() * length;\n }\n return result;\n },\n\n /**\n * \n * Returns the point onto the line which has the relative 'percentage' position onto the line.\n *\n * @param {Number} percentage the relative position between [0..1]\n * @returns {draw2d.geo.Point}\n */\n lerp: function lerp(percentage) {\n var length = this.getLength() * percentage;\n var lastValidLength = length;\n var segment = null,\n p1 = null,\n p2 = null;\n for (var i = 0; i < this.lineSegments.getSize(); i++) {\n segment = this.lineSegments.get(i);\n p1 = segment.start;\n p2 = segment.end;\n length = length - p1.distance(p2);\n if (length <= 0) {\n percentage = 1.0 / p1.distance(p2) * lastValidLength;\n return new _packages2.default.geo.Point(p1.x + (p2.x - p1.x) * percentage, p1.y + (p2.y - p1.y) * percentage);\n }\n lastValidLength = length;\n }\n return p2;\n },\n\n /**\n * \n * get the best segment of the line which is below the given coordinate or null if\n * all segment are not below the coordinate. <br>\n * The 'corona' property of the polyline is considered for this test. This means\n * the point isn't direct on the line. Is it only close to the line!\n *\n * @param {Number} px the x coordinate of the test point\n * @param {Number} py the y coordinate of the test point\n * @returns {Object}\n * @since 4.4.0\n **/\n hitSegment: function hitSegment(px, py) {\n for (var i = 0; i < this.lineSegments.getSize(); i++) {\n var segment = this.lineSegments.get(i);\n if (_packages2.default.shape.basic.Line.hit(this.corona + this.stroke, segment.start.x, segment.start.y, segment.end.x, segment.end.y, px, py)) {\n return { index: i, start: segment.start, end: segment.end };\n }\n }\n return null;\n },\n\n /**\n * \n * Checks if the hands over coordinate close to the line. The 'corona' property of the polyline\n * is considered for this test. This means the point isn't direct on the line. Is it only close to the\n * line!\n *\n * @param {Number} px the x coordinate of the test point\n * @param {Number} py the y coordinate of the test point\n * @returns {Boolean}\n **/\n hitTest: function hitTest(px, py) {\n return this.hitSegment(px, py) !== null;\n },\n\n /**\n * @inheritdoc\n */\n createCommand: function createCommand(request) {\n\n if (request.getPolicy() === _packages2.default.command.CommandType.DELETE) {\n if (this.isDeleteable() === true) {\n return new _packages2.default.command.CommandDelete(this);\n }\n } else if (request.getPolicy() === _packages2.default.command.CommandType.MOVE_VERTEX) {\n if (this.isResizeable() === true) {\n return new _packages2.default.command.CommandMoveVertex(this);\n }\n } else if (request.getPolicy() === _packages2.default.command.CommandType.MOVE_VERTICES) {\n if (this.isResizeable() === true) {\n return new _packages2.default.command.CommandMoveVertices(this);\n }\n }\n\n return this._super(request);\n },\n\n /**\n * @inheritdoc\n */\n getPersistentAttributes: function getPersistentAttributes() {\n var memento = (0, _extend2.default)(this._super(), {\n router: this.router.NAME,\n radius: this.radius\n });\n\n memento = this.router.getPersistentAttributes(this, memento);\n\n return memento;\n },\n\n /**\n * @inheritdoc\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this._super(memento);\n\n if (typeof memento.router !== \"undefined\") {\n try {\n this.setRouter(eval(\"new \" + memento.router + \"()\"));\n } catch (exc) {\n debug.warn(\"Unable to install router '\" + memento.router + \"' forced by \" + this.NAME + \".setPersistentAttributes. Using default\");\n }\n }\n\n if (typeof memento.radius !== \"undefined\") {\n this.setRadius(memento.radius);\n }\n\n this.router.setPersistentAttributes(this, memento);\n\n if (this.vertices.getSize() > 1) {\n this.start = this.vertices.first().clone();\n this.end = this.vertices.last().clone();\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/Polygon.js\":\n/*!************************************!*\\\n !*** ./src/shape/basic/Polygon.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _JSONUtil = __webpack_require__(/*! ../../util/JSONUtil */ \"./src/util/JSONUtil.js\");\n\nvar _JSONUtil2 = _interopRequireDefault(_JSONUtil);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n/**\n * @class\n * A Polygon figure.\n *\n *\n * @example\n *\n * let p1 = new draw2d.shape.basic.Polygon({width:100, height:100});\n * let p2 = new draw2d.shape.basic.Polygon({width:100, height:60});\n *\n * canvas.add(p1,10,10);\n * canvas.add(p2,100,10);\n *\n * p2.attr({color:\"#f0f000\", alpha:0.7});\n *\n * canvas.setCurrentSelection(p2);\n *\n * @author Andreas Herz\n * @extends draw2d.VectorFigure\n */\n_packages2.default.shape.basic.Polygon = _packages2.default.VectorFigure.extend(\n/** @lends draw2d.shape.basic.Polygon.prototype */\n{\n\n NAME: \"draw2d.shape.basic.Polygon\",\n\n /**\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this.minX = 0;\n this.minY = 0;\n this.maxX = 0;\n this.maxY = 0;\n this.vertices = new _packages2.default.util.ArrayList();\n\n this._super(attr, setter, getter);\n\n // we must cache the initial width/height because the width/height of the shape\n // is recalculated in the addVertex method. After the first call this values are 0/0\n if (this.vertices.getSize() === 0) {\n var w = this.width;\n var h = this.height;\n var pos = this.getPosition();\n this.addVertex(new _packages2.default.geo.Point(0, 0));\n this.addVertex(new _packages2.default.geo.Point(w, 0));\n this.addVertex(new _packages2.default.geo.Point(w, h));\n\n this.setPosition(pos);\n }\n\n this.svgPathString = null;\n\n this.installEditPolicy(new _packages2.default.policy.figure.VertexSelectionFeedbackPolicy());\n },\n\n /**\n * @inheritdoc\n */\n setRadius: function setRadius(radius) {\n this.svgPathString = null;\n\n this._super(radius);\n this.fireEvent(\"change:radius\", { value: radius });\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n createShapeElement: function createShapeElement() {\n // return some good default...\n return this.canvas.paper.path(\"M0 10L100 100\");\n },\n\n /**\n * \n * calculate the path of the polygon\n *\n */\n calculatePath: function calculatePath() {\n var radius = this.getRadius();\n var path = [];\n // hard corners\n //\n if (radius === 0) {\n var _length = this.vertices.getSize();\n var p = this.vertices.get(0);\n path.push(\"M\", p.x, \" \", p.y);\n for (var i = 1; i < _length; i++) {\n p = this.vertices.get(i);\n path.push(\"L\", p.x, \" \", p.y);\n }\n path.push(\"Z\");\n }\n // soften/round corners\n //\n else {\n length = this.vertices.getSize();\n var start = this.vertices.first();\n var end = this.vertices.last();\n if (start.equals(end)) {\n length = length - 1;\n end = this.vertices.get(length - 1);\n }\n var begin = _packages2.default.geo.Util.insetPoint(start, end, radius);\n path.push(\"M\", begin.x, \",\", begin.y);\n for (var _i = 0; _i < length; _i++) {\n start = this.vertices.get(_i);\n end = this.vertices.get((_i + 1) % length);\n var modStart = _packages2.default.geo.Util.insetPoint(start, end, radius);\n var modEnd = _packages2.default.geo.Util.insetPoint(end, start, radius);\n path.push(\"Q\", start.x, \",\", start.y, \" \", modStart.x, \", \", modStart.y);\n path.push(\"L\", modEnd.x, \",\", modEnd.y);\n }\n }\n this.svgPathString = path.join(\"\");\n return this;\n },\n\n /**\n * @inheritdoc\n */\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n if (this.svgPathString === null) {\n this.calculatePath();\n }\n\n attributes = attributes || {};\n\n _JSONUtil2.default.ensureDefault(attributes, \"path\", this.svgPathString);\n\n this._super(attributes);\n },\n\n /**\n * \n * Translate the figure with the given x/y offset. This method modifies all\n * vertices and the bounding box.\n *\n * @param {Number} dx The new x translate offset\n * @param {Number} dy The new y translate offset\n **/\n translate: function translate(dx, dy) {\n var _this = this;\n\n // TODO: This is not good. If the polygon part of an \"Composite\" I should call\n // the adjustPosition. IF we DragDrap the composition the figures inside should follow\n // without modify the dx/dy.\n //\n dx = this.x + dx;\n dy = this.y + dy;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n var newPos = e.adjustPosition(_this, dx, dy);\n dx = newPos.x;\n dy = newPos.y;\n }\n });\n dx = dx - this.x;\n dy = dy - this.y;\n\n this.vertices.each(function (i, e) {\n e.translate(dx, dy);\n });\n this.svgPathString = null;\n this.updateBoundingBox();\n\n this.repaint();\n\n // Update the resize handles if the user change the position of the\n // element via an API call.\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this.canvas, _this);\n }\n });\n\n this.fireEvent(\"move\", { figure: this, dx: dx, dy: dy });\n this.fireEvent(\"change:x\", { value: this.x });\n this.fireEvent(\"change:y\", { value: this.y });\n\n return this;\n },\n\n /**\n * \n * Change the position of the polygon. This method updates all vertices.\n *\n * @param {Number|draw2d.geo.Point} x\n * @param {Number} [y]\n */\n setPosition: function setPosition(x, y) {\n if (x instanceof _packages2.default.geo.Point) {\n y = x.y;\n x = x.x;\n }\n this.svgPathString = null;\n\n var dx = x - this.minX;\n var dy = y - this.minY;\n\n this.translate(dx, dy);\n\n this.x = x;\n this.y = y;\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n setDimension: function setDimension(w, h) {\n var oldWidth = this.width;\n var oldHeight = this.height;\n\n this._super(w, h);\n\n var fracWidth = 1 / oldWidth * this.width;\n var fracHeight = 1 / oldHeight * this.height;\n\n var thisX = this.x;\n var thisY = this.y;\n this.vertices.each(function (i, e) {\n // calculate difference between point and figure origin\n var diffX = (e.getX() - thisX) * fracWidth;\n var diffY = (e.getY() - thisY) * fracHeight;\n e.setPosition(thisX + diffX, thisY + diffY);\n });\n\n this.svgPathString = null;\n this.repaint();\n this.fireEvent(\"change:dimension\", { value: { width: this.width, height: this.height } });\n\n return this;\n },\n\n /**\n * \n * Return all vertices of the polygon.\n *\n * @returns {draw2d.util.ArrayList}\n */\n getVertices: function getVertices() {\n return this.vertices;\n },\n\n /**\n * \n * Return the Vertex with the given index.\n *\n * @param {Number} index the index of the vertex to return\n * @since 5.0.2\n */\n getVertex: function getVertex(index) {\n return this.vertices.get(index);\n },\n\n resetVertices: function resetVertices() {\n var _this2 = this;\n\n this.vertices = new _packages2.default.util.ArrayList();\n\n this.svgPathString = null;\n this.repaint();\n\n this.updateBoundingBox();\n\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this2.canvas, _this2);\n }\n });\n\n return this;\n },\n\n /**\n * \n * Update the vertex at the given index. The method call didn't have any effect\n * if the vertex didn't exists.\n *\n * @param {Number} index\n * @param {Number} x\n * @param {Number} y\n */\n setVertex: function setVertex(index, x, y) {\n var vertex = this.vertices.get(index);\n\n // invalid point or nothing to do\n //\n if (vertex === null || vertex.x === x && vertex.y === y) {\n return this;\n }\n\n vertex.x = parseFloat(x);\n vertex.y = parseFloat(y);\n\n this.svgPathString = null;\n this.repaint();\n\n this.updateBoundingBox();\n\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this.canvas, _this);\n }\n });\n this.fireEvent(\"change:vertices\", { value: this.vertices });\n\n return this;\n },\n\n /**\n * \n * Append a new vertex to the polygon.\n *\n * @param {Number | draw2d.geo.Point} x\n * @param {Number} [y]\n */\n addVertex: function addVertex(x, y) {\n this.vertices.add(new _packages2.default.geo.Point(x, y));\n\n this.svgPathString = null;\n this.repaint();\n\n this.updateBoundingBox();\n\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this.canvas, _this);\n }\n });\n this.fireEvent(\"change:vertices\", { value: this.vertices });\n\n return this;\n },\n\n /**\n * \n * Insert a new vertex at the given index. All vertices will be shifted to\n * free the requested index.\n *\n * @param {Number} index\n * @param {Number} x\n * @param {Number} y\n */\n insertVertexAt: function insertVertexAt(index, x, y) {\n this.vertices.insertElementAt(new _packages2.default.geo.Point(x, y), index);\n\n this.svgPathString = null;\n this.repaint();\n\n this.updateBoundingBox();\n\n if (!this.selectionHandles.isEmpty()) {\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy) {\n e.onUnselect(_this.canvas, _this);\n e.onSelect(_this.canvas, _this);\n }\n });\n }\n this.fireEvent(\"change:vertices\", { value: this.vertices });\n\n return this;\n },\n\n /**\n * \n * Remove a vertex from the polygon and return the removed point.\n *\n * @param {Number} index\n *\n * @returns {draw2d.geo.Point} the removed vertex\n */\n removeVertexAt: function removeVertexAt(index) {\n // a polygon need at least 3 vertices\n //\n if (this.vertices.getSize() <= 3) {\n return null;\n }\n\n var vertex = this.vertices.removeElementAt(index);\n\n this.svgPathString = null;\n this.repaint();\n\n this.updateBoundingBox();\n\n if (!this.selectionHandles.isEmpty()) {\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy) {\n e.onUnselect(_this.canvas, _this);\n e.onSelect(_this.canvas, _this);\n }\n });\n }\n this.fireEvent(\"change:vertices\", { value: this.vertices });\n\n return vertex;\n },\n\n /**\n * @inheritdoc\n */\n setRotationAngle: function setRotationAngle(angle) {\n this.rotationAngle = 360 % angle;\n\n // The different to the other figures is, the the vertices must rotated instead of\n // transform the shape with SVG matrix.\n //\n // Reason: the vertices are selectable and in this case the coordinates must transform\n // and not only the resulting SVG shape.\n //\n var radian = angle / (180 / Math.PI);\n var center = this.getBoundingBox().getCenter();\n var rotate = function rotate(x, y, xm, ym, radian) {\n var cos = Math.cos,\n sin = Math.sin;\n return {\n x: (x - xm) * cos(radian) - (y - ym) * sin(radian) + xm,\n y: (x - xm) * sin(radian) + (y - ym) * cos(radian) + ym\n };\n };\n\n this.vertices.each(function (i, e) {\n var rot = rotate(e.x, e.y, center.x, center.y, radian);\n e.setPosition(rot.x, rot.y);\n });\n\n this.updateBoundingBox();\n\n // Update the resize handles if the user change the position of the element via an API call.\n //\n var _this = this;\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.moved(_this.canvas, _this);\n }\n });\n\n this.repaint();\n this.fireEvent(\"change:angle\", { value: this.rotationAngle });\n\n return this;\n },\n\n /**\n * \n * Calculate the bounding box of the shape and store them in an internal\n * variable for fast access.\n *\n * @private\n */\n updateBoundingBox: function updateBoundingBox() {\n if (this.vertices.isEmpty()) {\n this.minX = this.x;\n this.minY = this.y;\n this.maxX = this.x + this.width;\n this.maxY = this.y + this.height;\n } else {\n this.minX = this.x = Math.min.apply(Math, _toConsumableArray(this.vertices.asArray().map(function (n) {\n return n.x;\n })));\n this.minY = this.y = Math.min.apply(Math, _toConsumableArray(this.vertices.asArray().map(function (n) {\n return n.y;\n })));\n this.maxX = Math.max.apply(Math, _toConsumableArray(this.vertices.asArray().map(function (n) {\n return n.x;\n })));\n this.maxY = Math.max.apply(Math, _toConsumableArray(this.vertices.asArray().map(function (n) {\n return n.y;\n })));\n this.width = this.maxX - this.minX;\n this.height = this.maxY - this.minY;\n }\n },\n\n /**\n * @inheritdoc\n */\n createCommand: function createCommand(request) {\n\n if (request.getPolicy() === _packages2.default.command.CommandType.MOVE_VERTEX) {\n if (this.isResizeable() === true) {\n return new _packages2.default.command.CommandMoveVertex(this);\n }\n }\n\n return this._super(request);\n },\n\n /**\n * @inheritdoc\n */\n getPersistentAttributes: function getPersistentAttributes() {\n var memento = this._super();\n\n memento.vertices = [];\n\n this.vertices.each(function (i, e) {\n memento.vertices.push({ x: e.x, y: e.y });\n });\n\n return memento;\n },\n\n /**\n * @inheritdoc\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n var _this3 = this;\n\n this._super(memento);\n\n // restore the points from the JSON data and add them to the polyline\n //\n if (typeof memento.vertices !== \"undefined\") {\n this.vertices = new _packages2.default.util.ArrayList();\n memento.vertices.forEach(function (point) {\n _this3.addVertex(point);\n });\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/Rectangle.js\":\n/*!**************************************!*\\\n !*** ./src/shape/basic/Rectangle.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * A Rectangle Figure.\n *\n *\n * @example\n *\n * let rect1 = new draw2d.shape.basic.Rectangle({\n * \tx:10,\n * y:10\n * });\n *\n * let rect2 = new draw2d.shape.basic.Rectangle({\n * x: 100,\n * y: 10,\n * bgColor: \"#f0f000\",\n * alpha : 0.7,\n * width: 100,\n * height: 60,\n * radius: 10\n * });\n *\n * canvas.add(rect1);\n * canvas.add(rect2);\n *\n * canvas.setCurrentSelection(rect2);\n *\n * @author Andreas Herz\n * @param {Object} [attr] the configuration of the shape\n * @param {Object} [setter] add or replace setter methods\n * @param {Object} [getter] add or replace getter methods\n * @extends draw2d.VectorFigure\n */\n_packages2.default.shape.basic.Rectangle = _packages2.default.VectorFigure.extend(\n/** @lends draw2d.shape.basic.Rectangle.prototype */\n{\n\n NAME: \"draw2d.shape.basic.Rectangle\",\n\n init: function init(attr, setter, getter) {\n this.dasharray = null;\n\n this._super((0, _extend2.default)({ bgColor: \"#a0a0a0\", color: \"#1B1B1B\" }, attr), (0, _extend2.default)({}, {\n // @attr {String} dash The dot/dash pattern for the line style. Valid values: [\"\", \"-\", \".\", \"-.\", \"-..\", \". \", \"- \", \"--\", \"- .\", \"--.\", \"--..\"]*/\n dash: this.setDashArray,\n // @attr {String} dasharray The dot/dash pattern for the line style. Valid values: [\"\", \"-\", \".\", \"-.\", \"-..\", \". \", \"- \", \"--\", \"- .\", \"--.\", \"--..\"]*/\n dasharray: this.setDashArray\n }, setter), (0, _extend2.default)({}, {\n dash: this.getDashArray,\n dasharray: this.getDashArray\n }, getter));\n },\n\n /**\n * @inheritdoc\n **/\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n attributes = (0, _extend2.default)({}, {\n width: this.getWidth(),\n height: this.getHeight(),\n r: this.getRadius()\n }, attributes);\n\n if (this.dasharray !== null) {\n attributes[\"stroke-dasharray\"] = this.dasharray;\n }\n\n this._super(attributes);\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n applyTransformation: function applyTransformation() {\n var ts = \"R\" + this.rotationAngle;\n\n if (this.getRotationAngle() === 90 || this.getRotationAngle() === 270) {\n var ratio = this.getHeight() / this.getWidth();\n ts = ts + \"S\" + ratio + \",\" + 1 / ratio + \",\" + (this.getAbsoluteX() + this.getWidth() / 2) + \",\" + (this.getAbsoluteY() + this.getHeight() / 2);\n }\n\n this.shape.transform(ts);\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n createShapeElement: function createShapeElement() {\n return this.canvas.paper.rect(this.getAbsoluteX(), this.getAbsoluteY(), this.getWidth(), this.getHeight());\n },\n\n /**\n *\n * Set the line style for dot/dash styling. Possible values are\n * [\"\", \"-\", \".\", \"-.\", \"-..\", \". \", \"- \", \"--\", \"- .\", \"--.\", \"--..\"]\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * dash: pattern\n * });\n *\n * @param {String} pattern the string with the dot/dash pattern. valid values: [\"\", \"-\", \".\", \"-.\", \"-..\", \". \", \"- \", \"--\", \"- .\", \"--.\", \"--..\"]\n */\n setDashArray: function setDashArray(pattern) {\n this.dasharray = pattern;\n this.repaint();\n this.fireEvent(\"change:dashArray\", { value: this.dasharray });\n\n return this;\n },\n\n /**\n *\n * Get the line style for this object.\n *\n * // Alternatively you can use the attr method:\n * figure.attr(\"dash\");\n *\n * @since 5.1.0\n */\n getDashArray: function getDashArray() {\n return this.dasharray;\n },\n\n /**\n * @inheritdoc\n */\n getPersistentAttributes: function getPersistentAttributes() {\n var memento = this._super();\n\n if (this.dasharray !== null) {\n memento.dasharray = this.dasharray;\n }\n\n return memento;\n },\n\n /**\n * @inheritdoc\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this._super(memento);\n\n if (typeof memento.dasharray === \"string\") {\n this.dasharray = memento.dasharray;\n }\n\n return this;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/Text.js\":\n/*!*********************************!*\\\n !*** ./src/shape/basic/Text.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Implements a simple text with word wrapping.<br>The height of the element is automatic calculated. The widht of\n * the element is changeable by the user and respect the minWidth constraint.\n * <br>\n *\n *\n * @example\n *\n * let shape = new draw2d.shape.basic.Text({text:\"This is a simple text with some loooooong word in.\"});\n *\n * canvas.add(shape,40,10);\n *\n * @author Andreas Herz\n * @since 4.2.3\n * @extends draw2d.shape.basic.Label\n */\n_packages2.default.shape.basic.Text = _packages2.default.shape.basic.Label.extend(\n/** @lends draw2d.shape.basic.Text.prototype */\n{\n\n NAME: \"draw2d.shape.basic.Text\",\n\n /**\n * Creates a new text element.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this.cachedWrappedAttr = null;\n\n this._super(extend({ width: 100, height: 50, resizeable: true }, attr), setter, getter);\n\n this.installEditPolicy(new _packages2.default.policy.figure.WidthSelectionFeedbackPolicy());\n },\n\n /**\n * @inheritdoc\n */\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n // style the label\n this.svgNodes.attr(extend({}, this.calculateTextAttr(), this.wrappedTextAttr(this.text, this.getWidth() - this.padding.left - this.padding.right)));\n\n // set of the x/y must be done AFTER the font-size and bold has been set.\n // Reason: the getHeight method needs the font-size for calculation because\n // it redirects the calculation to the SVG element.\n this.svgNodes.attr({ x: this.padding.left, y: this.getHeight() / 2 });\n\n // this is an exception call. Don't call the super method (Label) to avoid\n // the calculation in this method.\n _packages2.default.SetFigure.prototype.repaint.call(this, attributes);\n },\n\n /**\n * @inheritdoc\n */\n setDimension: function setDimension(w, h) {\n this.clearCache();\n var attr = this.wrappedTextAttr(this.text, w);\n\n this.cachedMinWidth = Math.max(w, attr.width);\n this.cachedMinHeight = attr.height;\n\n _packages2.default.shape.node.Node.prototype.setDimension.call(this, this.cachedMinWidth, this.cachedMinHeight);\n // this._super(Math.min(w,attr.width),attr.height);\n this.fireEvent(\"change:dimension\", { value: { width: this.cachedMinWidth, height: this.cachedMinHeight } });\n\n return this;\n },\n\n /**\n *\n * clear the internal cache for width/height precalculation\n * @private\n */\n clearCache: function clearCache() {\n this._super();\n this.cachedWrappedAttr = null;\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n getMinWidth: function getMinWidth() {\n if (this.shape === null) {\n return 0;\n }\n\n if (this.cachedMinWidth === null) {\n // get the longest word in the text\n //\n var longestWord = this.text.split(\" \").reduce(function (arg1, arg2) {\n return arg1.length > arg2.length ? arg1 : arg2;\n });\n var svgText = this.canvas.paper.text(0, 0, longestWord).attr(extend({}, this.calculateTextAttr(), { text: longestWord }));\n this.cachedMinWidth = svgText.getBBox(true).width + this.padding.left + this.padding.right + 2 * this.getStroke();\n svgText.remove();\n }\n\n return this.cachedMinWidth;\n },\n\n /**\n *\n * calculates the attributes (wrapped text and width, height) with the given parameter\n *\n * @private\n */\n wrappedTextAttr: function wrappedTextAttr(text, width) {\n var words = text.split(\" \");\n if (this.canvas === null || words.length === 0) {\n return { text: text, width: width, height: 20 };\n }\n\n if (this.cachedWrappedAttr === null) {\n var abc = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n var svgText = this.canvas.paper.text(0, 0, \"\").attr(extend({}, this.calculateTextAttr(), { text: abc }));\n\n // get a good estimation of a letter width...not correct but this is working for the very first draft implementation\n var letterWidth = svgText.getBBox(true).width / abc.length;\n\n var s = [words[0]],\n x = s[0].length * letterWidth;\n var w = null;\n for (var i = 1; i < words.length; i++) {\n w = words[i];\n var l = w.length * letterWidth;\n if (x + l > width) {\n s.push(\"\\n\");\n x = l;\n } else {\n s.push(\" \");\n x += l;\n }\n s.push(w);\n }\n // set the wrapped text and get the resulted bounding box\n //\n svgText.attr({ text: s.join(\"\") });\n var bbox = svgText.getBBox(true);\n svgText.remove();\n this.cachedWrappedAttr = {\n text: s.join(\"\"),\n width: Math.max(width, bbox.width) + this.padding.left + this.padding.right,\n height: bbox.height + this.padding.top + this.padding.bottom\n };\n }\n return this.cachedWrappedAttr;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/basic/VertexResizeHandle.js\":\n/*!***********************************************!*\\\n !*** ./src/shape/basic/VertexResizeHandle.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Selection handle for polyline vertices.\n *\n *\n * @author Andreas Herz\n * @extends draw2d.ResizeHandle\n */\n_packages2.default.shape.basic.VertexResizeHandle = _packages2.default.ResizeHandle.extend(\n/** @lends draw2d.shape.basic.VertexResizeHandle.prototype */\n{\n\n NAME: \"draw2d.shape.basic.VertexResizeHandle\",\n\n SNAP_THRESHOLD: 3,\n LINE_COLOR: \"#1387E6\",\n FADEOUT_DURATION: 300,\n\n init: function init(owner, index) {\n this._super({ owner: owner });\n this.index = index;\n this.isDead = false;\n },\n\n /**\n * Called when a user double clicks on the element\n *\n * @template\n */\n onDoubleClick: function onDoubleClick() {\n var cmd = new _packages2.default.command.CommandRemoveVertex(this.owner, this.index);\n this.getCanvas().getCommandStack().execute(cmd);\n\n this.isDead = true;\n },\n\n /**\n *\n * Called if a drag&drop operation starts.<br>\n *\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @private\n **/\n onDragStart: function onDragStart(x, y, shiftKey, ctrlKey) {\n if (this.isDead === true) {\n return;\n }\n\n this._super();\n this.command = this.getCanvas().getPrimarySelection().createCommand(new _packages2.default.command.CommandType(_packages2.default.command.CommandType.MOVE_VERTEX));\n if (this.command != null) {\n this.command.setIndex(this.index);\n this.setAlpha(0.2);\n this.shape.attr({ \"cursor\": \"crosshair\" });\n }\n\n // Vertex is a reference and not a copy of the point\n this.vertex = this.owner.getVertex(this.index).clone();\n\n // fire an event\n // @since 5.3.3\n this.fireEvent(\"dragstart\", { x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n\n return true;\n },\n\n /**\n *\n * Called from the framework during a drag&drop operation\n *\n * @param {Number} dx the x difference between the start of the drag drop operation and now\n * @param {Number} dy the y difference between the start of the drag drop operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n **/\n onDrag: function onDrag(dx, dy, dx2, dy2) {\n if (this.isDead === true || this.command == null) {\n return;\n }\n\n this.setPosition(this.x + dx2, this.y + dy2);\n\n // update the polyline for immediately drag&drop feedback\n //\n this.vertex.translate(dx2, dy2);\n var newPos = this.vertex.clone();\n // Adjust the new location if the object can snap to a helper\n // like grid, geometry, ruler,...\n //\n if (this.getCanSnapToHelper()) {\n newPos = this.getCanvas().snapToHelper(this, newPos);\n }\n\n this.owner.setVertex(this.index, newPos.x, newPos.y);\n\n // update the command for the undo/redo stuff\n //\n this.command.updatePosition(this.vertex.x, this.vertex.y);\n },\n\n /**\n * Called after a drag and drop action.<br>\n * Sub classes can override this method to implement additional stuff. Don't forget to call the super implementation via <code>this._super();</code>\n *\n * @param {Number} x the x-coordinate of the mouse event\n * @param {Number} y the y-coordinate of the mouse event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n */\n onDragEnd: function onDragEnd(x, y, shiftKey, ctrlKey) {\n if (this.isDead === true || this.command === null) {\n return;\n }\n\n this.shape.attr({ \"cursor\": \"move\" });\n\n var stack = this.getCanvas().getCommandStack();\n\n var transactionCommand = new _packages2.default.command.CommandCollection();\n\n try {\n transactionCommand.add(this.command);\n this.command = null;\n if (this.getEnclosingAngle() > 178) {\n transactionCommand.add(new _packages2.default.command.CommandRemoveVertex(this.owner, this.index));\n }\n } finally {\n stack.execute(transactionCommand);\n }\n\n this.setAlpha(1);\n\n // fire an event\n // @since 5.3.3\n this.fireEvent(\"dragend\", { x: x, y: y, shiftKey: shiftKey, ctrlKey: ctrlKey });\n },\n\n /**\n *\n * Controls the location of the resize handle\n *\n * @template\n **/\n relocate: function relocate() {\n var resizeWidthHalf = this.getWidth() / 2;\n var resizeHeightHalf = this.getHeight() / 2;\n\n var anchor = this.owner.getVertex(this.index);\n\n this.setPosition(anchor.x - resizeWidthHalf, anchor.y - resizeHeightHalf);\n },\n\n /**\n *\n * Calculates the angle between the siblings\n *\n * @returns {Number}\n */\n getEnclosingAngle: function getEnclosingAngle() {\n // calculate the angle between the siblings\n var points = this.owner.getVertices();\n var trans = this.vertex.getScaled(-1);\n var size = points.getSize();\n var left = points.get((this.index - 1 + size) % size).translated(trans); // % is just to ensure the [0, size] interval\n var right = points.get((this.index + 1) % size).translated(trans); // % is just to ensure the [0, size] interval\n\n var dot = left.dot(right);\n\n var acos = Math.acos(dot / (left.length() * right.length()));\n return acos * 180 / Math.PI;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/composite/Composite.js\":\n/*!******************************************!*\\\n !*** ./src/shape/composite/Composite.js ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Base interface for the composite shapes\n *\n * @author Andreas Herz\n * @extends draw2d.shape.basic.Rectangle\n * @since 4.7.2\n */\n_packages2.default.shape.composite.Composite = _packages2.default.SetFigure.extend(\n/** @lends draw2d.shape.composite.Composite.prototype */\n{\n\n NAME: \"draw2d.shape.composite.Composite\",\n\n /**\n * Creates a new composite element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ stroke: 1, \"color\": \"#f0f0f0\" }, attr), setter, getter);\n },\n\n /**\n *\n * Called when a user dbl clicks on the element\n *\n * @template\n */\n onDoubleClick: function onDoubleClick() {\n // do nothing per default. no rotation of the shape.\n },\n\n /**\n *\n * Delegate method to calculate if a figure is selectable. A composite has the right to override the\n * initial selectable flag of the figure.\n *\n * @param {draw2d.Figure} figure the figure to test\n * @param {Boolean} selectable the initial selectable flag of the figure\n * @returns {Boolean} returns `selectable`. A figure in a composite is per default selectable if the figure itself allows it.\n *\n */\n isMemberSelectable: function isMemberSelectable(figure, selectable) {\n return selectable;\n },\n\n /**\n *\n * Delegate method to calculate if a figure is draggable. A composite has the right to override the\n * initial draggable flag of the figure.\n *\n * @param {draw2d.Figure} figure the figure to test\n * @param {Boolean} draggable the initial draggable flag of the figure\n * @returns {Boolean} returns `draggable`. A figure in a composite is per default draggable if the figure itself allows it.\n *\n */\n isMemberDraggable: function isMemberDraggable(figure, draggable) {\n return draggable;\n },\n\n /**\n *\n * Set the canvas element of this figures. This can be used to determine whenever an element\n * is added or removed to the canvas.\n *\n * @param {draw2d.Canvas} canvas the new parent of the figure or null\n * @returns {this}\n */\n setCanvas: function setCanvas(canvas) {\n this._super(canvas);\n\n // an composite shape goes always in the background\n //\n if (canvas !== null) {\n this.toBack();\n }\n\n return this;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/composite/Group.js\":\n/*!**************************************!*\\\n !*** ./src/shape/composite/Group.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A group is a figure that acts as a transparent container for other figures. A group\n * is a StrongComposite node that controls a set of child figures. The bounding rectangle of\n * a group is the union of the bounds of its children. Child nodes cannot be selected or\n * manipulated individually.\n *\n *\n * @author Andreas Herz\n * @extends draw2d.shape.composite.StrongComposite\n * @since 4.8.0\n */\n_packages2.default.shape.composite.Group = _packages2.default.shape.composite.StrongComposite.extend(\n/** @lends draw2d.shape.composite.Group.prototype */\n{\n\n NAME: \"draw2d.shape.composite.Group\",\n\n /**\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ bgColor: null, color: null, resizeable: false }, attr), setter, getter);\n\n // used during figure assignment/unassignment. The Group is resizing during figure assignment\n // and we want avoid that already assigned figures are moving during this resize.\n //\n this.stickFigures = false;\n },\n\n /**\n *\n * Delegate method to calculate if a figure is selectable. A composite has the right to override the\n * initial selectable flag of the figure.\n *\n * @param {draw2d.Figure} figure the figure to test\n * @param {Boolean} selectable the initial selectable flag of the figure\n * @returns {Boolean} returns false because it is not possible toselect single figures in the group\n */\n isMemberSelectable: function isMemberSelectable(figure, selectable) {\n return false;\n },\n\n /**\n *\n * Delegate method to calculate if a figure is draggable. A composite has the right to override the\n * initial draggable flag of the figure.\n * <br>\n * Returns false because only the complete group is draggable\n *\n * @param {draw2d.Figure} figure the figure to test\n * @param {Boolean} draggable the initial draggable flag of the figure\n * @returns {Boolean} returns always false because it is not possible to drag&drop single figures in a group\n *\n */\n isMemberDraggable: function isMemberDraggable(figure, draggable) {\n return false;\n },\n\n /**\n *\n * Set the position of the object.\n *\n * @param {Number/draw2d.geo.Point} x The new x coordinate of the figure\n * @param {Number} [y] The new y coordinate of the figure\n * @returns {this}\n **/\n setPosition: function setPosition(x, y) {\n var oldX = this.x;\n var oldY = this.y;\n\n this._super(x, y);\n\n var dx = this.x - oldX;\n var dy = this.y - oldY;\n\n if (dx === 0 && dy === 0) {\n return this;\n }\n\n if (this.stickFigures === false) {\n this.assignedFigures.each(function (i, figure) {\n figure.translate(dx, dy);\n });\n }\n\n return this;\n },\n\n /**\n *\n * Assign a figure to the given group.\n * The bounding box of the group is recalculated and the union of the current bounding box with the\n * figure bounding box.\n *\n * @param {draw2d.Figure} figure\n * @returns {this}\n */\n assignFigure: function assignFigure(figure) {\n if (!this.assignedFigures.contains(figure)) {\n var _this = this;\n this.stickFigures = true;\n if (this.assignedFigures.isEmpty() === true) {\n this.setBoundingBox(figure.getBoundingBox());\n } else {\n this.setBoundingBox(this.getBoundingBox().merge(figure.getBoundingBox()));\n }\n this.assignedFigures.add(figure);\n figure.setComposite(this);\n // the selection adapter defines which figure should be selected if the user clicks on\n // \"figure\". The \"group\" redirects to the group instead to allowing select the child.\n figure.setSelectionAdapter(function () {\n return _this;\n });\n this.stickFigures = false;\n }\n return this;\n },\n\n /**\n *\n * Remove the given figure from the group assignment\n *\n * @param {draw2d.Figure} figure the figure to remove\n * @returns {this}\n */\n unassignFigure: function unassignFigure(figure) {\n if (this.assignedFigures.contains(figure)) {\n this.stickFigures = true;\n figure.setComposite(null);\n figure.setSelectionAdapter(null);\n this.assignedFigures.remove(figure);\n if (!this.assignedFigures.isEmpty()) {\n var box = this.assignedFigures.first().getBoundingBox();\n this.assignedFigures.each(function (i, figure) {\n box.merge(figure.getBoundingBox());\n });\n this.setBoundingBox(box);\n }\n this.stickFigures = false;\n }\n\n return this;\n },\n\n /**\n * @inheritDoc\n */\n createCommand: function createCommand(request) {\n if (request === null) {\n return null;\n }\n\n if (request.getPolicy() === _packages2.default.command.CommandType.DELETE) {\n if (!this.isDeleteable()) {\n return null;\n }\n return new _packages2.default.command.CommandDeleteGroup(this);\n }\n\n return this._super(request);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/composite/Jailhouse.js\":\n/*!******************************************!*\\\n !*** ./src/shape/composite/Jailhouse.js ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A Jailhouse is a figure that acts as a container for other figures. A Jailhouse\n * is a StrongComposite node that controls a set of child figures. Child nodes can't\n * moved outside of the composite.<br>\n * Objects in a jailhouse have the same Z-order, which can be relatively controlled with\n * respect to other figures.\n *\n * @author Andreas Herz\n * @extends draw2d.shape.composite.StrongComposite\n * @since 4.8.0\n */\n_packages2.default.shape.composite.Jailhouse = _packages2.default.shape.composite.StrongComposite.extend(\n/** @lends draw2d.shape.composite.Jailhouse.prototype */\n{\n\n NAME: \"draw2d.shape.composite.Jailhouse\",\n\n /**\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this.policy = new _packages2.default.policy.figure.RegionEditPolicy(0, 0, 10, 10);\n this._super(extend({ bgColor: \"#f0f0f0\", color: \"#333333\" }, attr), setter, getter);\n\n this.stickFigures = false;\n },\n\n /**\n *\n * Set the new width and height of the figure and update the constraint policy for the assigned\n * figures..\n *\n * @param {Number} w The new width of the figure\n * @param {Number} h The new height of the figure\n **/\n setDimension: function setDimension(w, h) {\n this._super(w, h);\n this.policy.setBoundingBox(this.getAbsoluteBounds());\n },\n\n /**\n *\n * Set the position of the object.\n *\n * @param {Number/draw2d.geo.Point} x The new x coordinate of the figure\n * @param {Number} [y] The new y coordinate of the figure\n **/\n setPosition: function setPosition(x, y) {\n var oldX = this.x;\n var oldY = this.y;\n\n this._super(x, y);\n\n var dx = this.x - oldX;\n var dy = this.y - oldY;\n\n if (dx === 0 && dy === 0) {\n return this;\n }\n this.policy.getBoundingBox().setPosition(x, y);\n\n if (this.stickFigures === false) {\n this.assignedFigures.each(function (i, figure) {\n figure.translate(dx, dy);\n });\n }\n\n return this;\n },\n\n /**\n *\n * Assign a figure to the given group.\n * The bounding box of the group is recalculated and the union of the current bounding box with the\n * figure bounding box.\n *\n * @param {draw2d.Figure} figure\n */\n assignFigure: function assignFigure(figure) {\n if (!this.assignedFigures.contains(figure) && figure !== this) {\n this.stickFigures = true;\n this.setBoundingBox(this.getBoundingBox().merge(figure.getBoundingBox()));\n this.assignedFigures.add(figure);\n figure.setComposite(this);\n figure.installEditPolicy(this.policy);\n figure.toFront(this);\n this.stickFigures = false;\n }\n return this;\n },\n\n getAssignedFigures: function getAssignedFigures() {\n return this.assignedFigures;\n },\n\n /**\n *\n * Remove the given figure from the group assignment\n *\n * @param {draw2d.Figure} figure the figure to remove\n *\n */\n unassignFigure: function unassignFigure(figure) {\n if (this.assignedFigures.contains(figure)) {\n this.stickFigures = true;\n figure.setComposite(null);\n figure.uninstallEditPolicy(this.policy);\n this.assignedFigures.remove(figure);\n if (!this.assignedFigures.isEmpty()) {\n var box = this.assignedFigures.first().getBoundingBox();\n this.assignedFigures.each(function (i, figure) {\n box.merge(figure.getBoundingBox());\n });\n this.setBoundingBox(box);\n }\n this.stickFigures = false;\n }\n\n return this;\n },\n\n onCatch: function onCatch(droppedFigure, x, y, shiftKey, ctrlKey) {\n this.getCanvas().getCommandStack().execute(new _packages2.default.command.CommandAssignFigure(droppedFigure, this));\n },\n\n /**\n *\n * Return the minWidth of the jailhouse. The minWidth is calculated by care the assigned figures.\n *\n * @returns {Number} the minimum width for the figure\n */\n getMinWidth: function getMinWidth() {\n var width = 0;\n this.assignedFigures.each(function (i, figure) {\n width = Math.max(width, figure.getBoundingBox().getRight());\n });\n return width - this.getAbsoluteX();\n },\n\n /**\n *\n * @returns {Number} the minimum height of the figure\n */\n getMinHeight: function getMinHeight() {\n var height = 0;\n this.assignedFigures.each(function (i, figure) {\n height = Math.max(height, figure.getBoundingBox().getBottom());\n });\n return height - this.getAbsoluteY();\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/composite/Raft.js\":\n/*!*************************************!*\\\n !*** ./src/shape/composite/Raft.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Raft figures are shapes, which aggregate multiple figures. It works like a real raft. Aboard figures are\n * moved if the raft figures moves.\n *\n *\n * @example\n *\n * let rect1 = new draw2d.shape.composite.Raft({width:200, height:100});\n * let rect2 = new draw2d.shape.basic.Rectangle({width:50, height:50});\n *\n * canvas.add(rect1,10,10);\n * canvas.add(rect2,20,20);\n *\n * rect2.attr({bgColor:\"#f0f000\", width:50, height:50, radius:10});\n *\n * canvas.setCurrentSelection(rect1);\n *\n * @author Andreas Herz\n * @extends draw2d.shape.composite.WeakComposite\n * @since 4.7.0\n */\n_packages2.default.shape.composite.Raft = _packages2.default.shape.composite.WeakComposite.extend(\n/** @lends draw2d.shape.composite.Raft.prototype */\n{\n\n NAME: \"draw2d.shape.composite.Raft\",\n\n /**\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n\n this.aboardFigures = new _packages2.default.util.ArrayList();\n\n this._super(extend({ bgColor: \"#f0f0f0\", color: \"#1B1B1B\" }, attr), setter, getter);\n },\n\n /**\n *\n * Will be called if the drag and drop action begins. You can return [false] if you\n * want avoid that the figure can be move.\n *\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @returns {Boolean} true if the figure accepts dragging\n **/\n onDragStart: function onDragStart(x, y, shiftKey, ctrlKey) {\n this._super(x, y, shiftKey, ctrlKey);\n\n this.aboardFigures = new _packages2.default.util.ArrayList();\n // force the recalculation of the aboard figures if the shape is in a drag&drop operation\n this.getAboardFigures(this.isInDragDrop);\n\n return true;\n },\n\n /**\n *\n * Set the position of the object.\n *\n * @param {Number/draw2d.geo.Point} x The new x coordinate of the figure\n * @param {Number} [y] The new y coordinate of the figure\n * @param {boolean} [dontApplyToChildren] don't move the children if this flag is set.\n **/\n setPosition: function setPosition(x, y, dontApplyToChildren) {\n var oldX = this.x;\n var oldY = this.y;\n\n // we need the figures before the composite has moved. Otherwise some figures are fall out of the raft\n //\n var aboardedFigures = dontApplyToChildren ? _packages2.default.util.ArrayList.EMPTY_LIST : this.getAboardFigures(this.isInDragDrop === false);\n\n this._super(x, y);\n\n var dx = this.x - oldX;\n var dy = this.y - oldY;\n\n if (dx === 0 && dy === 0) {\n return this;\n }\n\n // we must move circuits with \"user routed\" elements as well if the start/target is withing\n // the raft. Some segments stay still because some coordinates has a fixed position\n //\n if (this.canvas !== null) {\n aboardedFigures = aboardedFigures.clone();\n this.canvas.getLines().each(function (i, line) {\n if (line instanceof _packages2.default.Connection) {\n if (aboardedFigures.contains(line.getSource().getRoot()) && aboardedFigures.contains(line.getTarget().getRoot())) {\n aboardedFigures.add(line);\n }\n }\n });\n }\n\n aboardedFigures.each(function (i, figure) {\n figure.translate(dx, dy);\n });\n\n return this;\n },\n\n onDrag: function onDrag(dx, dy, dx2, dy2, shiftKey, ctrlKey) {\n var _this = this;\n\n // apply all EditPolicy for DragDrop Operations\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n var _newPos = e.adjustPosition(_this, _this.ox + dx, _this.oy + dy);\n if (_newPos) {\n dx = _newPos.x - _this.ox;\n dy = _newPos.y - _this.oy;\n }\n }\n });\n\n var newPos = new _packages2.default.geo.Point(this.ox + dx, this.oy + dy);\n\n // Adjust the new location if the object can snap to a helper\n // like grid, geometry, ruler,...\n //\n if (this.getCanSnapToHelper()) {\n newPos = this.getCanvas().snapToHelper(this, newPos);\n }\n\n // push the shiftKey to the setPosition method and avoid to move the children objects\n // if the user press the shift key\n this.setPosition(newPos.x, newPos.y, shiftKey);\n\n // notify all installed policies\n //\n this.editPolicy.each(function (i, e) {\n if (e instanceof _packages2.default.policy.figure.DragDropEditPolicy) {\n e.onDrag(_this.canvas, _this);\n }\n });\n\n // fire an event\n // @since 5.3.3\n this.fireEvent(\"drag\", { dx: dx, dy: dy, dx2: dx2, dy2: dy2, shiftKey: shiftKey, ctrlKey: ctrlKey });\n },\n\n /**\n *\n * Return all figures which are aboard of this shape. These shapes are moved as well if the raft\n * is moving.\n *\n * @returns {draw2d.util.ArrayList}\n */\n getAboardFigures: function getAboardFigures(recalculate) {\n if (recalculate === true && this.canvas !== null) {\n var raftBoundingBox = this.getBoundingBox();\n var zIndex = this.getZOrder();\n this.aboardFigures = new _packages2.default.util.ArrayList();\n\n var _this = this;\n this.getCanvas().getFigures().each(function (i, figure) {\n if (figure !== _this && figure.isSelectable() === true && figure.getBoundingBox().isInside(raftBoundingBox)) {\n // Don't add the figure if it is already catched by another composite with a higher z-index\n //\n if (_this.getNextComposite(figure) !== _this) {\n return;\n }\n // only add the shape if it is in front of the raft\n if (figure.getZOrder() > zIndex) {\n _this.aboardFigures.add(figure);\n }\n }\n });\n }\n return this.aboardFigures;\n },\n\n /**\n *\n * return the next potential composite parent figure\n *\n * @param {draw2d.Figure} figureToTest\n * @returns {draw2d.Figure}\n */\n getNextComposite: function getNextComposite(figureToTest) {\n var nextComposite = null;\n this.getCanvas().getFigures().each(function (i, figure) {\n if (figureToTest === figure) {\n return;\n }\n if (figure instanceof _packages2.default.shape.composite.Composite) {\n if (nextComposite !== null && nextComposite.getZOrder() > figure.getZOrder()) {\n return;\n }\n\n if (figure.getBoundingBox().contains(figureToTest.getBoundingBox())) {\n nextComposite = figure;\n }\n }\n });\n\n return nextComposite;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/composite/StrongComposite.js\":\n/*!************************************************!*\\\n !*** ./src/shape/composite/StrongComposite.js ***!\n \\************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * A StrongComposite is a composite figure with strong assignment of the children and the composite.\n * The child knows everything about the assigned composite and receives events about assignment to a\n * composite.\n *\n *\n * @author Andreas Herz\n * @extends draw2d.shape.composite.Composite\n * @since 4.8.0\n */\n_packages2.default.shape.composite.StrongComposite = _packages2.default.shape.composite.Composite.extend(\n/** @lends draw2d.shape.composite.StrongComposite.prototype */\n{\n\n NAME: \"draw2d.shape.composite.StrongComposite\",\n\n /**\n * Creates a new strong composite element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this.assignedFigures = new _packages2.default.util.ArrayList();\n\n this._super(attr, setter, getter);\n },\n\n /**\n * \n * Check to see if a figure is a descendant of another figure.\n * <br>\n * The contains() method returns true if the figure provided by the argument is a descendant of this figure,\n * whether it is a direct child or nested more deeply. Otherwise, it returns false.\n *\n * @param {draw2d.Figure} containedFigure The figure that may be contained by (a descendant of) this figure.\n * @since 5.5.4\n */\n contains: function contains(containedFigure) {\n for (var i = 0, len = this.assignedFigures.getSize(); i < len; i++) {\n var child = this.assignedFigures.get(i);\n if (child === containedFigure || child.contains(containedFigure)) {\n return true;\n }\n }\n return this._super(containedFigure);\n },\n\n /**\n * \n * Assign a figure to the composite.\n *\n * @param {draw2d.Figure} figure\n * @template\n */\n assignFigure: function assignFigure(figure) {\n return this;\n },\n\n /**\n * \n * Remove the given figure from the group assignment\n *\n * @param {draw2d.Figure} figure the figure to remove\n * @template\n */\n unassignFigure: function unassignFigure(figure) {\n return this;\n },\n\n /**\n * \n * Return all assigned figures of the composite\n *\n * @returns {draw2d.util.ArrayList}\n */\n getAssignedFigures: function getAssignedFigures() {\n return this.assignedFigures;\n },\n\n /**\n * \n * Called if the user drop this element onto the dropTarget. This event is ONLY fired if the\n * shape return \"this\" in the onDragEnter method.\n *\n *\n * @param {draw2d.Figure} dropTarget The drop target.\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n * @since 4.7.4\n **/\n onDrop: function onDrop(dropTarget, x, y, shiftKey, ctrlKey) {},\n\n /**\n * \n * Called if the user dropped an figure onto this element. This event is ONLY fired if the\n * shape return \"this\" in the onDragEnter method.\n *\n *\n * @param {draw2d.Figure} droppedFigure The dropped figure.\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n * @template\n * @since 4.7.4\n **/\n onCatch: function onCatch(droppedFigure, x, y, shiftKey, ctrlKey) {},\n\n /**\n * \n * Moves the element so it is the closest to the viewer’s eyes, on top of other elements. Additional\n * the internal model changed as well.\n *\n * Optional: Inserts current object in front of the given one.\n *\n * @param {draw2d.Figure} [figure] move current object in front of the given one.\n */\n toFront: function toFront(figure) {\n this._super(figure);\n // ensure that all assigned figures are in front of the composite\n //\n var figures = this.getAssignedFigures().clone();\n figures.sort(function (a, b) {\n // return 1 if a before b\n // return -1 if b before a\n return a.getZOrder() > b.getZOrder() ? -1 : 1;\n });\n var _this = this;\n figures.each(function (i, f) {\n f.toFront(_this);\n });\n\n return this;\n },\n\n /**\n * \n * Moves the element to the background. Additional\n * the internal model changed as well.\n *\n * @since 4.7.2\n */\n toBack: function toBack(figure) {\n this._super(figure);\n // ensure that all assigned figures are in front of the composite\n //\n var figures = this.getAssignedFigures().clone();\n figures.sort(function (a, b) {\n // return 1 if a before b\n // return -1 if b before a\n return a.getZOrder() > b.getZOrder() ? -1 : 1;\n });\n\n var _this = this;\n figures.each(function (i, f) {\n f.toBack(_this);\n });\n\n return this;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/composite/WeakComposite.js\":\n/*!**********************************************!*\\\n !*** ./src/shape/composite/WeakComposite.js ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * A WeakComposite is a composite figure with loose coupling of the children and the composite.\n * The child didn't know anything about the assigned composite nor did they receive any events\n * about assignment to a composite.\n *\n * Assignment without obligation.\n *\n *\n * @author Andreas Herz\n * @extends draw2d.shape.composite.Composite\n * @since 4.8.0\n */\n_packages2.default.shape.composite.WeakComposite = _packages2.default.shape.composite.Composite.extend(\n/** @lends draw2d.shape.composite.WeakComposite.prototype */\n{\n\n NAME: \"draw2d.shape.composite.WeakComposite\",\n\n /**\n * Creates a new weak composite element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/diagram/Diagram.js\":\n/*!**************************************!*\\\n !*** ./src/shape/diagram/Diagram.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _JSONUtil = __webpack_require__(/*! ../../util/JSONUtil */ \"./src/util/JSONUtil.js\");\n\nvar _JSONUtil2 = _interopRequireDefault(_JSONUtil);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Base class for all diagrams.\n *\n * @param {Object} [attr] the configuration of the shape\n * @extends draw2d.SetFigure\n */\n_packages2.default.shape.diagram.Diagram = _packages2.default.SetFigure.extend(\n/** @lends draw2d.shape.diagram.Diagram */\n{\n\n init: function init(attr, setter, getter) {\n this.data = [];\n this.cache = {};\n\n this._super((0, _extend2.default)({ data: [], bgColor: \"#8dabf2\", stroke: 1, color: \"#f0f0f0\", radius: 2, resizeable: true }, attr), (0, _extend2.default)({}, {\n // @attr {Array} data the data to display in the diagram */\n data: this.setData\n }, setter), (0, _extend2.default)({}, {\n data: this.getData\n }, getter));\n },\n\n /**\n * \n * Set the data for the chart/diagram element\n *\n * @param {Array} data\n *\n */\n setData: function setData(data) {\n this.data = data;\n this.cache = {};\n\n if (this.svgNodes !== null) {\n this.svgNodes.remove();\n this.svgNodes = this.createSet();\n }\n\n this.repaint();\n this.fireEvent(\"change:data\", { value: data });\n },\n\n /**\n * \n * Return the data of the diagram\n *\n * @since 5.0.0\n */\n getData: function getData() {\n return this.data;\n },\n\n /**\n * \n * Set the dimension of the diagram and reset the cached calculation\n *\n * @since 5.0.0\n */\n setDimension: function setDimension(w, h) {\n this.cache = {};\n this._super(w, h);\n\n return this;\n },\n\n /**\n * \n * Return the calculate width of the set. This calculates the bounding box of all elements.\n *\n * @returns {Number} the calculated width of the label\n **/\n getWidth: function getWidth() {\n return this.width;\n },\n\n /**\n * \n * Return the calculated height of the set. This calculates the bounding box of all elements.\n *\n * @returns {Number} the calculated height of the label\n */\n getHeight: function getHeight() {\n return this.height;\n },\n\n /**\n *\n * @param attributes\n */\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape == null) {\n return this;\n }\n\n attributes = attributes || {};\n\n _JSONUtil2.default.ensureDefault(attributes, \"fill\", \"none\");\n\n return this._super(attributes);\n },\n\n applyTransformation: function applyTransformation() {\n if (this.isResizeable() === true) {\n this.svgNodes.transform(\"S\" + this.scaleX + \",\" + this.scaleY + \",\" + this.getAbsoluteX() + \",\" + this.getAbsoluteY() + \"t\" + this.getAbsoluteX() + \",\" + this.getAbsoluteY());\n } else {\n this.svgNodes.transform(\"T\" + this.getAbsoluteX() + \",\" + this.getAbsoluteY());\n }\n\n return this;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/diagram/Pie.js\":\n/*!**********************************!*\\\n !*** ./src/shape/diagram/Pie.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Small data pie chart.\n *\n *\n * @example\n *\n * let pie = new draw2d.shape.diagram.Pie({\n * diameter:80,\n * data:[30,60,122,4],\n * x:100,\n * y:60\n * });\n *\n * canvas.add( pie);\n *\n * @param {Object} [attr] the configuration of the shape\n * @extends draw2d.shape.diagram.Diagram\n */\n_packages2.default.shape.diagram.Pie = _packages2.default.shape.diagram.Diagram.extend(\n/** @lends draw2d.shape.diagram.Pie */\n{\n\n NAME: \"draw2d.shape.diagram.Pie\",\n COLORS: ['#00A8F0', '#b9dd69', '#f3546a', '#4DA74D', '#9440ED'],\n TWO_PI: Math.PI * 2,\n\n init: function init(attr, setter, getter) {\n\n this._super((0, _extend2.default)({ stroke: 0 }, attr), (0, _extend2.default)({\n // @attr {Number} diameter the diameter of the pie chart */\n diameter: this.setDiameter,\n // @attr {Number} radius the radius of the pie chart */\n radius: this.setRadius\n }, setter), (0, _extend2.default)({\n diameter: this.getDiameter,\n radius: this.getRadius\n }, getter));\n },\n\n /**\n *\n * Set the diameter of the circle. The center of the circle will be retained.\n *\n * @param {Number} d The new diameter of the circle.\n * @since 4.0.0\n **/\n setDiameter: function setDiameter(d) {\n var center = this.getCenter();\n this.setDimension(d, d);\n this.setCenter(center);\n this.fireEvent(\"change:diameter\", { value: this.width });\n\n return this;\n },\n\n /**\n *\n * Get the diameter of the circle.\n *\n * @since 4.0.0\n **/\n getDiameter: function getDiameter() {\n return this.getWidth();\n },\n\n /**\n *\n * Set the radius of the circle. The center of the circle will be retained.\n *\n * @param {Number} r The new radius of the circle.\n * @since 4.0.0\n **/\n setRadius: function setRadius(r) {\n this.setDiameter(r * 2);\n this.fireEvent(\"change:radius\", { value: this.width / 2 });\n\n return this;\n },\n\n /**\n *\n * Get the center of the circle\n *\n */\n getCenter: function getCenter() {\n var d2 = this.getDiameter() / 2;\n return this.getPosition().translate(d2, d2);\n },\n\n /**\n *\n * Set the center of the circle.\n *\n * @param {Number|draw2d.geo.Point} x the new x coordinate of the center or a draw2d.geo.Point object with the center\n * @param {Number} y the y coordinate of the new center of the first argument isn't a draw2d.geo.Point object\n */\n setCenter: function setCenter(x, y) {\n var pos = new _packages2.default.geo.Point(x, y);\n var d2 = this.getDiameter() / 2;\n pos.translate(-d2, -d2);\n this.setPosition(pos);\n this.fireEvent(\"change:center\", { value: { x: x, y: y } });\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n setData: function setData(data) {\n var _this = this;\n\n // Normalize the Data.\n // The SUM must be == 1.\n this.sum = 0;\n data.forEach(function (val) {\n _this.sum += val;\n });\n var _sum = 1 / this.sum;\n data.forEach(function (val, i) {\n data[i] = _sum * val;\n });\n\n // pass the normalize data to the base implementation\n //\n this._super(data);\n this.fireEvent(\"change:data\", { value: data });\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n createSet: function createSet() {\n var radius = this.getWidth() / 2;\n var length = this.data.length;\n\n var pie = this.canvas.paper.set();\n\n var offsetAngle = 0;\n\n for (var i = 0; i < length; i++) {\n // angle is percent of TWO_PI\n var angle = this.TWO_PI * this.data[i];\n var color = this.COLORS[i % length];\n var seg = this.drawSegment(radius, angle, offsetAngle, 0.1);\n seg.attr({ stroke: this.color.rgba(), fill: color });\n pie.push(seg);\n offsetAngle += angle;\n }\n return pie;\n },\n\n /**\n * @inheritdoc\n */\n setDimension: function setDimension(w, h) {\n // keep the aspect ration\n //\n if (w > h) {\n this._super(w, w);\n } else {\n this._super(h, h);\n }\n\n // we must recreate the diagram if we change the size.\n // low performance. Better: transfor/scale the set. Can be done in the next release\n //\n if (this.svgNodes !== null) {\n this.svgNodes.remove();\n this.svgNodes = this.createSet();\n }\n\n this.repaint();\n\n return this;\n },\n\n polarPath: function polarPath(radius, theta, rotation) {\n var x = void 0,\n y = void 0;\n x = radius * Math.cos(theta + rotation) + radius;\n y = radius * Math.sin(theta + rotation) + radius;\n return \"L \" + x + \" \" + y + \" \";\n },\n\n drawSegment: function drawSegment(radius, value, rotation, resolution) {\n var path = \"M \" + radius + \" \" + radius;\n\n for (var i = 0; i < value; i += resolution) {\n path += this.polarPath(radius, i, rotation);\n }\n path += this.polarPath(radius, value, rotation);\n\n path += \"L \" + radius + \" \" + radius;\n return this.getCanvas().paper.path(path);\n },\n\n /**\n * @inheritdoc\n */\n applyTransformation: function applyTransformation() {\n this.svgNodes.transform(\"T\" + this.getAbsoluteX() + \",\" + this.getAbsoluteY());\n\n return this;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/diagram/Sparkline.js\":\n/*!****************************************!*\\\n !*** ./src/shape/diagram/Sparkline.js ***!\n \\****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n/**\n * @class\n *\n * Small data line diagram.\n *\n *\n * @example\n *\n * let testData = [];\n * for(let i=0;i<100;i++) {\n * testData.push(Math.floor(Math.random() * 100));\n * }\n *\n * let sparkline = new draw2d.shape.diagram.Sparkline({\n * \tdata: testData,\n * width:150,\n * height:50,\n * x:100,\n * y:60\n * });\n *\n * canvas.add( sparkline);\n *\n * @param {Object} [attr] the configuration of the shape\n * @extends draw2d.shape.diagram.Diagram\n */\n_packages2.default.shape.diagram.Sparkline = _packages2.default.shape.diagram.Diagram.extend(\n/** @lends draw2d.shape.diagram.Sparkline */\n{\n\n NAME: \"draw2d.shape.diagram.Sparkline\",\n\n init: function init(attr, setter, getter) {\n this.min = 0;\n this.max = 10;\n this.padding = 4;\n\n this._super((0, _extend2.default)({ width: 180, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @inheritdoc\n */\n setData: function setData(data) {\n if (data.length > 0) {\n // get the min/max from an array and not only from two elements..\n this.min = Math.min.apply(Math, _toConsumableArray(data));\n this.max = Math.max.apply(Math, _toConsumableArray(data));\n } else {\n this.min = 0;\n this.max = 1;\n }\n\n if (this.max === this.min) {\n this.max = this.min + 1;\n }\n\n this._super(data);\n this.fireEvent(\"change:data\", { value: data });\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M0 0 l0 0\");\n },\n\n /**\n * @inheritdoc\n */\n repaint: function repaint(attributes) {\n var _this = this;\n\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n attributes = attributes || {};\n\n attributes.fill = \"90-#000:5-#4d4d4d:95\";\n\n var padding = this.padding;\n var width = this.getWidth() - 2 * padding;\n var height = this.getHeight() - 2 * padding;\n var length = this.data.length;\n var min = this.min;\n var max = this.max;\n var toCoords = function toCoords(value, idx) {\n var step = 1;\n // avoid divisionByZero\n if (length > 1) {\n step = width / (length - 1);\n }\n\n return {\n y: -((value - min) / (max - min) * height) + height + padding,\n x: padding + idx * step\n };\n };\n\n if (this.svgNodes !== null && typeof this.cache.pathString === \"undefined\") {\n var prev_pt = null;\n this.data.forEach(function (item, idx) {\n var pt = toCoords(item, idx);\n if (prev_pt === null) {\n _this.cache.pathString = [\"M\", pt.x, pt.y].join(\" \");\n } else {\n _this.cache.pathString = [_this.cache.pathString, \"L\", pt.x, pt.y].join(\" \");\n }\n prev_pt = pt;\n });\n\n this.svgNodes.attr({ path: this.cache.pathString, stroke: \"#f0f0f0\" });\n }\n this._super(attributes);\n\n return this;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/dimetric/Rectangle.js\":\n/*!*****************************************!*\\\n !*** ./src/shape/dimetric/Rectangle.js ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * A Rectangle Figure in a dimetric perspective.\n *\n *\n * @example\n *\n * let d1 = new draw2d.shape.dimetric.Rectangle({x:10,y:10});\n * let d2 = new draw2d.shape.dimetric.Rectangle({x:100,y:10, bgColor:\"#f0f000\", alpha:0.7, width:100, height:60});\n *\n * canvas.add(d1);\n * canvas.add(d2);\n *\n * canvas.setCurrentSelection(d2);\n *\n * @author Andreas Herz\n * @extends draw2d.shape.basic.Polygon\n */\n_packages2.default.shape.dimetric.Rectangle = _packages2.default.shape.basic.Polygon.extend(\n/** @lends draw2d.shape.dimetric.Rectangle.prototype */\n{\n\n NAME: \"draw2d.shape.dimetric.Rectangle\",\n\n /**\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ bgColor: \"#00a3f6\", color: \"#1B1B1B\" }, attr), setter, getter);\n\n var pos = this.getPosition();\n\n this.resetVertices();\n\n var angle26 = Math.atan(.5);\n var cos30 = Math.cos(angle26);\n var sin30 = Math.sin(angle26);\n\n var box = this.getBoundingBox();\n var w = box.w;\n var h = box.h;\n\n this.addVertex(0, 0); // topLeft\n this.addVertex(cos30 * w, sin30 * w); // topRight\n this.addVertex(cos30 * w - cos30 * h, sin30 * w + sin30 * h); // bottomRight\n this.addVertex(-cos30 * h, sin30 * h); // bottomLeft\n\n // override the selection handler from the polygon. Because the vertices of\n // the diamond are not selectable and modifiable\n //\n this.installEditPolicy(new _packages2.default.policy.figure.RectangleSelectionFeedbackPolicy());\n\n this.setPosition(pos);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/flowchart/Document.js\":\n/*!*****************************************!*\\\n !*** ./src/shape/flowchart/Document.js ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Typical flowchart <b>Document</b> shape\n *\n *\n * @example\n *\n * let figure = new draw2d.shape.flowchart.Document({\n * x:100,\n * y:60\n * });\n *\n * canvas.add( figure);\n *\n * @extends draw2d.VectorFigure\n */\n_packages2.default.shape.flowchart.Document = _packages2.default.VectorFigure.extend(\n/** @lends draw2d.shape.flowchart.Document.prototype */\n{\n\n NAME: \"draw2d.shape.flowchart.Document\",\n\n /**\n *\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this.amplitude = 0.08; // percentage of height\n\n this._super(extend({\n width: 80,\n height: 50,\n bgColor: \"#2196f3\",\n color: \"#1B1B1B\",\n stroke: 1\n }, attr), setter, getter);\n },\n\n /**\n * @inheritdoc\n */\n createShapeElement: function createShapeElement() {\n return this.canvas.paper.path(this.calcPath());\n },\n\n calcPath: function calcPath() {\n var w = this.getWidth();\n var h = this.getHeight();\n var w2 = w / 2;\n var w4 = w / 4;\n var h2 = h * this.amplitude | 0;\n\n return [\"M\", this.getAbsoluteX(), \",\", this.getAbsoluteY(), \"l\", w, \",\", 0, \"l\", 0, \",\", h - h2, \"q\", -w4, \",\", -h2, -w2, \",\", 0, \"q\", -w4, \",\", h2, -w2, \",\", 0, \"z\"].join(\" \");\n },\n\n /**\n * @inheritdoc\n **/\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n attributes = extend({}, {\n path: this.calcPath()\n }, attributes);\n\n this._super(attributes);\n\n return this;\n }\n /*\n function draw_curve(Ax, Ay, Bx, By, M) {\n // Find midpoint J\n let Jx = Ax + (Bx - Ax) / 2\n let Jy = Ay + (By - Ay) / 2\n // We need a and b to find theta, and we need to know the sign of each to make sure that the orientation is correct.\n let a = Bx - Ax\n let asign = (a < 0 ? -1 : 1)\n let b = By - Ay\n let bsign = (b < 0 ? -1 : 1)\n let theta = Math.atan(b / a)\n // Find the point that's perpendicular to J on side\n let costheta = asign * Math.cos(theta)\n let sintheta = asign * Math.sin(theta)\n // Find c and d\n let c = M * sintheta\n let d = M * costheta\n // Use c and d to find Kx and Ky\n let Kx = Jx - c\n let Ky = Jy + d\n return \"M\" + Ax + \",\" + Ay +\n \"Q\" + Kx + \",\" + Ky +\n \" \" + Bx + \",\" + By\n }*/\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Acw.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Acw.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Acw();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Acw = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Acw.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Acw\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M19.275,3.849l1.695,8.56l1.875-1.642c2.311,3.59,1.72,8.415-1.584,11.317c-2.24,1.96-5.186,2.57-7.875,1.908l-0.84,3.396c3.75,0.931,7.891,0.066,11.02-2.672c4.768-4.173,5.521-11.219,1.94-16.279l2.028-1.775L19.275,3.849zM8.154,20.232c-2.312-3.589-1.721-8.416,1.582-11.317c2.239-1.959,5.186-2.572,7.875-1.909l0.842-3.398c-3.752-0.93-7.893-0.067-11.022,2.672c-4.765,4.174-5.519,11.223-1.939,16.283l-2.026,1.772l8.26,2.812l-1.693-8.559L8.154,20.232z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Alarm.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Alarm.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Alarm();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Alarm = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Alarm.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Alarm\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M8.179,20.115c-0.478,0.277-0.642,0.889-0.365,1.366c0.275,0.479,0.889,0.642,1.365,0.366c0.479-0.275,0.643-0.888,0.367-1.367C9.27,20.004,8.658,19.84,8.179,20.115zM9.18,12.239c-0.479-0.276-1.09-0.112-1.366,0.366s-0.111,1.09,0.365,1.366c0.479,0.276,1.09,0.113,1.367-0.366C9.821,13.126,9.657,12.516,9.18,12.239zM8.625,17.043c-0.001-0.552-0.448-0.999-1.001-1c-0.553,0-1,0.448-1,1c0,0.553,0.449,1,1,1C8.176,18.043,8.624,17.596,8.625,17.043zM16.312,3.957V3.031h1c0.275,0,0.5-0.225,0.5-0.5v-0.5c0-0.275-0.225-0.5-0.5-0.5h-3.625c-0.275,0-0.5,0.225-0.5,0.5v0.5c0,0.275,0.225,0.5,0.5,0.5h1v0.926C7.819,4.381,2.376,10.068,2.374,17.042C2.376,24.291,8.251,30.166,15.5,30.169c7.249-0.003,13.124-5.878,13.125-13.127C28.624,10.067,23.181,4.38,16.312,3.957zM15.5,27.166C9.909,27.157,5.385,22.633,5.375,17.042C5.385,11.451,9.909,6.927,15.5,6.917c5.59,0.01,10.115,4.535,10.124,10.125C25.615,22.633,21.091,27.157,15.5,27.166zM12.062,22.998c-0.478-0.275-1.089-0.111-1.366,0.367c-0.275,0.479-0.111,1.09,0.366,1.365c0.478,0.277,1.091,0.111,1.365-0.365C12.704,23.887,12.54,23.275,12.062,22.998zM12.062,11.088c0.479-0.276,0.642-0.888,0.366-1.366c-0.276-0.478-0.888-0.642-1.366-0.366s-0.642,0.888-0.366,1.366C10.973,11.2,11.584,11.364,12.062,11.088zM22.822,13.971c0.478-0.275,0.643-0.888,0.366-1.366c-0.275-0.478-0.89-0.642-1.366-0.366c-0.479,0.278-0.642,0.89-0.366,1.367C21.732,14.083,22.344,14.247,22.822,13.971zM15.501,23.92c-0.552,0-1,0.447-1,1c0,0.552,0.448,1,1,1s1-0.448,1-1C16.501,24.367,16.053,23.92,15.501,23.92zM19.938,9.355c-0.477-0.276-1.091-0.111-1.365,0.366c-0.275,0.48-0.111,1.091,0.366,1.367s1.089,0.112,1.366-0.366C20.581,10.245,20.418,9.632,19.938,9.355zM23.378,16.042c-0.554,0.002-1.001,0.45-1.001,1c0.001,0.552,0.448,1,1.001,1c0.551,0,1-0.447,1-1C24.378,16.492,23.929,16.042,23.378,16.042zM22.823,20.115c-0.48-0.275-1.092-0.111-1.367,0.365c-0.275,0.479-0.112,1.091,0.367,1.367c0.477,0.275,1.089,0.112,1.365-0.366C23.464,21.004,23.3,20.391,22.823,20.115zM15.501,8.167c-0.552,0-1,0.448-1,1l-0.466,7.343l-3.004,1.96c-0.478,0.277-0.642,0.889-0.365,1.366c0.275,0.479,0.889,0.642,1.365,0.366l3.305-1.676c0.055,0.006,0.109,0.017,0.166,0.017c0.828,0,1.5-0.672,1.5-1.5l-0.5-7.876C16.501,8.614,16.053,8.167,15.501,8.167zM18.939,22.998c-0.479,0.276-0.643,0.888-0.366,1.367c0.275,0.477,0.888,0.642,1.366,0.365c0.478-0.276,0.642-0.889,0.366-1.365C20.028,22.886,19.417,22.723,18.939,22.998zM11.197,3.593c-0.836-1.04-2.103-1.718-3.541-1.718c-2.52,0-4.562,2.042-4.562,4.562c0,0.957,0.297,1.843,0.8,2.576C5.649,6.484,8.206,4.553,11.197,3.593zM27.106,9.014c0.503-0.733,0.8-1.619,0.8-2.576c0-2.52-2.043-4.562-4.562-4.562c-1.438,0-2.704,0.678-3.541,1.717C22.794,4.553,25.351,6.484,27.106,9.014z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Anonymous.js\":\n/*!*************************************!*\\\n !*** ./src/shape/icon/Anonymous.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Anonymous();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Anonymous = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Anonymous.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Anonymous\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.523,23.813c-0.518-0.51-6.795-2.938-7.934-3.396c-1.132-0.451-1.584-1.697-1.584-1.697s-0.51,0.282-0.51-0.51c0-0.793,0.51,0.51,1.021-2.548c0,0,1.414-0.397,1.133-3.68l-0.338,0.001c0,0,0.85-3.511,0-4.699c-0.854-1.188-1.188-1.981-3.062-2.548c-1.869-0.567-1.188-0.454-2.547-0.396c-1.359,0.057-2.492,0.793-2.492,1.188c0,0-0.849,0.057-1.188,0.397c-0.34,0.34-0.906,1.924-0.906,2.32s0.283,3.059,0.566,3.624l-0.337,0.112c-0.283,3.283,1.132,3.681,1.132,3.681c0.509,3.058,1.019,1.755,1.019,2.548c0,0.792-0.51,0.51-0.51,0.51s-0.452,1.246-1.584,1.697c-1.132,0.453-7.416,2.887-7.927,3.396c-0.511,0.521-0.453,2.896-0.453,2.896h26.954C28.977,26.709,29.039,24.332,28.523,23.813zM16.618,13.693c-0.398-0.251-0.783-1.211-0.783-1.64c0-0.133,0-0.236,0-0.236c-0.105-0.106-0.574-0.096-0.67,0c0,0,0,0.104,0,0.236c0,0.429-0.385,1.389-0.783,1.64c-0.399,0.251-1.611,0.237-2.084-0.236c-0.473-0.473-0.524-1.663-0.643-1.78c-0.118-0.119-0.185-0.185-0.185-0.185l0.029-0.414c0,0,0.842-0.207,1.699-0.207s1.803,0.502,1.803,0.502c0.231-0.074,0.784-0.083,0.996,0c0,0,0.945-0.502,1.803-0.502s1.699,0.207,1.699,0.207l0.029,0.414c0,0-0.066,0.066-0.185,0.185c-0.118,0.118-0.169,1.308-0.643,1.78C18.229,13.93,17.018,13.944,16.618,13.693z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Apple.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Apple.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Apple();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Apple = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Apple.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Apple\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.32,10.85c-1.743,1.233-2.615,2.719-2.615,4.455c0,2.079,1.078,3.673,3.232,4.786c-0.578,1.677-1.416,3.134-2.514,4.375c-1.097,1.241-2.098,1.862-3.004,1.862c-0.427,0-1.009-0.143-1.748-0.423l-0.354-0.138c-0.725-0.281-1.363-0.423-1.92-0.423c-0.525,0-1.1,0.11-1.725,0.331l-0.445,0.16l-0.56,0.229c-0.441,0.176-0.888,0.264-1.337,0.264c-1.059,0-2.228-0.872-3.507-2.616c-1.843-2.498-2.764-5.221-2.764-8.167c0-2.095,0.574-3.781,1.725-5.061c1.149-1.279,2.673-1.92,4.568-1.92c0.709,0,1.371,0.13,1.988,0.389l0.423,0.172l0.445,0.183c0.396,0.167,0.716,0.251,0.959,0.251c0.312,0,0.659-0.072,1.04-0.217l0.582-0.229l0.435-0.16c0.693-0.251,1.459-0.377,2.297-0.377C21.512,8.576,23.109,9.334,24.32,10.85zM19.615,3.287c0.021,0.267,0.033,0.473,0.033,0.617c0,1.317-0.479,2.473-1.438,3.467s-2.075,1.49-3.347,1.49c-0.038-0.297-0.058-0.51-0.058-0.639c0-1.12,0.445-2.171,1.337-3.153c0.891-0.982,1.922-1.558,3.096-1.725C19.32,3.329,19.447,3.311,19.615,3.287z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Apps.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Apps.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Apps();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Apps = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Apps.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Apps\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.359,18.424l-2.326,1.215c0.708,1.174,1.384,2.281,1.844,3.033l2.043-1.066C25.538,20.822,24.966,19.652,24.359,18.424zM19.143,14.688c0.445,0.84,1.342,2.367,2.274,3.926l2.414-1.261c-0.872-1.769-1.72-3.458-2.087-4.122c-0.896-1.621-1.982-3.108-3.454-5.417c-1.673-2.625-3.462-5.492-4.052-4.947c-1.194,0.384,1.237,4.094,1.876,5.715C16.73,10.147,17.991,12.512,19.143,14.688zM26.457,22.673l-1.961,1.022l1.982,4.598c0,0,0.811,0.684,1.92,0.213c1.104-0.469,0.81-1.706,0.81-1.706L26.457,22.673zM24.35,15.711c0.168,0.339,2.924,5.93,2.924,5.93h1.983v-5.93H24.35zM18.34,15.704h-4.726l-3.424,5.935h11.66C21.559,21.159,18.771,16.479,18.34,15.704zM3.231,21.613l3.437-5.902H2.083v5.93h1.133L3.231,21.613zM15.048,10.145c0-0.93-0.754-1.685-1.685-1.685c-0.661,0-1.231,0.381-1.507,0.936l2.976,1.572C14.97,10.725,15.048,10.444,15.048,10.145zM14.343,12.06l-3.188-1.684L9.62,13.012l3.197,1.689L14.343,12.06zM3.192,26.886l-0.384,1.108v0.299l0.298-0.128l0.725-0.896l2.997-2.354l-3.137-1.651L3.192,26.886zM9.02,14.044l-4.757,8.17l3.23,1.706l4.728-8.186L9.02,14.044z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/ArrowDown.js\":\n/*!*************************************!*\\\n !*** ./src/shape/icon/ArrowDown.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.ArrowDown();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.ArrowDown = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.ArrowDown.prototype */\n{\n\n NAME: \"draw2d.shape.icon.ArrowDown\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M5.318,6.684L15.5,24.316L25.682,6.684H5.318z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/ArrowLeft.js\":\n/*!*************************************!*\\\n !*** ./src/shape/icon/ArrowLeft.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.ArrowLeft();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.ArrowLeft = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.ArrowLeft.prototype */\n{\n\n NAME: \"draw2d.shape.icon.ArrowLeft\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.316,5.318L6.684,15.5l17.632,10.182V5.318L24.316,5.318z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/ArrowLeft2.js\":\n/*!**************************************!*\\\n !*** ./src/shape/icon/ArrowLeft2.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.ArrowLeft2();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.ArrowLeft2 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.ArrowLeft2.prototype */\n{\n\n NAME: \"draw2d.shape.icon.ArrowLeft2\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M21.871,9.814 15.684,16.001 21.871,22.188 18.335,25.725 8.612,16.001 18.335,6.276z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/ArrowRight.js\":\n/*!**************************************!*\\\n !*** ./src/shape/icon/ArrowRight.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.ArrowRight();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.ArrowRight = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.ArrowRight.prototype */\n{\n\n NAME: \"draw2d.shape.icon.ArrowRight\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M6.684,25.682L24.316,15.5L6.684,5.318V25.682z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/ArrowRight2.js\":\n/*!***************************************!*\\\n !*** ./src/shape/icon/ArrowRight2.js ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.ArrowRight2();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.ArrowRight2 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.ArrowRight2.prototype */\n{\n\n NAME: \"draw2d.shape.icon.ArrowRight2\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M10.129,22.186 16.316,15.999 10.129,9.812 13.665,6.276 23.389,15.999 13.665,25.725z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/ArrowUp.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/ArrowUp.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.ArrowUp();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.ArrowUp = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.ArrowUp.prototype */\n{\n\n NAME: \"draw2d.shape.icon.ArrowUp\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.682,24.316L15.5,6.684L5.318,24.316H25.682z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Aumade.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Aumade.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Aumade();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Aumade = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Aumade.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Aumade\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M14.513,24.52c-0.131-0.217-0.14-0.481-0.022-0.711l1.987-3.844l0,0c0.186-0.357,0.625-0.497,0.981-0.312c0.357,0.188,0.498,0.625,0.312,0.982l-1.801,3.48l2.228,3.699h12.269l-14.8-25.631L6.433,18.178c0.434,0.242,0.909,0.479,1.391,0.654c0.571,0.211,1.148,0.342,1.658,0.342c0.276,0,0.579-0.078,0.916-0.238c0.337-0.158,0.7-0.396,1.073-0.688c0.749-0.582,1.527-1.354,2.334-2.021c0.539-0.442,1.091-0.844,1.706-1.099c0.352-0.145,0.729-0.239,1.128-0.239c0.622,0,1.174,0.214,1.622,0.5c0.449,0.287,0.813,0.646,1.11,0.995c0.59,0.697,0.902,1.359,0.924,1.394l0,0c0.18,0.361,0.021,0.801-0.341,0.977c-0.356,0.176-0.798,0.021-0.978-0.34c0-0.002-0.002-0.004-0.004-0.007c-0.002-0.011-0.008-0.021-0.018-0.034c-0.018-0.033-0.043-0.082-0.078-0.146c-0.07-0.125-0.179-0.305-0.312-0.496c-0.271-0.391-0.668-0.845-1.092-1.104c-0.281-0.178-0.561-0.272-0.844-0.272c-0.216,0-0.479,0.069-0.788,0.229c-0.309,0.153-0.653,0.396-1.016,0.688c-0.727,0.584-1.511,1.362-2.351,2.033c-0.562,0.445-1.15,0.853-1.809,1.103c-0.375,0.143-0.776,0.229-1.195,0.229c-0.749,0-1.48-0.181-2.164-0.433c-0.58-0.219-1.125-0.482-1.613-0.764L0.86,27.816h15.63L14.513,24.52zM18.214,22.242c0.222-0.557,0.537-1.217,0.963-1.848c0.427-0.627,0.957-1.232,1.646-1.646c0.379-0.229,0.812-0.391,1.282-0.438l-0.604-0.934l0,0c-0.22-0.339-0.123-0.789,0.215-1.009c0.341-0.219,0.789-0.123,1.013,0.216l1.545,2.391c0.184,0.274,0.147,0.646-0.075,0.893c-0.228,0.247-0.591,0.305-0.886,0.145c-0.354-0.191-0.646-0.258-0.901-0.258c-0.291,0-0.562,0.084-0.845,0.25c-0.277,0.164-0.562,0.414-0.813,0.719c-0.519,0.607-0.937,1.422-1.185,2.055c-0.111,0.285-0.387,0.466-0.678,0.466c-0.092,0-0.183-0.021-0.271-0.056C18.249,23.039,18.064,22.615,18.214,22.242z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/BarChart.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/BarChart.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.BarChart();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.BarChart = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.BarChart.prototype */\n{\n\n NAME: \"draw2d.shape.icon.BarChart\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M21.25,8.375V28h6.5V8.375H21.25zM12.25,28h6.5V4.125h-6.5V28zM3.25,28h6.5V12.625h-6.5V28z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/BioHazard.js\":\n/*!*************************************!*\\\n !*** ./src/shape/icon/BioHazard.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.BioHazard();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.BioHazard = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.BioHazard.prototype */\n{\n\n NAME: \"draw2d.shape.icon.BioHazard\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M26.154,13.988c-0.96-0.554-1.982-0.892-3.019-1.032c0.396-0.966,0.616-2.023,0.616-3.131c0-4.399-3.438-8.001-7.772-8.264c3.245,0.258,5.803,2.979,5.803,6.292c0,3.373-2.653,6.123-5.983,6.294v1.292c0.908,0.144,1.605,0.934,1.605,1.883c0,0.232-0.043,0.454-0.118,0.66l1.181,0.683c1.826-2.758,5.509-3.658,8.41-1.981c2.896,1.672,3.965,5.299,2.506,8.254C31.386,21.038,29.992,16.204,26.154,13.988zM4.122,16.587c2.92-1.686,6.628-0.764,8.442,2.034l1.141-0.657c-0.072-0.2-0.109-0.417-0.109-0.642c0-0.909,0.638-1.67,1.489-1.859v-1.319c-3.3-0.202-5.92-2.94-5.92-6.292c0-3.297,2.532-6.007,5.757-6.286c-4.312,0.285-7.729,3.875-7.729,8.258c0,1.078,0.206,2.106,0.581,3.05c-1.004,0.147-1.999,0.481-2.931,1.02c-3.812,2.201-5.209,6.985-3.264,10.87C0.174,21.823,1.251,18.244,4.122,16.587zM11.15,11.452c0.114,0.139,0.235,0.271,0.362,0.398c0.126,0.126,0.259,0.247,0.397,0.361c0.102,0.084,0.211,0.16,0.318,0.236c0.93-0.611,2.045-0.969,3.244-0.969c1.201,0,2.312,0.357,3.242,0.969c0.107-0.077,0.217-0.152,0.318-0.236c0.139-0.114,0.271-0.235,0.397-0.361c0.127-0.127,0.248-0.259,0.362-0.398c0.113-0.138,0.222-0.283,0.323-0.431c-1.307-0.956-2.908-1.528-4.643-1.528c-0.042,0-0.083-0.001-0.124,0c-0.019,0-0.04-0.001-0.06,0c-1.666,0.038-3.201,0.605-4.462,1.528C10.929,11.17,11.037,11.314,11.15,11.452zM9.269,16.787c-0.168-0.062-0.338-0.117-0.512-0.164c-0.173-0.047-0.348-0.083-0.525-0.113c-0.177-0.03-0.355-0.053-0.535-0.065c-0.175,1.609,0.13,3.282,0.998,4.786c0.868,1.503,2.164,2.606,3.645,3.259c0.079-0.162,0.15-0.328,0.212-0.496c0.063-0.169,0.118-0.338,0.164-0.512c0.047-0.173,0.087-0.349,0.115-0.525c0.022-0.13,0.034-0.262,0.046-0.394c-0.993-0.5-1.86-1.286-2.461-2.325c-0.6-1.04-0.847-2.182-0.783-3.294C9.512,16.889,9.392,16.833,9.269,16.787zM18.122,22.657c0.014,0.132,0.024,0.263,0.046,0.394c0.03,0.177,0.067,0.352,0.113,0.524c0.047,0.174,0.102,0.346,0.165,0.514c0.062,0.169,0.132,0.333,0.212,0.495c1.48-0.653,2.777-1.755,3.644-3.257c0.868-1.504,1.176-3.179,1.001-4.788c-0.18,0.013-0.358,0.035-0.535,0.065c-0.177,0.029-0.353,0.067-0.525,0.113s-0.345,0.101-0.513,0.163c-0.124,0.047-0.241,0.105-0.362,0.16c0.063,1.11-0.183,2.253-0.784,3.292C19.984,21.373,19.116,22.157,18.122,22.657zM20.569,27.611c-2.92-1.687-3.977-5.358-2.46-8.329l-1.192-0.689c-0.349,0.389-0.854,0.634-1.417,0.634c-0.571,0-1.086-0.254-1.436-0.653l-1.146,0.666c1.475,2.96,0.414,6.598-2.488,8.272c-2.888,1.668-6.552,0.791-8.386-1.935c2.38,3.667,7.249,4.87,11.079,2.658c0.929-0.535,1.711-1.227,2.339-2.018c0.64,0.832,1.45,1.554,2.416,2.112c3.835,2.213,8.709,1.006,11.086-2.671C27.132,28.396,23.463,29.282,20.569,27.611z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Book.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Book.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Book();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Book = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Book.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Book\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.754,4.626c-0.233-0.161-0.536-0.198-0.802-0.097L12.16,9.409c-0.557,0.213-1.253,0.316-1.968,0.316c-0.997,0.002-2.029-0.202-2.747-0.48C7.188,9.148,6.972,9.04,6.821,8.943c0.056-0.024,0.12-0.05,0.193-0.075L18.648,4.43l1.733,0.654V3.172c0-0.284-0.14-0.554-0.374-0.714c-0.233-0.161-0.538-0.198-0.802-0.097L6.414,7.241c-0.395,0.142-0.732,0.312-1.02,0.564C5.111,8.049,4.868,8.45,4.872,8.896c0,0.012,0.004,0.031,0.004,0.031v17.186c0,0.008-0.003,0.015-0.003,0.021c0,0.006,0.003,0.01,0.003,0.016v0.017h0.002c0.028,0.601,0.371,0.983,0.699,1.255c1.034,0.803,2.769,1.252,4.614,1.274c0.874,0,1.761-0.116,2.583-0.427l12.796-4.881c0.337-0.128,0.558-0.448,0.558-0.809V5.341C26.128,5.057,25.988,4.787,25.754,4.626zM5.672,11.736c0.035,0.086,0.064,0.176,0.069,0.273l0.004,0.054c0.016,0.264,0.13,0.406,0.363,0.611c0.783,0.626,2.382,1.08,4.083,1.093c0.669,0,1.326-0.083,1.931-0.264v1.791c-0.647,0.143-1.301,0.206-1.942,0.206c-1.674-0.026-3.266-0.353-4.509-1.053V11.736zM10.181,24.588c-1.674-0.028-3.266-0.354-4.508-1.055v-2.712c0.035,0.086,0.065,0.176,0.07,0.275l0.002,0.053c0.018,0.267,0.13,0.408,0.364,0.613c0.783,0.625,2.381,1.079,4.083,1.091c0.67,0,1.327-0.082,1.932-0.262v1.789C11.476,24.525,10.821,24.588,10.181,24.588z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Bookmark.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Bookmark.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Bookmark();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Bookmark = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Bookmark.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Bookmark\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M17.396,1.841L6.076,25.986l7.341-4.566l1.186,8.564l11.32-24.146L17.396,1.841zM19.131,9.234c-0.562-0.264-0.805-0.933-0.541-1.495c0.265-0.562,0.934-0.805,1.496-0.541s0.805,0.934,0.541,1.496S19.694,9.498,19.131,9.234z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Books.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Books.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Books();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Books = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Books.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Books\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M26.679,7.858c-0.176-0.138-0.404-0.17-0.606-0.083l-9.66,4.183c-0.42,0.183-0.946,0.271-1.486,0.271c-0.753,0.002-1.532-0.173-2.075-0.412c-0.194-0.083-0.356-0.176-0.471-0.259c0.042-0.021,0.09-0.042,0.146-0.064l8.786-3.804l1.31,0.561V6.612c0-0.244-0.106-0.475-0.283-0.612c-0.176-0.138-0.406-0.17-0.605-0.083l-9.66,4.183c-0.298,0.121-0.554,0.268-0.771,0.483c-0.213,0.208-0.397,0.552-0.394,0.934c0,0.01,0.003,0.027,0.003,0.027v14.73c0,0.006-0.002,0.012-0.002,0.019c0,0.005,0.002,0.007,0.002,0.012v0.015h0.002c0.021,0.515,0.28,0.843,0.528,1.075c0.781,0.688,2.091,1.073,3.484,1.093c0.66,0,1.33-0.1,1.951-0.366l9.662-4.184c0.255-0.109,0.422-0.383,0.422-0.692V8.471C26.961,8.227,26.855,7.996,26.679,7.858zM20.553,5.058c-0.017-0.221-0.108-0.429-0.271-0.556c-0.176-0.138-0.404-0.17-0.606-0.083l-9.66,4.183C9.596,8.784,9.069,8.873,8.53,8.873C7.777,8.874,6.998,8.699,6.455,8.46C6.262,8.378,6.099,8.285,5.984,8.202C6.026,8.181,6.075,8.16,6.13,8.138l8.787-3.804l1.309,0.561V3.256c0-0.244-0.106-0.475-0.283-0.612c-0.176-0.138-0.407-0.17-0.606-0.083l-9.66,4.183C5.379,6.864,5.124,7.011,4.907,7.227C4.693,7.435,4.51,7.779,4.513,8.161c0,0.011,0.003,0.027,0.003,0.027v14.73c0,0.006-0.001,0.013-0.001,0.019c0,0.005,0.001,0.007,0.001,0.012v0.016h0.002c0.021,0.515,0.28,0.843,0.528,1.075c0.781,0.688,2.091,1.072,3.485,1.092c0.376,0,0.754-0.045,1.126-0.122V11.544c-0.01-0.7,0.27-1.372,0.762-1.856c0.319-0.315,0.708-0.564,1.19-0.756L20.553,5.058z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Bubble.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Bubble.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Bubble();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Bubble = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Bubble.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Bubble\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,5.333c-7.732,0-14,4.701-14,10.5c0,1.982,0.741,3.833,2.016,5.414L2,25.667l5.613-1.441c2.339,1.317,5.237,2.107,8.387,2.107c7.732,0,14-4.701,14-10.5C30,10.034,23.732,5.333,16,5.333z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Bug.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Bug.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Bug();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Bug = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Bug.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Bug\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.589,10.903l-5.828,1.612c-0.534-1.419-1.338-2.649-2.311-3.628l3.082-5.44c0.271-0.48,0.104-1.092-0.38-1.365c-0.479-0.271-1.09-0.102-1.36,0.377l-2.924,5.162c-0.604-0.383-1.24-0.689-1.9-0.896c-0.416-1.437-1.652-2.411-3.058-2.562c-0.001-0.004-0.002-0.008-0.003-0.012c-0.061-0.242-0.093-0.46-0.098-0.65c-0.005-0.189,0.012-0.351,0.046-0.479c0.037-0.13,0.079-0.235,0.125-0.317c0.146-0.26,0.34-0.43,0.577-0.509c0.023,0.281,0.142,0.482,0.352,0.601c0.155,0.088,0.336,0.115,0.546,0.086c0.211-0.031,0.376-0.152,0.496-0.363c0.105-0.186,0.127-0.389,0.064-0.607c-0.064-0.219-0.203-0.388-0.414-0.507c-0.154-0.087-0.314-0.131-0.482-0.129c-0.167,0.001-0.327,0.034-0.481,0.097c-0.153,0.063-0.296,0.16-0.429,0.289c-0.132,0.129-0.241,0.271-0.33,0.426c-0.132,0.234-0.216,0.496-0.25,0.783c-0.033,0.286-0.037,0.565-0.009,0.84c0.017,0.16,0.061,0.301,0.094,0.449c-0.375-0.021-0.758,0.002-1.14,0.108c-0.482,0.133-0.913,0.36-1.28,0.653c-0.052-0.172-0.098-0.344-0.18-0.518c-0.116-0.249-0.263-0.486-0.438-0.716c-0.178-0.229-0.384-0.41-0.618-0.543C9.904,3.059,9.737,2.994,9.557,2.951c-0.18-0.043-0.352-0.052-0.516-0.027s-0.318,0.08-0.463,0.164C8.432,3.172,8.318,3.293,8.23,3.445C8.111,3.656,8.08,3.873,8.136,4.092c0.058,0.221,0.181,0.384,0.367,0.49c0.21,0.119,0.415,0.138,0.611,0.056C9.31,4.556,9.451,4.439,9.539,4.283c0.119-0.21,0.118-0.443-0.007-0.695c0.244-0.055,0.497-0.008,0.757,0.141c0.081,0.045,0.171,0.115,0.27,0.208c0.097,0.092,0.193,0.222,0.286,0.388c0.094,0.166,0.179,0.368,0.251,0.608c0.013,0.044,0.023,0.098,0.035,0.146c-0.911,0.828-1.357,2.088-1.098,3.357c-0.582,0.584-1.072,1.27-1.457,2.035l-5.16-2.926c-0.48-0.271-1.092-0.102-1.364,0.377C1.781,8.404,1.95,9.016,2.43,9.289l5.441,3.082c-0.331,1.34-0.387,2.807-0.117,4.297l-5.828,1.613c-0.534,0.147-0.846,0.699-0.698,1.231c0.147,0.53,0.697,0.843,1.231,0.694l5.879-1.627c0.503,1.057,1.363,2.28,2.371,3.443l-3.194,5.639c-0.272,0.481-0.104,1.092,0.378,1.363c0.239,0.137,0.512,0.162,0.758,0.094c0.248-0.068,0.469-0.229,0.604-0.471l2.895-5.109c2.7,2.594,5.684,4.123,5.778,1.053c1.598,2.56,3.451-0.338,4.502-3.976l5.203,2.947c0.24,0.138,0.514,0.162,0.762,0.094c0.246-0.067,0.467-0.229,0.603-0.471c0.272-0.479,0.104-1.091-0.377-1.362l-5.701-3.229c0.291-1.505,0.422-2.983,0.319-4.138l5.886-1.627c0.53-0.147,0.847-0.697,0.696-1.229C29.673,11.068,29.121,10.756,28.589,10.903z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Calendar.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Calendar.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Calendar();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Calendar = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Calendar.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Calendar\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M11.758,15.318c0.312-0.3,0.408-0.492,0.408-0.492h0.024c0,0-0.012,0.264-0.012,0.528v5.469h-1.871v1.031h4.87v-1.031H13.33v-7.436h-1.055l-2.027,1.967l0.719,0.744L11.758,15.318zM16.163,21.207c0,0.205,0.024,0.42,0.06,0.647h5.457v-1.031h-4.197c0.023-1.931,4.065-2.362,4.065-5.146c0-1.463-1.114-2.436-2.674-2.436c-1.907,0-2.675,1.607-2.675,1.607l0.875,0.587c0,0,0.6-1.08,1.716-1.08c0.887,0,1.522,0.563,1.522,1.403C20.312,17.754,16.163,18.186,16.163,21.207zM12,3.604h-2v3.335h2V3.604zM23,4.77v3.17h-4V4.77h-6v3.168H9.002V4.77H6.583v21.669h18.833V4.77H23zM24.417,25.438H7.584V10.522h16.833V25.438zM22,3.604h-2v3.335h2V3.604z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Cart.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Cart.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Cart();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Cart = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Cart.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Cart\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M29.02,11.754L8.416,9.473L7.16,4.716C7.071,4.389,6.772,4.158,6.433,4.158H3.341C3.114,3.866,2.775,3.667,2.377,3.667c-0.686,0-1.242,0.556-1.242,1.242c0,0.686,0.556,1.242,1.242,1.242c0.399,0,0.738-0.201,0.965-0.493h2.512l5.23,19.8c-0.548,0.589-0.891,1.373-0.891,2.242c0,1.821,1.473,3.293,3.293,3.293c1.82,0,3.294-1.472,3.297-3.293c0-0.257-0.036-0.504-0.093-0.743h5.533c-0.056,0.239-0.092,0.486-0.092,0.743c0,1.821,1.475,3.293,3.295,3.293s3.295-1.472,3.295-3.293c0-1.82-1.473-3.295-3.295-3.297c-0.951,0.001-1.801,0.409-2.402,1.053h-7.136c-0.601-0.644-1.451-1.052-2.402-1.053c-0.379,0-0.738,0.078-1.077,0.196l-0.181-0.685H26.81c1.157-0.027,2.138-0.83,2.391-1.959l1.574-7.799c0.028-0.145,0.041-0.282,0.039-0.414C30.823,12.733,30.051,11.86,29.02,11.754zM25.428,27.994c-0.163,0-0.295-0.132-0.297-0.295c0.002-0.165,0.134-0.297,0.297-0.297s0.295,0.132,0.297,0.297C25.723,27.862,25.591,27.994,25.428,27.994zM27.208,20.499l0.948-0.948l-0.318,1.578L27.208,20.499zM12.755,11.463l1.036,1.036l-1.292,1.292l-1.292-1.292l1.087-1.087L12.755,11.463zM17.253,11.961l0.538,0.538l-1.292,1.292l-1.292-1.292l0.688-0.688L17.253,11.961zM9.631,14.075l0.868-0.868l1.292,1.292l-1.292,1.292l-0.564-0.564L9.631,14.075zM9.335,12.956l-0.328-1.24L9.792,12.5L9.335,12.956zM21.791,16.499l-1.292,1.292l-1.292-1.292l1.292-1.292L21.791,16.499zM21.207,14.5l1.292-1.292l1.292,1.292l-1.292,1.292L21.207,14.5zM18.5,15.791l-1.293-1.292l1.292-1.292l1.292,1.292L18.5,15.791zM17.791,16.499L16.5,17.791l-1.292-1.292l1.292-1.292L17.791,16.499zM14.499,15.791l-1.292-1.292l1.292-1.292l1.292,1.292L14.499,15.791zM13.791,16.499l-1.292,1.291l-1.292-1.291l1.292-1.292L13.791,16.499zM10.499,17.207l1.292,1.292l-0.785,0.784l-0.54-2.044L10.499,17.207zM11.302,20.404l1.197-1.197l1.292,1.292L12.5,21.791l-1.131-1.13L11.302,20.404zM13.208,18.499l1.291-1.292l1.292,1.292L14.5,19.791L13.208,18.499zM16.5,19.207l1.292,1.292L16.5,21.79l-1.292-1.291L16.5,19.207zM17.208,18.499l1.292-1.292l1.291,1.292L18.5,19.79L17.208,18.499zM20.499,19.207l1.292,1.292L20.5,21.79l-1.292-1.292L20.499,19.207zM21.207,18.499l1.292-1.292l1.292,1.292l-1.292,1.292L21.207,18.499zM23.207,16.499l1.292-1.292l1.292,1.292l-1.292,1.292L23.207,16.499zM25.207,14.499l1.292-1.292L27.79,14.5l-1.291,1.292L25.207,14.499zM24.499,13.792l-1.156-1.156l2.082,0.23L24.499,13.792zM21.791,12.5l-1.292,1.292L19.207,12.5l0.29-0.29l2.253,0.25L21.791,12.5zM14.5,11.791l-0.152-0.152l0.273,0.03L14.5,11.791zM10.5,11.792l-0.65-0.65l1.171,0.129L10.5,11.792zM14.5,21.207l1.205,1.205h-2.409L14.5,21.207zM18.499,21.207l1.206,1.206h-2.412L18.499,21.207zM22.499,21.207l1.208,1.207l-2.414-0.001L22.499,21.207zM23.207,20.499l1.292-1.292l1.292,1.292l-1.292,1.292L23.207,20.499zM25.207,18.499l1.292-1.291l1.291,1.291l-1.291,1.292L25.207,18.499zM28.499,17.791l-1.291-1.292l1.291-1.291l0.444,0.444l-0.429,2.124L28.499,17.791zM29.001,13.289l-0.502,0.502l-0.658-0.658l1.016,0.112C28.911,13.253,28.956,13.271,29.001,13.289zM13.487,27.994c-0.161,0-0.295-0.132-0.295-0.295c0-0.165,0.134-0.297,0.295-0.297c0.163,0,0.296,0.132,0.296,0.297C13.783,27.862,13.651,27.994,13.487,27.994zM26.81,22.414h-1.517l1.207-1.207l0.93,0.93C27.243,22.306,27.007,22.428,26.81,22.414z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Ccw.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Ccw.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Ccw();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Ccw = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Ccw.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Ccw\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.249,15.499c-0.009,4.832-3.918,8.741-8.75,8.75c-2.515,0-4.768-1.064-6.365-2.763l2.068-1.442l-7.901-3.703l0.744,8.694l2.193-1.529c2.244,2.594,5.562,4.242,9.26,4.242c6.767,0,12.249-5.482,12.249-12.249H24.249zM15.499,6.75c2.516,0,4.769,1.065,6.367,2.764l-2.068,1.443l7.901,3.701l-0.746-8.693l-2.192,1.529c-2.245-2.594-5.562-4.245-9.262-4.245C8.734,3.25,3.25,8.734,3.249,15.499H6.75C6.758,10.668,10.668,6.758,15.499,6.75z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Chat.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Chat.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Chat();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Chat = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Chat.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Chat\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.985,5.972c-7.563,0-13.695,4.077-13.695,9.106c0,2.877,2.013,5.44,5.147,7.108c-0.446,1.479-1.336,3.117-3.056,4.566c0,0,4.015-0.266,6.851-3.143c0.163,0.04,0.332,0.07,0.497,0.107c-0.155-0.462-0.246-0.943-0.246-1.443c0-3.393,3.776-6.05,8.599-6.05c3.464,0,6.379,1.376,7.751,3.406c1.168-1.34,1.847-2.892,1.847-4.552C29.68,10.049,23.548,5.972,15.985,5.972zM27.68,22.274c0-2.79-3.401-5.053-7.599-5.053c-4.196,0-7.599,2.263-7.599,5.053c0,2.791,3.403,5.053,7.599,5.053c0.929,0,1.814-0.116,2.637-0.319c1.573,1.597,3.801,1.744,3.801,1.744c-0.954-0.804-1.447-1.713-1.695-2.534C26.562,25.293,27.68,23.871,27.68,22.274z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Check.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Check.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Check();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Check = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Check.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Check\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M2.379,14.729 5.208,11.899 12.958,19.648 25.877,6.733 28.707,9.561 12.958,25.308z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Chrome.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Chrome.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Chrome();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Chrome = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Chrome.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Chrome\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.318,7.677c0.071-0.029,0.148-0.046,0.229-0.046h11.949c-2.533-3.915-6.938-6.506-11.949-6.506c-5.017,0-9.428,2.598-11.959,6.522l4.291,7.431C8.018,11.041,11.274,7.796,15.318,7.677zM28.196,8.84h-8.579c2.165,1.357,3.605,3.763,3.605,6.506c0,1.321-0.334,2.564-0.921,3.649c-0.012,0.071-0.035,0.142-0.073,0.209l-5.973,10.347c7.526-0.368,13.514-6.587,13.514-14.205C29.77,13.002,29.201,10.791,28.196,8.84zM15.547,23.022c-2.761,0-5.181-1.458-6.533-3.646c-0.058-0.046-0.109-0.103-0.149-0.171L2.89,8.855c-1,1.946-1.565,4.153-1.565,6.492c0,7.624,5.999,13.846,13.534,14.205l4.287-7.425C18.073,22.698,16.848,23.022,15.547,23.022zM9.08,15.347c0,1.788,0.723,3.401,1.894,4.573c1.172,1.172,2.785,1.895,4.573,1.895c1.788,0,3.401-0.723,4.573-1.895s1.895-2.785,1.895-4.573c0-1.788-0.723-3.4-1.895-4.573c-1.172-1.171-2.785-1.894-4.573-1.894c-1.788,0-3.401,0.723-4.573,1.894C9.803,11.946,9.081,13.559,9.08,15.347z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Clip.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Clip.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Clip();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Clip = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Clip.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Clip\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M23.898,6.135c-1.571-1.125-3.758-0.764-4.884,0.808l-8.832,12.331c-0.804,1.122-0.546,2.684,0.577,3.488c1.123,0.803,2.684,0.545,3.488-0.578l6.236-8.706l-0.813-0.583l-6.235,8.707h0c-0.483,0.672-1.42,0.828-2.092,0.347c-0.673-0.481-0.827-1.419-0.345-2.093h0l8.831-12.33l0.001-0.001l-0.002-0.001c0.803-1.119,2.369-1.378,3.489-0.576c1.12,0.803,1.379,2.369,0.577,3.489v-0.001l-9.68,13.516l0.001,0.001c-1.124,1.569-3.316,1.931-4.885,0.808c-1.569-1.125-1.93-3.315-0.807-4.885l7.035-9.822l-0.813-0.582l-7.035,9.822c-1.447,2.02-0.982,4.83,1.039,6.277c2.021,1.448,4.831,0.982,6.278-1.037l9.68-13.516C25.83,9.447,25.47,7.261,23.898,6.135z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Clock.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Clock.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Clock();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Clock = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Clock.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Clock\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.5,2.374C8.251,2.375,2.376,8.251,2.374,15.5C2.376,22.748,8.251,28.623,15.5,28.627c7.249-0.004,13.124-5.879,13.125-13.127C28.624,8.251,22.749,2.375,15.5,2.374zM15.5,25.623C9.909,25.615,5.385,21.09,5.375,15.5C5.385,9.909,9.909,5.384,15.5,5.374c5.59,0.01,10.115,4.535,10.124,10.125C25.615,21.09,21.091,25.615,15.5,25.623zM8.625,15.5c-0.001-0.552-0.448-0.999-1.001-1c-0.553,0-1,0.448-1,1c0,0.553,0.449,1,1,1C8.176,16.5,8.624,16.053,8.625,15.5zM8.179,18.572c-0.478,0.277-0.642,0.889-0.365,1.367c0.275,0.479,0.889,0.641,1.365,0.365c0.479-0.275,0.643-0.887,0.367-1.367C9.27,18.461,8.658,18.297,8.179,18.572zM9.18,10.696c-0.479-0.276-1.09-0.112-1.366,0.366s-0.111,1.09,0.365,1.366c0.479,0.276,1.09,0.113,1.367-0.366C9.821,11.584,9.657,10.973,9.18,10.696zM22.822,12.428c0.478-0.275,0.643-0.888,0.366-1.366c-0.275-0.478-0.89-0.642-1.366-0.366c-0.479,0.278-0.642,0.89-0.366,1.367C21.732,12.54,22.344,12.705,22.822,12.428zM12.062,21.455c-0.478-0.275-1.089-0.111-1.366,0.367c-0.275,0.479-0.111,1.09,0.366,1.365c0.478,0.277,1.091,0.111,1.365-0.365C12.704,22.344,12.54,21.732,12.062,21.455zM12.062,9.545c0.479-0.276,0.642-0.888,0.366-1.366c-0.276-0.478-0.888-0.642-1.366-0.366s-0.642,0.888-0.366,1.366C10.973,9.658,11.584,9.822,12.062,9.545zM22.823,18.572c-0.48-0.275-1.092-0.111-1.367,0.365c-0.275,0.479-0.112,1.092,0.367,1.367c0.477,0.275,1.089,0.113,1.365-0.365C23.464,19.461,23.3,18.848,22.823,18.572zM19.938,7.813c-0.477-0.276-1.091-0.111-1.365,0.366c-0.275,0.48-0.111,1.091,0.366,1.367s1.089,0.112,1.366-0.366C20.581,8.702,20.418,8.089,19.938,7.813zM23.378,14.5c-0.554,0.002-1.001,0.45-1.001,1c0.001,0.552,0.448,1,1.001,1c0.551,0,1-0.447,1-1C24.378,14.949,23.929,14.5,23.378,14.5zM15.501,6.624c-0.552,0-1,0.448-1,1l-0.466,7.343l-3.004,1.96c-0.478,0.277-0.642,0.889-0.365,1.365c0.275,0.479,0.889,0.643,1.365,0.367l3.305-1.676C15.39,16.99,15.444,17,15.501,17c0.828,0,1.5-0.671,1.5-1.5l-0.5-7.876C16.501,7.072,16.053,6.624,15.501,6.624zM15.501,22.377c-0.552,0-1,0.447-1,1s0.448,1,1,1s1-0.447,1-1S16.053,22.377,15.501,22.377zM18.939,21.455c-0.479,0.277-0.643,0.889-0.366,1.367c0.275,0.477,0.888,0.643,1.366,0.365c0.478-0.275,0.642-0.889,0.366-1.365C20.028,21.344,19.417,21.18,18.939,21.455z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Cloud.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Cloud.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Cloud();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Cloud = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Cloud.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Cloud\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.345,13.904c0.019-0.195,0.03-0.392,0.03-0.591c0-3.452-2.798-6.25-6.25-6.25c-2.679,0-4.958,1.689-5.847,4.059c-0.589-0.646-1.429-1.059-2.372-1.059c-1.778,0-3.219,1.441-3.219,3.219c0,0.21,0.023,0.415,0.062,0.613c-2.372,0.391-4.187,2.436-4.187,4.918c0,2.762,2.239,5,5,5h15.875c2.762,0,5-2.238,5-5C28.438,16.362,26.672,14.332,24.345,13.904z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Cloud2.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Cloud2.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Cloud2();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Cloud2 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Cloud2.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Cloud2\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M7.562,24.812c-3.313,0-6-2.687-6-6l0,0c0.002-2.659,1.734-4.899,4.127-5.684l0,0c0.083-2.26,1.937-4.064,4.216-4.066l0,0c0.73,0,1.415,0.19,2.01,0.517l0,0c1.266-2.105,3.57-3.516,6.208-3.517l0,0c3.947,0.002,7.157,3.155,7.248,7.079l0,0c2.362,0.804,4.062,3.034,4.064,5.671l0,0c0,3.313-2.687,6-6,6l0,0H7.562L7.562,24.812zM24.163,14.887c-0.511-0.095-0.864-0.562-0.815-1.079l0,0c0.017-0.171,0.027-0.336,0.027-0.497l0,0c-0.007-2.899-2.352-5.245-5.251-5.249l0,0c-2.249-0.002-4.162,1.418-4.911,3.41l0,0c-0.122,0.323-0.406,0.564-0.748,0.63l0,0c-0.34,0.066-0.694-0.052-0.927-0.309l0,0c-0.416-0.453-0.986-0.731-1.633-0.731l0,0c-1.225,0.002-2.216,0.993-2.22,2.218l0,0c0,0.136,0.017,0.276,0.045,0.424l0,0c0.049,0.266-0.008,0.54-0.163,0.762l0,0c-0.155,0.223-0.392,0.371-0.657,0.414l0,0c-1.9,0.313-3.352,1.949-3.35,3.931l0,0c0.004,2.209,1.792,3.995,4.001,4.001l0,0h15.874c2.209-0.006,3.994-1.792,3.999-4.001l0,0C27.438,16.854,26.024,15.231,24.163,14.887L24.163,14.887\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/CloudDown.js\":\n/*!*************************************!*\\\n !*** ./src/shape/icon/CloudDown.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.CloudDown();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.CloudDown = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.CloudDown.prototype */\n{\n\n NAME: \"draw2d.shape.icon.CloudDown\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.345,13.904c0.019-0.195,0.03-0.392,0.03-0.591c0-3.452-2.798-6.25-6.25-6.25c-2.679,0-4.958,1.689-5.847,4.059c-0.589-0.646-1.429-1.059-2.372-1.059c-1.778,0-3.219,1.441-3.219,3.219c0,0.21,0.023,0.415,0.062,0.613c-2.372,0.391-4.187,2.436-4.187,4.918c0,2.762,2.239,5,5,5h3.404l-0.707-0.707c-0.377-0.377-0.585-0.879-0.585-1.413c0-0.533,0.208-1.035,0.585-1.412l0.556-0.557c0.4-0.399,0.937-0.628,1.471-0.628c0.027,0,0.054,0,0.08,0.002v-0.472c0-1.104,0.898-2.002,2-2.002h3.266c1.103,0,2,0.898,2,2.002v0.472c0.027-0.002,0.054-0.002,0.081-0.002c0.533,0,1.07,0.229,1.47,0.63l0.557,0.552c0.78,0.781,0.78,2.05,0,2.828l-0.706,0.707h2.403c2.762,0,5-2.238,5-5C28.438,16.362,26.672,14.332,24.345,13.904z M21.033,20.986l-0.556-0.555c-0.39-0.389-0.964-0.45-1.276-0.137c-0.312,0.312-0.568,0.118-0.568-0.432v-1.238c0-0.55-0.451-1-1-1h-3.265c-0.55,0-1,0.45-1,1v1.238c0,0.55-0.256,0.744-0.569,0.432c-0.312-0.313-0.887-0.252-1.276,0.137l-0.556,0.555c-0.39,0.389-0.39,1.024-0.001,1.413l4.328,4.331c0.194,0.194,0.451,0.291,0.707,0.291s0.512-0.097,0.707-0.291l4.327-4.331C21.424,22.011,21.423,21.375,21.033,20.986z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/CloudUp.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/CloudUp.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.CloudUp();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.CloudUp = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.CloudUp.prototype */\n{\n\n NAME: \"draw2d.shape.icon.CloudUp\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.345,13.904c0.019-0.195,0.03-0.392,0.03-0.591c0-3.452-2.798-6.25-6.25-6.25c-2.679,0-4.958,1.689-5.847,4.059c-0.589-0.646-1.429-1.059-2.372-1.059c-1.778,0-3.219,1.441-3.219,3.219c0,0.21,0.023,0.415,0.062,0.613c-2.372,0.391-4.187,2.436-4.187,4.918c0,2.762,2.239,5,5,5h2.312c-0.126-0.266-0.2-0.556-0.2-0.859c0-0.535,0.208-1.04,0.587-1.415l4.325-4.329c0.375-0.377,0.877-0.585,1.413-0.585c0.54,0,1.042,0.21,1.417,0.587l4.323,4.329c0.377,0.373,0.585,0.878,0.585,1.413c0,0.304-0.073,0.594-0.2,0.859h1.312c2.762,0,5-2.238,5-5C28.438,16.362,26.672,14.332,24.345,13.904z M16.706,17.916c-0.193-0.195-0.45-0.291-0.706-0.291s-0.512,0.096-0.707,0.291l-4.327,4.33c-0.39,0.389-0.389,1.025,0.001,1.414l0.556,0.555c0.39,0.389,0.964,0.449,1.276,0.137s0.568-0.119,0.568,0.432v1.238c0,0.549,0.451,1,1,1h3.265c0.551,0,1-0.451,1-1v-1.238c0-0.551,0.256-0.744,0.569-0.432c0.312,0.312,0.887,0.252,1.276-0.137l0.556-0.555c0.39-0.389,0.39-1.025,0.001-1.414L16.706,17.916z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Cloudy.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Cloudy.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Cloudy();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Cloudy = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Cloudy.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Cloudy\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M14.378,6.781c0.41,0.988,1.938,0.346,1.524-0.648C15.708,5.667,15.515,5.2,15.32,4.734c-0.289-0.695-0.875-3.233-2.042-2.747c-1.03,0.433-0.128,1.846,0.142,2.494C13.739,5.248,14.059,6.015,14.378,6.781M20.8,7.223c1.094,0.453,1.538-1.551,1.813-2.216c0.281-0.677,1.478-2.565,0.357-3.029c-1.092-0.453-1.537,1.548-1.813,2.216C20.876,4.872,19.68,6.757,20.8,7.223M18.137,6.692c1.183,0,0.829-2.019,0.829-2.742c0-0.732,0.383-2.935-0.829-2.935c-1.183,0-0.828,2.019-0.828,2.742C17.309,4.49,16.926,6.692,18.137,6.692M23.058,8.729c0.852,0.85,2.142-0.972,2.659-1.49c0.512-0.513,2.187-1.687,1.352-2.524c-0.834-0.836-2.013,0.843-2.522,1.353C24.028,6.585,22.198,7.874,23.058,8.729M24.565,10.986c0.448,1.091,2.183-0.01,2.849-0.286c0.676-0.28,2.858-0.771,2.394-1.89c-0.455-1.091-2.181,0.008-2.849,0.285C26.281,9.377,24.102,9.866,24.565,10.986M12.036,8.742c0.752,0.75,1.932-0.415,1.17-1.173c-0.253-0.347-0.646-0.645-0.949-0.946c-0.541-0.539-2.162-2.799-3.068-1.889c-0.79,0.791,0.586,1.755,1.083,2.25C10.859,7.57,11.447,8.156,12.036,8.742M29.365,17.397c-0.768-0.317-1.534-0.635-2.302-0.952c-0.646-0.268-2.07-1.169-2.495-0.135c-0.481,1.168,2.054,1.747,2.751,2.035c0.455,0.188,0.911,0.377,1.367,0.565C29.7,19.331,30.379,17.816,29.365,17.397M29.942,12.817c-0.83,0-1.66,0-2.49,0c-0.701,0-2.357-0.288-2.355,0.83c0,1.262,2.567,0.827,3.319,0.827c0.493,0,0.986,0,1.479-0.001C30.99,14.473,31.043,12.815,29.942,12.817M24.234,18.568c-0.673-0.673-1.773,0.189-1.281,1.007c-0.295-0.264-0.614-0.499-0.961-0.69c3.894-2.866,3.328-9.006-1.021-11.107c-2.024-0.978-4.481-0.828-6.368,0.394c-0.871,0.564-1.603,1.336-2.119,2.236c-0.262,0.456-0.468,0.943-0.612,1.449c-0.074,0.258-0.131,0.521-0.172,0.786c-0.083,0.534-0.109,0.553-0.553,0.871c-0.182-0.957-1.64-0.675-2.326-0.674c-0.815,0.001-1.963-0.217-2.752,0.046c-0.867,0.289-0.652,1.615,0.263,1.613c0.324,0.052,0.701-0.001,1.028-0.001c0.904-0.001,1.809-0.002,2.713-0.003c-0.308,0.352-0.496,0.969-0.94,0.77c-0.467-0.209-0.978-0.319-1.49-0.319c-0.951,0-1.877,0.375-2.561,1.036c-0.681,0.658-1.088,1.569-1.123,2.516c-0.944,0.31-1.791,0.891-2.421,1.658c-2.756,3.354-0.265,8.554,4.058,8.554v-0.002c3.597,0,7.194,0,10.792,0c1.341,0,2.843,0.167,4.168-0.113c3.652-0.772,5.361-5.21,3.133-8.229c0.548,0.547,1.096,1.094,1.644,1.641c0.183,0.183,0.364,0.424,0.575,0.574c0.552,0.552,1.524,0.066,1.403-0.713c-0.097-0.622-1.042-1.267-1.448-1.673C25.319,19.652,24.776,19.11,24.234,18.568M18.137,8.787c4.559,0.009,6.576,5.979,2.912,8.734c-0.637-3.505-4.161-5.824-7.629-5.03C13.943,10.367,15.852,8.792,18.137,8.787M22.895,24.08c-0.633,3.346-4.149,2.879-6.68,2.879c-3.017,0-6.033,0-9.049,0c-0.767,0-1.62,0.084-2.373-0.095c-2.274-0.538-3.416-3.242-2.172-5.235c0.678-1.087,1.568-1.19,2.626-1.67c0.604-0.273,0.456-0.807,0.456-1.331c0.002-0.597,0.284-1.169,0.756-1.533c0.787-0.608,1.943-0.497,2.611,0.234c1.098,1.205,1.96-1.346,2.507-1.893c2.025-2.025,5.475-1.708,7.068,0.684c0.344,0.516,0.581,1.102,0.693,1.712c0.097,0.529-0.115,1.341,0.188,1.796c0.291,0.47,0.943,0.463,1.397,0.68c0.508,0.23,0.963,0.591,1.304,1.034C22.834,22.125,23.064,23.107,22.895,24.08M6.906,9.917c0.881,0.364,1.763,0.727,2.644,1.091c0.353,0.146,0.707,0.292,1.06,0.437c0.997,0.412,1.637-1.119,0.642-1.526C10.47,9.441,9.456,9.177,8.609,8.828c-0.354-0.146-0.707-0.292-1.06-0.437C6.554,7.98,5.912,9.505,6.906,9.917\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Code.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Code.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Code();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Code = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Code.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Code\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M8.982,7.107L0.322,15.77l8.661,8.662l3.15-3.15L6.621,15.77l5.511-5.511L8.982,7.107zM21.657,7.107l-3.148,3.151l5.511,5.511l-5.511,5.511l3.148,3.15l8.662-8.662L21.657,7.107z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/CodeTalk.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/CodeTalk.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.CodeTalk();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.CodeTalk = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.CodeTalk.prototype */\n{\n\n NAME: \"draw2d.shape.icon.CodeTalk\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,4.938c-7.732,0-14,4.701-14,10.5c0,1.981,0.741,3.833,2.016,5.414L2,25.272l5.613-1.44c2.339,1.316,5.237,2.106,8.387,2.106c7.732,0,14-4.701,14-10.5S23.732,4.938,16,4.938zM13.704,19.47l-2.338,2.336l-6.43-6.431l6.429-6.432l2.339,2.341l-4.091,4.091L13.704,19.47zM20.775,21.803l-2.337-2.339l4.092-4.09l-4.092-4.092l2.337-2.339l6.43,6.426L20.775,21.803z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/CommandLine.js\":\n/*!***************************************!*\\\n !*** ./src/shape/icon/CommandLine.js ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.CommandLine();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.CommandLine = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.CommandLine.prototype */\n{\n\n NAME: \"draw2d.shape.icon.CommandLine\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M2.021,9.748L2.021,9.748V9.746V9.748zM2.022,9.746l5.771,5.773l-5.772,5.771l2.122,2.123l7.894-7.895L4.143,7.623L2.022,9.746zM12.248,23.269h14.419V20.27H12.248V23.269zM16.583,17.019h10.084V14.02H16.583V17.019zM12.248,7.769v3.001h14.419V7.769H12.248z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Connect.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Connect.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Connect();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Connect = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Connect.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Connect\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.06,13.719c-0.944-5.172-5.461-9.094-10.903-9.094v4c3.917,0.006,7.085,3.176,7.094,7.094c-0.009,3.917-3.177,7.085-7.094,7.093v4.002c5.442-0.004,9.959-3.926,10.903-9.096h4.69v-3.999H25.06zM20.375,15.719c0-3.435-2.784-6.219-6.219-6.219c-2.733,0-5.05,1.766-5.884,4.218H1.438v4.001h6.834c0.833,2.452,3.15,4.219,5.884,4.219C17.591,21.938,20.375,19.153,20.375,15.719z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Contract.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Contract.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Contract();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Contract = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Contract.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Contract\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.083,18.895l-8.428-2.259l2.258,8.428l1.838-1.837l7.053,7.053l2.476-2.476l-7.053-7.053L25.083,18.895zM5.542,11.731l8.428,2.258l-2.258-8.428L9.874,7.398L3.196,0.72L0.72,3.196l6.678,6.678L5.542,11.731zM7.589,20.935l-6.87,6.869l2.476,2.476l6.869-6.869l1.858,1.857l2.258-8.428l-8.428,2.258L7.589,20.935zM23.412,10.064l6.867-6.87l-2.476-2.476l-6.868,6.869l-1.856-1.856l-2.258,8.428l8.428-2.259L23.412,10.064z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Crop.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Crop.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Crop();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Crop = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Crop.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Crop\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.303,21.707V8.275l4.48-4.421l-2.021-2.048l-4.126,4.07H8.761V2.083H5.882v3.793H1.8v2.877h4.083v15.832h15.542v4.609h2.878v-4.609H29.2v-2.878H24.303zM19.72,8.753L8.761,19.565V8.753H19.72zM10.688,21.706l10.735-10.591l0.001,10.592L10.688,21.706z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Cross.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Cross.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Cross();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Cross = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Cross.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Cross\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.778,21.419 19.276,15.917 24.777,10.415 21.949,7.585 16.447,13.087 10.945,7.585 8.117,10.415 13.618,15.917 8.116,21.419 10.946,24.248 16.447,18.746 21.948,24.248z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Cube.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Cube.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Cube();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Cube = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Cube.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Cube\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.5,3.029l-10.8,6.235L4.7,21.735L15.5,27.971l10.8-6.235V9.265L15.5,3.029zM24.988,10.599L16,15.789v10.378c0,0.275-0.225,0.5-0.5,0.5s-0.5-0.225-0.5-0.5V15.786l-8.987-5.188c-0.239-0.138-0.321-0.444-0.183-0.683c0.138-0.238,0.444-0.321,0.683-0.183l8.988,5.189l8.988-5.189c0.238-0.138,0.545-0.055,0.684,0.184C25.309,10.155,25.227,10.461,24.988,10.599z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Customer.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Customer.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Customer();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Customer = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Customer.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Customer\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.523,23.813c-0.518-0.51-6.795-2.938-7.934-3.396c-1.132-0.451-1.584-1.697-1.584-1.697s-0.51,0.282-0.51-0.51c0-0.793,0.51,0.51,1.021-2.548c0,0,1.414-0.397,1.133-3.68l-0.338,0.001c0,0,0.85-3.511,0-4.699c-0.854-1.188-1.188-1.981-3.062-2.548c-1.869-0.567-1.188-0.454-2.547-0.396c-1.359,0.057-2.492,0.793-2.492,1.188c0,0-0.849,0.057-1.188,0.397c-0.34,0.34-0.906,1.924-0.906,2.32s0.283,3.059,0.566,3.624l-0.337,0.112c-0.283,3.283,1.132,3.681,1.132,3.681c0.509,3.058,1.019,1.755,1.019,2.548c0,0.792-0.51,0.51-0.51,0.51s-0.452,1.246-1.584,1.697c-1.132,0.453-7.416,2.887-7.927,3.396c-0.511,0.521-0.453,2.896-0.453,2.896h12.036l0.878-3.459l-0.781-0.781l1.344-1.344l1.344,1.344l-0.781,0.781l0.879,3.459h12.035C28.977,26.709,29.039,24.332,28.523,23.813z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Db.js\":\n/*!******************************!*\\\n !*** ./src/shape/icon/Db.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Db();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Db = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Db.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Db\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.499,23.438c-3.846,0-7.708-0.987-9.534-3.117c-0.054,0.236-0.09,0.48-0.09,0.737v3.877c0,3.435,4.988,4.998,9.625,4.998s9.625-1.563,9.625-4.998v-3.877c0-0.258-0.036-0.501-0.09-0.737C23.209,22.451,19.347,23.438,15.499,23.438zM15.499,15.943c-3.846,0-7.708-0.987-9.533-3.117c-0.054,0.236-0.091,0.479-0.091,0.736v3.877c0,3.435,4.988,4.998,9.625,4.998s9.625-1.563,9.625-4.998v-3.877c0-0.257-0.036-0.501-0.09-0.737C23.209,14.956,19.347,15.943,15.499,15.943zM15.5,1.066c-4.637,0-9.625,1.565-9.625,5.001v3.876c0,3.435,4.988,4.998,9.625,4.998s9.625-1.563,9.625-4.998V6.067C25.125,2.632,20.137,1.066,15.5,1.066zM15.5,9.066c-4.211,0-7.625-1.343-7.625-3c0-1.656,3.414-3,7.625-3s7.625,1.344,7.625,3C23.125,7.724,19.711,9.066,15.5,9.066z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Detour.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Detour.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Detour();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Detour = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Detour.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Detour\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M29.342,15.5l-7.556-4.363v2.614H18.75c-1.441-0.004-2.423,1.002-2.875,1.784c-0.735,1.222-1.056,2.561-1.441,3.522c-0.135,0.361-0.278,0.655-0.376,0.817c-1.626,0-0.998,0-2.768,0c-0.213-0.398-0.571-1.557-0.923-2.692c-0.237-0.676-0.5-1.381-1.013-2.071C8.878,14.43,7.89,13.726,6.75,13.75H2.812v3.499c0,0,0.358,0,1.031,0h2.741c0.008,0.013,0.018,0.028,0.029,0.046c0.291,0.401,0.634,1.663,1.031,2.888c0.218,0.623,0.455,1.262,0.92,1.897c0.417,0.614,1.319,1.293,2.383,1.293H11c2.25,0,1.249,0,3.374,0c0.696,0.01,1.371-0.286,1.809-0.657c1.439-1.338,1.608-2.886,2.13-4.127c0.218-0.608,0.453-1.115,0.605-1.314c0.006-0.01,0.012-0.018,0.018-0.025h2.85v2.614L29.342,15.5zM10.173,14.539c0.568,0.76,0.874,1.559,1.137,2.311c0.04,0.128,0.082,0.264,0.125,0.399h2.58c0.246-0.697,0.553-1.479,1.005-2.228c0.252-0.438,0.621-0.887,1.08-1.272H9.43C9.735,14.003,9.99,14.277,10.173,14.539z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Diagram.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Diagram.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Diagram();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Diagram = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Diagram.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Diagram\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super((0, _extend2.default)({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M6.812,17.202l7.396-3.665v-2.164h-0.834c-0.414,0-0.808-0.084-1.167-0.237v1.159l-7.396,3.667v2.912h2V17.202zM26.561,18.875v-2.913l-7.396-3.666v-1.158c-0.358,0.152-0.753,0.236-1.166,0.236h-0.832l-0.001,2.164l7.396,3.666v1.672H26.561zM16.688,18.875v-7.501h-2v7.501H16.688zM27.875,19.875H23.25c-1.104,0-2,0.896-2,2V26.5c0,1.104,0.896,2,2,2h4.625c1.104,0,2-0.896,2-2v-4.625C29.875,20.771,28.979,19.875,27.875,19.875zM8.125,19.875H3.5c-1.104,0-2,0.896-2,2V26.5c0,1.104,0.896,2,2,2h4.625c1.104,0,2-0.896,2-2v-4.625C10.125,20.771,9.229,19.875,8.125,19.875zM13.375,10.375H18c1.104,0,2-0.896,2-2V3.75c0-1.104-0.896-2-2-2h-4.625c-1.104,0-2,0.896-2,2v4.625C11.375,9.479,12.271,10.375,13.375,10.375zM18,19.875h-4.625c-1.104,0-2,0.896-2,2V26.5c0,1.104,0.896,2,2,2H18c1.104,0,2-0.896,2-2v-4.625C20,20.771,19.104,19.875,18,19.875z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Disconnect.js\":\n/*!**************************************!*\\\n !*** ./src/shape/icon/Disconnect.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Disconnect();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Disconnect = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Disconnect.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Disconnect\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M9.219,9.5c-2.733,0-5.05,1.766-5.884,4.218H1.438v4.001h1.897c0.833,2.452,3.15,4.219,5.884,4.219c3.435,0,6.219-2.784,6.219-6.219S12.653,9.5,9.219,9.5zM27.685,13.719c-0.944-5.172-5.461-9.094-10.903-9.094v4c3.917,0.006,7.085,3.176,7.094,7.094c-0.009,3.917-3.177,7.085-7.094,7.093v4.002c5.442-0.004,9.959-3.926,10.903-9.096h2.065v-3.999H27.685z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/DockBottom.js\":\n/*!**************************************!*\\\n !*** ./src/shape/icon/DockBottom.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.DockBottom();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.DockBottom = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.DockBottom.prototype */\n{\n\n NAME: \"draw2d.shape.icon.DockBottom\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M3.083,7.333v16.334h24.833V7.333H3.083zM24.915,16.833H6.083v-6.501h18.833L24.915,16.833L24.915,16.833z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/DockLeft.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/DockLeft.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.DockLeft();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.DockLeft = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.DockLeft.prototype */\n{\n\n NAME: \"draw2d.shape.icon.DockLeft\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M3.084,7.333v16.334h24.832V7.333H3.084z M11.667,10.332h13.251v10.336H11.667V10.332z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/DockRight.js\":\n/*!*************************************!*\\\n !*** ./src/shape/icon/DockRight.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.DockRight();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.DockRight = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.DockRight.prototype */\n{\n\n NAME: \"draw2d.shape.icon.DockRight\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M3.083,7.333v16.334h24.833V7.333H3.083z M19.333,20.668H6.083V10.332h13.25V20.668z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/DockTop.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/DockTop.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.DockTop();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.DockTop = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.DockTop.prototype */\n{\n\n NAME: \"draw2d.shape.icon.DockTop\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M27.916,23.667V7.333H3.083v16.334H27.916zM24.915,20.668H6.083v-6.501h18.833L24.915,20.668L24.915,20.668z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Download.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Download.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Download();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Download = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Download.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Download\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM16,28.792c-1.549,0-2.806-1.256-2.806-2.806s1.256-2.806,2.806-2.806c1.55,0,2.806,1.256,2.806,2.806S17.55,28.792,16,28.792zM16,21.087l-7.858-6.562h3.469V5.747h8.779v8.778h3.468L16,21.087z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Dry.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Dry.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Dry();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Dry = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Dry.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Dry\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M14.784,26.991c0,1.238-1.329,1.696-1.835,1.696c-0.504,0-1.536-0.413-1.65-1.812c0-0.354-0.288-0.642-0.644-0.642c-0.354,0-0.641,0.287-0.641,0.642c0.045,1.056,0.756,3.052,2.935,3.052c2.432,0,3.166-1.882,3.166-3.144v-8.176l-1.328-0.024C14.787,18.584,14.784,25.889,14.784,26.991zM15.584,9.804c-6.807,0-11.084,4.859-11.587,8.326c0.636-0.913,1.694-1.51,2.89-1.51c1.197,0,2.22,0.582,2.855,1.495c0.638-0.904,1.69-1.495,2.88-1.495c1.2,0,2.26,0.6,2.896,1.517c0.635-0.917,1.83-1.517,3.03-1.517c1.19,0,2.241,0.591,2.879,1.495c0.636-0.913,1.659-1.495,2.855-1.495c1.197,0,2.254,0.597,2.89,1.51C26.669,14.663,22.393,9.804,15.584,9.804zM14.733,7.125v2.081h1.323V7.125c0-0.365-0.296-0.661-0.661-0.661C15.029,6.464,14.733,6.76,14.733,7.125zM7.562,6.015c0.54,0.312,1.229,0.128,1.54-0.412c0.109-0.189,0.157-0.398,0.15-0.602L9.251,3.09L7.59,4.047c-0.178,0.095-0.333,0.24-0.441,0.428C6.837,5.015,7.022,5.703,7.562,6.015zM5.572,11.717c0.109-0.19,0.158-0.398,0.151-0.602L5.721,9.203l-1.66,0.957c-0.178,0.096-0.333,0.241-0.441,0.429c-0.311,0.539-0.127,1.229,0.413,1.539C4.571,12.44,5.26,12.256,5.572,11.717zM10.523,9.355c0.539,0.312,1.229,0.126,1.541-0.412c0.109-0.189,0.156-0.398,0.15-0.603L12.214,6.43l-1.662,0.956c-0.177,0.097-0.332,0.241-0.441,0.43C9.799,8.354,9.984,9.044,10.523,9.355zM15.251,3.998c0.539,0.312,1.229,0.126,1.54-0.412c0.11-0.19,0.157-0.398,0.15-0.603L16.94,1.072l-1.661,0.956c-0.178,0.097-0.332,0.242-0.441,0.43C14.526,2.998,14.711,3.687,15.251,3.998zM19.348,8.914c0.539,0.312,1.228,0.128,1.541-0.412c0.109-0.189,0.156-0.398,0.149-0.602h-0.001V5.988l-1.661,0.957c-0.178,0.096-0.332,0.241-0.441,0.429C18.623,7.914,18.809,8.603,19.348,8.914zM23.633,5.196c0.54,0.312,1.23,0.126,1.542-0.413c0.109-0.189,0.156-0.398,0.149-0.602h-0.001V2.27l-1.662,0.957c-0.177,0.096-0.331,0.24-0.44,0.43C22.909,4.195,23.094,4.885,23.633,5.196zM27.528,8.51l-1.659,0.956c-0.18,0.097-0.334,0.242-0.443,0.43c-0.312,0.539-0.127,1.229,0.413,1.54c0.539,0.312,1.229,0.127,1.541-0.412c0.109-0.19,0.158-0.398,0.151-0.603L27.528,8.51z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Employee.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Employee.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Employee();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Employee = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Employee.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Employee\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.523,23.813c-0.518-0.51-6.795-2.938-7.934-3.396c-1.132-0.451-1.584-1.697-1.584-1.697s-0.51,0.282-0.51-0.51c0-0.793,0.51,0.51,1.021-2.548c0,0,1.414-0.397,1.133-3.68l-0.338,0.001c0,0,0.85-3.511,0-4.699c-0.854-1.188-1.188-1.981-3.062-2.548c-1.869-0.567-1.188-0.454-2.547-0.396c-1.359,0.057-2.492,0.793-2.492,1.188c0,0-0.849,0.057-1.188,0.397c-0.34,0.34-0.906,1.924-0.906,2.32s0.283,3.059,0.566,3.624l-0.337,0.112c-0.283,3.283,1.132,3.681,1.132,3.681c0.509,3.058,1.019,1.755,1.019,2.548c0,0.792-0.51,0.51-0.51,0.51s-0.452,1.246-1.584,1.697c-1.132,0.453-7.416,2.887-7.927,3.396c-0.511,0.521-0.453,2.896-0.453,2.896h26.954C28.977,26.709,29.039,24.332,28.523,23.813zM22.188,26.062h-4.562v-1.25h4.562V26.062z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/End.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/End.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.End();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.End = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.End.prototype */\n{\n\n NAME: \"draw2d.shape.icon.End\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M21.167,5.5,21.167,13.681,6.684,5.318,6.684,25.682,21.167,17.318,21.167,25.5,25.5,25.5,25.5,5.5z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Ethernet.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Ethernet.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Ethernet();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Ethernet = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Ethernet.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Ethernet\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M22.5,8.5v3.168l3.832,3.832L22.5,19.332V22.5l7-7L22.5,8.5zM8.5,22.5v-3.168L4.667,15.5L8.5,11.668V8.5l-7,7L8.5,22.5zM15.5,14.101c-0.928,0-1.68,0.751-1.68,1.68c0,0.927,0.752,1.681,1.68,1.681c0.927,0,1.68-0.754,1.68-1.681C17.18,14.852,16.427,14.101,15.5,14.101zM10.46,14.101c-0.928,0-1.68,0.751-1.68,1.68c0,0.927,0.752,1.681,1.68,1.681s1.68-0.754,1.68-1.681C12.14,14.852,11.388,14.101,10.46,14.101zM20.541,14.101c-0.928,0-1.682,0.751-1.682,1.68c0,0.927,0.754,1.681,1.682,1.681s1.68-0.754,1.68-1.681C22.221,14.852,21.469,14.101,20.541,14.101z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Exchange.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Exchange.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Exchange();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Exchange = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Exchange.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Exchange\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M21.786,12.876l7.556-4.363l-7.556-4.363v2.598H2.813v3.5h18.973V12.876zM10.368,18.124l-7.556,4.362l7.556,4.362V24.25h18.974v-3.501H10.368V18.124z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Expand.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Expand.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Expand();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Expand = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Expand.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Expand\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.545,23.328,17.918,15.623,25.534,8.007,27.391,9.864,29.649,1.436,21.222,3.694,23.058,5.53,15.455,13.134,7.942,5.543,9.809,3.696,1.393,1.394,3.608,9.833,5.456,8.005,12.98,15.608,5.465,23.123,3.609,21.268,1.351,29.695,9.779,27.438,7.941,25.6,15.443,18.098,23.057,25.791,21.19,27.638,29.606,29.939,27.393,21.5z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Export.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Export.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Export();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Export = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Export.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Export\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.086,20.904c-1.805,3.113-5.163,5.212-9.023,5.219c-5.766-0.01-10.427-4.672-10.438-10.435C4.636,9.922,9.297,5.261,15.063,5.25c3.859,0.007,7.216,2.105,9.022,5.218l3.962,2.284l0.143,0.082C26.879,6.784,21.504,2.25,15.063,2.248C7.64,2.25,1.625,8.265,1.624,15.688c0.002,7.42,6.017,13.435,13.439,13.437c6.442-0.002,11.819-4.538,13.127-10.589l-0.141,0.081L24.086,20.904zM28.4,15.688l-7.15-4.129v2.297H10.275v3.661H21.25v2.297L28.4,15.688z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Fave.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Fave.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Fave();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Fave = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Fave.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Fave\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.132,7.971c-2.203-2.205-5.916-2.098-8.25,0.235L15.5,8.588l-0.382-0.382c-2.334-2.333-6.047-2.44-8.25-0.235c-2.204,2.203-2.098,5.916,0.235,8.249l8.396,8.396l8.396-8.396C26.229,13.887,26.336,10.174,24.132,7.971z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Feed.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Feed.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Feed();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Feed = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Feed.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Feed\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M4.135,16.762c3.078,0,5.972,1.205,8.146,3.391c2.179,2.187,3.377,5.101,3.377,8.202h4.745c0-9.008-7.299-16.335-16.269-16.335V16.762zM4.141,8.354c10.973,0,19.898,8.975,19.898,20.006h4.743c0-13.646-11.054-24.749-24.642-24.749V8.354zM10.701,25.045c0,1.815-1.471,3.287-3.285,3.287s-3.285-1.472-3.285-3.287c0-1.813,1.471-3.285,3.285-3.285S10.701,23.231,10.701,25.045z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Ff.js\":\n/*!******************************!*\\\n !*** ./src/shape/icon/Ff.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Ff();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Ff = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Ff.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Ff\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.5,15.5,15.2,9.552,15.2,15.153,5.5,9.552,5.5,21.447,15.2,15.847,15.2,21.447z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Firefox.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Firefox.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Firefox();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Firefox = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Firefox.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Firefox\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.4,22.469c0.479-0.964,0.851-1.991,1.095-3.066c0.953-3.661,0.666-6.854,0.666-6.854l-0.327,2.104c0,0-0.469-3.896-1.044-5.353c-0.881-2.231-1.273-2.214-1.274-2.21c0.542,1.379,0.494,2.169,0.483,2.288c-0.01-0.016-0.019-0.032-0.027-0.047c-0.131-0.324-0.797-1.819-2.225-2.878c-2.502-2.481-5.943-4.014-9.745-4.015c-4.056,0-7.705,1.745-10.238,4.525C5.444,6.5,5.183,5.938,5.159,5.317c0,0-0.002,0.002-0.006,0.005c0-0.011-0.003-0.021-0.003-0.031c0,0-1.61,1.247-1.436,4.612c-0.299,0.574-0.56,1.172-0.777,1.791c-0.375,0.817-0.75,2.004-1.059,3.746c0,0,0.133-0.422,0.399-0.988c-0.064,0.482-0.103,0.971-0.116,1.467c-0.09,0.845-0.118,1.865-0.039,3.088c0,0,0.032-0.406,0.136-1.021c0.834,6.854,6.667,12.165,13.743,12.165l0,0c1.86,0,3.636-0.37,5.256-1.036C24.938,27.771,27.116,25.196,28.4,22.469zM16.002,3.356c2.446,0,4.73,0.68,6.68,1.86c-2.274-0.528-3.433-0.261-3.423-0.248c0.013,0.015,3.384,0.589,3.981,1.411c0,0-1.431,0-2.856,0.41c-0.065,0.019,5.242,0.663,6.327,5.966c0,0-0.582-1.213-1.301-1.42c0.473,1.439,0.351,4.17-0.1,5.528c-0.058,0.174-0.118-0.755-1.004-1.155c0.284,2.037-0.018,5.268-1.432,6.158c-0.109,0.07,0.887-3.189,0.201-1.93c-4.093,6.276-8.959,2.539-10.934,1.208c1.585,0.388,3.267,0.108,4.242-0.559c0.982-0.672,1.564-1.162,2.087-1.047c0.522,0.117,0.87-0.407,0.464-0.872c-0.405-0.466-1.392-1.105-2.725-0.757c-0.94,0.247-2.107,1.287-3.886,0.233c-1.518-0.899-1.507-1.63-1.507-2.095c0-0.366,0.257-0.88,0.734-1.028c0.58,0.062,1.044,0.214,1.537,0.466c0.005-0.135,0.006-0.315-0.001-0.519c0.039-0.077,0.015-0.311-0.047-0.596c-0.036-0.287-0.097-0.582-0.19-0.851c0.01-0.002,0.017-0.007,0.021-0.021c0.076-0.344,2.147-1.544,2.299-1.659c0.153-0.114,0.55-0.378,0.506-1.183c-0.015-0.265-0.058-0.294-2.232-0.286c-0.917,0.003-1.425-0.894-1.589-1.245c0.222-1.231,0.863-2.11,1.919-2.704c0.02-0.011,0.015-0.021-0.008-0.027c0.219-0.127-2.524-0.006-3.76,1.604C9.674,8.045,9.219,7.95,8.71,7.95c-0.638,0-1.139,0.07-1.603,0.187c-0.05,0.013-0.122,0.011-0.208-0.001C6.769,8.04,6.575,7.88,6.365,7.672c0.161-0.18,0.324-0.356,0.495-0.526C9.201,4.804,12.43,3.357,16.002,3.356z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Flag.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Flag.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Flag();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Flag = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Flag.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Flag\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M26.04,9.508c0.138-0.533,0.15-1.407,0.028-1.943l-0.404-1.771c-0.122-0.536-0.665-1.052-1.207-1.146l-3.723-0.643c-0.542-0.094-1.429-0.091-1.97,0.007l-4.033,0.726c-0.542,0.098-1.429,0.108-1.973,0.023L8.812,4.146C8.817,4.165,8.826,4.182,8.83,4.201l2.701,12.831l1.236,0.214c0.542,0.094,1.428,0.09,1.97-0.007l4.032-0.727c0.541-0.097,1.429-0.107,1.973-0.022l4.329,0.675c0.544,0.085,0.906-0.288,0.807-0.829l-0.485-2.625c-0.1-0.541-0.069-1.419,0.068-1.952L26.04,9.508zM6.667,3.636C6.126,3.75,5.78,4.279,5.894,4.819l5.763,27.378H13.7L7.852,4.409C7.736,3.867,7.207,3.521,6.667,3.636z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Flickr.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Flickr.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Flickr();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Flickr = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Flickr.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Flickr\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M21.77,8.895c-2.379,0-4.479,1.174-5.77,2.969c-1.289-1.795-3.39-2.969-5.77-2.969c-3.924,0-7.105,3.181-7.105,7.105c0,3.924,3.181,7.105,7.105,7.105c2.379,0,4.48-1.175,5.77-2.97c1.29,1.795,3.391,2.97,5.77,2.97c3.925,0,7.105-3.182,7.105-7.105C28.875,12.075,25.694,8.895,21.77,8.895zM21.769,21.822c-3.211,0-5.821-2.61-5.821-5.821c0-3.213,2.61-5.824,5.821-5.824c3.213,0,5.824,2.611,5.824,5.824C27.593,19.212,24.981,21.822,21.769,21.822z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Folder.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Folder.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Folder();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Folder = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Folder.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Folder\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.625,26.75h-26.5V8.375h1.124c1.751,0,0.748-3.125,3-3.125c3.215,0,1.912,0,5.126,0c2.251,0,1.251,3.125,3.001,3.125h14.25V26.75z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Font.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Font.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Font();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Font = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Font.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Font\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M22.255,19.327l-1.017,0.131c-0.609,0.081-1.067,0.208-1.375,0.382c-0.521,0.293-0.779,0.76-0.779,1.398c0,0.484,0.178,0.867,0.532,1.146c0.354,0.28,0.774,0.421,1.262,0.421c0.593,0,1.164-0.138,1.72-0.412c0.938-0.453,1.4-1.188,1.4-2.229v-1.354c-0.205,0.131-0.469,0.229-0.792,0.328C22.883,19.229,22.564,19.29,22.255,19.327zM8.036,18.273h4.309l-2.113-6.063L8.036,18.273zM28.167,7.75H3.168c-0.552,0-1,0.448-1,1v16.583c0,0.553,0.448,1,1,1h24.999c0.554,0,1-0.447,1-1V8.75C29.167,8.198,28.721,7.75,28.167,7.75zM14.305,23.896l-1.433-4.109H7.488L6,23.896H4.094L9.262,10.17h2.099l4.981,13.727H14.305L14.305,23.896zM26.792,23.943c-0.263,0.074-0.461,0.121-0.599,0.141c-0.137,0.02-0.323,0.027-0.562,0.027c-0.579,0-0.999-0.204-1.261-0.615c-0.138-0.219-0.231-0.525-0.29-0.926c-0.344,0.449-0.834,0.839-1.477,1.169c-0.646,0.329-1.354,0.493-2.121,0.493c-0.928,0-1.688-0.28-2.273-0.844c-0.589-0.562-0.884-1.271-0.884-2.113c0-0.928,0.29-1.646,0.868-2.155c0.578-0.511,1.34-0.824,2.279-0.942l2.682-0.336c0.388-0.05,0.646-0.211,0.775-0.484c0.063-0.146,0.104-0.354,0.104-0.646c0-0.575-0.203-0.993-0.604-1.252c-0.408-0.26-0.99-0.389-1.748-0.389c-0.877,0-1.5,0.238-1.865,0.713c-0.205,0.263-0.34,0.654-0.399,1.174H17.85c0.031-1.237,0.438-2.097,1.199-2.582c0.77-0.484,1.659-0.726,2.674-0.726c1.176,0,2.131,0.225,2.864,0.673c0.729,0.448,1.093,1.146,1.093,2.093v5.766c0,0.176,0.035,0.313,0.106,0.422c0.071,0.104,0.223,0.156,0.452,0.156c0.076,0,0.16-0.005,0.254-0.015c0.093-0.011,0.191-0.021,0.299-0.041L26.792,23.943L26.792,23.943z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Fork.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Fork.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Fork();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Fork = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Fork.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Fork\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M13.741,10.249h8.045v2.627l7.556-4.363l-7.556-4.363v2.598H9.826C11.369,7.612,12.616,8.922,13.741,10.249zM21.786,20.654c-0.618-0.195-1.407-0.703-2.291-1.587c-1.79-1.756-3.712-4.675-5.731-7.227c-2.049-2.486-4.159-4.972-7.451-5.091h-3.5v3.5h3.5c0.656-0.027,1.683,0.486,2.879,1.683c1.788,1.753,3.712,4.674,5.731,7.226c1.921,2.331,3.907,4.639,6.863,5.016v2.702l7.556-4.362l-7.556-4.362V20.654z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/ForkAlt.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/ForkAlt.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.ForkAlt();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.ForkAlt = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.ForkAlt.prototype */\n{\n\n NAME: \"draw2d.shape.icon.ForkAlt\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M21.786,12.873l7.556-4.361l-7.556-4.362v2.701c-2.929,0.374-4.905,2.64-6.809,4.952c0.545,0.703,1.08,1.418,1.604,2.127c0.192,0.26,0.383,0.514,0.573,0.77c0.802-1.043,1.584-1.999,2.341-2.74c0.884-0.885,1.673-1.393,2.291-1.588V12.873zM17.661,17.006c-1.893-2.371-3.815-5.354-6.009-7.537c-1.461-1.428-3.155-2.664-5.34-2.693h-3.5v3.5h3.5c0.971-0.119,2.845,1.333,4.712,3.771c1.895,2.371,3.815,5.354,6.011,7.537c1.326,1.297,2.847,2.426,4.751,2.645v2.646l7.556-4.363l-7.556-4.362v2.535C20.746,20.346,19.205,19.022,17.661,17.006z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/FullCube.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/FullCube.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.FullCube();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.FullCube = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.FullCube.prototype */\n{\n\n NAME: \"draw2d.shape.icon.FullCube\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.5,3.029l-10.8,6.235L4.7,21.735L15.5,27.971l10.8-6.235V9.265L15.5,3.029zM15.5,7.029l6.327,3.652L15.5,14.334l-6.326-3.652L15.5,7.029zM24.988,10.599L16,15.789v10.378c0,0.275-0.225,0.5-0.5,0.5s-0.5-0.225-0.5-0.5V15.786l-8.987-5.188c-0.239-0.138-0.321-0.444-0.183-0.683c0.138-0.238,0.444-0.321,0.683-0.183l8.988,5.189l8.988-5.189c0.238-0.138,0.545-0.055,0.684,0.184C25.309,10.155,25.227,10.461,24.988,10.599z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Future.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Future.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Future();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Future = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Future.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Future\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M17.001,15.5l-0.5-7.876c0-0.552-0.448-1-1-1c-0.552,0-1,0.448-1,1l-0.466,7.343l-3.004,1.96c-0.478,0.277-0.642,0.89-0.365,1.365c0.275,0.479,0.889,0.644,1.365,0.367l3.305-1.677C15.39,16.99,15.444,17,15.501,17C16.329,17,17.001,16.329,17.001,15.5zM18.939,21.455c-0.479,0.277-0.644,0.889-0.366,1.367c0.274,0.477,0.888,0.643,1.366,0.365c0.478-0.275,0.642-0.89,0.365-1.365C20.027,21.344,19.417,21.18,18.939,21.455zM19.938,7.813c-0.477-0.276-1.09-0.111-1.364,0.366c-0.275,0.48-0.111,1.091,0.366,1.367c0.477,0.276,1.088,0.112,1.365-0.366C20.581,8.702,20.418,8.089,19.938,7.813zM21.823,20.305c0.477,0.274,1.089,0.112,1.364-0.365c0.276-0.479,0.112-1.092-0.364-1.367c-0.48-0.275-1.093-0.111-1.367,0.365C21.182,19.416,21.344,20.029,21.823,20.305zM22.822,12.428c0.478-0.275,0.643-0.888,0.365-1.366c-0.274-0.478-0.89-0.642-1.365-0.366c-0.479,0.278-0.643,0.89-0.366,1.367S22.344,12.705,22.822,12.428zM24.378,15.5c0-0.551-0.448-1-1-1c-0.554,0.002-1.001,0.45-1.001,1c0.001,0.552,0.448,1,1.001,1C23.93,16.5,24.378,16.053,24.378,15.5zM9.546,12.062c0.275-0.478,0.111-1.089-0.366-1.366c-0.479-0.276-1.09-0.112-1.366,0.366s-0.111,1.09,0.365,1.366C8.658,12.704,9.269,12.541,9.546,12.062zM6.624,15.5c0,0.553,0.449,1,1,1c0.552,0,1-0.447,1.001-1c-0.001-0.552-0.448-0.999-1.001-1C7.071,14.5,6.624,14.948,6.624,15.5zM9.179,20.305c0.479-0.275,0.643-0.888,0.367-1.367c-0.276-0.477-0.888-0.641-1.367-0.365c-0.478,0.277-0.642,0.889-0.365,1.367C8.089,20.418,8.703,20.58,9.179,20.305zM12.062,9.545c0.479-0.276,0.642-0.888,0.366-1.366c-0.276-0.478-0.888-0.642-1.366-0.366s-0.642,0.888-0.366,1.366C10.973,9.658,11.584,9.822,12.062,9.545zM14.501,23.377c0,0.553,0.448,1,1,1c0.552,0,1-0.447,1-1s-0.448-1-1-1C14.949,22.377,14.501,22.824,14.501,23.377zM10.696,21.822c-0.275,0.479-0.111,1.09,0.366,1.365c0.478,0.276,1.091,0.11,1.365-0.365c0.277-0.479,0.113-1.09-0.365-1.367C11.584,21.18,10.973,21.344,10.696,21.822zM28.674,14.087l-3.27-1.186c0.291,1.105,0.41,2.274,0.309,3.478c-0.492,5.639-5.449,9.809-11.091,9.333c-5.639-0.495-9.809-5.45-9.333-11.09c0.494-5.641,5.449-9.812,11.089-9.335c2.428,0.212,4.567,1.266,6.194,2.833l-1.637,1.377l7.031,2.548l-1.309-7.364l-1.771,1.492c-2.133-2.151-4.996-3.597-8.25-3.877C9.346,1.67,2.926,7.072,2.297,14.364c-0.625,7.291,4.777,13.71,12.066,14.339c7.293,0.625,13.713-4.776,14.342-12.066C28.779,15.771,28.762,14.919,28.674,14.087z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/GRaphael.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/GRaphael.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.GRaphael();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.GRaphael = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.GRaphael.prototype */\n{\n\n NAME: \"draw2d.shape.icon.GRaphael\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.833,15.709c0-1.477-0.574-2.862-1.617-3.904l-7.002-7.001l-0.003,0.002c-1.027-1.03-2.445-1.62-3.9-1.62c-1.455,0-2.871,0.59-3.9,1.621l-0.002-0.002l-7,7C4.376,12.836,3.79,14.25,3.79,15.709s0.586,2.873,1.619,3.902l6.312,6.312c0.253,0.285,0.519,0.556,0.8,0.8c1.049,0.989,2.463,1.534,3.908,1.51c1.417-0.021,2.783-0.604,3.785-1.604l6.812-6.812c0.021-0.021,0.035-0.029,0.062-0.062l0.143-0.146c0.271-0.271,0.484-0.562,0.725-0.86l-0.012-0.002C28.516,17.85,28.833,16.805,28.833,15.709zM18.77,25.17c-1.121,1.119-2.917,1.336-4.271,0.514l0.002-0.002c-0.213-0.145-0.414-0.303-0.61-0.471c-0.016-0.016-7.04-7.041-7.04-7.041c-1.34-1.34-1.342-3.584,0-4.92l7-6.998c1.121-1.121,2.908-1.338,4.259-0.512v0.002c0.213,0.141,0.414,0.299,0.604,0.467c0.021,0.016,7.053,7.043,7.053,7.043c0.396,0.388,0.655,0.852,0.818,1.348l-2.607,0.006c-0.537-3.754-3.769-6.641-7.667-6.641c-4.277,0-7.744,3.468-7.745,7.746c0.001,4.277,3.468,7.744,7.745,7.744c3.917,0,7.156-2.91,7.668-6.688l2.638-0.021c-0.16,0.521-0.441,1.02-0.849,1.412L18.77,25.17zM16.312,16.789c0.002,0,0.002,0,0.004,0l5.476-0.02c-0.5,2.562-2.76,4.518-5.48,4.521c-3.084-0.004-5.578-2.5-5.584-5.582c0.006-3.084,2.5-5.58,5.584-5.584c2.708,0.004,4.959,1.929,5.472,4.484l-5.476,0.018c-0.596,0.002-1.078,0.488-1.076,1.084C15.233,16.308,15.715,16.789,16.312,16.789z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Gear.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Gear.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Gear();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Gear = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Gear.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Gear\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M26.974,16.514l3.765-1.991c-0.074-0.738-0.217-1.454-0.396-2.157l-4.182-0.579c-0.362-0.872-0.84-1.681-1.402-2.423l1.594-3.921c-0.524-0.511-1.09-0.977-1.686-1.406l-3.551,2.229c-0.833-0.438-1.73-0.77-2.672-0.984l-1.283-3.976c-0.364-0.027-0.728-0.056-1.099-0.056s-0.734,0.028-1.099,0.056l-1.271,3.941c-0.967,0.207-1.884,0.543-2.738,0.986L7.458,4.037C6.863,4.466,6.297,4.932,5.773,5.443l1.55,3.812c-0.604,0.775-1.11,1.629-1.49,2.55l-4.05,0.56c-0.178,0.703-0.322,1.418-0.395,2.157l3.635,1.923c0.041,1.013,0.209,1.994,0.506,2.918l-2.742,3.032c0.319,0.661,0.674,1.303,1.085,1.905l4.037-0.867c0.662,0.72,1.416,1.351,2.248,1.873l-0.153,4.131c0.663,0.299,1.352,0.549,2.062,0.749l2.554-3.283C15.073,26.961,15.532,27,16,27c0.507,0,1.003-0.046,1.491-0.113l2.567,3.301c0.711-0.2,1.399-0.45,2.062-0.749l-0.156-4.205c0.793-0.513,1.512-1.127,2.146-1.821l4.142,0.889c0.411-0.602,0.766-1.243,1.085-1.905l-2.831-3.131C26.778,18.391,26.93,17.467,26.974,16.514zM20.717,21.297l-1.785,1.162l-1.098-1.687c-0.571,0.22-1.186,0.353-1.834,0.353c-2.831,0-5.125-2.295-5.125-5.125c0-2.831,2.294-5.125,5.125-5.125c2.83,0,5.125,2.294,5.125,5.125c0,1.414-0.573,2.693-1.499,3.621L20.717,21.297z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Gear2.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Gear2.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Gear2();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Gear2 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Gear2.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Gear2\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M17.047,27.945c-0.34,0.032-0.688,0.054-1.046,0.054l0,0c-0.32,0-0.631-0.017-0.934-0.043l0,0l-2.626,3.375l-0.646-0.183c-0.758-0.213-1.494-0.48-2.202-0.8l0,0L8.979,30.07l0.158-4.24c-0.558-0.39-1.079-0.825-1.561-1.302l0,0L3.424,25.42l-0.379-0.557c-0.445-0.654-0.824-1.339-1.16-2.032l0,0l-0.292-0.605l2.819-3.12c-0.176-0.661-0.293-1.343-0.353-2.038l0,0l-3.736-1.975l0.068-0.669c0.08-0.801,0.235-1.567,0.42-2.303l0,0l0.165-0.653l4.167-0.577c0.297-0.627,0.647-1.221,1.041-1.78l0,0l-1.59-3.914l0.48-0.47c0.564-0.55,1.168-1.048,1.798-1.503l0,0l0.546-0.394l3.597,2.259c0.606-0.279,1.24-0.509,1.897-0.685l0,0l1.304-4.046l0.672-0.051c0.362-0.027,0.751-0.058,1.174-0.058l0,0c0.422,0,0.81,0.031,1.172,0.058l0,0l0.672,0.051l1.318,4.088c0.632,0.176,1.244,0.401,1.831,0.674l0,0l3.647-2.291l0.548,0.394c0.63,0.455,1.235,0.954,1.798,1.501l0,0l0.482,0.47l-1.639,4.031c0.357,0.519,0.679,1.068,0.954,1.646l0,0l4.297,0.595l0.167,0.653c0.188,0.735,0.342,1.501,0.42,2.303l0,0l0.068,0.669l-3.866,2.044c-0.058,0.634-0.161,1.258-0.315,1.866l0,0l2.913,3.218l-0.293,0.608c-0.335,0.695-0.712,1.382-1.159,2.034l0,0l-0.379,0.555l-4.255-0.912c-0.451,0.451-0.939,0.866-1.461,1.241l0,0l0.162,4.323l-0.615,0.278c-0.709,0.319-1.444,0.587-2.202,0.8l0,0l-0.648,0.183L17.047,27.945L17.047,27.945zM20.424,29.028c0.227-0.076,0.45-0.157,0.671-0.244l0,0l-0.152-4.083l0.479-0.307c0.717-0.466,1.37-1.024,1.95-1.658l0,0l0.386-0.423l4.026,0.862c0.121-0.202,0.238-0.409,0.351-0.62l0,0l-2.754-3.045l0.171-0.544c0.243-0.783,0.381-1.623,0.422-2.5l0,0l0.025-0.571l3.658-1.933c-0.038-0.234-0.082-0.467-0.132-0.7l0,0l-4.07-0.563l-0.219-0.527c-0.327-0.787-0.76-1.524-1.277-2.204l0,0l-0.342-0.453l1.548-3.808c-0.179-0.157-0.363-0.31-0.552-0.458l0,0l-3.455,2.169L20.649,7.15c-0.754-0.397-1.569-0.698-2.429-0.894l0,0l-0.556-0.127l-1.248-3.87c-0.121-0.006-0.239-0.009-0.354-0.009l0,0c-0.117,0-0.235,0.003-0.357,0.009l0,0l-1.239,3.845l-0.564,0.12c-0.875,0.188-1.709,0.494-2.486,0.896l0,0l-0.508,0.264L7.509,5.249c-0.188,0.148-0.372,0.301-0.55,0.458l0,0l1.507,3.708L8.112,9.869c-0.552,0.709-1.011,1.485-1.355,2.319l0,0l-0.218,0.529l-3.939,0.545c-0.05,0.233-0.094,0.466-0.131,0.7l0,0l3.531,1.867l0.022,0.575c0.037,0.929,0.192,1.82,0.459,2.653l0,0l0.175,0.548l-2.667,2.95c0.112,0.212,0.229,0.419,0.351,0.621l0,0l3.916-0.843l0.39,0.423c0.601,0.657,1.287,1.229,2.043,1.703l0,0l0.488,0.305l-0.149,4.02c0.221,0.087,0.445,0.168,0.672,0.244l0,0l2.479-3.188l0.566,0.07c0.427,0.054,0.843,0.089,1.257,0.089l0,0c0.445,0,0.894-0.039,1.353-0.104l0,0l0.571-0.08L20.424,29.028L20.424,29.028zM21.554,20.75l0.546,0.839l-3.463,2.253l-1.229-1.891l0,0c-0.447,0.109-0.917,0.173-1.406,0.173l0,0c-3.384,0-6.126-2.743-6.126-6.123l0,0c0-3.384,2.742-6.126,6.126-6.126l0,0c3.38,0,6.123,2.742,6.123,6.126l0,0c0,1.389-0.467,2.676-1.25,3.704l0,0L21.554,20.75M19.224,21.073l0.108-0.069l-0.987-1.519l0.572-0.572c0.748-0.75,1.207-1.773,1.207-2.912l0,0c-0.004-2.278-1.848-4.122-4.123-4.126l0,0c-2.28,0.004-4.122,1.846-4.126,4.126l0,0c0.004,2.275,1.848,4.119,4.126,4.123l0,0c0.509,0,0.999-0.104,1.473-0.286l0,0l0.756-0.29L19.224,21.073L19.224,21.073z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/GitHub.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/GitHub.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.GitHub();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.GitHub = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.GitHub.prototype */\n{\n\n NAME: \"draw2d.shape.icon.GitHub\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.436,15.099c-1.201-0.202-2.451-0.335-3.466-0.371l-0.179-0.006c0.041-0.09,0.072-0.151,0.082-0.16c0.022-0.018,0.04-0.094,0.042-0.168c0-0.041,0.018-0.174,0.046-0.35c0.275,0.01,0.64,0.018,1.038,0.021c1.537,0.012,3.145,0.136,4.248,0.331c0.657,0.116,0.874,0.112,0.389-0.006c-0.491-0.119-1.947-0.294-3.107-0.37c-0.779-0.053-1.896-0.073-2.554-0.062c0.019-0.114,0.041-0.241,0.064-0.371c0.093-0.503,0.124-1.009,0.126-2.016c0.002-1.562-0.082-1.992-0.591-3.025c-0.207-0.422-0.441-0.78-0.724-1.104c0.247-0.729,0.241-1.858-0.015-2.848c-0.211-0.812-0.285-0.864-1.021-0.708C22.19,4.019,21.69,4.2,21.049,4.523c-0.303,0.153-0.721,0.391-1.024,0.578c-0.79-0.278-1.607-0.462-2.479-0.561c-0.884-0.1-3.051-0.044-3.82,0.098c-0.752,0.139-1.429,0.309-2.042,0.511c-0.306-0.189-0.75-0.444-1.067-0.604C9.973,4.221,9.473,4.041,8.847,3.908c-0.734-0.157-0.81-0.104-1.02,0.708c-0.26,1.003-0.262,2.151-0.005,2.878C7.852,7.577,7.87,7.636,7.877,7.682c-1.042,1.312-1.382,2.78-1.156,4.829c0.059,0.534,0.15,1.024,0.277,1.473c-0.665-0.004-1.611,0.02-2.294,0.064c-1.162,0.077-2.618,0.25-3.109,0.369c-0.484,0.118-0.269,0.122,0.389,0.007c1.103-0.194,2.712-0.32,4.248-0.331c0.29-0.001,0.561-0.007,0.794-0.013c0.07,0.237,0.15,0.463,0.241,0.678L7.26,14.759c-1.015,0.035-2.264,0.168-3.465,0.37c-0.901,0.151-2.231,0.453-2.386,0.54c-0.163,0.091-0.03,0.071,0.668-0.106c1.273-0.322,2.928-0.569,4.978-0.741l0.229-0.02c0.44,1.022,1.118,1.802,2.076,2.41c0.586,0.373,1.525,0.756,1.998,0.816c0.13,0.016,0.508,0.094,0.84,0.172c0.333,0.078,0.984,0.195,1.446,0.262h0.011c-0.009,0.006-0.017,0.01-0.025,0.016c-0.56,0.291-0.924,0.744-1.169,1.457c-0.11,0.033-0.247,0.078-0.395,0.129c-0.529,0.18-0.735,0.217-1.271,0.221c-0.556,0.004-0.688-0.02-1.02-0.176c-0.483-0.225-0.933-0.639-1.233-1.133c-0.501-0.826-1.367-1.41-2.089-1.41c-0.617,0-0.734,0.25-0.288,0.615c0.672,0.549,1.174,1.109,1.38,1.537c0.116,0.24,0.294,0.611,0.397,0.824c0.109,0.227,0.342,0.535,0.564,0.748c0.522,0.498,1.026,0.736,1.778,0.848c0.504,0.074,0.628,0.074,1.223-0.002c0.287-0.035,0.529-0.076,0.746-0.127c0,0.244,0,0.525,0,0.855c0,1.766-0.021,2.334-0.091,2.5c-0.132,0.316-0.428,0.641-0.716,0.787c-0.287,0.146-0.376,0.307-0.255,0.455c0.067,0.08,0.196,0.094,0.629,0.066c0.822-0.051,1.403-0.355,1.699-0.891c0.095-0.172,0.117-0.518,0.147-2.318c0.032-1.953,0.046-2.141,0.173-2.42c0.077-0.166,0.188-0.346,0.25-0.395c0.104-0.086,0.111,0.084,0.111,2.42c-0.001,2.578-0.027,2.889-0.285,3.385c-0.058,0.113-0.168,0.26-0.245,0.33c-0.135,0.123-0.192,0.438-0.098,0.533c0.155,0.154,0.932-0.088,1.356-0.422c0.722-0.572,0.808-1.045,0.814-4.461l0.003-2.004l0.219,0.021l0.219,0.02l0.036,2.621c0.041,2.951,0.047,2.994,0.549,3.564c0.285,0.322,0.572,0.5,1.039,0.639c0.625,0.188,0.813-0.102,0.393-0.605c-0.457-0.547-0.479-0.756-0.454-3.994c0.017-2.076,0.017-2.076,0.151-1.955c0.282,0.256,0.336,0.676,0.336,2.623c0,2.418,0.069,2.648,0.923,3.07c0.399,0.195,0.511,0.219,1.022,0.221c0.544,0.002,0.577-0.006,0.597-0.148c0.017-0.115-0.05-0.193-0.304-0.348c-0.333-0.205-0.564-0.467-0.709-0.797c-0.055-0.127-0.092-0.959-0.117-2.672c-0.036-2.393-0.044-2.502-0.193-2.877c-0.201-0.504-0.508-0.902-0.897-1.166c-0.101-0.066-0.202-0.121-0.333-0.162c0.161-0.016,0.317-0.033,0.468-0.055c1.572-0.209,2.403-0.383,3.07-0.641c1.411-0.543,2.365-1.445,2.882-2.724c0.046-0.114,0.092-0.222,0.131-0.309l0.398,0.033c2.051,0.173,3.706,0.42,4.979,0.743c0.698,0.177,0.831,0.198,0.668,0.105C30.666,15.551,29.336,15.25,28.436,15.099zM22.422,15.068c-0.233,0.512-0.883,1.17-1.408,1.428c-0.518,0.256-1.33,0.451-2.25,0.544c-0.629,0.064-4.137,0.083-4.716,0.026c-1.917-0.188-2.991-0.557-3.783-1.296c-0.75-0.702-1.1-1.655-1.039-2.828c0.039-0.734,0.216-1.195,0.679-1.755c0.421-0.51,0.864-0.825,1.386-0.985c0.437-0.134,1.778-0.146,3.581-0.03c0.797,0.051,1.456,0.051,2.252,0c1.886-0.119,3.145-0.106,3.61,0.038c0.731,0.226,1.397,0.834,1.797,1.644c0.18,0.362,0.215,0.516,0.241,1.075C22.808,13.699,22.675,14.517,22.422,15.068zM12.912,11.762c-1.073-0.188-1.686,1.649-0.863,2.587c0.391,0.445,0.738,0.518,1.172,0.248c0.402-0.251,0.62-0.72,0.62-1.328C13.841,12.458,13.472,11.862,12.912,11.762zM19.425,11.872c-1.073-0.188-1.687,1.647-0.864,2.586c0.392,0.445,0.738,0.519,1.173,0.247c0.401-0.25,0.62-0.72,0.62-1.328C20.354,12.569,19.985,11.971,19.425,11.872zM16.539,15.484c-0.023,0.074-0.135,0.184-0.248,0.243c-0.286,0.147-0.492,0.096-0.794-0.179c-0.187-0.169-0.272-0.258-0.329-0.081c-0.053,0.164,0.28,0.493,0.537,0.594c0.236,0.094,0.405,0.097,0.661-0.01c0.254-0.106,0.476-0.391,0.476-0.576C16.842,15.303,16.595,15.311,16.539,15.484zM16.222,14.909c0.163-0.144,0.2-0.44,0.044-0.597s-0.473-0.133-0.597,0.043c-0.144,0.206-0.067,0.363,0.036,0.53C15.865,15.009,16.08,15.034,16.222,14.909z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/GitHubAlt.js\":\n/*!*************************************!*\\\n !*** ./src/shape/icon/GitHubAlt.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.GitHubAlt();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.GitHubAlt = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.GitHubAlt.prototype */\n{\n\n NAME: \"draw2d.shape.icon.GitHubAlt\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M23.356,17.485c-0.004,0.007-0.007,0.013-0.01,0.021l0.162,0.005c0.107,0.004,0.218,0.01,0.33,0.016c-0.046-0.004-0.09-0.009-0.136-0.013L23.356,17.485zM15.5,1.249C7.629,1.25,1.25,7.629,1.249,15.5C1.25,23.371,7.629,29.75,15.5,29.751c7.871-0.001,14.25-6.38,14.251-14.251C29.75,7.629,23.371,1.25,15.5,1.249zM3.771,17.093c0.849-0.092,1.833-0.148,2.791-0.156c0.262,0,0.507-0.006,0.717-0.012c0.063,0.213,0.136,0.419,0.219,0.613H7.492c-0.918,0.031-2.047,0.152-3.134,0.335c-0.138,0.023-0.288,0.051-0.441,0.08C3.857,17.67,3.81,17.383,3.771,17.093zM12.196,22.224c-0.1,0.028-0.224,0.07-0.357,0.117c-0.479,0.169-0.665,0.206-1.15,0.206c-0.502,0.015-0.621-0.019-0.921-0.17C9.33,22.171,8.923,21.8,8.651,21.353c-0.453-0.746-1.236-1.275-1.889-1.275c-0.559,0-0.664,0.227-0.261,0.557c0.608,0.496,1.062,0.998,1.248,1.385c0.105,0.215,0.266,0.546,0.358,0.744c0.099,0.206,0.311,0.474,0.511,0.676c0.472,0.441,0.928,0.659,1.608,0.772c0.455,0.06,0.567,0.06,1.105-0.004c0.26-0.03,0.479-0.067,0.675-0.118v0.771c0,1.049-0.008,1.628-0.031,1.945c-1.852-0.576-3.507-1.595-4.848-2.934c-1.576-1.578-2.706-3.592-3.195-5.848c0.952-0.176,2.073-0.32,3.373-0.43l0.208-0.018c0.398,0.925,1.011,1.631,1.876,2.179c0.53,0.337,1.38,0.685,1.808,0.733c0.118,0.02,0.46,0.09,0.76,0.16c0.302,0.066,0.89,0.172,1.309,0.236h0.009c-0.007,0.018-0.014,0.02-0.022,0.02C12.747,21.169,12.418,21.579,12.196,22.224zM13.732,27.207c-0.168-0.025-0.335-0.056-0.5-0.087c0.024-0.286,0.038-0.785,0.054-1.723c0.028-1.767,0.041-1.94,0.156-2.189c0.069-0.15,0.17-0.32,0.226-0.357c0.095-0.078,0.101,0.076,0.101,2.188C13.769,26.143,13.763,26.786,13.732,27.207zM15.5,27.339c-0.148,0-0.296-0.006-0.443-0.012c0.086-0.562,0.104-1.428,0.106-2.871l0.003-1.82l0.197,0.019l0.199,0.02l0.032,2.365c0.017,1.21,0.027,1.878,0.075,2.296C15.613,27.335,15.558,27.339,15.5,27.339zM17.006,27.24c-0.039-0.485-0.037-1.243-0.027-2.553c0.019-1.866,0.019-1.866,0.131-1.769c0.246,0.246,0.305,0.623,0.305,2.373c0,0.928,0.011,1.497,0.082,1.876C17.334,27.196,17.17,27.22,17.006,27.24zM27.089,17.927c-0.155-0.029-0.307-0.057-0.446-0.08c-0.96-0.162-1.953-0.275-2.804-0.32c1.25,0.108,2.327,0.248,3.246,0.418c-0.479,2.289-1.618,4.33-3.214,5.928c-1.402,1.4-3.15,2.448-5.106,3.008c-0.034-0.335-0.058-1.048-0.066-2.212c-0.03-2.167-0.039-2.263-0.17-2.602c-0.181-0.458-0.47-0.811-0.811-1.055c-0.094-0.057-0.181-0.103-0.301-0.14c0.145-0.02,0.282-0.021,0.427-0.057c1.418-0.188,2.168-0.357,2.772-0.584c1.263-0.492,2.129-1.301,2.606-2.468c0.044-0.103,0.088-0.2,0.123-0.279l0.011,0.001c0.032-0.07,0.057-0.118,0.064-0.125c0.02-0.017,0.036-0.085,0.038-0.151c0-0.037,0.017-0.157,0.041-0.317c0.249,0.01,0.58,0.018,0.938,0.02c0.959,0.008,1.945,0.064,2.794,0.156C27.194,17.356,27.148,17.644,27.089,17.927zM25.823,16.87c-0.697-0.049-1.715-0.064-2.311-0.057c0.02-0.103,0.037-0.218,0.059-0.336c0.083-0.454,0.111-0.912,0.113-1.823c0.002-1.413-0.074-1.801-0.534-2.735c-0.188-0.381-0.399-0.705-0.655-0.998c0.225-0.659,0.207-1.68-0.02-2.575c-0.19-0.734-0.258-0.781-0.924-0.64c-0.563,0.12-1.016,0.283-1.598,0.576c-0.274,0.138-0.652,0.354-0.923,0.522c-0.715-0.251-1.451-0.419-2.242-0.508c-0.799-0.092-2.759-0.04-3.454,0.089c-0.681,0.126-1.293,0.28-1.848,0.462c-0.276-0.171-0.678-0.4-0.964-0.547C9.944,8.008,9.491,7.846,8.925,7.727c-0.664-0.144-0.732-0.095-0.922,0.64c-0.235,0.907-0.237,1.945-0.004,2.603c0.026,0.075,0.043,0.129,0.05,0.17c-0.942,1.187-1.25,2.515-1.046,4.367c0.053,0.482,0.136,0.926,0.251,1.333c-0.602-0.004-1.457,0.018-2.074,0.057c-0.454,0.031-0.957,0.076-1.418,0.129c-0.063-0.5-0.101-1.008-0.101-1.524c0-3.273,1.323-6.225,3.468-8.372c2.146-2.144,5.099-3.467,8.371-3.467c3.273,0,6.226,1.323,8.371,3.467c2.145,2.147,3.468,5.099,3.468,8.372c0,0.508-0.036,1.008-0.098,1.499C26.78,16.946,26.276,16.899,25.823,16.87z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Glasses.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Glasses.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Glasses();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Glasses = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Glasses.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Glasses\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M14.075,9.531c0,0-2.705-1.438-5.158-1.438c-2.453,0-4.862,0.593-4.862,0.593L3.971,9.869c0,0,0.19,0.19,0.528,0.53c0.338,0.336,0.486,3.741,1.838,5.094c1.353,1.354,4.82,1.396,5.963,0.676c1.14-0.718,2.241-3.466,2.241-4.693c0-0.38,0-0.676,0-0.676c0.274-0.275,1.615-0.303,1.917,0c0,0,0,0.296,0,0.676c0,1.227,1.101,3.975,2.241,4.693c1.144,0.72,4.611,0.678,5.963-0.676c1.355-1.353,1.501-4.757,1.839-5.094c0.338-0.34,0.528-0.53,0.528-0.53l-0.084-1.183c0,0-2.408-0.593-4.862-0.593c-2.453,0-5.158,1.438-5.158,1.438C16.319,9.292,14.737,9.32,14.075,9.531z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Globe.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Globe.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Globe();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Globe = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Globe.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Globe\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM19.158,23.269c-0.079,0.064-0.183,0.13-0.105,0.207c0.078,0.078-0.09,0.131-0.09,0.17s0.104,0.246,0.052,0.336c-0.052,0.092-0.091,0.223-0.13,0.301c-0.039,0.077-0.131,0.155-0.104,0.272c0.025,0.116-0.104,0.077-0.104,0.194c0,0.116,0.116,0.065,0.09,0.208c-0.025,0.144-0.09,0.183-0.09,0.285c0,0.104,0.064,0.247,0.064,0.286s-0.064,0.17-0.155,0.272c-0.092,0.104-0.155,0.17-0.144,0.233c0.014,0.065,0.104,0.144,0.091,0.184c-0.013,0.037-0.129,0.168-0.116,0.259c0.014,0.09,0.129,0.053,0.155,0.116c0.026,0.065-0.155,0.118-0.078,0.183c0.078,0.064,0.183,0.051,0.156,0.208c-0.019,0.112,0.064,0.163,0.126,0.198c-0.891,0.221-1.818,0.352-2.777,0.352C9.639,27.533,4.466,22.36,4.466,16c0-2.073,0.557-4.015,1.518-5.697c0.079-0.042,0.137-0.069,0.171-0.062c0.065,0.013,0.079,0.104,0.183,0.13c0.104,0.026,0.195-0.078,0.26-0.117c0.064-0.039,0.116-0.195,0.051-0.182c-0.065,0.013-0.234,0-0.234,0s0.183-0.104,0.183-0.169s0.025-0.169,0.129-0.208C6.83,9.655,6.83,9.681,6.765,9.837C6.7,9.993,6.896,9.928,6.973,9.863s0.13-0.013,0.272-0.104c0.143-0.091,0.143-0.143,0.221-0.143c0.078,0,0.221,0.143,0.299,0.091c0.077-0.052,0.299,0.065,0.429,0.065c0.129,0,0.545,0.169,0.624,0.169c0.078,0,0.312,0.09,0.325,0.259c0.013,0.169,0.09,0.156,0.168,0.156s0.26,0.065,0.26,0.13c0,0.065-0.052,0.325,0.078,0.39c0.129,0.064,0.247,0.169,0.299,0.143c0.052-0.026,0-0.233-0.064-0.26c-0.065-0.026-0.027-0.117-0.052-0.169c-0.026-0.051,0.078-0.051,0.117,0.039c0.039,0.091,0.143,0.26,0.208,0.26c0.064,0,0.208,0.156,0.168,0.247c-0.039,0.091,0.039,0.221,0.156,0.221c0.116,0,0.26,0.182,0.312,0.195c0.052,0.013,0.117,0.078,0.117,0.117c0,0.04,0.065,0.26,0.065,0.351c0,0.09-0.04,0.454-0.053,0.597s0.104,0.39,0.234,0.52c0.129,0.13,0.246,0.377,0.324,0.429c0.079,0.052,0.13,0.195,0.247,0.182c0.117-0.013,0.195,0.078,0.299,0.26c0.104,0.182,0.208,0.48,0.286,0.506c0.078,0.026,0.208,0.117,0.142,0.182c-0.064,0.064-0.168,0.208-0.051,0.208c0.117,0,0.156-0.065,0.247,0.053c0.09,0.116,0.208,0.181,0.194,0.26c-0.013,0.077,0.104,0.103,0.156,0.116c0.052,0.013,0.169,0.247,0.286,0.143c0.117-0.104-0.155-0.259-0.234-0.326c-0.078-0.064,0-0.207-0.182-0.35c-0.182-0.143-0.156-0.247-0.286-0.351c-0.13-0.104-0.233-0.195-0.104-0.286c0.13-0.091,0.143,0.091,0.195,0.208c0.052,0.116,0.324,0.351,0.441,0.454c0.117,0.104,0.326,0.468,0.39,0.468s0.247,0.208,0.247,0.208s0.103,0.168,0.064,0.22c-0.039,0.052,0.053,0.247,0.144,0.299c0.09,0.052,0.455,0.22,0.507,0.247c0.052,0.027,0.155,0.221,0.299,0.221c0.142,0,0.247,0.014,0.286,0.053c0.039,0.038,0.155,0.194,0.234,0.104c0.078-0.092,0.09-0.131,0.208-0.131c0.117,0,0.168,0.091,0.233,0.156c0.065,0.065,0.247,0.235,0.338,0.222c0.091-0.013,0.208,0.104,0.273,0.064s0.169,0.025,0.22,0.052c0.054,0.026,0.234,0.118,0.222,0.272c-0.013,0.157,0.103,0.195,0.182,0.234c0.078,0.039,0.182,0.13,0.248,0.195c0.064,0.063,0.206,0.077,0.246,0.116c0.039,0.039,0.065,0.117,0.182,0.052c0.116-0.064,0.092-0.181,0.092-0.181s0.129-0.026,0.194,0.026c0.064,0.05,0.104,0.22,0.144,0.246c0.038,0.026,0.115,0.221,0.063,0.362c-0.051,0.145-0.038,0.286-0.091,0.286c-0.052,0-0.116,0.17-0.195,0.209c-0.076,0.039-0.285,0.221-0.272,0.286c0.013,0.063,0.131,0.258,0.104,0.35c-0.025,0.091-0.194,0.195-0.154,0.338c0.038,0.144,0.312,0.183,0.323,0.312c0.014,0.131,0.209,0.417,0.235,0.546c0.025,0.13,0.246,0.272,0.246,0.453c0,0.184,0.312,0.3,0.377,0.312c0.063,0.013,0.182,0.131,0.272,0.17s0.169,0.116,0.233,0.221s0.053,0.261,0.053,0.299c0,0.039-0.039,0.44-0.078,0.674C19.145,23.021,19.235,23.203,19.158,23.269zM10.766,11.188c0.039,0.013,0.117,0.091,0.156,0.091c0.04,0,0.234,0.156,0.286,0.208c0.053,0.052,0.053,0.195-0.013,0.208s-0.104-0.143-0.117-0.208c-0.013-0.065-0.143-0.065-0.208-0.104C10.805,11.344,10.66,11.152,10.766,11.188zM27.51,16.41c-0.144,0.182-0.13,0.272-0.195,0.286c-0.064,0.013,0.065,0.065,0.09,0.194c0.022,0.112-0.065,0.224,0.063,0.327c-0.486,4.619-3.71,8.434-8.016,9.787c-0.007-0.011-0.019-0.025-0.021-0.034c-0.027-0.078-0.027-0.233,0.064-0.285c0.091-0.053,0.312-0.233,0.363-0.272c0.052-0.04,0.13-0.221,0.091-0.247c-0.038-0.026-0.232,0-0.26-0.039c-0.026-0.039-0.026-0.092,0.104-0.182c0.13-0.091,0.195-0.222,0.247-0.26c0.052-0.039,0.155-0.117,0.195-0.209c0.038-0.09-0.041-0.039-0.118-0.039s-0.117-0.142-0.117-0.207s0.195,0.026,0.339,0.052c0.143,0.024,0.077-0.065,0.064-0.142c-0.013-0.078,0.026-0.209,0.105-0.17c0.076,0.039,0.479-0.013,0.531-0.026c0.052-0.013,0.194-0.246,0.246-0.312c0.053-0.065,0.064-0.129,0-0.168c-0.065-0.04-0.143-0.184-0.168-0.221c-0.026-0.041-0.039-0.274-0.013-0.34c0.025-0.063,0,0.377,0.181,0.43c0.183,0.052,0.286,0.078,0.455-0.078c0.169-0.155,0.298-0.26,0.312-0.363c0.013-0.104,0.052-0.209,0.117-0.246c0.065-0.039,0.104,0.103,0.182-0.065c0.078-0.17,0.156-0.157,0.234-0.299c0.077-0.144-0.13-0.325,0.024-0.43c0.157-0.103,0.43-0.233,0.43-0.233s0.078-0.039,0.234-0.078c0.155-0.038,0.324-0.014,0.376-0.09c0.052-0.079,0.104-0.247,0.182-0.338c0.079-0.092,0.169-0.234,0.13-0.299c-0.039-0.065,0.104-0.352,0.091-0.429c-0.013-0.078-0.13-0.261,0.065-0.416s0.402-0.391,0.416-0.454c0.012-0.065,0.169-0.338,0.154-0.469c-0.012-0.129-0.154-0.285-0.245-0.325c-0.092-0.037-0.286-0.05-0.364-0.154s-0.299-0.208-0.377-0.182c-0.077,0.026-0.208,0.051-0.312-0.015c-0.104-0.063-0.272-0.143-0.337-0.194c-0.066-0.051-0.234-0.09-0.312-0.09s-0.065-0.053-0.182,0.103c-0.117,0.157,0,0.209-0.208,0.182c-0.209-0.024,0.025-0.038,0.144-0.194c0.115-0.155-0.014-0.247-0.144-0.207c-0.13,0.039-0.039,0.117-0.247,0.156c-0.207,0.038-0.207-0.092-0.077-0.117c0.13-0.026,0.363-0.143,0.363-0.194c0-0.053-0.026-0.196-0.13-0.196s-0.078-0.129-0.233-0.297c-0.156-0.17-0.351-0.274-0.508-0.249c-0.154,0.026-0.272,0.065-0.35-0.076c-0.078-0.144-0.169-0.17-0.222-0.247c-0.051-0.078-0.182,0-0.221-0.039s-0.039-0.039-0.039-0.039s-0.169,0.039-0.077-0.078c0.09-0.117,0.129-0.338,0.09-0.325c-0.038,0.013-0.104,0.196-0.168,0.183c-0.064-0.013-0.014-0.04-0.144-0.117c-0.13-0.078-0.337-0.013-0.337,0.052c0,0.065-0.065,0.117-0.065,0.117s-0.039-0.038-0.078-0.117c-0.039-0.078-0.221-0.091-0.312-0.013c-0.09,0.078-0.142-0.196-0.207-0.196s-0.194,0.065-0.26,0.184c-0.064,0.116-0.038,0.285-0.092,0.272c-0.05-0.013-0.063-0.233-0.05-0.312c0.012-0.079,0.155-0.208,0.05-0.234c-0.103-0.026-0.259,0.13-0.323,0.143c-0.065,0.013-0.195,0.104-0.273,0.209c-0.077,0.103-0.116,0.168-0.195,0.207c-0.077,0.039-0.193,0-0.167-0.039c0.025-0.039-0.222-0.181-0.261-0.13c-0.04,0.052-0.155,0.091-0.272,0.144c-0.117,0.052-0.222-0.065-0.247-0.117s-0.079-0.064-0.091-0.234c-0.013-0.168,0.027-0.351,0.065-0.454c0.038-0.104-0.195-0.312-0.286-0.3c-0.091,0.015-0.182,0.105-0.272,0.091c-0.092-0.012-0.052-0.038-0.195-0.038c-0.143,0-0.026-0.025,0-0.143c0.025-0.116-0.052-0.273,0.092-0.377c0.142-0.104,0.091-0.351,0-0.363c-0.092-0.014-0.261,0.039-0.377,0.026c-0.116-0.014-0.208,0.091-0.169,0.207c0.039,0.117-0.065,0.195-0.104,0.183c-0.039-0.013-0.09-0.078-0.234,0.026c-0.142,0.103-0.194,0.064-0.337-0.052c-0.143-0.118-0.299-0.234-0.325-0.416c-0.026-0.182-0.04-0.364,0.013-0.468c0.051-0.104,0.051-0.285-0.026-0.312c-0.078-0.025,0.09-0.155,0.181-0.181c0.092-0.026,0.234-0.143,0.26-0.195c0.026-0.052,0.156-0.04,0.298-0.04c0.143,0,0.169,0,0.312,0.078c0.143,0.078,0.169-0.039,0.169-0.078c0-0.039,0.052-0.117,0.208-0.104c0.156,0.013,0.376-0.052,0.416-0.013s0.116,0.195,0.194,0.143c0.079-0.051,0.104-0.143,0.131,0.014c0.025,0.155,0.09,0.39,0.208,0.429c0.116,0.039,0.052,0.194,0.168,0.207c0.115,0.013,0.17-0.246,0.131-0.337c-0.04-0.09-0.118-0.363-0.183-0.428c-0.064-0.065-0.064-0.234,0.064-0.286c0.13-0.052,0.442-0.312,0.532-0.389c0.092-0.079,0.338-0.144,0.261-0.248c-0.078-0.104-0.104-0.168-0.104-0.247s0.078-0.052,0.117,0s0.194-0.078,0.155-0.143c-0.038-0.064-0.026-0.155,0.065-0.143c0.091,0.013,0.116-0.065,0.078-0.117c-0.039-0.052,0.091-0.117,0.182-0.091c0.092,0.026,0.325-0.013,0.364-0.065c0.038-0.052-0.078-0.104-0.078-0.208c0-0.104,0.155-0.195,0.247-0.208c0.091-0.013,0.207,0,0.221-0.039c0.012-0.039,0.143-0.143,0.155-0.052c0.014,0.091,0,0.247,0.104,0.247c0.104,0,0.232-0.117,0.272-0.129c0.038-0.013,0.286-0.065,0.338-0.078c0.052-0.013,0.363-0.039,0.325-0.13c-0.039-0.09-0.078-0.181-0.118-0.22c-0.039-0.039-0.077,0.013-0.13,0.078c-0.051,0.065-0.143,0.065-0.168,0.013c-0.026-0.051,0.012-0.207-0.078-0.156c-0.092,0.052-0.104,0.104-0.157,0.078c-0.052-0.026-0.103-0.117-0.103-0.117s0.129-0.064,0.038-0.182c-0.09-0.117-0.221-0.091-0.35-0.025c-0.13,0.064-0.118,0.051-0.273,0.09s-0.234,0.078-0.234,0.078s0.209-0.129,0.299-0.208c0.091-0.078,0.209-0.117,0.286-0.195c0.078-0.078,0.285,0.039,0.285,0.039s0.105-0.104,0.105-0.039s-0.027,0.234,0.051,0.234c0.079,0,0.299-0.104,0.21-0.131c-0.093-0.026,0.129,0,0.219-0.065c0.092-0.065,0.194-0.065,0.247-0.09c0.052-0.026,0.092-0.143,0.182-0.143c0.092,0,0.13,0.117,0,0.195s-0.143,0.273-0.208,0.325c-0.064,0.052-0.026,0.117,0.078,0.104c0.104-0.013,0.194,0.013,0.286-0.013s0.143,0.026,0.168,0.065c0.026,0.039,0.104-0.039,0.104-0.039s0.169-0.039,0.221,0.026c0.053,0.064,0.092-0.039,0.053-0.104c-0.039-0.064-0.092-0.129-0.13-0.208c-0.039-0.078-0.091-0.104-0.194-0.078c-0.104,0.026-0.13-0.026-0.195-0.064c-0.065-0.04-0.118,0.052-0.065-0.04c0.053-0.09,0.078-0.117,0.117-0.195c0.039-0.078,0.209-0.221,0.039-0.259c-0.169-0.04-0.222-0.065-0.247-0.143c-0.026-0.078-0.221-0.221-0.272-0.221c-0.053,0-0.233,0-0.247-0.065c-0.013-0.065-0.143-0.208-0.208-0.273c-0.064-0.065-0.312-0.351-0.351-0.377c-0.039-0.026-0.091-0.013-0.208,0.143c-0.116,0.157-0.22,0.183-0.312,0.144c-0.091-0.039-0.104-0.026-0.193-0.13c-0.093-0.104,0.09-0.117,0.051-0.182c-0.04-0.064-0.247-0.091-0.377-0.104c-0.13-0.013-0.221-0.156-0.416-0.169c-0.194-0.013-0.428,0.026-0.493,0.026c-0.064,0-0.064,0.091-0.09,0.234c-0.027,0.143,0.09,0.182-0.027,0.208c-0.116,0.026-0.169,0.039-0.052,0.091c0.117,0.052,0.273,0.26,0.273,0.26s0,0.117-0.092,0.182c-0.09,0.065-0.182,0.13-0.233,0.053c-0.053-0.079-0.195-0.065-0.155,0.013c0.038,0.078,0.116,0.117,0.116,0.195c0,0.077,0.117,0.272,0.039,0.337c-0.078,0.065-0.168,0.014-0.233,0.026s-0.131-0.104-0.078-0.13c0.051-0.026-0.014-0.221-0.014-0.221s-0.155,0.221-0.143,0.104c0.014-0.117-0.064-0.13-0.064-0.221c0-0.091-0.079-0.13-0.194-0.104c-0.118,0.026-0.26-0.04-0.482-0.079c-0.22-0.039-0.311-0.064-0.493-0.156c-0.182-0.091-0.247-0.026-0.338-0.013c-0.091,0.013-0.052-0.182-0.169-0.207c-0.116-0.027-0.181,0.025-0.207-0.144c-0.026-0.168,0.039-0.208,0.324-0.39c0.286-0.182,0.247-0.26,0.468-0.286c0.22-0.026,0.325,0.026,0.325-0.039s0.052-0.325,0.052-0.195S16.95,9.109,16.832,9.2c-0.116,0.091-0.052,0.104,0.04,0.104c0.091,0,0.259-0.091,0.259-0.091s0.208-0.091,0.26-0.013c0.053,0.078,0.053,0.156,0.144,0.156s0.285-0.104,0.116-0.195c-0.168-0.091-0.272-0.078-0.376-0.182s-0.078-0.065-0.195-0.039c-0.116,0.026-0.116-0.039-0.156-0.039s-0.104,0.026-0.13-0.026c-0.025-0.052,0.014-0.065,0.145-0.065c0.129,0,0.285,0.039,0.285,0.039s0.155-0.052,0.194-0.065c0.039-0.013,0.247-0.039,0.208-0.155c-0.04-0.117-0.169-0.117-0.208-0.156s0.078-0.09,0.143-0.117c0.065-0.026,0.247,0,0.247,0s0.117,0.013,0.117-0.039S17.897,8.2,17.976,8.239s0,0.156,0.117,0.13c0.116-0.026,0.143,0,0.207,0.039c0.065,0.039-0.013,0.195-0.077,0.221c-0.065,0.025-0.169,0.077-0.026,0.09c0.144,0.014,0.246,0.014,0.246,0.014s0.092-0.091,0.131-0.169c0.038-0.078,0.104-0.026,0.155,0c0.052,0.025,0.247,0.065,0.065,0.117c-0.183,0.052-0.221,0.117-0.26,0.182c-0.038,0.065-0.053,0.104-0.221,0.065c-0.17-0.039-0.26-0.026-0.299,0.039c-0.039,0.064-0.013,0.273,0.053,0.247c0.063-0.026,0.129-0.026,0.207-0.052c0.078-0.026,0.39,0.026,0.467,0.013c0.078-0.013,0.209,0.13,0.248,0.104c0.039-0.026,0.117,0.052,0.194,0.104c0.078,0.052,0.052-0.117,0.194-0.013c0.144,0.104,0.065,0.104,0.144,0.104c0.076,0,0.246,0.013,0.246,0.013s0.014-0.129,0.144-0.104c0.13,0.026,0.245,0.169,0.232,0.064c-0.012-0.103,0.013-0.181-0.09-0.259c-0.104-0.078-0.272-0.13-0.299-0.169c-0.026-0.039-0.052-0.091-0.013-0.117c0.039-0.025,0.221,0.013,0.324,0.079c0.104,0.065,0.195,0.13,0.273,0.078c0.077-0.052,0.17-0.078,0.208-0.117c0.038-0.04,0.13-0.156,0.13-0.156s-0.391-0.051-0.441-0.117c-0.053-0.065-0.235-0.156-0.287-0.156s-0.194,0.091-0.246-0.039s-0.052-0.286-0.105-0.299c-0.05-0.013-0.597-0.091-0.674-0.13c-0.078-0.039-0.39-0.13-0.507-0.195s-0.286-0.156-0.389-0.156c-0.104,0-0.533,0.052-0.611,0.039c-0.078-0.013-0.312,0.026-0.403,0.039c-0.091,0.013,0.117,0.182-0.077,0.221c-0.195,0.039-0.169,0.065-0.13-0.13c0.038-0.195-0.131-0.247-0.299-0.169c-0.169,0.078-0.442,0.13-0.377,0.221c0.065,0.091-0.012,0.157,0.117,0.247c0.13,0.091,0.183,0.117,0.35,0.104c0.17-0.013,0.339,0.025,0.339,0.025s0,0.157-0.064,0.182c-0.065,0.026-0.169,0.026-0.196,0.104c-0.025,0.078-0.155,0.117-0.155,0.078s0.065-0.169-0.026-0.234c-0.09-0.065-0.117-0.078-0.221-0.013c-0.104,0.065-0.116,0.091-0.169-0.013C16.053,8.291,15.897,8.2,15.897,8.2s-0.104-0.129-0.182-0.194c-0.077-0.065-0.22-0.052-0.234,0.013c-0.013,0.064,0.026,0.129,0.078,0.247c0.052,0.117,0.104,0.337,0.013,0.351c-0.091,0.013-0.104,0.026-0.195,0.052c-0.091,0.026-0.13-0.039-0.13-0.143s-0.04-0.195-0.013-0.234c0.026-0.039-0.104,0.027-0.234,0c-0.13-0.025-0.233,0.052-0.104,0.092c0.13,0.039,0.157,0.194,0.039,0.233c-0.117,0.039-0.559,0-0.702,0s-0.35,0.039-0.39-0.039c-0.039-0.078,0.118-0.129,0.208-0.129c0.091,0,0.363,0.012,0.467-0.13c0.104-0.143-0.13-0.169-0.233-0.169c-0.104,0-0.183-0.039-0.299-0.155c-0.118-0.117,0.078-0.195,0.052-0.247c-0.026-0.052-0.156-0.014-0.272-0.014c-0.117,0-0.299-0.09-0.299,0.014c0,0.104,0.143,0.402,0.052,0.337c-0.091-0.064-0.078-0.156-0.143-0.234c-0.065-0.078-0.168-0.065-0.299-0.052c-0.129,0.013-0.35,0.052-0.415,0.039c-0.064-0.013-0.013-0.013-0.156-0.078c-0.142-0.065-0.208-0.052-0.312-0.117C12.091,7.576,12.182,7.551,12,7.538c-0.181-0.013-0.168,0.09-0.35,0.065c-0.182-0.026-0.234,0.013-0.416,0c-0.182-0.013-0.272-0.026-0.299,0.065c-0.025,0.091-0.078,0.247-0.156,0.247c-0.077,0-0.169,0.091,0.078,0.104c0.247,0.013,0.105,0.129,0.325,0.117c0.221-0.013,0.416-0.013,0.468-0.117c0.052-0.104,0.091-0.104,0.117-0.065c0.025,0.039,0.22,0.272,0.22,0.272s0.131,0.104,0.183,0.13c0.051,0.026-0.052,0.143-0.156,0.078c-0.104-0.065-0.299-0.051-0.377-0.116c-0.078-0.065-0.429-0.065-0.52-0.052c-0.09,0.013-0.247-0.039-0.299-0.039c-0.051,0-0.221,0.13-0.221,0.13S10.532,8.252,10.494,8.2c-0.039-0.052-0.104,0.052-0.156,0.065c-0.052,0.013-0.208-0.104-0.364-0.052C9.818,8.265,9.87,8.317,9.649,8.304s-0.272-0.052-0.35-0.039C9.22,8.278,9.22,8.278,9.22,8.278S9.233,8.33,9.143,8.382C9.052,8.434,8.986,8.499,8.921,8.421C8.857,8.343,8.818,8.343,8.779,8.33c-0.04-0.013-0.118-0.078-0.286-0.04C8.324,8.33,8.064,8.239,8.013,8.239c-0.04,0-0.313-0.015-0.491-0.033c2.109-2.292,5.124-3.74,8.478-3.74c2.128,0,4.117,0.589,5.83,1.598c-0.117,0.072-0.319,0.06-0.388,0.023c-0.078-0.043-0.158-0.078-0.475-0.061c-0.317,0.018-0.665,0.122-0.595,0.226c0.072,0.104-0.142,0.165-0.197,0.113c-0.055-0.052-0.309,0.06-0.293,0.165c0.016,0.104-0.039,0.225-0.175,0.199c-0.134-0.027-0.229,0.06-0.237,0.146c-0.007,0.087-0.309,0.147-0.332,0.147c-0.024,0-0.412-0.008-0.27,0.095c0.097,0.069,0.15,0.027,0.27,0.052c0.119,0.026,0.214,0.217,0.277,0.243c0.062,0.026,0.15,0,0.189-0.052c0.04-0.052,0.095-0.234,0.095-0.234s0,0.173,0.097,0.208c0.095,0.035,0.331-0.026,0.395-0.017c0.064,0.008,0.437,0.061,0.538,0.112c0.104,0.052,0.356,0.087,0.428,0.199c0.071,0.113,0.08,0.503,0.119,0.546c0.04,0.043,0.174-0.139,0.205-0.182c0.031-0.044,0.198-0.018,0.254,0.042c0.056,0.061,0.182,0.208,0.175,0.269C21.9,8.365,21.877,8.459,21.83,8.425c-0.048-0.034-0.127-0.025-0.096-0.095c0.032-0.069,0.048-0.217-0.015-0.217c-0.064,0-0.119,0-0.119,0s-0.12-0.035-0.199,0.095s-0.015,0.26,0.04,0.26s0.184,0,0.184,0.034c0,0.035-0.136,0.139-0.128,0.2c0.009,0.061,0.11,0.268,0.144,0.312c0.031,0.043,0.197,0.086,0.244,0.096c0.049,0.008-0.111,0.017-0.07,0.077c0.04,0.061,0.102,0.208,0.189,0.243c0.087,0.035,0.333,0.19,0.363,0.26c0.032,0.069,0.222-0.052,0.262-0.061c0.04-0.008,0.032,0.182,0.143,0.191c0.11,0.008,0.15-0.018,0.245-0.096s0.072-0.182,0.079-0.26c0.009-0.078,0-0.138,0.104-0.113c0.104,0.026,0.158-0.018,0.15-0.104c-0.008-0.087-0.095-0.191,0.07-0.217c0.167-0.026,0.254-0.138,0.357-0.138c0.103,0,0.389,0.043,0.419,0c0.032-0.043,0.167-0.243,0.254-0.251c0.067-0.007,0.224-0.021,0.385-0.042c1.582,1.885,2.561,4.284,2.673,6.905c-0.118,0.159-0.012,0.305,0.021,0.408c0.001,0.03,0.005,0.058,0.005,0.088c0,0.136-0.016,0.269-0.021,0.404C27.512,16.406,27.512,16.408,27.51,16.41zM17.794,12.084c-0.064,0.013-0.169-0.052-0.169-0.143s-0.091,0.169-0.04,0.247c0.053,0.078-0.104,0.169-0.155,0.169s-0.091-0.116-0.078-0.233c0.014-0.117-0.077-0.221-0.221-0.208c-0.143,0.014-0.208,0.13-0.259,0.169c-0.053,0.039-0.053,0.259-0.04,0.312s0.013,0.235-0.116,0.221c-0.118-0.013-0.092-0.233-0.079-0.312c0.014-0.078-0.039-0.273,0.014-0.376c0.053-0.104,0.207-0.143,0.312-0.156s0.324,0.065,0.363,0.052c0.04-0.014,0.222-0.014,0.312,0C17.729,11.837,17.858,12.071,17.794,12.084zM18.027,12.123c0.04,0.026,0.311-0.039,0.364,0.026c0.051,0.065-0.054,0.078-0.183,0.13c-0.129,0.052-0.169,0.039-0.221,0.104s-0.221,0.09-0.299,0.168c-0.078,0.079-0.217,0.125-0.246,0.065c-0.04-0.078,0.013-0.039,0.025-0.078c0.013-0.039,0.245-0.129,0.245-0.129S17.988,12.097,18.027,12.123zM16.988,11.668c-0.038,0.013-0.182-0.026-0.3-0.026c-0.116,0-0.091-0.078-0.143-0.064c-0.051,0.013-0.168,0.039-0.247,0.078c-0.078,0.039-0.208,0.03-0.208-0.04c0-0.104,0.052-0.078,0.221-0.143c0.169-0.065,0.352-0.247,0.429-0.169c0.078,0.078,0.221,0.169,0.312,0.182C17.144,11.5,17.026,11.655,16.988,11.668zM15.659,7.637c-0.079,0.026-0.347,0.139-0.321,0.199c0.01,0.023,0.078,0.069,0.19,0.052c0.113-0.018,0.276-0.035,0.355-0.043c0.078-0.009,0.095-0.139,0.009-0.147C15.805,7.689,15.736,7.611,15.659,7.637zM14.698,7.741c-0.061,0.026-0.243-0.043-0.338,0.018c-0.061,0.038-0.026,0.164,0.07,0.172c0.095,0.009,0.259-0.06,0.276-0.008c0.018,0.052,0.078,0.286,0.234,0.208c0.156-0.078,0.147-0.147,0.19-0.156c0.043-0.009-0.008-0.199-0.078-0.243C14.983,7.689,14.758,7.715,14.698,7.741zM14.385,7.005c0.017,0.044-0.008,0.078,0.113,0.095c0.121,0.018,0.173,0.035,0.243,0.035c0.069,0,0.042-0.113-0.018-0.19c-0.061-0.078-0.043-0.069-0.199-0.113c-0.156-0.043-0.312-0.043-0.416-0.035c-0.104,0.009-0.217-0.017-0.243,0.104c-0.013,0.062,0.07,0.112,0.174,0.112S14.368,6.962,14.385,7.005zM14.611,7.481c0.043,0.095,0.043,0.051,0.165,0.061C14.896,7.551,14.991,7.421,15,7.378c0.009-0.044-0.061-0.13-0.225-0.113c-0.165,0.017-0.667-0.026-0.736,0.034c-0.066,0.058,0,0.233-0.026,0.251c-0.026,0.017,0.009,0.095,0.077,0.078c0.069-0.017,0.104-0.182,0.157-0.182C14.299,7.447,14.568,7.386,14.611,7.481zM12.982,7.126c0.052,0.043,0.183,0.008,0.173-0.035c-0.008-0.043,0.053-0.217-0.051-0.225C13,6.858,12.854,6.962,12.697,7.014c-0.101,0.033-0.078,0.13-0.009,0.13S12.931,7.083,12.982,7.126zM13.72,7.282c-0.087,0.043-0.114,0.069-0.191,0.052c-0.078-0.017-0.078-0.156-0.217-0.13c-0.138,0.026-0.164,0.104-0.207,0.139s-0.139,0.061-0.173,0.043c-0.034-0.017-0.234-0.129-0.234-0.129s-0.416-0.018-0.433-0.07c-0.017-0.052-0.086-0.138-0.277-0.121s-0.52,0.13-0.572,0.13c-0.052,0,0.062,0.104-0.009,0.104c-0.069,0-0.155-0.008-0.181,0.069c-0.018,0.053,0.078,0.052,0.189,0.052c0.112,0,0.295,0,0.347-0.026c0.052-0.026,0.312-0.087,0.303-0.009c-0.009,0.079,0.104,0.199,0.164,0.182c0.061-0.017,0.183-0.13,0.243-0.086c0.061,0.043,0.07,0.146,0.13,0.173c0.061,0.025,0.226,0.025,0.304,0c0.077-0.027,0.294-0.027,0.389-0.009c0.095,0.018,0.373,0.069,0.399,0.018c0.026-0.053,0.104-0.061,0.112-0.113s0.051-0.216,0.051-0.216S13.806,7.239,13.72,7.282zM18.105,16.239c-0.119,0.021-0.091,0.252,0.052,0.21C18.3,16.407,18.223,16.217,18.105,16.239zM19.235,15.929c-0.104-0.026-0.221,0-0.299,0.013c-0.078,0.013-0.299,0.208-0.299,0.208s0.143,0.026,0.233,0.026c0.092,0,0.144,0.051,0.221,0.09c0.078,0.04,0.221-0.052,0.272-0.052c0.053,0,0.118,0.156,0.131-0.013C19.508,16.032,19.339,15.955,19.235,15.929zM15.616,7.507c-0.043-0.104-0.259-0.139-0.304-0.035C15.274,7.563,15.659,7.611,15.616,7.507zM18.093,15.292c0.143-0.026,0.064-0.144-0.053-0.13C17.922,15.175,17.949,15.318,18.093,15.292zM19.82,16.095c-0.119,0.022-0.092,0.253,0.051,0.211C20.015,16.264,19.937,16.074,19.82,16.095zM18.247,15.708c-0.09,0.013-0.285-0.09-0.389-0.182c-0.104-0.091-0.299-0.091-0.377-0.091c-0.077,0-0.39,0.091-0.39,0.091c-0.013,0.13,0.117,0.091,0.273,0.091s0.429-0.026,0.479,0.039c0.053,0.064,0.286,0.168,0.352,0.221c0.064,0.052,0.272,0.065,0.285,0.013S18.338,15.695,18.247,15.708zM16.698,7.412c-0.13-0.009-0.295-0.009-0.399,0c-0.104,0.008-0.182-0.069-0.26-0.113c-0.077-0.043-0.251-0.182-0.354-0.199c-0.104-0.017-0.086-0.017-0.303-0.069c-0.11-0.027-0.294-0.061-0.294-0.086c0-0.026-0.052,0.121,0.043,0.165c0.095,0.043,0.251,0.121,0.363,0.164c0.114,0.043,0.329,0.052,0.399,0.139c0.069,0.086,0.303,0.156,0.303,0.156l0.277,0.026c0,0,0.191-0.043,0.39-0.026c0.199,0.017,0.493,0.043,0.659,0.035c0.163-0.008,0.189-0.061,0.208-0.095c0.016-0.035-0.304-0.104-0.383-0.095C17.271,7.42,16.827,7.42,16.698,7.412zM17.182,9.404c-0.034,0.039,0.157,0.095,0.191,0.043C17.407,9.396,17.271,9.309,17.182,9.404zM17.764,9.585c0.086-0.035,0.043-0.139-0.079-0.104C17.547,9.521,17.676,9.62,17.764,9.585z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/GlobeAlt.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/GlobeAlt.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.GlobeAlt();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.GlobeAlt = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.GlobeAlt.prototype */\n{\n\n NAME: \"draw2d.shape.icon.GlobeAlt\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM27.436,17.39c0.001,0.002,0.004,0.002,0.005,0.004c-0.022,0.187-0.054,0.37-0.085,0.554c-0.015-0.012-0.034-0.025-0.047-0.036c-0.103-0.09-0.254-0.128-0.318-0.115c-0.157,0.032,0.229,0.305,0.267,0.342c0.009,0.009,0.031,0.03,0.062,0.058c-1.029,5.312-5.709,9.338-11.319,9.338c-4.123,0-7.736-2.18-9.776-5.441c0.123-0.016,0.24-0.016,0.28-0.076c0.051-0.077,0.102-0.241,0.178-0.331c0.077-0.089,0.165-0.229,0.127-0.292c-0.039-0.064,0.101-0.344,0.088-0.419c-0.013-0.076-0.127-0.256,0.064-0.407s0.394-0.382,0.407-0.444c0.012-0.063,0.166-0.331,0.152-0.458c-0.012-0.127-0.152-0.28-0.24-0.318c-0.09-0.037-0.28-0.05-0.356-0.151c-0.077-0.103-0.292-0.203-0.368-0.178c-0.076,0.025-0.204,0.05-0.305-0.015c-0.102-0.062-0.267-0.139-0.33-0.189c-0.065-0.05-0.229-0.088-0.305-0.088c-0.077,0-0.065-0.052-0.178,0.101c-0.114,0.153,0,0.204-0.204,0.177c-0.204-0.023,0.025-0.036,0.141-0.189c0.113-0.152-0.013-0.242-0.141-0.203c-0.126,0.038-0.038,0.115-0.241,0.153c-0.203,0.036-0.203-0.09-0.076-0.115s0.355-0.139,0.355-0.19c0-0.051-0.025-0.191-0.127-0.191s-0.077-0.126-0.229-0.291c-0.092-0.101-0.196-0.164-0.299-0.204c-0.09-0.579-0.15-1.167-0.15-1.771c0-2.844,1.039-5.446,2.751-7.458c0.024-0.02,0.048-0.034,0.069-0.036c0.084-0.009,0.31-0.025,0.51-0.059c0.202-0.034,0.418-0.161,0.489-0.153c0.069,0.008,0.241,0.008,0.186-0.042C8.417,8.2,8.339,8.082,8.223,8.082S8.215,7.896,8.246,7.896c0.03,0,0.186,0.025,0.178,0.11C8.417,8.091,8.471,8.2,8.625,8.167c0.156-0.034,0.132-0.162,0.102-0.195C8.695,7.938,8.672,7.853,8.642,7.794c-0.031-0.06-0.023-0.136,0.14-0.153C8.944,7.625,9.168,7.708,9.16,7.573s0-0.28,0.046-0.356C9.253,7.142,9.354,7.09,9.299,7.065C9.246,7.04,9.176,7.099,9.121,6.972c-0.054-0.127,0.047-0.22,0.108-0.271c0.02-0.015,0.067-0.06,0.124-0.112C11.234,5.257,13.524,4.466,16,4.466c3.213,0,6.122,1.323,8.214,3.45c-0.008,0.022-0.01,0.052-0.031,0.056c-0.077,0.013-0.166,0.063-0.179-0.051c-0.013-0.114-0.013-0.331-0.102-0.203c-0.089,0.127-0.127,0.127-0.127,0.191c0,0.063,0.076,0.127,0.051,0.241C23.8,8.264,23.8,8.341,23.84,8.341c0.036,0,0.126-0.115,0.239-0.141c0.116-0.025,0.319-0.088,0.332,0.026c0.013,0.115,0.139,0.152,0.013,0.203c-0.128,0.051-0.267,0.026-0.293-0.051c-0.025-0.077-0.114-0.077-0.203-0.013c-0.088,0.063-0.279,0.292-0.279,0.292s-0.306,0.139-0.343,0.114c-0.04-0.025,0.101-0.165,0.203-0.228c0.102-0.064,0.178-0.204,0.14-0.242c-0.038-0.038-0.088-0.279-0.063-0.343c0.025-0.063,0.139-0.152,0.013-0.216c-0.127-0.063-0.217-0.14-0.318-0.178s-0.216,0.152-0.305,0.204c-0.089,0.051-0.076,0.114-0.191,0.127c-0.114,0.013-0.189,0.165,0,0.254c0.191,0.089,0.255,0.152,0.204,0.204c-0.051,0.051-0.267-0.025-0.267-0.025s-0.165-0.076-0.268-0.076c-0.101,0-0.229-0.063-0.33-0.076c-0.102-0.013-0.306-0.013-0.355,0.038c-0.051,0.051-0.179,0.203-0.28,0.152c-0.101-0.051-0.101-0.102-0.241-0.051c-0.14,0.051-0.279-0.038-0.355,0.038c-0.077,0.076-0.013,0.076-0.255,0c-0.241-0.076-0.189,0.051-0.419,0.089s-0.368-0.038-0.432,0.038c-0.064,0.077-0.153,0.217-0.19,0.127c-0.038-0.088,0.126-0.241,0.062-0.292c-0.062-0.051-0.33-0.025-0.367,0.013c-0.039,0.038-0.014,0.178,0.011,0.229c0.026,0.05,0.064,0.254-0.011,0.216c-0.077-0.038-0.064-0.166-0.141-0.152c-0.076,0.013-0.165,0.051-0.203,0.077c-0.038,0.025-0.191,0.025-0.229,0.076c-0.037,0.051,0.014,0.191-0.051,0.203c-0.063,0.013-0.114,0.064-0.254-0.025c-0.14-0.089-0.14-0.038-0.178-0.012c-0.038,0.025-0.216,0.127-0.229,0.012c-0.013-0.114,0.025-0.152-0.089-0.229c-0.115-0.076-0.026-0.076,0.127-0.025c0.152,0.05,0.343,0.075,0.622-0.013c0.28-0.089,0.395-0.127,0.28-0.178c-0.115-0.05-0.229-0.101-0.406-0.127c-0.179-0.025-0.42-0.025-0.7-0.127c-0.279-0.102-0.343-0.14-0.457-0.165c-0.115-0.026-0.813-0.14-1.132-0.089c-0.317,0.051-1.193,0.28-1.245,0.318s-0.128,0.19-0.292,0.318c-0.165,0.127-0.47,0.419-0.712,0.47c-0.241,0.051-0.521,0.254-0.521,0.305c0,0.051,0.101,0.242,0.076,0.28c-0.025,0.038,0.05,0.229,0.191,0.28c0.139,0.05,0.381,0.038,0.393-0.039c0.014-0.076,0.204-0.241,0.217-0.127c0.013,0.115,0.14,0.292,0.114,0.368c-0.025,0.077,0,0.153,0.09,0.14c0.088-0.012,0.559-0.114,0.559-0.114s0.153-0.064,0.127-0.166c-0.026-0.101,0.166-0.241,0.203-0.279c0.038-0.038,0.178-0.191,0.014-0.241c-0.167-0.051-0.293-0.064-0.115-0.216s0.292,0,0.521-0.229c0.229-0.229-0.051-0.292,0.191-0.305c0.241-0.013,0.496-0.025,0.444,0.051c-0.05,0.076-0.342,0.242-0.508,0.318c-0.166,0.077-0.14,0.216-0.076,0.292c0.063,0.076,0.09,0.254,0.204,0.229c0.113-0.025,0.254-0.114,0.38-0.101c0.128,0.012,0.383-0.013,0.42-0.013c0.039,0,0.216,0.178,0.114,0.203c-0.101,0.025-0.229,0.013-0.445,0.025c-0.215,0.013-0.456,0.013-0.456,0.051c0,0.039,0.292,0.127,0.19,0.191c-0.102,0.063-0.203-0.013-0.331-0.026c-0.127-0.012-0.203,0.166-0.241,0.267c-0.039,0.102,0.063,0.28-0.127,0.216c-0.191-0.063-0.331-0.063-0.381-0.038c-0.051,0.025-0.203,0.076-0.331,0.114c-0.126,0.038-0.076-0.063-0.242-0.063c-0.164,0-0.164,0-0.164,0l-0.103,0.013c0,0-0.101-0.063-0.114-0.165c-0.013-0.102,0.05-0.216-0.013-0.241c-0.064-0.026-0.292,0.012-0.33,0.088c-0.038,0.076-0.077,0.216-0.026,0.28c0.052,0.063,0.204,0.19,0.064,0.152c-0.14-0.038-0.317-0.051-0.419,0.026c-0.101,0.076-0.279,0.241-0.279,0.241s-0.318,0.025-0.318,0.102c0,0.077,0,0.178-0.114,0.191c-0.115,0.013-0.268,0.05-0.42,0.076c-0.153,0.025-0.139,0.088-0.317,0.102s-0.204,0.089-0.038,0.114c0.165,0.025,0.418,0.127,0.431,0.241c0.014,0.114-0.013,0.242-0.076,0.356c-0.043,0.079-0.305,0.026-0.458,0.026c-0.152,0-0.456-0.051-0.584,0c-0.127,0.051-0.102,0.305-0.064,0.419c0.039,0.114-0.012,0.178-0.063,0.216c-0.051,0.038-0.065,0.152,0,0.204c0.063,0.051,0.114,0.165,0.166,0.178c0.051,0.013,0.215-0.038,0.279,0.025c0.064,0.064,0.127,0.216,0.165,0.178c0.039-0.038,0.089-0.203,0.153-0.166c0.064,0.039,0.216-0.012,0.331-0.025s0.177-0.14,0.292-0.204c0.114-0.063,0.05-0.063,0.013-0.14c-0.038-0.076,0.114-0.165,0.204-0.254c0.088-0.089,0.253-0.013,0.292-0.115c0.038-0.102,0.051-0.279,0.151-0.267c0.103,0.013,0.243,0.076,0.331,0.076c0.089,0,0.279-0.14,0.332-0.165c0.05-0.025,0.241-0.013,0.267,0.102c0.025,0.114,0.241,0.254,0.292,0.279c0.051,0.025,0.381,0.127,0.433,0.165c0.05,0.038,0.126,0.153,0.152,0.254c0.025,0.102,0.114,0.102,0.128,0.013c0.012-0.089-0.065-0.254,0.025-0.242c0.088,0.013,0.191-0.026,0.191-0.026s-0.243-0.165-0.331-0.203c-0.088-0.038-0.255-0.114-0.331-0.241c-0.076-0.127-0.267-0.153-0.254-0.279c0.013-0.127,0.191-0.051,0.292,0.051c0.102,0.102,0.356,0.241,0.445,0.33c0.088,0.089,0.229,0.127,0.267,0.242c0.039,0.114,0.152,0.241,0.19,0.292c0.038,0.051,0.165,0.331,0.204,0.394c0.038,0.063,0.165-0.012,0.229-0.063c0.063-0.051,0.179-0.076,0.191-0.178c0.013-0.102-0.153-0.178-0.203-0.216c-0.051-0.038,0.127-0.076,0.191-0.127c0.063-0.05,0.177-0.14,0.228-0.063c0.051,0.077,0.026,0.381,0.051,0.432c0.025,0.051,0.279,0.127,0.331,0.191c0.05,0.063,0.267,0.089,0.304,0.051c0.039-0.038,0.242,0.026,0.294,0.038c0.049,0.013,0.202-0.025,0.304-0.05c0.103-0.025,0.204-0.102,0.191,0.063c-0.013,0.165-0.051,0.419-0.179,0.546c-0.127,0.127-0.076,0.191-0.202,0.191c-0.06,0-0.113,0-0.156,0.021c-0.041-0.065-0.098-0.117-0.175-0.097c-0.152,0.038-0.344,0.038-0.47,0.19c-0.128,0.153-0.178,0.165-0.204,0.114c-0.025-0.051,0.369-0.267,0.317-0.331c-0.05-0.063-0.355-0.038-0.521-0.038c-0.166,0-0.305-0.102-0.433-0.127c-0.126-0.025-0.292,0.127-0.418,0.254c-0.128,0.127-0.216,0.038-0.331,0.038c-0.115,0-0.331-0.165-0.331-0.165s-0.216-0.089-0.305-0.089c-0.088,0-0.267-0.165-0.318-0.165c-0.05,0-0.19-0.115-0.088-0.166c0.101-0.05,0.202,0.051,0.101-0.229c-0.101-0.279-0.33-0.216-0.419-0.178c-0.088,0.039-0.724,0.025-0.775,0.025c-0.051,0-0.419,0.127-0.533,0.178c-0.116,0.051-0.318,0.115-0.369,0.14c-0.051,0.025-0.318-0.051-0.433,0.013c-0.151,0.084-0.291,0.216-0.33,0.216c-0.038,0-0.153,0.089-0.229,0.28c-0.077,0.19,0.013,0.355-0.128,0.419c-0.139,0.063-0.394,0.204-0.495,0.305c-0.102,0.101-0.229,0.458-0.355,0.623c-0.127,0.165,0,0.317,0.025,0.419c0.025,0.101,0.114,0.292-0.025,0.471c-0.14,0.178-0.127,0.266-0.191,0.279c-0.063,0.013,0.063,0.063,0.088,0.19c0.025,0.128-0.114,0.255,0.128,0.369c0.241,0.113,0.355,0.217,0.418,0.367c0.064,0.153,0.382,0.407,0.382,0.407s0.229,0.205,0.344,0.293c0.114,0.089,0.152,0.038,0.177-0.05c0.025-0.09,0.178-0.104,0.355-0.104c0.178,0,0.305,0.04,0.483,0.014c0.178-0.025,0.356-0.141,0.42-0.166c0.063-0.025,0.279-0.164,0.443-0.063c0.166,0.103,0.141,0.241,0.23,0.332c0.088,0.088,0.24,0.037,0.355-0.051c0.114-0.09,0.064-0.052,0.203,0.025c0.14,0.075,0.204,0.151,0.077,0.267c-0.128,0.113-0.051,0.293-0.128,0.47c-0.076,0.178-0.063,0.203,0.077,0.278c0.14,0.076,0.394,0.548,0.47,0.638c0.077,0.088-0.025,0.342,0.064,0.495c0.089,0.151,0.178,0.254,0.077,0.331c-0.103,0.075-0.28,0.216-0.292,0.47s0.051,0.431,0.102,0.521s0.177,0.331,0.241,0.419c0.064,0.089,0.14,0.305,0.152,0.445c0.013,0.14-0.024,0.306,0.039,0.381c0.064,0.076,0.102,0.191,0.216,0.292c0.115,0.103,0.152,0.318,0.152,0.318s0.039,0.089,0.051,0.229c0.012,0.14,0.025,0.228,0.152,0.292c0.126,0.063,0.215,0.076,0.28,0.013c0.063-0.063,0.381-0.077,0.546-0.063c0.165,0.013,0.355-0.075,0.521-0.19s0.407-0.419,0.496-0.508c0.089-0.09,0.292-0.255,0.268-0.356c-0.025-0.101-0.077-0.203,0.024-0.254c0.102-0.052,0.344-0.152,0.356-0.229c0.013-0.077-0.09-0.395-0.115-0.457c-0.024-0.064,0.064-0.18,0.165-0.306c0.103-0.128,0.421-0.216,0.471-0.267c0.051-0.053,0.191-0.267,0.217-0.433c0.024-0.167-0.051-0.369,0-0.457c0.05-0.09,0.013-0.165-0.103-0.268c-0.114-0.102-0.089-0.407-0.127-0.457c-0.037-0.051-0.013-0.319,0.063-0.345c0.076-0.023,0.242-0.279,0.344-0.393c0.102-0.114,0.394-0.47,0.534-0.496c0.139-0.025,0.355-0.229,0.368-0.343c0.013-0.115,0.38-0.547,0.394-0.635c0.013-0.09,0.166-0.42,0.102-0.497c-0.062-0.076-0.559,0.115-0.622,0.141c-0.064,0.025-0.241,0.127-0.446,0.113c-0.202-0.013-0.114-0.177-0.127-0.254c-0.012-0.076-0.228-0.368-0.279-0.381c-0.051-0.012-0.203-0.166-0.267-0.317c-0.063-0.153-0.152-0.343-0.254-0.458c-0.102-0.114-0.165-0.38-0.268-0.559c-0.101-0.178-0.189-0.407-0.279-0.572c-0.021-0.041-0.045-0.079-0.067-0.117c0.118-0.029,0.289-0.082,0.31-0.009c0.024,0.088,0.165,0.279,0.19,0.419s0.165,0.089,0.178,0.216c0.014,0.128,0.14,0.433,0.19,0.47c0.052,0.038,0.28,0.242,0.318,0.318c0.038,0.076,0.089,0.178,0.127,0.369c0.038,0.19,0.076,0.444,0.179,0.482c0.102,0.038,0.444-0.064,0.508-0.102s0.482-0.242,0.635-0.255c0.153-0.012,0.179-0.115,0.368-0.152c0.191-0.038,0.331-0.177,0.458-0.28c0.127-0.101,0.28-0.355,0.33-0.444c0.052-0.088,0.179-0.152,0.115-0.253c-0.063-0.103-0.331-0.254-0.433-0.268c-0.102-0.012-0.089-0.178-0.152-0.178s-0.051,0.088-0.178,0.153c-0.127,0.063-0.255,0.19-0.344,0.165s0.026-0.089-0.113-0.203s-0.192-0.14-0.192-0.228c0-0.089-0.278-0.255-0.304-0.382c-0.026-0.127,0.19-0.305,0.254-0.19c0.063,0.114,0.115,0.292,0.279,0.368c0.165,0.076,0.318,0.204,0.395,0.229c0.076,0.025,0.267-0.14,0.33-0.114c0.063,0.024,0.191,0.253,0.306,0.292c0.113,0.038,0.495,0.051,0.559,0.051s0.33,0.013,0.381-0.063c0.051-0.076,0.089-0.076,0.153-0.076c0.062,0,0.177,0.229,0.267,0.254c0.089,0.025,0.254,0.013,0.241,0.179c-0.012,0.164,0.076,0.305,0.165,0.317c0.09,0.012,0.293-0.191,0.293-0.191s0,0.318-0.012,0.433c-0.014,0.113,0.139,0.534,0.139,0.534s0.19,0.393,0.241,0.482s0.267,0.355,0.267,0.47c0,0.115,0.025,0.293,0.103,0.293c0.076,0,0.152-0.203,0.24-0.331c0.091-0.126,0.116-0.305,0.153-0.432c0.038-0.127,0.038-0.356,0.038-0.444c0-0.09,0.075-0.166,0.255-0.242c0.178-0.076,0.304-0.292,0.456-0.407c0.153-0.115,0.141-0.305,0.446-0.305c0.305,0,0.278,0,0.355-0.077c0.076-0.076,0.151-0.127,0.19,0.013c0.038,0.14,0.254,0.343,0.292,0.394c0.038,0.052,0.114,0.191,0.103,0.344c-0.013,0.152,0.012,0.33,0.075,0.33s0.191-0.216,0.191-0.216s0.279-0.189,0.267,0.013c-0.014,0.203,0.025,0.419,0.025,0.545c0,0.053,0.042,0.135,0.088,0.21c-0.005,0.059-0.004,0.119-0.009,0.178C27.388,17.153,27.387,17.327,27.436,17.39zM20.382,12.064c0.076,0.05,0.102,0.127,0.152,0.203c0.052,0.076,0.14,0.05,0.203,0.114c0.063,0.064-0.178,0.14-0.075,0.216c0.101,0.077,0.151,0.381,0.165,0.458c0.013,0.076-0.279,0.114-0.369,0.102c-0.089-0.013-0.354-0.102-0.445-0.127c-0.089-0.026-0.139-0.343-0.025-0.331c0.116,0.013,0.141-0.025,0.267-0.139c0.128-0.115-0.189-0.166-0.278-0.191c-0.089-0.025-0.268-0.305-0.331-0.394c-0.062-0.089-0.014-0.228,0.141-0.331c0.076-0.051,0.279,0.063,0.381,0c0.101-0.063,0.203-0.14,0.241-0.165c0.039-0.025,0.293,0.038,0.33,0.114c0.039,0.076,0.191,0.191,0.141,0.229c-0.052,0.038-0.281,0.076-0.356,0c-0.075-0.077-0.255,0.012-0.268,0.152C20.242,12.115,20.307,12.013,20.382,12.064zM16.875,12.28c-0.077-0.025,0.025-0.178,0.102-0.229c0.075-0.051,0.164-0.178,0.241-0.305c0.076-0.127,0.178-0.14,0.241-0.127c0.063,0.013,0.203,0.241,0.241,0.318c0.038,0.076,0.165-0.026,0.217-0.051c0.05-0.025,0.127-0.102,0.14-0.165s0.127-0.102,0.254-0.102s0.013,0.102-0.076,0.127c-0.09,0.025-0.038,0.077,0.113,0.127c0.153,0.051,0.293,0.191,0.459,0.279c0.165,0.089,0.19,0.267,0.088,0.292c-0.101,0.025-0.406,0.051-0.521,0.038c-0.114-0.013-0.254-0.127-0.419-0.153c-0.165-0.025-0.369-0.013-0.433,0.077s-0.292,0.05-0.395,0.05c-0.102,0-0.228,0.127-0.253,0.077C16.875,12.534,16.951,12.306,16.875,12.28zM17.307,9.458c0.063-0.178,0.419,0.038,0.355,0.127C17.599,9.675,17.264,9.579,17.307,9.458zM17.802,18.584c0.063,0.102-0.14,0.431-0.254,0.407c-0.113-0.027-0.076-0.318-0.038-0.382C17.548,18.545,17.769,18.529,17.802,18.584zM13.189,12.674c0.025-0.051-0.039-0.153-0.127-0.013C13.032,12.71,13.164,12.725,13.189,12.674zM20.813,8.035c0.141,0.076,0.339,0.107,0.433,0.013c0.076-0.076,0.013-0.204-0.05-0.216c-0.064-0.013-0.104-0.115,0.062-0.203c0.165-0.089,0.343-0.204,0.534-0.229c0.19-0.025,0.622-0.038,0.774,0c0.152,0.039,0.382-0.166,0.445-0.254s-0.203-0.152-0.279-0.051c-0.077,0.102-0.444,0.076-0.521,0.051c-0.076-0.025-0.686,0.102-0.812,0.102c-0.128,0-0.179,0.152-0.356,0.229c-0.179,0.076-0.42,0.191-0.509,0.229c-0.088,0.038-0.177,0.19-0.101,0.216C20.509,7.947,20.674,7.959,20.813,8.035zM14.142,12.674c0.064-0.089-0.051-0.217-0.114-0.217c-0.12,0-0.178,0.191-0.103,0.254C14.002,12.776,14.078,12.763,14.142,12.674zM14.714,13.017c0.064,0.025,0.114,0.102,0.165,0.114c0.052,0.013,0.217,0,0.167-0.127s-0.167-0.127-0.204-0.127c-0.038,0-0.203-0.038-0.267,0C14.528,12.905,14.65,12.992,14.714,13.017zM11.308,10.958c0.101,0.013,0.217-0.063,0.305-0.101c0.088-0.038,0.216-0.114,0.216-0.229c0-0.114-0.025-0.216-0.077-0.267c-0.051-0.051-0.14-0.064-0.216-0.051c-0.115,0.02-0.127,0.14-0.203,0.14c-0.076,0-0.165,0.025-0.14,0.114s0.077,0.152,0,0.19C11.117,10.793,11.205,10.946,11.308,10.958zM11.931,10.412c0.127,0.051,0.394,0.102,0.292,0.153c-0.102,0.051-0.28,0.19-0.305,0.267s0.216,0.153,0.216,0.153s-0.077,0.089-0.013,0.114c0.063,0.025,0.102-0.089,0.203-0.089c0.101,0,0.304,0.063,0.406,0.063c0.103,0,0.267-0.14,0.254-0.229c-0.013-0.089-0.14-0.229-0.254-0.28c-0.113-0.051-0.241-0.28-0.317-0.331c-0.076-0.051,0.076-0.178-0.013-0.267c-0.09-0.089-0.153-0.076-0.255-0.14c-0.102-0.063-0.191,0.013-0.254,0.089c-0.063,0.076-0.14-0.013-0.217,0.012c-0.102,0.035-0.063,0.166-0.012,0.229C11.714,10.221,11.804,10.361,11.931,10.412zM24.729,17.198c-0.083,0.037-0.153,0.47,0,0.521c0.152,0.052,0.241-0.202,0.191-0.267C24.868,17.39,24.843,17.147,24.729,17.198zM20.114,20.464c-0.159-0.045-0.177,0.166-0.304,0.306c-0.128,0.141-0.267,0.254-0.317,0.241c-0.052-0.013-0.331,0.089-0.242,0.279c0.089,0.191,0.076,0.382-0.013,0.472c-0.089,0.088,0.076,0.342,0.052,0.482c-0.026,0.139,0.037,0.229,0.215,0.229s0.242-0.064,0.318-0.229c0.076-0.166,0.088-0.331,0.164-0.47c0.077-0.141,0.141-0.434,0.179-0.51c0.038-0.075,0.114-0.316,0.102-0.457C20.254,20.669,20.204,20.489,20.114,20.464zM10.391,8.802c-0.069-0.06-0.229-0.102-0.306-0.11c-0.076-0.008-0.152,0.06-0.321,0.06c-0.168,0-0.279,0.067-0.347,0C9.349,8.684,9.068,8.65,9.042,8.692C9.008,8.749,8.941,8.751,9.008,8.87c0.069,0.118,0.12,0.186,0.179,0.178s0.262-0.017,0.288,0.051C9.5,9.167,9.569,9.226,9.712,9.184c0.145-0.042,0.263-0.068,0.296-0.119c0.033-0.051,0.263-0.059,0.263-0.059S10.458,8.861,10.391,8.802z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/GlobeAlt2.js\":\n/*!*************************************!*\\\n !*** ./src/shape/icon/GlobeAlt2.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.GlobeAlt2();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.GlobeAlt2 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.GlobeAlt2.prototype */\n{\n\n NAME: \"draw2d.shape.icon.GlobeAlt2\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM8.251,7.48c0.122,0.055,0.255,0.104,0.28,0.137C8.57,7.668,8.621,7.823,8.557,7.861C8.492,7.9,8.39,7.887,8.376,7.771c-0.013-0.115-0.026-0.128-0.18-0.18c-0.022-0.007-0.035-0.01-0.051-0.015C8.18,7.544,8.216,7.512,8.251,7.48zM7.733,7.974c0.031,0.087,0.113,0.125,0,0.17C7.673,8.168,7.611,8.172,7.559,8.165C7.617,8.102,7.672,8.035,7.733,7.974zM16,27.533C9.639,27.533,4.466,22.36,4.466,16c0-0.085,0.011-0.168,0.013-0.254c0.004-0.003,0.008-0.006,0.012-0.009c0.129-0.102,0.283-0.359,0.334-0.45c0.052-0.089,0.181-0.154,0.116-0.256c-0.059-0.096-0.292-0.23-0.407-0.261c0.01-0.099,0.032-0.195,0.045-0.294c0.063,0.077,0.137,0.17,0.208,0.194c0.115,0.038,0.501,0.052,0.566,0.052c0.063,0,0.334,0.014,0.386-0.064c0.051-0.077,0.09-0.077,0.154-0.077c0.064,0,0.18,0.231,0.271,0.257c0.089,0.026,0.257,0.013,0.244,0.181c-0.012,0.166,0.077,0.309,0.167,0.321c0.09,0.013,0.296-0.194,0.296-0.194s0,0.322-0.012,0.438C6.846,15.698,7,16.124,7,16.124s0.193,0.397,0.244,0.488c0.052,0.09,0.27,0.36,0.27,0.476c0,0.117,0.026,0.297,0.104,0.297s0.155-0.206,0.244-0.335c0.091-0.128,0.117-0.31,0.155-0.438c0.039-0.129,0.039-0.36,0.039-0.45c0-0.091,0.076-0.168,0.257-0.245c0.181-0.077,0.309-0.296,0.463-0.412c0.155-0.116,0.142-0.309,0.452-0.309c0.308,0,0.282,0,0.36-0.078c0.077-0.077,0.154-0.128,0.192,0.013c0.039,0.142,0.257,0.347,0.296,0.399c0.039,0.052,0.116,0.193,0.104,0.348c-0.013,0.153,0.012,0.334,0.077,0.334c0.064,0,0.193-0.219,0.193-0.219s0.283-0.192,0.27,0.014c-0.014,0.205,0.025,0.425,0.025,0.552c0,0.13,0.232,0.438,0.232,0.362c0-0.079,0.103-0.296,0.103-0.413c0-0.114,0.064-0.063,0.231,0.051c0.167,0.116,0.283,0.349,0.283,0.349s0.168,0.154,0.193,0.219c0.026,0.064,0.206-0.025,0.244-0.104c0.039-0.076,0.065-0.115,0.167-0.141c0.104-0.026,0.231-0.026,0.271-0.168c0.039-0.142,0.154-0.308,0-0.502c-0.154-0.193-0.232-0.321-0.347-0.412c-0.117-0.09-0.206-0.322-0.206-0.322s0.244-0.218,0.321-0.296c0.079-0.077,0.193-0.025,0.207,0.064c0.013,0.091-0.115,0.168-0.141,0.361c-0.026,0.192,0.154,0.257,0.206,0.192c0.051-0.065,0.18-0.219,0.18-0.257c0-0.039-0.089-0.026-0.102-0.167c-0.013-0.142,0.166-0.245,0.23-0.207c0.066,0.039,0.477-0.051,0.67-0.154s0.308-0.322,0.425-0.412c0.116-0.089,0.515-0.386,0.489-0.527c-0.026-0.142,0.012-0.334-0.09-0.515c-0.103-0.18-0.232-0.295-0.283-0.373c-0.051-0.077,0.219-0.09,0.347-0.206c0.129-0.116,0-0.219-0.064-0.206c-0.064,0.013-0.232,0.052-0.296,0.039c-0.064-0.013-0.103-0.077-0.206-0.155c-0.102-0.077,0.026-0.192,0.091-0.179c0.064,0.013,0.23-0.129,0.308-0.193c0.077-0.064,0.193-0.115,0.154-0.051c-0.038,0.064-0.128,0.296-0.026,0.309c0.104,0.013,0.348-0.193,0.388-0.18c0.038,0.013,0.102,0.18,0.064,0.257c-0.039,0.077-0.039,0.206,0.013,0.193c0.051-0.013,0.154-0.129,0.18-0.09c0.027,0.039,0.154,0.116,0.09,0.257c-0.063,0.142-0.193,0.193-0.039,0.284c0.154,0.089,0.206,0.012,0.322-0.052c0.115-0.064,0.193-0.347,0.128-0.438c-0.064-0.09-0.218-0.27-0.218-0.334c0-0.064,0.257-0.064,0.257-0.167s0.09-0.18,0.18-0.219c0.091-0.039,0.206-0.206,0.244-0.154c0.039,0.052,0.271,0.116,0.334,0.039c0.064-0.077,0.4-0.36,0.605-0.515c0.206-0.154,0.283-0.334,0.336-0.515c0.051-0.18,0.128-0.296,0.102-0.437v0c0.077,0.18,0.09,0.309,0.077,0.45c-0.013,0.142,0,0.438,0.026,0.476c0.025,0.039,0.129,0.128,0.192,0.103c0.064-0.025-0.025-0.283-0.025-0.334c0-0.052,0.09-0.129,0.142-0.142c0.052-0.013,0-0.231-0.065-0.322c-0.063-0.09-0.154-0.142-0.102-0.154c0.051-0.013,0.115-0.116,0.077-0.142c-0.039-0.025-0.014-0.116-0.103-0.09c-0.065,0.019-0.241-0.015-0.235,0.095c-0.037-0.11-0.116-0.183-0.216-0.172c-0.116,0.013-0.181,0.077-0.296,0.077s-0.025-0.18-0.077-0.18c-0.051,0-0.168,0.167-0.231,0.077c-0.064-0.09,0.18-0.206,0.373-0.27c0.192-0.064,0.514-0.438,0.644-0.451c0.128-0.013,0.45,0.026,0.733,0.013c0.283-0.013,0.373-0.129,0.463-0.064s0.283,0.142,0.399,0.129c0.116-0.014,0.064,0,0.244-0.129c0.18-0.129,0.348-0.193,0.438-0.296c0.09-0.103,0.335-0.18,0.348-0.077c0.014,0.103-0.026,0.206,0.077,0.206s0.258-0.103,0.386-0.154c0.129-0.051,0.231-0.116,0.231-0.116s-0.527,0.36-0.655,0.438c-0.129,0.077-0.438,0.129-0.567,0.283c-0.128,0.155-0.205,0.206-0.192,0.374c0.014,0.167,0.231,0.386,0.128,0.54c-0.103,0.154-0.141,0.373-0.141,0.373s0.154-0.219,0.373-0.36s0.348-0.334,0.425-0.412s0.309-0.091,0.309-0.181s0.064-0.206,0.104-0.309c0.038-0.103-0.077-0.078,0-0.206c0.076-0.129,0.064-0.232,0.45-0.232s0.257,0.026,0.566,0.013c0.309-0.013,0.424-0.167,0.72-0.245c0.296-0.077,0.527-0.128,0.618-0.089c0.09,0.038,0.232,0.012,0.141-0.078c-0.089-0.09-0.295-0.219-0.193-0.245c0.104-0.026,0.207-0.039,0.246-0.142c0.039-0.103-0.142-0.283-0.039-0.386c0.104-0.103-0.077-0.231-0.207-0.257c-0.128-0.025-0.63,0.026-0.731-0.025c-0.104-0.052-0.271-0.116-0.322-0.078c-0.052,0.039-0.168,0.245-0.168,0.245s-0.09,0.025-0.168-0.09c-0.076-0.116-0.5-0.103-0.629-0.103s-0.271,0.025-0.413,0.039c-0.141,0.013-0.219,0.052-0.322-0.039c-0.102-0.09-0.243-0.129-0.296-0.167c-0.051-0.039-0.334-0.039-0.553-0.012c-0.218,0.025-0.438,0.025-0.438,0.025s-0.104-0.039-0.257-0.129c-0.154-0.09-0.309-0.154-0.361-0.154c-0.051,0-0.449,0.064-0.539,0c-0.091-0.064-0.181-0.103-0.245-0.103s-0.115-0.103-0.038-0.103s0.437-0.103,0.437-0.103s-0.103-0.142-0.231-0.142c-0.128,0-0.359-0.064-0.424-0.064s-0.014,0.064-0.142,0.039c-0.13-0.026-0.258-0.078-0.335-0.026c-0.076,0.051-0.258,0.128-0.064,0.18c0.193,0.052,0.373,0,0.425,0.078c0.052,0.077,0,0.115,0,0.167s-0.103,0.193-0.167,0.219c-0.064,0.025-0.143-0.039-0.27,0.025c-0.129,0.064-0.451,0.013-0.49,0.052c-0.038,0.039-0.115-0.103-0.18-0.077c-0.064,0.025-0.232,0.193-0.322,0.18c-0.089-0.013-0.206-0.103-0.206-0.206s-0.038-0.232-0.077-0.258c-0.038-0.025-0.322-0.039-0.425-0.025c-0.103,0.013-0.424,0.038-0.477,0.09c-0.052,0.052-0.193,0.09-0.283,0.09s-0.167-0.09-0.36-0.116c-0.192-0.026-0.617-0.039-0.669-0.026s-0.218-0.025-0.155-0.077c0.065-0.051,0.257-0.219,0.143-0.295c-0.117-0.078-0.375-0.078-0.489-0.09c-0.117-0.013-0.232-0.039-0.413-0.013c-0.181,0.026-0.219,0.116-0.296,0.039c-0.077-0.077,0.193,0.039-0.077-0.077c-0.27-0.116-0.399-0.103-0.477-0.064c-0.077,0.039,0.013,0.025-0.192,0.103c-0.206,0.078-0.322,0.116-0.374,0.129c-0.051,0.012-0.372-0.065-0.411-0.091c-0.038-0.025-0.181,0.013-0.309,0.064S9.895,7.025,9.767,7C9.638,6.973,9.432,6.973,9.303,7.025C9.174,7.076,9.084,7.076,8.956,7.166c-0.13,0.09-0.373,0.142-0.373,0.142S8.522,7.305,8.448,7.301C10.474,5.541,13.111,4.466,16,4.466c6.361,0,11.534,5.173,11.534,11.534S22.36,27.533,16,27.533zM14.888,19.92c0,0,0.207-0.026,0.207-0.117c0-0.089-0.207-0.205-0.282-0.102c-0.078,0.102-0.219,0.205-0.207,0.296C14.625,20.138,14.888,19.92,14.888,19.92zM14.875,17.023c-0.181,0.233-0.167,0.182-0.296,0.128c-0.128-0.05-0.334,0.116-0.296,0.182c0.039,0.064,0.322-0.014,0.386,0.102c0.065,0.116,0.065,0.129,0.193,0.104c0.128-0.026,0.257-0.205,0.219-0.295C15.043,17.151,14.875,17.023,14.875,17.023zM14.837,18.245c-0.051,0-0.412,0.064-0.451,0.079c-0.039,0.013-0.27-0.025-0.27-0.025c-0.09,0.089-0.026,0.179,0.116,0.166s0.438-0.052,0.502-0.052C14.799,18.413,14.888,18.245,14.837,18.245zM14.284,14.668c-0.19,0.03-0.308,0.438-0.155,0.425C14.284,15.081,14.451,14.643,14.284,14.668zM14.734,16.959c-0.052-0.064-0.181-0.271-0.323-0.219c-0.042,0.017-0.153,0.245-0.012,0.245C14.541,16.985,14.786,17.023,14.734,16.959zM14.85,16.805c0.232-0.013,0.167-0.245-0.013-0.257C14.786,16.544,14.618,16.818,14.85,16.805zM17.591,18.928c-0.193-0.039-0.244-0.102-0.45-0.205c-0.207-0.103-0.67-0.103-0.682-0.039c-0.014,0.064,0,0-0.155-0.05c-0.153-0.054-0.271,0-0.309-0.091c-0.038-0.091-0.128-0.117-0.244-0.002c-0.097,0.097-0.142,0.104,0.078,0.143c0.218,0.039,0.283,0.039,0.192,0.141c-0.09,0.104-0.154,0.233-0.077,0.244c0.077,0.015,0.309-0.05,0.334,0c0.026,0.054-0.051,0.064,0.207,0.105c0.258,0.037,0.309,0.128,0.359,0.178c0.051,0.052,0.206,0.22,0.104,0.22c-0.104,0-0.219,0.128-0.142,0.143c0.077,0.013,0.309-0.039,0.321,0c0.014,0.037,0.143,0.283,0.271,0.271c0.129-0.013,0.206-0.244,0.27-0.31c0.065-0.064,0.322-0.104,0.349,0.012c0.026,0.116,0.104,0.233,0.257,0.311c0.154,0.076,0.335,0.154,0.348,0.089c0.013-0.064-0.077-0.309-0.181-0.346c-0.103-0.041-0.282-0.259-0.282-0.348c0-0.091-0.155-0.117-0.232-0.182C17.849,19.147,17.784,18.967,17.591,18.928zM8.042,17.023c-0.084,0.037-0.155,0.476,0,0.527c0.154,0.052,0.244-0.205,0.193-0.271C8.183,17.218,8.158,16.973,8.042,17.023zM15.429,18.117c-0.118-0.05-0.335,0.424-0.181,0.463C15.403,18.62,15.518,18.156,15.429,18.117zM15.687,13.703c0.077,0,0.18-0.051,0.18-0.193c0-0.142,0.18,0,0.27-0.013s0.141-0.103,0.18-0.206c0.005-0.013,0.008-0.021,0.009-0.027c-0.003,0.024-0.001,0.093,0.095,0.117c0.154,0.038,0.205-0.064,0.205-0.103s0.283-0.103,0.336-0.142c0.051-0.038,0.258-0.103,0.27-0.154c0.013-0.051,0-0.348,0.064-0.373c0.064-0.026,0.154-0.026,0.052-0.206c-0.104-0.181-0.104-0.348-0.232-0.271c-0.095,0.057-0.038,0.284-0.115,0.438s-0.142,0.296-0.193,0.296s-0.321,0.103-0.399,0.18c-0.076,0.077-0.45-0.064-0.501,0c-0.052,0.064-0.154,0.141-0.219,0.193c-0.065,0.051-0.245,0.013-0.207,0.167C15.518,13.562,15.609,13.703,15.687,13.703zM17.449,12.056c0.18-0.013,0.348-0.064,0.348-0.064s0.271,0.013,0.232-0.116c-0.04-0.128-0.322-0.141-0.375-0.128c-0.051,0.013-0.142-0.142-0.244-0.116c-0.096,0.023-0.128,0.155-0.128,0.193c0,0.039-0.36,0.115-0.245,0.219C17.153,12.146,17.27,12.069,17.449,12.056zM13.91,19.058c0.104,0.064,0.296-0.219,0.349-0.13c0.051,0.091-0.013,0.13,0.076,0.246c0.091,0.114,0.258,0.102,0.258,0.102s-0.013-0.309-0.155-0.387c-0.142-0.077-0.232-0.166-0.064-0.141c0.167,0.026,0.257-0.039,0.219-0.114c-0.039-0.078-0.283-0.039-0.361-0.026s-0.193-0.052-0.193-0.052c-0.077,0.024-0.063,0.089-0.09,0.219C13.923,18.902,13.807,18.992,13.91,19.058zM20.924,21.618c-0.231-0.052-0.077,0.039,0,0.154c0.077,0.116,0.232,0.176,0.258,0.05C21.193,21.759,21.155,21.67,20.924,21.618zM21.915,24.744c-0.077,0.064,0,0.091-0.219,0.22c-0.22,0.13-0.49,0.271-0.541,0.386c-0.052,0.116,0.051,0.181,0.258,0.192c0.206,0.013,0.154,0.053,0.296-0.103s0.271-0.244,0.438-0.373c0.168-0.128,0.168-0.322,0.168-0.322s-0.181-0.178-0.193-0.141C22.1,24.665,21.992,24.681,21.915,24.744zM18.504,21.618c0.014-0.116-0.219-0.116-0.334-0.207c-0.116-0.089-0.128-0.359-0.193-0.515c-0.064-0.153-0.192-0.257-0.322-0.397c-0.128-0.143-0.192-0.465-0.23-0.438c-0.039,0.025-0.154,0.399-0.064,0.515c0.09,0.116-0.039,0.348-0.103,0.503c-0.065,0.153-0.22-0.026-0.349-0.104c-0.129-0.078-0.308-0.128-0.398-0.219c-0.09-0.091,0.155-0.335,0.091-0.426c-0.065-0.09-0.412-0.013-0.45-0.013c-0.039,0-0.116-0.128-0.194-0.128c-0.077,0-0.064,0.258-0.064,0.258s-0.078-0.091-0.193-0.207c-0.117-0.115,0.012,0.077-0.103,0.193c-0.117,0.117-0.079,0.078-0.129,0.206c-0.051,0.129-0.167,0.077-0.283-0.052c-0.116-0.128-0.179-0.037-0.258,0c-0.077,0.039-0.141,0.259-0.18,0.309c-0.039,0.052-0.309,0.117-0.374,0.182c-0.064,0.062-0.09,0.27-0.09,0.322c0,0.05-0.271,0.023-0.361,0.089c-0.09,0.064-0.23,0.025-0.321,0.025c-0.09,0-0.399,0.244-0.502,0.308c-0.103,0.066-0.103,0.298-0.051,0.362c0.051,0.063,0.154,0.219,0.09,0.244c-0.064,0.026-0.104,0.206,0.051,0.359c0.154,0.155,0.103,0.194,0.115,0.271c0.014,0.077,0.078,0.104,0.181,0.232c0.102,0.128-0.181,0.231-0.219,0.31c-0.039,0.076,0.091,0.192,0.167,0.257c0.077,0.063,0.271,0.026,0.386-0.013c0.117-0.039,0.245-0.143,0.321-0.155c0.079-0.013,0.438-0.026,0.438-0.026s0.129-0.192,0.219-0.296c0.089-0.102,0.372-0.013,0.372-0.013s0.117-0.076,0.426-0.141c0.309-0.065,0.179,0.064,0.296,0.104c0.115,0.037,0.27,0.062,0.359,0.128c0.09,0.064,0,0.218-0.012,0.283c-0.014,0.064,0.219,0.038,0.23-0.026c0.014-0.064,0.077-0.128,0.207-0.205c0.128-0.078,0.025,0.114,0.076,0.231c0.052,0.116,0.129-0.157,0.129-0.026c0,0.039,0.039,0.078,0.051,0.116c0.014,0.039,0.181,0.052,0.181,0.18c0,0.13,0,0.207,0.039,0.231c0.038,0.026,0.244,0,0.335,0.155c0.089,0.154,0.154,0.013,0.205-0.052c0.052-0.064,0.231,0.026,0.283,0.078c0.052,0.05,0.193-0.104,0.387-0.155c0.192-0.051,0.167-0.039,0.219-0.115c0.051-0.078,0.09-0.283,0.205-0.438c0.115-0.153,0.271-0.424,0.271-0.631c0-0.206-0.014-0.682-0.155-0.899C18.761,21.953,18.492,21.733,18.504,21.618zM18.029,24.77c-0.065-0.013-0.207-0.062-0.207-0.062c-0.142,0.141,0.142,0.141,0.104,0.283c-0.039,0.141,0.193,0.089,0.257,0.064c0.063-0.027,0.22-0.323,0.193-0.399C18.351,24.577,18.093,24.783,18.029,24.77zM22.803,24.178c-0.052,0-0.077,0.064-0.192,0c-0.117-0.063-0.091-0.037-0.168-0.167c-0.077-0.127-0.091-0.296-0.219-0.23c-0.051,0.025,0,0.168,0.051,0.218c0.053,0.052,0.077,0.231,0.064,0.283c-0.012,0.052-0.231,0.116-0.129,0.18c0.104,0.064,0.297,0,0.271,0.078c-0.025,0.077-0.129,0.179-0.013,0.205c0.115,0.025,0.154-0.089,0.207-0.178c0.051-0.093,0.089-0.169,0.179-0.221C22.944,24.294,22.854,24.178,22.803,24.178zM22.815,21.18c0.168,0.064,0.464-0.231,0.347-0.27C23.047,20.871,22.815,21.18,22.815,21.18zM13.923,19.906c-0.029,0.115,0.193,0.167,0.206,0.039C14.141,19.816,13.949,19.803,13.923,19.906zM14.27,16.47c-0.064,0.065-0.257,0.193-0.283,0.31c-0.025,0.115,0.309-0.182,0.399-0.296c0.091-0.117,0.27-0.052,0.308-0.117c0.04-0.063,0.04-0.063,0.04-0.063s-0.142-0.025-0.257-0.063c-0.117-0.039-0.258,0.102-0.193-0.104c0.064-0.206,0.257-0.167,0.219-0.322c-0.039-0.154-0.168-0.193-0.207-0.193c-0.09,0,0.013,0.141-0.116,0.231c-0.128,0.09-0.271,0.128-0.193,0.283C14.064,16.29,14.334,16.405,14.27,16.47zM13.254,19.751c0.013-0.076-0.142-0.192-0.206-0.192c-0.065,0-0.386-0.077-0.386-0.077c-0.058,0.023-0.135,0.045-0.158,0.077c-0.007-0.011-0.022-0.024-0.049-0.039c-0.142-0.075-0.309,0-0.361-0.102c-0.05-0.104-0.127-0.104-0.179-0.039c-0.094,0.117,0.025,0.206,0.063,0.231c0.038,0.024,0.181,0.052,0.309,0.039c0.08-0.008,0.181-0.027,0.21-0.059c0.004,0.014,0.016,0.027,0.035,0.044c0.103,0.092,0.167,0.13,0.321,0.116C13.009,19.74,13.241,19.829,13.254,19.751zM12.881,18.992c0.065,0,0.193,0,0.283,0.026c0.09,0.025,0.386,0.05,0.373-0.064c-0.013-0.115-0.038-0.297,0.089-0.411c0.13-0.117,0.257-0.18,0.193-0.348c-0.063-0.167-0.193-0.271-0.103-0.349c0.09-0.076,0.192-0.102,0.192-0.166c0-0.065-0.217,0.18-0.244-0.246c-0.005-0.091-0.206,0.025-0.219,0.116c-0.012,0.091,0.142,0.167-0.103,0.167c-0.245,0-0.257,0.194-0.309,0.232c-0.052,0.039-0.103,0.051-0.207,0.076c-0.102,0.026-0.127,0.13-0.153,0.194c-0.025,0.063-0.206-0.116-0.257-0.064c-0.051,0.052-0.013,0.296,0.077,0.501C12.585,18.863,12.816,18.992,12.881,18.992zM11.979,18.928c0.065-0.077,0.038-0.192-0.063-0.18c-0.103,0.013-0.193-0.168-0.36-0.283c-0.168-0.114-0.296-0.194-0.451-0.36c-0.154-0.167-0.347-0.271-0.45-0.359c-0.104-0.091-0.257-0.13-0.322-0.116c-0.159,0.032,0.231,0.309,0.271,0.346c0.039,0.041,0.387,0.335,0.387,0.478s0.231,0.476,0.296,0.527c0.064,0.052,0.385,0.244,0.437,0.348c0.052,0.103,0.167,0.13,0.167-0.013C11.89,19.174,11.916,19.006,11.979,18.928zM11.002,17.474c0.064,0.232,0.193,0.464,0.244,0.555c0.052,0.089,0.271,0.217,0.348,0.281c0.077,0.064,0.192-0.024,0.143-0.102c-0.052-0.078-0.155-0.192-0.167-0.283c-0.013-0.091-0.078-0.233-0.181-0.387c-0.102-0.153-0.192-0.192-0.257-0.295c-0.064-0.104-0.296-0.297-0.296-0.297c-0.102,0.013-0.102,0.205-0.051,0.271C10.834,17.28,10.938,17.243,11.002,17.474z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Hail.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Hail.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Hail();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Hail = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Hail.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Hail\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.372,6.912c-0.093-3.925-3.302-7.078-7.248-7.08c-2.638,0.002-4.942,1.412-6.208,3.518c-0.595-0.327-1.28-0.518-2.01-0.518C7.627,2.834,5.773,4.639,5.69,6.898c-2.393,0.786-4.125,3.025-4.127,5.686c0,3.312,2.687,6,6,6v-0.002h15.875c3.312,0,6-2.688,6-6C29.434,9.944,27.732,7.715,25.372,6.912zM23.436,16.584H7.562c-2.209-0.006-3.997-1.793-4.001-4c-0.002-1.983,1.45-3.619,3.35-3.933c0.265-0.043,0.502-0.19,0.657-0.414C7.723,8.015,7.78,7.74,7.731,7.475C7.703,7.326,7.686,7.187,7.686,7.051c0.004-1.225,0.995-2.217,2.22-2.219c0.647,0,1.217,0.278,1.633,0.731c0.233,0.257,0.587,0.375,0.927,0.31c0.342-0.066,0.626-0.308,0.748-0.631c0.749-1.992,2.662-3.412,4.911-3.41c2.898,0.004,5.244,2.351,5.251,5.25c0,0.16-0.009,0.325-0.026,0.496c-0.05,0.518,0.305,0.984,0.814,1.079c1.859,0.345,3.273,1.966,3.271,3.923C27.43,14.791,25.645,16.578,23.436,16.584zM11.503,23.709c-0.784-0.002-1.418-0.636-1.418-1.416c0-0.785,0.634-1.416,1.418-1.418c0.78,0.002,1.413,0.633,1.416,1.418C12.917,23.073,12.284,23.707,11.503,23.709zM19.002,23.709c-0.783-0.002-1.418-0.636-1.418-1.416c0-0.785,0.635-1.416,1.418-1.418c0.779,0.002,1.414,0.633,1.414,1.418C20.417,23.073,19.784,23.707,19.002,23.709zM7.503,28.771c-0.783-0.002-1.417-0.637-1.417-1.418s0.634-1.414,1.417-1.416c0.78,0.002,1.415,0.635,1.415,1.416C8.917,28.135,8.284,28.77,7.503,28.771zM15.001,28.771c-0.782-0.002-1.417-0.637-1.417-1.418s0.634-1.414,1.417-1.416c0.78,0.002,1.413,0.635,1.415,1.416C16.415,28.135,15.784,28.77,15.001,28.771zM22.5,28.771c-0.782-0.002-1.416-0.634-1.416-1.416c0-0.785,0.634-1.418,1.416-1.42c0.781,0.002,1.414,0.635,1.418,1.42C23.915,28.138,23.282,28.77,22.5,28.771z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Hammer.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Hammer.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Hammer();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Hammer = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Hammer.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Hammer\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M7.831,29.354c0.685,0.353,1.62,1.178,2.344,0.876c0.475-0.195,0.753-1.301,1.048-1.883c2.221-4.376,4.635-9.353,6.392-13.611c0-0.19,0.101-0.337-0.049-0.595c0.983-1.6,1.65-3.358,2.724-5.138c0.34-0.566,0.686-1.351,1.163-1.577l0.881-0.368c1.12-0.288,1.938-0.278,2.719,0.473c0.396,0.383,0.578,1.015,0.961,1.395c0.259,0.26,1.246,0.899,1.613,0.8c0.285-0.077,0.52-0.364,0.72-0.728l0.696-1.286c0.195-0.366,0.306-0.718,0.215-0.999c-0.117-0.362-1.192-0.84-1.552-0.915c-0.528-0.113-1.154,0.081-1.692-0.041c-1.057-0.243-1.513-0.922-1.883-2.02c-2.608-1.533-6.119-2.53-10.207-1.244c-1.109,0.349-2.172,0.614-2.901,1.323c-0.146,0.412,0.143,0.494,0.446,0.489c-0.237,0.216-0.62,0.341-0.399,0.848c2.495-1.146,7.34-1.542,7.669,0.804c0.072,0.522-0.395,1.241-0.682,1.835c-0.905,1.874-2.011,3.394-2.813,5.091c-0.298,0.017-0.366,0.18-0.525,0.287c-2.604,3.8-5.451,8.541-7.9,12.794c-0.326,0.566-1.098,1.402-1.002,1.906C5.961,28.641,7.146,29,7.831,29.354z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/HammerAndScrewDriver.js\":\n/*!************************************************!*\\\n !*** ./src/shape/icon/HammerAndScrewDriver.js ***!\n \\************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.HammerAndScrewDriver();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.HammerAndScrewDriver = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.HammerAndScrewDriver.prototype */\n{\n\n NAME: \"draw2d.shape.icon.HammerAndScrewDriver\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.537,9.859c-0.473-0.259-1.127-0.252-1.609-0.523c-0.943-0.534-1.186-1.316-1.226-2.475c-2.059-2.215-5.138-4.176-9.424-4.114c-1.162,0.017-2.256-0.035-3.158,0.435c-0.258,0.354-0.004,0.516,0.288,0.599c-0.29,0.138-0.692,0.147-0.626,0.697c2.72-0.383,7.475,0.624,7.116,2.966c-0.08,0.521-0.735,1.076-1.179,1.563c-1.263,1.382-2.599,2.45-3.761,3.667l0.336,0.336c0.742-0.521,1.446-0.785,2.104-0.785c0.707,0,1.121,0.297,1.276,0.433c0.575-0.618,1.166-1.244,1.839-1.853c0.488-0.444,1.047-1.099,1.566-1.178l0.949-0.101c1.156,0.047,1.937,0.29,2.471,1.232c0.27,0.481,0.262,1.139,0.521,1.613c0.175,0.324,0.937,1.218,1.316,1.228c0.294,0.009,0.603-0.199,0.899-0.49l1.033-1.034c0.291-0.294,0.501-0.6,0.492-0.896C29.754,10.801,28.861,10.035,28.537,9.859zM13.021,15.353l-0.741-0.741c-3.139,2.643-6.52,5.738-9.531,8.589c-0.473,0.443-1.452,1.021-1.506,1.539c-0.083,0.781,0.95,1.465,1.506,2c0.556,0.533,1.212,1.602,1.994,1.51c0.509-0.043,1.095-1.029,1.544-1.502c2.255-2.374,4.664-4.976,6.883-7.509c-0.312-0.371-0.498-0.596-0.498-0.596C12.535,18.451,11.779,17.272,13.021,15.353zM20.64,15.643c-0.366-0.318-1.466,0.143-1.777-0.122c-0.311-0.266,0.171-1.259-0.061-1.455c-0.482-0.406-0.77-0.646-0.77-0.646s-0.862-0.829-2.812,0.928L7.44,6.569C7.045,6.173,7.203,4.746,7.203,4.746L3.517,2.646L2.623,3.541l2.1,3.686c0,0,1.428-0.158,1.824,0.237l7.792,7.793c-1.548,1.831-0.895,2.752-0.895,2.752s0.238,0.288,0.646,0.771c0.196,0.23,1.188-0.249,1.455,0.061c0.264,0.312-0.196,1.41,0.12,1.777c2.666,3.064,6.926,7.736,8.125,7.736c0.892,0,2.021-0.724,2.948-1.64c0.925-0.917,1.639-2.055,1.639-2.947C28.377,22.567,23.704,18.309,20.64,15.643z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/HangUp.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/HangUp.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.HangUp();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.HangUp = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.HangUp.prototype */\n{\n\n NAME: \"draw2d.shape.icon.HangUp\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.563,10.494c-7.35-7.349-19.265-7.348-26.612,0.001c-1.796,1.796-0.247,6.84-0.247,6.84c0.135,0.443,0.616,0.72,1.067,0.614l6.898-1.604c0.451-0.105,0.82-0.57,0.82-1.033l0.001-3.685c0-0.463,0.379-0.842,0.842-0.842h8.285c0.464,0,0.843,0.379,0.843,0.842l-0.001,3.471c0.001,0.462,0.375,0.907,0.83,0.986l7.635,1.316c0.456,0.08,0.873-0.232,0.926-0.692C29.851,16.708,30.359,12.29,28.563,10.494zM17.264,14.072h-3.501v4.39h-2.625l4.363,7.556l4.363-7.556h-2.6V14.072z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Help.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Help.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Help();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Help = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Help.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Help\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M4.834,4.834L4.833,4.833c-5.889,5.892-5.89,15.443,0.001,21.334s15.44,5.888,21.33-0.002c5.891-5.891,5.893-15.44,0.002-21.33C20.275-1.056,10.725-1.056,4.834,4.834zM25.459,5.542c0.833,0.836,1.523,1.757,2.104,2.726l-4.08,4.08c-0.418-1.062-1.053-2.06-1.912-2.918c-0.859-0.859-1.857-1.494-2.92-1.913l4.08-4.08C23.7,4.018,24.622,4.709,25.459,5.542zM10.139,20.862c-2.958-2.968-2.959-7.758-0.001-10.725c2.966-2.957,7.756-2.957,10.725,0c2.954,2.965,2.955,7.757-0.001,10.724C17.896,23.819,13.104,23.817,10.139,20.862zM5.542,25.459c-0.833-0.837-1.524-1.759-2.105-2.728l4.081-4.081c0.418,1.063,1.055,2.06,1.914,2.919c0.858,0.859,1.855,1.494,2.917,1.913l-4.081,4.081C7.299,26.982,6.379,26.292,5.542,25.459zM8.268,3.435l4.082,4.082C11.288,7.935,10.29,8.571,9.43,9.43c-0.858,0.859-1.494,1.855-1.912,2.918L3.436,8.267c0.58-0.969,1.271-1.89,2.105-2.727C6.377,4.707,7.299,4.016,8.268,3.435zM22.732,27.563l-4.082-4.082c1.062-0.418,2.061-1.053,2.919-1.912c0.859-0.859,1.495-1.857,1.913-2.92l4.082,4.082c-0.58,0.969-1.271,1.891-2.105,2.728C24.623,26.292,23.701,26.983,22.732,27.563z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/History.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/History.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.History();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.History = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.History.prototype */\n{\n\n NAME: \"draw2d.shape.icon.History\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M10.666,18.292c0.275,0.479,0.889,0.644,1.365,0.367l3.305-1.677C15.39,16.99,15.444,17,15.501,17c0.828,0,1.5-0.671,1.5-1.5l-0.5-7.876c0-0.552-0.448-1-1-1c-0.552,0-1,0.448-1,1l-0.466,7.343l-3.004,1.96C10.553,17.204,10.389,17.816,10.666,18.292zM12.062,9.545c0.479-0.276,0.642-0.888,0.366-1.366c-0.276-0.478-0.888-0.642-1.366-0.366s-0.642,0.888-0.366,1.366C10.973,9.658,11.584,9.822,12.062,9.545zM8.179,18.572c-0.478,0.277-0.642,0.889-0.365,1.367c0.275,0.479,0.889,0.641,1.365,0.365c0.479-0.275,0.643-0.888,0.367-1.367C9.27,18.461,8.658,18.297,8.179,18.572zM9.18,10.696c-0.479-0.276-1.09-0.112-1.366,0.366s-0.111,1.09,0.365,1.366c0.479,0.276,1.09,0.113,1.367-0.366C9.821,11.584,9.657,10.973,9.18,10.696zM6.624,15.5c0,0.553,0.449,1,1,1c0.552,0,1-0.447,1.001-1c-0.001-0.552-0.448-0.999-1.001-1C7.071,14.5,6.624,14.948,6.624,15.5zM14.501,23.377c0,0.553,0.448,1,1,1c0.552,0,1-0.447,1-1s-0.448-1-1-1C14.949,22.377,14.501,22.824,14.501,23.377zM10.696,21.822c-0.275,0.479-0.111,1.09,0.366,1.365c0.478,0.276,1.091,0.11,1.365-0.365c0.277-0.479,0.113-1.09-0.365-1.367C11.584,21.18,10.973,21.344,10.696,21.822zM21.822,10.696c-0.479,0.278-0.643,0.89-0.366,1.367s0.888,0.642,1.366,0.365c0.478-0.275,0.643-0.888,0.365-1.366C22.913,10.584,22.298,10.42,21.822,10.696zM21.456,18.938c-0.274,0.479-0.112,1.092,0.367,1.367c0.477,0.274,1.089,0.112,1.364-0.365c0.276-0.479,0.112-1.092-0.364-1.367C22.343,18.297,21.73,18.461,21.456,18.938zM24.378,15.5c0-0.551-0.448-1-1-1c-0.554,0.002-1.001,0.45-1.001,1c0.001,0.552,0.448,1,1.001,1C23.93,16.5,24.378,16.053,24.378,15.5zM18.573,22.822c0.274,0.477,0.888,0.643,1.366,0.365c0.478-0.275,0.642-0.89,0.365-1.365c-0.277-0.479-0.888-0.643-1.365-0.367C18.46,21.732,18.296,22.344,18.573,22.822zM18.939,9.546c0.477,0.276,1.088,0.112,1.365-0.366c0.276-0.478,0.113-1.091-0.367-1.367c-0.477-0.276-1.09-0.111-1.364,0.366C18.298,8.659,18.462,9.27,18.939,9.546zM28.703,14.364C28.074,7.072,21.654,1.67,14.364,2.295c-3.254,0.281-6.118,1.726-8.25,3.877L4.341,4.681l-1.309,7.364l7.031-2.548L8.427,8.12c1.627-1.567,3.767-2.621,6.194-2.833c5.64-0.477,10.595,3.694,11.089,9.335c0.477,5.64-3.693,10.595-9.333,11.09c-5.643,0.476-10.599-3.694-11.092-9.333c-0.102-1.204,0.019-2.373,0.31-3.478l-3.27,1.186c-0.089,0.832-0.106,1.684-0.031,2.55c0.629,7.29,7.048,12.691,14.341,12.066C23.926,28.074,29.328,21.655,28.703,14.364z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Home.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Home.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Home();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Home = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Home.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Home\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M27.812,16l-3.062-3.062V5.625h-2.625v4.688L16,4.188L4.188,16L7,15.933v11.942h17.875V16H27.812zM16,26.167h-5.833v-7H16V26.167zM21.667,23.167h-3.833v-4.042h3.833V23.167z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/IMac.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/IMac.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.IMac();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.IMac = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.IMac.prototype */\n{\n\n NAME: \"draw2d.shape.icon.IMac\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.936,2.099H2.046c-0.506,0-0.919,0.414-0.919,0.92v21.097c0,0.506,0.413,0.919,0.919,0.919h17.062v-0.003h9.828c0.506,0,0.92-0.413,0.92-0.921V3.019C29.854,2.513,29.439,2.099,28.936,2.099zM28.562,20.062c0,0.412-0.338,0.75-0.75,0.75H3.062c-0.413,0-0.75-0.338-0.75-0.75v-16c0-0.413,0.337-0.75,0.75-0.75h24.75c0.412,0,0.75,0.337,0.75,0.75V20.062zM20.518,28.4c-0.033-0.035-0.062-0.055-0.068-0.062l-0.01-0.004l-0.008-0.004c0,0-0.046-0.021-0.119-0.062c-0.108-0.056-0.283-0.144-0.445-0.237c-0.162-0.097-0.32-0.199-0.393-0.271c-0.008-0.014-0.035-0.079-0.058-0.17c-0.083-0.32-0.161-0.95-0.22-1.539h-7.5c-0.023,0.23-0.048,0.467-0.076,0.691c-0.035,0.272-0.073,0.524-0.113,0.716c-0.02,0.096-0.039,0.175-0.059,0.23c-0.009,0.025-0.018,0.05-0.024,0.062c-0.003,0.006-0.005,0.01-0.007,0.013c-0.094,0.096-0.34,0.246-0.553,0.36c-0.107,0.062-0.209,0.11-0.283,0.146c-0.074,0.037-0.119,0.062-0.119,0.062l-0.007,0.004l-0.008,0.004c-0.01,0.009-0.038,0.022-0.07,0.062c-0.031,0.037-0.067,0.103-0.067,0.185c0.002,0.002-0.004,0.037-0.006,0.088c0,0.043,0.007,0.118,0.068,0.185c0.061,0.062,0.143,0.08,0.217,0.08h9.716c0.073,0,0.153-0.021,0.215-0.08c0.062-0.063,0.068-0.142,0.068-0.185c-0.001-0.051-0.008-0.086-0.007-0.088C20.583,28.503,20.548,28.439,20.518,28.4z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Icon.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Icon.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.SetFigure\n */\n_packages2.default.shape.icon.Icon = _packages2.default.SetFigure.extend(\n/** @lends draw2d.shape.icon.Icon.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Icon\",\n\n /**\n *\n * Creates a new figure element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({\n width: 50,\n height: 50,\n color: \"#333333\",\n bgColor: null\n }, attr), setter, getter);\n this.keepAspectRatio = false;\n },\n\n /**\n * \n * propagate all attributes like color, stroke,... to the shape element\n **/\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n attributes = attributes || {};\n\n if (this.svgNodes !== null) {\n this.svgNodes.attr({ fill: this.color.rgba(), stroke: \"none\" });\n }\n\n this._super(attributes);\n },\n\n applyTransformation: function applyTransformation() {\n var trans = [];\n\n if (this.rotationAngle !== 0) {\n trans.push(\"R\" + this.rotationAngle);\n }\n\n if (this.getRotationAngle() === 90 || this.getRotationAngle() === 270) {\n var ratio = this.getHeight() / this.getWidth();\n trans.push(\"T\" + -this.offsetY + \",\" + -this.offsetX);\n trans.push(\"S\" + ratio + \",\" + 1 / ratio + \",0,0\");\n } else {\n trans.push(\"T\" + -this.offsetX + \",\" + -this.offsetY);\n }\n if (this.isResizeable() === true) {\n trans.push(\"T\" + this.getAbsoluteX() + \",\" + this.getAbsoluteY() + \"S\" + this.scaleX + \",\" + this.scaleY + \",\" + this.getAbsoluteX() + \",\" + this.getAbsoluteY());\n } else {\n trans.push(\"T\" + this.getAbsoluteX() + \",\" + this.getAbsoluteY());\n }\n\n this.svgNodes.transform(trans.join(\" \"));\n\n return this;\n },\n\n /**\n * @private\n */\n createShapeElement: function createShapeElement() {\n var shape = this._super();\n\n var bb = this.svgNodes.getBBox();\n\n this.offsetX = bb.x;\n this.offsetY = bb.y;\n\n return shape;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Icons.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Icons.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Icons();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Icons = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Icons.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Icons\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M4.083,14H14V4.083H4.083V14zM17,4.083V14h9.917V4.083H17zM17,26.917h9.917v-9.918H17V26.917zM4.083,26.917H14v-9.918H4.083V26.917z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Ie.js\":\n/*!******************************!*\\\n !*** ./src/shape/icon/Ie.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Ie();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Ie = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Ie.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Ie\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M27.998,2.266c-2.12-1.91-6.925,0.382-9.575,1.93c-0.76-0.12-1.557-0.185-2.388-0.185c-3.349,0-6.052,0.985-8.106,2.843c-2.336,2.139-3.631,4.94-3.631,8.177c0,0.028,0.001,0.056,0.001,0.084c3.287-5.15,8.342-7.79,9.682-8.487c0.212-0.099,0.338,0.155,0.141,0.253c-0.015,0.042-0.015,0,0,0c-2.254,1.35-6.434,5.259-9.146,10.886l-0.003-0.007c-1.717,3.547-3.167,8.529-0.267,10.358c2.197,1.382,6.13-0.248,9.295-2.318c0.764,0.108,1.567,0.165,2.415,0.165c5.84,0,9.937-3.223,11.399-7.924l-8.022-0.014c-0.337,1.661-1.464,2.548-3.223,2.548c-2.21,0-3.729-1.211-3.828-4.012l15.228-0.014c0.028-0.578-0.042-0.985-0.042-1.436c0-5.251-3.143-9.355-8.255-10.663c2.081-1.294,5.974-3.209,7.848-1.681c1.407,1.14,0.633,3.533,0.295,4.518c-0.056,0.254,0.24,0.296,0.296,0.057C28.814,5.573,29.026,3.194,27.998,2.266zM13.272,25.676c-2.469,1.475-5.873,2.539-7.539,1.289c-1.243-0.935-0.696-3.468,0.398-5.938c0.664,0.992,1.495,1.886,2.473,2.63C9.926,24.651,11.479,25.324,13.272,25.676zM12.714,13.046c0.042-2.435,1.787-3.49,3.617-3.49c1.928,0,3.49,1.112,3.49,3.49H12.714z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Ie9.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Ie9.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Ie9();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Ie9 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Ie9.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Ie9\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M27.751,17.887c0.054-0.434,0.081-0.876,0.081-1.324c0-1.744-0.413-3.393-1.146-4.854c1.133-2.885,1.155-5.369-0.201-6.777c-1.756-1.822-5.391-1.406-9.433,0.721c-0.069-0.001-0.138-0.003-0.206-0.003c-6.069,0-10.988,4.888-10.988,10.917c0,0.183,0.005,0.354,0.014,0.529c-2.688,4.071-3.491,7.967-1.688,9.838c1.557,1.613,4.691,1.344,8.2-0.392c1.363,0.604,2.873,0.938,4.462,0.938c4.793,0,8.867-3.049,10.369-7.299H21.26c-0.814,1.483-2.438,2.504-4.307,2.504c-2.688,0-4.867-2.104-4.867-4.688c0-0.036,0.002-0.071,0.003-0.106h15.662V17.887zM26.337,6.099c0.903,0.937,0.806,2.684-0.087,4.818c-1.27-2.083-3.221-3.71-5.546-4.576C23.244,5.217,25.324,5.047,26.337,6.099zM16.917,10.372c2.522,0,4.585,1.991,4.748,4.509h-9.496C12.333,12.363,14.396,10.372,16.917,10.372zM5.687,26.501c-1.103-1.146-0.712-3.502,0.799-6.298c0.907,2.546,2.736,4.658,5.09,5.938C8.92,27.368,6.733,27.587,5.687,26.501z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Import.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Import.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Import();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Import = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Import.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Import\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.067,2.25c-5.979,0-11.035,3.91-12.778,9.309h3.213c1.602-3.705,5.271-6.301,9.565-6.309c5.764,0.01,10.428,4.674,10.437,10.437c-0.009,5.764-4.673,10.428-10.437,10.438c-4.294-0.007-7.964-2.605-9.566-6.311H2.289c1.744,5.399,6.799,9.31,12.779,9.312c7.419-0.002,13.437-6.016,13.438-13.438C28.504,8.265,22.486,2.252,15.067,2.25zM10.918,19.813l7.15-4.126l-7.15-4.129v2.297H-0.057v3.661h10.975V19.813z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/InkScape.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/InkScape.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.InkScape();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.InkScape = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.InkScape.prototype */\n{\n\n NAME: \"draw2d.shape.icon.InkScape\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M20.402,17.626c0.84-0.772,2.468-0.381,5.979-1.853c1.716-0.72,1.572-1.265,1.566-1.928c-0.001-0.014,0-0.027,0-0.041h-0.005c-0.012-0.667-0.291-1.332-0.846-1.845L17.049,2.684c-0.566-0.522-1.304-0.782-2.042-0.782V1.898c-0.738,0-1.475,0.261-2.04,0.783l-10.05,9.276c-0.554,0.512-0.832,1.176-0.843,1.844H2.07c0,0,0.003,0.011,0.004,0.011c0,0.012-0.004,0.024-0.004,0.034h0.017c0.193,0.676,5.164,1.536,5.718,2.049c0.838,0.774-3.211,1.339-2.374,2.114c0.838,0.773,5.062,1.496,5.898,2.271c0.838,0.771-1.711,1.596-0.874,2.366c0.837,0.773,3.651-0.191,3.142,1.822c1.13,1.045,3.49,0.547,5.071-0.498c0.837-0.771-1.607-0.703-0.77-1.477c0.836-0.774,2.949-0.777,4.73-2.627C21.913,18.838,19.566,18.398,20.402,17.626zM10.973,16.868l-0.42-0.504c1.497,0.358,3.162,0.827,4.498,0.837l0.058,0.554C13.964,17.646,11.544,17.137,10.973,16.868zM18.161,8.58l-1.396-0.74L14.53,9.594l-1.067-3.192l-1.177,2.545L8.998,9.25l0.036-1.352c0-0.324,1.895-2.596,3.05-3.136l2.112-1.401c0.312-0.186,0.53-0.261,0.727-0.257c0.327,0.011,0.593,0.239,1.112,0.55l4.748,3.25c0.357,0.215,0.619,0.522,0.626,0.898l-2.813-1.254L18.161,8.58zM26.434,19.594c-0.313-0.07-1.688-0.691-2.035,0.165c0.968,0.981,2.645,2.181,3.316,1.482C28.391,20.543,27.102,19.745,26.434,19.594zM4.663,21.566c-0.315,0.074-1.842,0.115-1.719,1.021c1.351,0.451,3.438,0.792,3.684-0.113C6.873,21.566,5.33,21.414,4.663,21.566zM17.877,26.396c-0.232,0.209-1.53,0.953-0.929,1.681c1.413-0.236,3.403-0.914,3.12-1.812C19.786,25.369,18.37,25.953,17.877,26.396z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Ipad.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Ipad.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Ipad();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Ipad = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Ipad.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Ipad\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.221,1.417H6.11c-0.865,0-1.566,0.702-1.566,1.566v25.313c0,0.865,0.701,1.565,1.566,1.565h19.111c0.865,0,1.565-0.7,1.565-1.565V2.984C26.787,2.119,26.087,1.417,25.221,1.417zM15.666,29.299c-0.346,0-0.626-0.279-0.626-0.625s0.281-0.627,0.626-0.627c0.346,0,0.627,0.281,0.627,0.627S16.012,29.299,15.666,29.299zM24.376,26.855c0,0.174-0.142,0.312-0.313,0.312H7.27c-0.173,0-0.313-0.142-0.313-0.312V4.3c0-0.173,0.14-0.313,0.313-0.313h16.792c0.172,0,0.312,0.14,0.312,0.313L24.376,26.855L24.376,26.855z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Iphone.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Iphone.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Iphone();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Iphone = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Iphone.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Iphone\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M20.755,1H10.62C9.484,1,8.562,1.921,8.562,3.058v24.385c0,1.136,0.921,2.058,2.058,2.058h10.135c1.136,0,2.058-0.922,2.058-2.058V3.058C22.812,1.921,21.891,1,20.755,1zM14.659,3.264h2.057c0.101,0,0.183,0.081,0.183,0.18c0,0.1-0.082,0.18-0.183,0.18h-2.057c-0.1,0-0.181-0.081-0.181-0.18C14.478,3.344,14.559,3.264,14.659,3.264zM13.225,3.058c0.199,0,0.359,0.162,0.359,0.36c0,0.198-0.161,0.36-0.359,0.36c-0.2,0-0.36-0.161-0.36-0.36S13.025,3.058,13.225,3.058zM15.688,28.473c-0.796,0-1.44-0.646-1.44-1.438c0-0.799,0.645-1.439,1.44-1.439s1.44,0.646,1.44,1.439S16.483,28.473,15.688,28.473zM22.041,24.355c0,0.17-0.139,0.309-0.309,0.309H9.642c-0.17,0-0.308-0.139-0.308-0.309V6.042c0-0.17,0.138-0.309,0.308-0.309h12.09c0.17,0,0.309,0.138,0.309,0.309V24.355z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/JQuery.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/JQuery.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.JQuery();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.JQuery = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.JQuery.prototype */\n{\n\n NAME: \"draw2d.shape.icon.JQuery\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M10.322,23.041C4.579,18.723,2.777,11.07,5.494,4.583c-0.254,0.291-0.502,0.59-0.739,0.904c-5.177,6.887-4.008,16.505,2.613,21.482c6.62,4.979,16.184,3.432,21.362-3.455c0.237-0.314,0.454-0.635,0.663-0.959C23.915,26.963,16.064,27.357,10.322,23.041zM13.662,18.598c4.765,3.582,11.604,2.564,15.567-2.198c-3.609,2.641-9.09,2.475-13.361-0.736S9.916,7.231,11.451,3.03C7.976,8.161,8.897,15.015,13.662,18.598zM18.642,11.976c3.254,2.447,8.146,1.438,10.967-2.242c-2.604,1.921-6.341,1.955-9.157-0.164c-2.819-2.118-3.826-5.718-2.701-8.754C14.998,4.549,15.387,9.528,18.642,11.976z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Jigsaw.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Jigsaw.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Jigsaw();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Jigsaw = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Jigsaw.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Jigsaw\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M3.739,13.619c0,0,3.516-4.669,5.592-3.642c2.077,1.027-0.414,2.795,1.598,3.719c2.011,0.924,5.048-0.229,4.376-2.899c-0.672-2.67-1.866-0.776-2.798-2.208c-0.934-1.432,4.586-4.59,4.586-4.59s3.361,6.651,4.316,4.911c1.157-2.105,3.193-4.265,5.305-1.025c0,0,1.814,2.412,0.246,3.434s-2.917,0.443-3.506,1.553c-0.586,1.112,3.784,4.093,3.784,4.093s-2.987,4.81-4.926,3.548c-1.939-1.262,0.356-3.364-2.599-3.989c-1.288-0.23-3.438,0.538-3.818,2.34c-0.13,2.709,1.604,2.016,2.797,3.475c1.191,1.457-4.484,4.522-4.484,4.522s-1.584-3.923-3.811-4.657c-2.227-0.735-0.893,2.135-2.917,2.531c-2.024,0.396-4.816-2.399-3.46-4.789c1.358-2.391,3.275-0.044,3.441-1.951C7.629,16.087,3.739,13.619,3.739,13.619z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Key.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Key.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Key();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Key = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Key.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Key\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M18.386,16.009l0.009-0.006l-0.58-0.912c1.654-2.226,1.876-5.319,0.3-7.8c-2.043-3.213-6.303-4.161-9.516-2.118c-3.212,2.042-4.163,6.302-2.12,9.517c1.528,2.402,4.3,3.537,6.944,3.102l0.424,0.669l0.206,0.045l0.779-0.447l-0.305,1.377l2.483,0.552l-0.296,1.325l1.903,0.424l-0.68,3.06l1.406,0.313l-0.424,1.906l4.135,0.918l0.758-3.392L18.386,16.009z M10.996,8.944c-0.685,0.436-1.593,0.233-2.029-0.452C8.532,7.807,8.733,6.898,9.418,6.463s1.594-0.233,2.028,0.452C11.883,7.6,11.68,8.509,10.996,8.944z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Lab.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Lab.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Lab();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Lab = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Lab.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Lab\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M22.121,24.438l-3.362-7.847c-0.329-0.769-0.599-2.081-0.599-2.917s0.513-1.521,1.14-1.521s1.141-0.513,1.141-1.14s-0.685-1.14-1.521-1.14h-6.84c-0.836,0-1.52,0.513-1.52,1.14s0.513,1.14,1.14,1.14s1.14,0.685,1.14,1.521s-0.269,2.148-0.599,2.917l-3.362,7.847C8.55,25.206,8.28,26.177,8.28,26.595s0.342,1.103,0.76,1.521s1.444,0.76,2.28,0.76h8.359c0.836,0,1.862-0.342,2.28-0.76s0.76-1.103,0.76-1.521S22.45,25.206,22.121,24.438zM16.582,7.625c0,0.599,0.484,1.083,1.083,1.083s1.083-0.484,1.083-1.083s-0.484-1.084-1.083-1.084S16.582,7.026,16.582,7.625zM13.667,7.792c0.276,0,0.5-0.224,0.5-0.5s-0.224-0.5-0.5-0.5s-0.5,0.224-0.5,0.5S13.391,7.792,13.667,7.792zM15.584,5.292c0.874,0,1.583-0.709,1.583-1.583c0-0.875-0.709-1.584-1.583-1.584C14.709,2.125,14,2.834,14,3.709C14,4.583,14.709,5.292,15.584,5.292z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Lamp.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Lamp.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Lamp();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Lamp = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Lamp.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Lamp\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.5,2.833c-3.866,0-7,3.134-7,7c0,3.859,3.945,4.937,4.223,9.499h5.553c0.278-4.562,4.224-5.639,4.224-9.499C22.5,5.968,19.366,2.833,15.5,2.833zM15.5,28.166c1.894,0,2.483-1.027,2.667-1.666h-5.334C13.017,27.139,13.606,28.166,15.5,28.166zM12.75,25.498h5.5v-5.164h-5.5V25.498z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Lamp_alt.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Lamp_alt.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Lamp_alt();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Lamp_alt = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Lamp_alt.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Lamp_alt\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M12.75,25.498h5.5v-5.164h-5.5V25.498zM15.5,28.166c1.894,0,2.483-1.027,2.667-1.666h-5.334C13.017,27.139,13.606,28.166,15.5,28.166zM15.5,2.833c-3.866,0-7,3.134-7,7c0,3.859,3.945,4.937,4.223,9.499h1.271c-0.009-0.025-0.024-0.049-0.029-0.078L11.965,8.256c-0.043-0.245,0.099-0.485,0.335-0.563c0.237-0.078,0.494,0.026,0.605,0.25l0.553,1.106l0.553-1.106c0.084-0.17,0.257-0.277,0.446-0.277c0.189,0,0.362,0.107,0.446,0.277l0.553,1.106l0.553-1.106c0.084-0.17,0.257-0.277,0.448-0.277c0.189,0,0.36,0.107,0.446,0.277l0.554,1.106l0.553-1.106c0.111-0.224,0.368-0.329,0.604-0.25s0.377,0.318,0.333,0.563l-1.999,10.998c-0.005,0.029-0.02,0.053-0.029,0.078h1.356c0.278-4.562,4.224-5.639,4.224-9.499C22.5,5.968,19.366,2.833,15.5,2.833zM17.458,10.666c-0.191,0-0.364-0.107-0.446-0.275l-0.554-1.106l-0.553,1.106c-0.086,0.168-0.257,0.275-0.446,0.275c-0.191,0-0.364-0.107-0.449-0.275l-0.553-1.106l-0.553,1.106c-0.084,0.168-0.257,0.275-0.446,0.275c-0.012,0-0.025,0-0.037-0.001l1.454,8.001h1.167l1.454-8.001C17.482,10.666,17.47,10.666,17.458,10.666z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Landing.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Landing.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Landing();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Landing = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Landing.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Landing\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M23.322,19.491c0,0,1.903,0.342,0.299-1.869c-1.353-1.866-5.261-3.104-5.261-3.104l-4.213-8.229l-2.47-0.394l0.973,5.449L9.241,10.11L8.772,7.273L7.008,6.302c0,0-0.496,2.742-0.149,5.271C6.859,11.573,13.965,17.999,23.322,19.491zM3.251,23.106v1.998h24.498v-1.998H3.251zM14,17.94c0,0.414,0.336,0.75,0.75,0.75s0.75-0.336,0.75-0.75s-0.336-0.75-0.75-0.75S14,17.526,14,17.94z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Landscape1.js\":\n/*!**************************************!*\\\n !*** ./src/shape/icon/Landscape1.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Landscape1();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Landscape1 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Landscape1.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Landscape1\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M19.883,5.71H2.746c-0.163,0-0.319,0.071-0.435,0.188c-0.118,0.117-0.18,0.272-0.18,0.435v18.364c0,0.164,0.063,0.318,0.18,0.436c0.123,0.117,0.287,0.18,0.435,0.18h25.75c0.164,0,0.324-0.066,0.438-0.18c0.118-0.114,0.182-0.273,0.182-0.436V14.551c-0.002-0.102-0.01-0.188-0.021-0.271c-0.186-1.543-1.543-3.424-3.236-5.168C24.039,7.31,21.869,5.753,19.883,5.71zM26.914,12.314c-0.008-0.005-0.019-0.007-0.029-0.01c-1.092-0.293-2.33-0.355-3.199-0.355c-0.162,0-0.312,0.002-0.445,0.004c-0.037-0.604-0.129-1.604-0.356-2.625c-0.11-0.461-0.246-0.94-0.433-1.42c0.857,0.541,1.748,1.264,2.535,2.068C25.74,10.718,26.41,11.551,26.914,12.314zM3.365,6.947h16.517c0.058,0,0.12,0,0.183,0.004c0.694,0.105,1.307,1.221,1.616,2.646c0.335,1.484,0.354,2.997,0.354,3l0.007,0.656l0.651-0.051c0,0,0.398-0.027,0.99-0.025c0.809,0,1.977,0.062,2.871,0.312c0.939,0.275,1.352,0.635,1.326,1.051h0.002v9.542H3.365V6.951V6.947z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Landscape2.js\":\n/*!**************************************!*\\\n !*** ./src/shape/icon/Landscape2.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Landscape2();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Landscape2 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Landscape2.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Landscape2\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M19.883,5.71H2.746c-0.163,0-0.319,0.071-0.435,0.188c-0.118,0.117-0.18,0.272-0.18,0.435v18.364c0,0.164,0.063,0.318,0.18,0.436c0.123,0.117,0.287,0.18,0.435,0.18h25.75c0.164,0,0.324-0.066,0.438-0.18c0.118-0.114,0.182-0.273,0.182-0.436V14.551c-0.002-0.102-0.01-0.188-0.021-0.271c-0.186-1.543-1.543-3.424-3.236-5.168C24.039,7.31,21.869,5.753,19.883,5.71zM3.365,6.947h16.517c0.058,0,0.12,0,0.183,0.004c0.694,0.105,1.307,1.221,1.616,2.646c0.335,1.484,0.354,2.997,0.354,3l0.007,0.656l0.651-0.051c0,0,0.398-0.027,0.99-0.025c0.809,0,1.977,0.062,2.871,0.312c0.939,0.275,1.352,0.635,1.326,1.051h0.002v9.542H3.365V6.951V6.947z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/LineChart.js\":\n/*!*************************************!*\\\n !*** ./src/shape/icon/LineChart.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.LineChart();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.LineChart = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.LineChart.prototype */\n{\n\n NAME: \"draw2d.shape.icon.LineChart\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M3.625,25.062c-0.539-0.115-0.885-0.646-0.77-1.187l0,0L6.51,6.584l2.267,9.259l1.923-5.188l3.581,3.741l3.883-13.103l2.934,11.734l1.96-1.509l5.271,11.74c0.226,0.504,0,1.095-0.505,1.321l0,0c-0.505,0.227-1.096,0-1.322-0.504l0,0l-4.23-9.428l-2.374,1.826l-1.896-7.596l-2.783,9.393l-3.754-3.924L8.386,22.66l-1.731-7.083l-1.843,8.711c-0.101,0.472-0.515,0.794-0.979,0.794l0,0C3.765,25.083,3.695,25.076,3.625,25.062L3.625,25.062z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Link.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Link.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Link();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Link = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Link.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Link\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16.45,18.085l-2.47,2.471c0.054,1.023-0.297,2.062-1.078,2.846c-1.465,1.459-3.837,1.459-5.302-0.002c-1.461-1.465-1.46-3.836-0.001-5.301c0.783-0.781,1.824-1.131,2.847-1.078l2.469-2.469c-2.463-1.057-5.425-0.586-7.438,1.426c-2.634,2.637-2.636,6.907,0,9.545c2.638,2.637,6.909,2.635,9.545,0l0.001,0.002C17.033,23.511,17.506,20.548,16.45,18.085zM14.552,12.915l2.467-2.469c-0.053-1.023,0.297-2.062,1.078-2.848C19.564,6.139,21.934,6.137,23.4,7.6c1.462,1.465,1.462,3.837,0,5.301c-0.783,0.783-1.822,1.132-2.846,1.079l-2.469,2.468c2.463,1.057,5.424,0.584,7.438-1.424c2.634-2.639,2.633-6.91,0-9.546c-2.639-2.636-6.91-2.637-9.545-0.001C13.967,7.489,13.495,10.451,14.552,12.915zM18.152,10.727l-7.424,7.426c-0.585,0.584-0.587,1.535,0,2.121c0.585,0.584,1.536,0.584,2.121-0.002l7.425-7.424c0.584-0.586,0.584-1.535,0-2.121C19.687,10.141,18.736,10.142,18.152,10.727z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/LinkedIn.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/LinkedIn.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.LinkedIn();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.LinkedIn = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.LinkedIn.prototype */\n{\n\n NAME: \"draw2d.shape.icon.LinkedIn\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M27.25,3.125h-22c-1.104,0-2,0.896-2,2v22c0,1.104,0.896,2,2,2h22c1.104,0,2-0.896,2-2v-22C29.25,4.021,28.354,3.125,27.25,3.125zM11.219,26.781h-4v-14h4V26.781zM9.219,11.281c-1.383,0-2.5-1.119-2.5-2.5s1.117-2.5,2.5-2.5s2.5,1.119,2.5,2.5S10.602,11.281,9.219,11.281zM25.219,26.781h-4v-8.5c0-0.4-0.403-1.055-0.687-1.213c-0.375-0.211-1.261-0.229-1.665-0.034l-1.648,0.793v8.954h-4v-14h4v0.614c1.583-0.723,3.78-0.652,5.27,0.184c1.582,0.886,2.73,2.864,2.73,4.702V26.781z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Linux.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Linux.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Linux();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Linux = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Linux.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Linux\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M11.791,25.229c1.027-0.104,1.162-1.191,0.68-1.666c-0.398-0.392-2.598-2.022-3.171-2.664C9.033,20.6,8.673,20.454,8.52,20.12c-0.352-0.771-0.598-1.869-0.151-2.658c0.081-0.144,0.133-0.078,0.071,0.22c-0.351,1.684,0.746,3.059,0.986,2.354c0.167-0.487,0.013-1.358,0.102-2.051c0.158-1.226,1.273-3.577,1.763-3.712c-0.755-1.398,0.886-2.494,0.866-3.723c-0.014-0.798,0.701,0.982,1.419,1.359c0.802,0.422,1.684-0.794,2.936-1.41c0.354-0.176,0.809-0.376,0.776-0.524c-0.146-0.718-1.644,0.886-2.979,0.939c-0.61,0.024-0.837-0.12-1.072-0.347c-0.712-0.689,0.073-0.115,1.132-0.307c0.471-0.085,0.629-0.163,1.128-0.365c0.5-0.201,1.069-0.5,1.636-0.654c0.395-0.106,0.361-0.402,0.208-0.491c-0.088-0.051-0.219-0.046-0.321,0.133c-0.244,0.419-1.383,0.661-1.74,0.771c-0.457,0.14-0.962,0.271-1.634,0.243c-1.021-0.042-0.782-0.509-1.513-0.928c-0.213-0.122-0.156-0.444,0.129-0.729c0.148-0.148,0.557-0.232,0.76-0.572c0.028-0.047,0.289-0.32,0.494-0.461c0.07-0.049,0.076-1.295-0.562-1.32c-0.543-0.021-0.697,0.398-0.675,0.818c0.022,0.419,0.245,0.765,0.393,0.764c0.285-0.004,0.019,0.311-0.138,0.361c-0.237,0.078-0.562-0.934-0.525-1.418c0.039-0.506,0.303-1.4,0.942-1.383c0.576,0.016,0.993,0.737,0.973,1.983c-0.003,0.211,0.935-0.101,1.247,0.229c0.224,0.236-0.767-2.207,1.438-2.375c0.582,0.111,1.14,0.305,1.371,1.641c-0.086,0.139,0.146,1.07-0.215,1.182c-0.438,0.135-0.707-0.02-0.453-0.438c0.172-0.418,0.004-1.483-0.882-1.42c-0.887,0.064-0.769,1.637-0.526,1.668c0.243,0.031,0.854,0.465,1.282,0.549c1.401,0.271,0.371,1.075,0.555,2.048c0.205,1.099,0.929,0.809,1.578,3.717c0.137,0.177,0.676,0.345,1.199,2.579c0.473,2.011-0.195,3.473,0.938,3.353c0.256-0.026,0.629-0.1,0.792-0.668c0.425-1.489-0.213-3.263-0.855-4.46c-0.375-0.698-0.729-1.174-0.916-1.337c0.738,0.436,1.683,1.829,1.898,2.862c0.286,1.358,0.49,1.934,0.059,3.37c0.25,0.125,0.871,0.39,0.871,0.685c-0.647-0.53-2.629-0.625-2.68,0.646c-0.338,0.008-0.594,0.034-0.811,0.293c-0.797,0.944-0.059,2.842-0.139,3.859c-0.07,0.896-0.318,1.783-0.46,2.683c-0.474-0.019-0.428-0.364-0.274-0.852c0.135-0.431,0.351-0.968,0.365-1.484c0.012-0.467-0.039-0.759-0.156-0.831c-0.118-0.072-0.303,0.074-0.559,0.485c-0.543,0.875-1.722,1.261-2.821,1.397c-1.099,0.138-2.123,0.028-2.664-0.578c-0.186-0.207-0.492,0.058-0.529,0.111c-0.049,0.074,0.18,0.219,0.352,0.533c0.251,0.461,0.49,1.159-0.105,1.479C12.83,26.314,12.316,26.221,11.791,25.229L11.791,25.229zM11.398,25.188c0.395,0.621,1.783,3.232-0.652,3.571c-0.814,0.114-2.125-0.474-3.396-0.784c-1.142-0.279-2.301-0.444-2.949-0.627c-0.391-0.108-0.554-0.25-0.588-0.414c-0.091-0.434,0.474-1.041,0.503-1.555c0.028-0.514-0.188-0.779-0.364-1.199c-0.177-0.42-0.224-0.734-0.081-0.914c0.109-0.141,0.334-0.199,0.698-0.164c0.462,0.047,1.02-0.049,1.319-0.23c0.505-0.309,0.742-0.939,0.516-1.699c0,0.744-0.244,1.025-0.855,1.366c-0.577,0.319-1.467,0.062-1.875,0.416c-0.492,0.427,0.175,1.528,0.12,2.338c-0.042,0.622-0.69,1.322-0.401,1.946c0.291,0.627,1.648,0.695,3.064,0.99c2.012,0.422,3.184,1.153,4.113,1.188c1.356,0.05,1.564-1.342,3.693-1.36c0.621-0.033,1.229-0.052,1.835-0.06c0.688-0.009,1.375-0.003,2.079,0.014c1.417,0.034,0.931,0.773,1.851,1.246c0.774,0.397,2.17,0.241,2.504-0.077c0.451-0.431,1.662-1.467,2.592-1.935c1.156-0.583,3.876-1.588,1.902-2.812c-0.461-0.285-1.547-0.588-1.639-2.676c-0.412,0.366-0.365,2.312,0.784,2.697c1.283,0.431,2.085,1.152-0.301,1.969c-1.58,0.54-1.849,0.706-3.099,1.747c-1.267,1.054-3.145,0.636-2.815-1.582c0.171-1.155,0.269-2.11-0.019-3.114c-0.142-0.49-0.211-1.119-0.114-1.562c0.187-0.858,0.651-1.117,1.106-0.293c0.285,0.519,0.385,1.122,1.408,1.171c1.607,0.077,1.926-1.553,2.439-1.627c0.343-0.05,0.686-1.02,0.425-2.589c-0.28-1.681-1.269-4.332-2.536-5.677c-1.053-1.118-1.717-2.098-2.135-3.497c-0.352-1.175-0.547-2.318-0.475-3.412c0.094-1.417-0.691-3.389-1.943-4.316c-0.782-0.581-2.011-0.893-3.122-0.88c-0.623,0.007-1.21,0.099-1.661,0.343c-1.855,1.008-2.113,2.445-2.086,4.088c0.025,1.543,0.078,3.303,0.254,4.977c-0.208,0.77-1.288,2.227-1.979,3.114C8.59,14.233,8.121,16.01,7.52,17.561c-0.321,0.828-0.862,1.2-0.908,2.265C6.6,20.122,6.61,20.891,6.894,20.672C7.98,19.829,9.343,21.95,11.398,25.188L11.398,25.188zM17.044,2.953c-0.06,0.176-0.3,0.321-0.146,0.443c0.152,0.123,0.24-0.171,0.549-0.281c0.08-0.028,0.449,0.012,0.519-0.164c0.03-0.077-0.19-0.164-0.321-0.291c-0.133-0.125-0.262-0.236-0.386-0.229C16.938,2.451,17.096,2.798,17.044,2.953L17.044,2.953zM18.934,9.35c0.115-0.121,0.174,0.207,0.483,0.402c0.244,0.154,0.481,0.04,0.545,0.354c0.044,0.225-0.097,0.467-0.284,0.436C19.35,10.486,18.596,9.705,18.934,9.35L18.934,9.35zM13.832,7.375c-0.508-0.037-0.543,0.33-0.375,0.324C13.629,7.693,13.523,7.408,13.832,7.375L13.832,7.375zM12.96,6.436c0.06-0.013,0.146,0.09,0.119,0.233c-0.037,0.199-0.021,0.324,0.117,0.325c0.022,0,0.048-0.005,0.056-0.057c0.066-0.396-0.14-0.688-0.225-0.711C12.834,6.178,12.857,6.458,12.96,6.436L12.96,6.436zM16.663,6.268c0.129,0.039,0.253,0.262,0.28,0.504c0.002,0.021,0.168-0.035,0.17-0.088c0.011-0.389-0.321-0.571-0.408-0.562C16.506,6.139,16.562,6.238,16.663,6.268L16.663,6.268zM14.765,7.423c0.463-0.214,0.625,0.118,0.465,0.171C15.066,7.648,15.065,7.345,14.765,7.423L14.765,7.423zM9.178,15.304c-0.219-0.026,0.063-0.19,0.184-0.397c0.131-0.227,0.105-0.511,0.244-0.469s0.061,0.2-0.033,0.461C9.491,15.121,9.258,15.313,9.178,15.304L9.178,15.304z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/List.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/List.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.List();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.List = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.List.prototype */\n{\n\n NAME: \"draw2d.shape.icon.List\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M4.082,4.083v2.999h22.835V4.083H4.082zM4.082,20.306h22.835v-2.999H4.082V20.306zM4.082,13.694h22.835v-2.999H4.082V13.694zM4.082,26.917h22.835v-2.999H4.082V26.917z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Location.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Location.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Location();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Location = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Location.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Location\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,3.5c-4.142,0-7.5,3.358-7.5,7.5c0,4.143,7.5,18.121,7.5,18.121S23.5,15.143,23.5,11C23.5,6.858,20.143,3.5,16,3.5z M16,14.584c-1.979,0-3.584-1.604-3.584-3.584S14.021,7.416,16,7.416S19.584,9.021,19.584,11S17.979,14.584,16,14.584z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Lock.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Lock.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Lock();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Lock = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Lock.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Lock\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M22.335,12.833V9.999h-0.001C22.333,6.501,19.498,3.666,16,3.666S9.666,6.502,9.666,10h0v2.833H7.375V25h17.25V12.833H22.335zM11.667,10C11.667,10,11.667,10,11.667,10c0-2.39,1.944-4.334,4.333-4.334c2.391,0,4.335,1.944,4.335,4.333c0,0,0,0,0,0v2.834h-8.668V10z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Locked.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Locked.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Locked();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Locked = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Locked.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Locked\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M26.711,14.085L16.914,4.29c-0.778-0.778-2.051-0.778-2.829,0L4.29,14.086c-0.778,0.778-0.778,2.05,0,2.829l9.796,9.796c0.778,0.777,2.051,0.777,2.829,0l9.797-9.797C27.488,16.136,27.488,14.863,26.711,14.085zM8.218,16.424c-0.4-0.153-0.687-0.533-0.687-0.987s0.287-0.834,0.687-0.987V16.424zM8.969,16.424v-1.974c0.4,0.152,0.687,0.533,0.687,0.987S9.369,16.272,8.969,16.424zM13.5,19.188l1.203-3.609c-0.689-0.306-1.172-0.994-1.172-1.797c0-1.087,0.881-1.969,1.969-1.969c1.087,0,1.969,0.881,1.969,1.969c0,0.803-0.482,1.491-1.172,1.797l1.203,3.609H13.5zM22.03,16.549c-0.399-0.152-0.687-0.533-0.687-0.986s0.287-0.834,0.687-0.987V16.549zM22.781,16.549v-1.973c0.4,0.152,0.688,0.533,0.688,0.987S23.182,16.397,22.781,16.549z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Magic.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Magic.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Magic();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Magic = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Magic.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Magic\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M23.043,4.649l-0.404-2.312l-1.59,1.727l-2.323-0.33l1.151,2.045l-1.032,2.108l2.302-0.463l1.686,1.633l0.271-2.332l2.074-1.099L23.043,4.649zM26.217,18.198l-0.182-1.25l-0.882,0.905l-1.245-0.214l0.588,1.118l-0.588,1.118l1.245-0.214l0.882,0.905l0.182-1.25l1.133-0.56L26.217,18.198zM4.92,7.672L5.868,7.3l0.844,0.569L6.65,6.853l0.802-0.627L6.467,5.97L6.118,5.013L5.571,5.872L4.553,5.908l0.647,0.786L4.92,7.672zM10.439,10.505l1.021-1.096l1.481,0.219l-0.727-1.31l0.667-1.341l-1.47,0.287l-1.069-1.048L10.16,7.703L8.832,8.396l1.358,0.632L10.439,10.505zM17.234,12.721c-0.588-0.368-1.172-0.618-1.692-0.729c-0.492-0.089-1.039-0.149-1.425,0.374L2.562,30.788h6.68l9.669-15.416c0.303-0.576,0.012-1.041-0.283-1.447C18.303,13.508,17.822,13.09,17.234,12.721zM13.613,21.936c-0.254-0.396-0.74-0.857-1.373-1.254c-0.632-0.396-1.258-0.634-1.726-0.69l4.421-7.052c0.064-0.013,0.262-0.021,0.543,0.066c0.346,0.092,0.785,0.285,1.225,0.562c0.504,0.313,0.908,0.677,1.133,0.97c0.113,0.145,0.178,0.271,0.195,0.335c0.002,0.006,0.004,0.011,0.004,0.015L13.613,21.936z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Magnet.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Magnet.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Magnet();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Magnet = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Magnet.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Magnet\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M20.812,19.5h5.002v-6.867c-0.028-1.706-0.61-3.807-2.172-5.841c-1.539-2.014-4.315-3.72-7.939-3.687C12.076,3.073,9.3,4.779,7.762,6.792C6.2,8.826,5.617,10.928,5.588,12.634V19.5h5v-6.866c-0.027-0.377,0.303-1.789,1.099-2.748c0.819-0.979,1.848-1.747,4.014-1.778c2.165,0.032,3.195,0.799,4.013,1.778c0.798,0.959,1.126,2.372,1.099,2.748V19.5L20.812,19.5zM25.814,25.579c0,0,0-2.354,0-5.079h-5.002c0,2.727,0,5.08,0,5.08l5.004-0.001H25.814zM5.588,25.58h5c0,0,0-2.354,0-5.08h-5C5.588,23.227,5.588,25.58,5.588,25.58z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Mail.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Mail.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Mail();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Mail = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Mail.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Mail\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.516,7.167H3.482l12.517,7.108L28.516,7.167zM16.74,17.303C16.51,17.434,16.255,17.5,16,17.5s-0.51-0.066-0.741-0.197L2.5,10.06v14.773h27V10.06L16.74,17.303z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Man.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Man.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Man();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Man = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Man.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Man\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M21.021,16.349c-0.611-1.104-1.359-1.998-2.109-2.623c-0.875,0.641-1.941,1.031-3.103,1.031c-1.164,0-2.231-0.391-3.105-1.031c-0.75,0.625-1.498,1.519-2.111,2.623c-1.422,2.563-1.578,5.192-0.35,5.874c0.55,0.307,1.127,0.078,1.723-0.496c-0.105,0.582-0.166,1.213-0.166,1.873c0,2.932,1.139,5.307,2.543,5.307c0.846,0,1.265-0.865,1.466-2.189c0.201,1.324,0.62,2.189,1.463,2.189c1.406,0,2.545-2.375,2.545-5.307c0-0.66-0.061-1.291-0.168-1.873c0.598,0.574,1.174,0.803,1.725,0.496C22.602,21.541,22.443,18.912,21.021,16.349zM15.808,13.757c2.362,0,4.278-1.916,4.278-4.279s-1.916-4.279-4.278-4.279c-2.363,0-4.28,1.916-4.28,4.279S13.445,13.757,15.808,13.757z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Merge.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Merge.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Merge();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Merge = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Merge.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Merge\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M29.342,15.5l-7.556-4.363v2.613h-1.411c-0.788-0.01-1.331-0.241-2.019-0.743c-1.021-0.745-2.094-2.181-3.551-3.568C13.367,8.06,11.291,6.73,8.5,6.749H2.812v3.5H8.5c2.231,0.012,3.441,1.185,5.07,2.934c0.697,0.753,1.428,1.58,2.324,2.323c-1.396,1.165-2.412,2.516-3.484,3.501c-1.183,1.081-2.202,1.723-3.912,1.741H2.813v3.5h5.716c3.752,0.001,6.035-2.319,7.619-4.066c0.817-0.895,1.537-1.691,2.209-2.191c0.686-0.502,1.23-0.732,2.017-0.742h1.412v2.614L29.342,15.5z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Mic.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Mic.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Mic();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Mic = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Mic.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Mic\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.5,21.125c2.682,0,4.875-2.25,4.875-5V5.875c0-2.75-2.193-5-4.875-5s-4.875,2.25-4.875,5v10.25C10.625,18.875,12.818,21.125,15.5,21.125zM21.376,11v5.125c0,3.308-2.636,6-5.876,6s-5.875-2.691-5.875-6V11H6.626v5.125c0,4.443,3.194,8.132,7.372,8.861v2.139h-3.372v3h9.749v-3h-3.376v-2.139c4.181-0.727,7.375-4.418,7.375-8.861V11H21.376z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/MicMute.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/MicMute.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.MicMute();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.MicMute = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.MicMute.prototype */\n{\n\n NAME: \"draw2d.shape.icon.MicMute\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M10.121,18.529c-0.317-0.736-0.496-1.549-0.496-2.404V11H6.626v5.125c0,1.693,0.466,3.275,1.272,4.627L10.121,18.529zM20.375,8.276V5.875c0-2.75-2.193-5-4.875-5s-4.875,2.25-4.875,5v10.25c0,0.568,0.113,1.105,0.285,1.615L20.375,8.276zM21.376,12.931v3.195c0,3.308-2.636,6-5.876,6c-0.958,0-1.861-0.24-2.661-0.657l-2.179,2.179c0.995,0.659,2.123,1.128,3.338,1.34v2.139h-3.372v3h9.749v-3h-3.376v-2.139c4.181-0.727,7.375-4.418,7.375-8.861V11h-1.068L21.376,12.931zM20.375,16.125v-2.194l-6.788,6.788c0.588,0.26,1.234,0.405,1.913,0.405C18.182,21.125,20.375,18.875,20.375,16.125zM25.542,4.522L4.855,25.209l1.415,1.416L26.956,5.937L25.542,4.522z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Minus.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Minus.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Minus();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Minus = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Minus.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Minus\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.979,12.896,5.979,12.896,5.979,19.562,25.979,19.562z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/NewWindow.js\":\n/*!*************************************!*\\\n !*** ./src/shape/icon/NewWindow.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.NewWindow();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.NewWindow = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.NewWindow.prototype */\n{\n\n NAME: \"draw2d.shape.icon.NewWindow\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M5.896,5.333V21.25h23.417V5.333H5.896zM26.312,18.25H8.896V8.334h17.417V18.25L26.312,18.25zM4.896,9.542H1.687v15.917h23.417V22.25H4.896V9.542z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/No.js\":\n/*!******************************!*\\\n !*** ./src/shape/icon/No.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.No();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.No = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.No.prototype */\n{\n\n NAME: \"draw2d.shape.icon.No\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,2.939C9.006,2.942,3.338,8.61,3.335,15.605C3.335,22.6,9.005,28.268,16,28.27c6.994-0.002,12.662-5.67,12.664-12.664C28.663,8.61,22.995,2.939,16,2.939zM25.663,15.605c-0.003,1.943-0.583,3.748-1.569,5.264L10.736,7.513c1.515-0.988,3.32-1.569,5.265-1.573C21.337,5.951,25.654,10.269,25.663,15.605zM6.335,15.605c0.004-1.943,0.584-3.75,1.573-5.266l13.355,13.357c-1.516,0.986-3.32,1.566-5.264,1.569C10.664,25.26,6.346,20.941,6.335,15.605z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/NoMagnet.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/NoMagnet.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.NoMagnet();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.NoMagnet = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.NoMagnet.prototype */\n{\n\n NAME: \"draw2d.shape.icon.NoMagnet\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M10.59,17.857v-5.225c-0.027-0.376,0.303-1.789,1.099-2.748c0.819-0.979,1.849-1.748,4.014-1.778c1.704,0.026,2.699,0.508,3.447,1.189l3.539-3.539c-1.616-1.526-4.01-2.679-6.986-2.652C12.077,3.073,9.3,4.779,7.762,6.793C6.2,8.826,5.617,10.928,5.59,12.634V19.5h3.357L10.59,17.857zM5.59,20.5v2.357L7.947,20.5H5.59zM20.812,13.29v6.21h5.002v-6.866c-0.021-1.064-0.252-2.283-0.803-3.542L20.812,13.29zM25.339,4.522L4.652,25.209l1.415,1.416L26.753,5.937L25.339,4.522zM20.812,25.58h5.002c0,0,0-2.354,0-5.08h-5.002C20.812,23.227,20.812,25.58,20.812,25.58zM10.59,25.58c0,0,0-0.827,0-2.064L8.525,25.58H10.59z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/NodeJs.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/NodeJs.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.NodeJs();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.NodeJs = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.NodeJs.prototype */\n{\n\n NAME: \"draw2d.shape.icon.NodeJs\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M4.783,4.458L2.59,3.196C2.553,3.174,2.511,3.163,2.469,3.161H2.447C2.405,3.163,2.363,3.174,2.326,3.196L0.133,4.458C0.051,4.505,0,4.593,0,4.688l0.005,3.398c0,0.047,0.024,0.092,0.066,0.114c0.041,0.024,0.091,0.024,0.132,0l1.303-0.746c0.083-0.049,0.132-0.136,0.132-0.229V5.637c0-0.095,0.05-0.183,0.132-0.229l0.555-0.32c0.041-0.023,0.086-0.035,0.132-0.035c0.045,0,0.092,0.012,0.132,0.035l0.555,0.32c0.082,0.047,0.133,0.135,0.133,0.229v1.588c0,0.094,0.051,0.182,0.132,0.229l1.303,0.746c0.041,0.024,0.092,0.024,0.132,0c0.041-0.022,0.066-0.067,0.066-0.114l0.004-3.398C4.915,4.593,4.865,4.505,4.783,4.458zM17.93,0.745l-1.305-0.729c-0.042-0.023-0.091-0.022-0.132,0.001c-0.041,0.024-0.065,0.067-0.065,0.114v3.365c0,0.033-0.018,0.064-0.046,0.081s-0.064,0.017-0.093,0l-0.549-0.316c-0.082-0.047-0.183-0.047-0.265,0l-2.193,1.266c-0.082,0.047-0.133,0.135-0.133,0.229V7.29c0,0.095,0.051,0.182,0.132,0.229l2.194,1.267c0.082,0.048,0.183,0.048,0.265,0l2.194-1.267c0.082-0.048,0.133-0.135,0.133-0.229V0.977C18.066,0.88,18.014,0.792,17.93,0.745zM16.421,6.458c0,0.023-0.013,0.045-0.033,0.057l-0.753,0.435c-0.021,0.012-0.045,0.012-0.066,0l-0.753-0.435c-0.021-0.012-0.033-0.034-0.033-0.057v-0.87c0-0.023,0.013-0.045,0.033-0.058l0.753-0.435c0.021-0.012,0.045-0.012,0.066,0l0.753,0.435c0.021,0.012,0.033,0.034,0.033,0.058V6.458zM24.473,4.493l-2.18-1.266c-0.082-0.047-0.183-0.048-0.265,0l-2.193,1.266c-0.082,0.047-0.132,0.135-0.132,0.229v2.532c0,0.096,0.051,0.184,0.133,0.23l2.18,1.242c0.08,0.045,0.179,0.046,0.26,0.001l1.318-0.732c0.042-0.023,0.067-0.067,0.068-0.115c0-0.048-0.025-0.092-0.066-0.116l-2.207-1.266c-0.041-0.023-0.066-0.067-0.066-0.115V5.59c0-0.047,0.025-0.091,0.065-0.115l0.688-0.396c0.041-0.024,0.091-0.024,0.132,0l0.688,0.396c0.041,0.023,0.066,0.067,0.066,0.115v0.625c0,0.047,0.025,0.091,0.066,0.114c0.041,0.024,0.092,0.024,0.132,0l1.314-0.764c0.081-0.047,0.132-0.135,0.132-0.229V4.722C24.605,4.628,24.555,4.541,24.473,4.493zM11.363,4.48L9.169,3.214c-0.082-0.047-0.183-0.047-0.265,0L6.711,4.48C6.629,4.527,6.579,4.615,6.579,4.709v2.534c0,0.095,0.051,0.182,0.133,0.229l2.193,1.267c0.082,0.048,0.183,0.048,0.265,0l2.193-1.267c0.082-0.048,0.132-0.135,0.132-0.229V4.709C11.495,4.615,11.445,4.527,11.363,4.48zM31.019,4.382L28.95,3.187c-0.13-0.074-0.304-0.074-0.435,0l-2.068,1.195c-0.135,0.077-0.218,0.222-0.218,0.377v2.386c0,0.156,0.083,0.301,0.218,0.378l0.542,0.312c0.263,0.13,0.356,0.13,0.477,0.13c0.389,0,0.612-0.236,0.612-0.646V4.962c0-0.033-0.027-0.06-0.06-0.06h-0.263c-0.033,0-0.061,0.026-0.061,0.06v2.356c0,0.182-0.188,0.363-0.495,0.209l-0.566-0.326c-0.021-0.012-0.033-0.033-0.033-0.057V4.759c0-0.023,0.013-0.045,0.033-0.057l2.067-1.193c0.019-0.011,0.044-0.011,0.063,0l2.067,1.193c0.02,0.012,0.032,0.034,0.032,0.057v2.386c0,0.023-0.013,0.046-0.032,0.057l-2.068,1.193c-0.018,0.012-0.045,0.012-0.063,0l-0.53-0.314c-0.017-0.01-0.036-0.013-0.052-0.004c-0.146,0.083-0.175,0.094-0.312,0.143c-0.034,0.012-0.084,0.031,0.019,0.09l0.691,0.408c0.065,0.038,0.141,0.059,0.217,0.059s0.151-0.021,0.218-0.059l2.068-1.194c0.134-0.078,0.217-0.222,0.217-0.378V4.759C31.235,4.604,31.152,4.459,31.019,4.382zM29.371,6.768c-0.548,0-0.668-0.138-0.708-0.41c-0.005-0.029-0.029-0.051-0.06-0.051h-0.268c-0.033,0-0.06,0.026-0.06,0.06c0,0.349,0.189,0.765,1.095,0.765c0.655,0,1.031-0.259,1.031-0.709c0-0.447-0.302-0.566-0.938-0.65c-0.643-0.085-0.708-0.128-0.708-0.279c0-0.125,0.056-0.29,0.531-0.29c0.425,0,0.581,0.091,0.646,0.378c0.006,0.027,0.03,0.047,0.059,0.047h0.269c0.017,0,0.032-0.007,0.044-0.019c0.011-0.013,0.017-0.029,0.016-0.046c-0.042-0.493-0.37-0.723-1.032-0.723c-0.59,0-0.941,0.249-0.941,0.666c0,0.453,0.35,0.578,0.916,0.634c0.677,0.066,0.729,0.166,0.729,0.298C29.992,6.669,29.807,6.768,29.371,6.768zM22.128,5.446l-0.42,0.243c-0.016,0.009-0.025,0.026-0.025,0.044v0.486c0,0.019,0.01,0.035,0.025,0.044l0.42,0.243c0.016,0.009,0.035,0.009,0.052,0l0.421-0.243c0.016-0.009,0.025-0.025,0.025-0.044V5.733c0-0.018-0.01-0.035-0.025-0.044L22.18,5.446C22.163,5.438,22.144,5.438,22.128,5.446z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Notebook.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Notebook.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Notebook();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Notebook = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Notebook.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Notebook\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.875,1.375H8c-1.033,0-1.874,0.787-1.979,1.792h1.604c1.102,0,2,0.898,2,2c0,1.102-0.898,2-2,2H6v0.999h1.625c1.104,0,2.002,0.898,2.002,2.002c0,1.104-0.898,2.001-2.002,2.001H6v0.997h1.625c1.102,0,2,0.898,2,2c0,1.104-0.898,2.004-2,2.004H6v0.994h1.625c1.102,0,2,0.898,2,2.002s-0.898,2.002-2,2.002H6v0.997h1.624c1.104,0,2.002,0.897,2.002,2.001c0,1.104-0.898,2.002-2.002,2.002H6.004C6.027,28.252,6.91,29.125,8,29.125h16.875c1.104,0,2-0.896,2-2V3.375C26.875,2.271,25.979,1.375,24.875,1.375zM25.25,8.375c0,0.552-0.447,1-1,1H14c-0.553,0-1-0.448-1-1V4c0-0.552,0.447-1,1-1h10.25c0.553,0,1,0.448,1,1V8.375zM8.625,25.166c0-0.554-0.449-1.001-1-1.001h-3.25c-0.552,0-1,0.447-1,1.001c0,0.552,0.449,1,1,1h3.25C8.176,26.166,8.625,25.718,8.625,25.166zM4.375,6.166h3.251c0.551,0,0.999-0.448,0.999-0.999c0-0.555-0.448-1-0.999-1H4.375c-0.553,0-1,0.445-1,1C3.374,5.718,3.822,6.166,4.375,6.166zM4.375,11.167h3.25c0.553,0,1-0.448,1-1s-0.448-1-1-1h-3.25c-0.553,0-1,0.448-1,1S3.822,11.167,4.375,11.167zM4.375,16.167h3.25c0.551,0,1-0.448,1-1.001s-0.448-0.999-1-0.999h-3.25c-0.553,0-1.001,0.446-1.001,0.999S3.822,16.167,4.375,16.167zM3.375,20.165c0,0.553,0.446,1.002,1,1.002h3.25c0.551,0,1-0.449,1-1.002c0-0.552-0.448-1-1-1h-3.25C3.821,19.165,3.375,19.613,3.375,20.165z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Noview.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Noview.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Noview();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Noview = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Noview.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Noview\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M11.478,17.568c-0.172-0.494-0.285-1.017-0.285-1.568c0-2.65,2.158-4.807,4.807-4.807c0.552,0,1.074,0.113,1.568,0.285l2.283-2.283C18.541,8.647,17.227,8.286,16,8.286C8.454,8.286,2.5,16,2.5,16s2.167,2.791,5.53,5.017L11.478,17.568zM23.518,11.185l-3.056,3.056c0.217,0.546,0.345,1.138,0.345,1.76c0,2.648-2.158,4.807-4.807,4.807c-0.622,0-1.213-0.128-1.76-0.345l-2.469,2.47c1.327,0.479,2.745,0.783,4.229,0.783c5.771,0,13.5-7.715,13.5-7.715S26.859,13.374,23.518,11.185zM25.542,4.917L4.855,25.604L6.27,27.02L26.956,6.332L25.542,4.917z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Opera.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Opera.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Opera();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Opera = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Opera.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Opera\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.954,2.046c-7.489,0-12.872,5.432-12.872,13.581c0,7.25,5.234,13.835,12.873,13.835c7.712,0,12.974-6.583,12.974-13.835C28.929,7.413,23.375,2.046,15.954,2.046zM15.952,26.548L15.952,26.548c-2.289,0-3.49-1.611-4.121-3.796c-0.284-1.037-0.458-2.185-0.563-3.341c-0.114-1.374-0.129-2.773-0.129-4.028c0-0.993,0.018-1.979,0.074-2.926c0.124-1.728,0.386-3.431,0.89-4.833c0.694-1.718,1.871-2.822,3.849-2.822c2.5,0,3.763,1.782,4.385,4.322c0.429,1.894,0.56,4.124,0.56,6.274c0,2.299-0.103,5.153-0.763,7.442C19.473,24.979,18.242,26.548,15.952,26.548z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Package.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Package.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Package();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Package = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Package.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Package\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M17.078,22.004l-1.758-4.129l-2.007,4.752l-7.519-3.289l0.174,3.905l9.437,4.374l10.909-5.365l-0.149-4.989L17.078,22.004zM29.454,6.619L18.521,3.383l-3.006,2.671l-3.091-2.359L1.546,8.199l3.795,3.048l-3.433,5.302l10.879,4.757l2.53-5.998l2.257,5.308l11.393-5.942l-3.105-4.709L29.454,6.619zM15.277,14.579l-9.059-3.83l9.275-4.101l9.608,3.255L15.277,14.579z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Page.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Page.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Page();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Page = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Page.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Page\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M23.024,5.673c-1.744-1.694-3.625-3.051-5.168-3.236c-0.084-0.012-0.171-0.019-0.263-0.021H7.438c-0.162,0-0.322,0.063-0.436,0.18C6.889,2.71,6.822,2.87,6.822,3.033v25.75c0,0.162,0.063,0.317,0.18,0.435c0.117,0.116,0.271,0.179,0.436,0.179h18.364c0.162,0,0.317-0.062,0.434-0.179c0.117-0.117,0.182-0.272,0.182-0.435V11.648C26.382,9.659,24.824,7.49,23.024,5.673zM25.184,28.164H8.052V3.646h9.542v0.002c0.416-0.025,0.775,0.386,1.05,1.326c0.25,0.895,0.313,2.062,0.312,2.871c0.002,0.593-0.027,0.991-0.027,0.991l-0.049,0.652l0.656,0.007c0.003,0,1.516,0.018,3,0.355c1.426,0.308,2.541,0.922,2.645,1.617c0.004,0.062,0.005,0.124,0.004,0.182V28.164z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Page2.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Page2.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Page2();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Page2 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Page2.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Page2\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M23.024,5.673c-1.744-1.694-3.625-3.051-5.168-3.236c-0.084-0.012-0.171-0.019-0.263-0.021H7.438c-0.162,0-0.322,0.063-0.436,0.18C6.889,2.71,6.822,2.87,6.822,3.033v25.75c0,0.162,0.063,0.317,0.18,0.435c0.117,0.116,0.271,0.179,0.436,0.179h18.364c0.162,0,0.317-0.062,0.434-0.179c0.117-0.117,0.182-0.272,0.182-0.435V11.648C26.382,9.659,24.824,7.49,23.024,5.673zM22.157,6.545c0.805,0.786,1.529,1.676,2.069,2.534c-0.468-0.185-0.959-0.322-1.42-0.431c-1.015-0.228-2.008-0.32-2.625-0.357c0.003-0.133,0.004-0.283,0.004-0.446c0-0.869-0.055-2.108-0.356-3.2c-0.003-0.01-0.005-0.02-0.009-0.03C20.584,5.119,21.416,5.788,22.157,6.545zM25.184,28.164H8.052V3.646h9.542v0.002c0.416-0.025,0.775,0.386,1.05,1.326c0.25,0.895,0.313,2.062,0.312,2.871c0.002,0.593-0.027,0.991-0.027,0.991l-0.049,0.652l0.656,0.007c0.003,0,1.516,0.018,3,0.355c1.426,0.308,2.541,0.922,2.645,1.617c0.004,0.062,0.005,0.124,0.004,0.182V28.164z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Pallete.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Pallete.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Pallete();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Pallete = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Pallete.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Pallete\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.653,7.25c-3.417,0-8.577,0.983-8.577,3.282c0,1.91,2.704,3.229,1.691,3.889c-1.02,0.666-2.684-1.848-4.048-1.848c-1.653,0-2.815,1.434-2.815,2.926c0,4.558,6.326,8.25,13.749,8.25c7.424,0,13.443-3.692,13.443-8.25C29.096,10.944,23.077,7.25,15.653,7.25zM10.308,13.521c0-0.645,0.887-1.166,1.98-1.166c1.093,0,1.979,0.521,1.979,1.166c0,0.644-0.886,1.166-1.979,1.166C11.195,14.687,10.308,14.164,10.308,13.521zM14.289,22.299c-1.058,0-1.914-0.68-1.914-1.518s0.856-1.518,1.914-1.518c1.057,0,1.914,0.68,1.914,1.518S15.346,22.299,14.289,22.299zM19.611,21.771c-1.057,0-1.913-0.681-1.913-1.519c0-0.84,0.856-1.521,1.913-1.521c1.059,0,1.914,0.681,1.914,1.521C21.525,21.092,20.67,21.771,19.611,21.771zM20.075,10.66c0-0.838,0.856-1.518,1.914-1.518s1.913,0.68,1.913,1.518c0,0.839-0.855,1.518-1.913,1.518C20.934,12.178,20.075,11.499,20.075,10.66zM24.275,19.482c-1.057,0-1.914-0.681-1.914-1.519s0.857-1.518,1.914-1.518c1.059,0,1.914,0.68,1.914,1.518S25.334,19.482,24.275,19.482zM25.286,15.475c-1.058,0-1.914-0.68-1.914-1.519c0-0.838,0.856-1.518,1.914-1.518c1.057,0,1.913,0.68,1.913,1.518C27.199,14.795,26.343,15.475,25.286,15.475z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Palm.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Palm.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Palm();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Palm = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Palm.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Palm\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M14.296,27.885v-2.013c0,0-0.402-1.408-1.073-2.013c-0.671-0.604-1.274-1.274-1.409-1.61c0,0-0.268,0.135-0.737-0.335s-1.812-2.616-1.812-2.616l-0.671-0.872c0,0-0.47-0.671-1.275-1.342c-0.805-0.672-0.938-0.067-1.476-0.738s0.604-1.275,1.006-1.409c0.403-0.134,1.946,0.134,2.684,0.872c0.738,0.738,0.738,0.738,0.738,0.738l1.073,1.141l0.537,0.201l0.671-1.073l-0.269-2.281c0,0-0.604-2.55-0.737-4.764c-0.135-2.214-0.47-5.703,1.006-5.837s1.007,2.55,1.073,3.489c0.067,0.938,0.806,5.232,1.208,5.568c0.402,0.335,0.671,0.066,0.671,0.066l0.402-7.514c0,0-0.479-2.438,1.073-2.549c0.939-0.067,0.872,1.543,0.872,2.147c0,0.604,0.269,7.514,0.269,7.514l0.537,0.135c0,0,0.402-2.214,0.604-3.153s0.604-2.416,0.537-3.087c-0.067-0.671-0.135-2.348,1.006-2.348s0.872,1.812,0.939,2.415s-0.134,3.153-0.134,3.757c0,0.604-0.738,3.623-0.537,3.824s2.08-2.817,2.349-3.958c0.268-1.141,0.201-3.02,1.408-2.885c1.208,0.134,0.47,2.817,0.402,3.086c-0.066,0.269-0.671,2.349-0.872,2.952s-0.805,1.476-1.006,2.013s0.402,2.349,0,4.629c-0.402,2.281-1.61,5.166-1.61,5.166l0.604,2.08c0,0-1.744,0.671-3.824,0.805C16.443,28.221,14.296,27.885,14.296,27.885z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Paper.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Paper.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Paper();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Paper = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Paper.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Paper\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.916,8.009L15.953,1.888c-0.251-0.119-0.548-0.115-0.798,0.008c-0.25,0.125-0.433,0.357-0.491,0.629c-0.002,0.01-1.04,4.83-2.578,9.636c-0.526,1.646-1.114,3.274-1.728,4.704l1.665,0.786c2-4.643,3.584-11.052,4.181-13.614l11.264,5.316c-0.346,1.513-1.233,5.223-2.42,8.927c-0.767,2.399-1.665,4.797-2.585,6.532c-0.889,1.79-1.958,2.669-2.197,2.552c-1.419,0.03-2.418-1.262-3.09-2.918c-0.32-0.803-0.53-1.63-0.657-2.246c-0.127-0.618-0.166-1.006-0.168-1.006c-0.034-0.317-0.232-0.597-0.52-0.731l-12.962-6.12c-0.301-0.142-0.654-0.11-0.925,0.081c-0.27,0.193-0.416,0.518-0.38,0.847c0.008,0.045,0.195,1.848,0.947,3.736c0.521,1.321,1.406,2.818,2.845,3.575l12.956,6.131l0.006-0.013c0.562,0.295,1.201,0.487,1.947,0.496c1.797-0.117,2.777-1.668,3.818-3.525c3-5.69,5.32-16.602,5.338-16.642C29.512,8.615,29.302,8.19,28.916,8.009z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Parent.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Parent.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Parent();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Parent = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Parent.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Parent\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M14.423,12.17c-0.875,0.641-1.941,1.031-3.102,1.031c-1.164,0-2.231-0.391-3.104-1.031c-0.75,0.625-1.498,1.519-2.111,2.623c-1.422,2.563-1.578,5.192-0.35,5.874c0.549,0.312,1.127,0.078,1.723-0.496c-0.105,0.582-0.166,1.213-0.166,1.873c0,2.938,1.139,5.312,2.543,5.312c0.846,0,1.265-0.865,1.466-2.188c0.2,1.314,0.62,2.188,1.461,2.188c1.396,0,2.545-2.375,2.545-5.312c0-0.66-0.062-1.291-0.168-1.873c0.6,0.574,1.176,0.812,1.726,0.496c1.227-0.682,1.068-3.311-0.354-5.874C15.921,13.689,15.173,12.795,14.423,12.17zM11.32,12.201c2.361,0,4.277-1.916,4.277-4.279s-1.916-4.279-4.277-4.279c-2.363,0-4.28,1.916-4.28,4.279S8.957,12.201,11.32,12.201zM21.987,17.671c1.508,0,2.732-1.225,2.732-2.735c0-1.51-1.225-2.735-2.732-2.735c-1.511,0-2.736,1.225-2.736,2.735C19.251,16.446,20.477,17.671,21.987,17.671zM25.318,19.327c-0.391-0.705-0.869-1.277-1.349-1.677c-0.56,0.41-1.24,0.659-1.982,0.659c-0.744,0-1.426-0.25-1.983-0.659c-0.479,0.399-0.958,0.972-1.35,1.677c-0.909,1.638-1.009,3.318-0.224,3.754c0.351,0.2,0.721,0.05,1.101-0.317c-0.067,0.372-0.105,0.775-0.105,1.197c0,1.878,0.728,3.396,1.625,3.396c0.54,0,0.808-0.553,0.937-1.398c0.128,0.841,0.396,1.398,0.934,1.398c0.893,0,1.627-1.518,1.627-3.396c0-0.422-0.04-0.825-0.107-1.197c0.383,0.367,0.752,0.52,1.104,0.317C26.328,22.646,26.227,20.965,25.318,19.327z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Pc.js\":\n/*!******************************!*\\\n !*** ./src/shape/icon/Pc.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Pc();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Pc = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Pc.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Pc\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M29.249,3.14h-9.188l-0.459,0.459v18.225l0.33,2.389H19.57v0.245h-0.307v-0.306h-0.611v0.244h-0.311v-0.367h-0.486v0.307h-1.104l-2.022-0.367v-0.92h0.858l0.302-1.47h2.728c0.188,0,0.339-0.152,0.339-0.339V7.828c0-0.187-0.149-0.338-0.339-0.338H1.591c-0.187,0-0.339,0.152-0.339,0.338V21.24c0,0.187,0.152,0.339,0.339,0.339h3.016l0.199,1.47h1.409l-3.4,3.4L2.11,27.951c0,0,2.941,1.102,6.678,1.102c3.737,0,9.679-0.857,10.476-0.857s4.84,0,4.84,0v-1.225l-0.137-1.068h1.744c-0.2,0.106-0.322,0.244-0.322,0.396v0.979c0,0.341,0.604,0.613,1.352,0.613c0.742,0,1.348-0.272,1.348-0.613v-0.979c0-0.339-0.604-0.611-1.348-0.611c-0.188,0-0.364,0.019-0.525,0.049v-0.17h-2.29l-0.055-0.432h5.382L29.249,3.14L29.249,3.14zM2.478,20.17V8.714h15.07V20.17H2.478z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Pen.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Pen.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Pen();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Pen = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Pen.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Pen\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M13.587,12.074c-0.049-0.074-0.11-0.147-0.188-0.202c-0.333-0.243-0.803-0.169-1.047,0.166c-0.244,0.336-0.167,0.805,0.167,1.048c0.303,0.22,0.708,0.167,0.966-0.091l-7.086,9.768l-2.203,7.997l6.917-4.577L26.865,4.468l-4.716-3.42l-1.52,2.096c-0.087-0.349-0.281-0.676-0.596-0.907c-0.73-0.529-1.751-0.369-2.28,0.363C14.721,6.782,16.402,7.896,13.587,12.074zM10.118,25.148L6.56,27.503l1.133-4.117L10.118,25.148zM14.309,11.861c2.183-3.225,1.975-4.099,3.843-6.962c0.309,0.212,0.664,0.287,1.012,0.269L14.309,11.861z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Pensil.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Pensil.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Pensil();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Pensil = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Pensil.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Pensil\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.31,2.872l-3.384-2.127c-0.854-0.536-1.979-0.278-2.517,0.576l-1.334,2.123l6.474,4.066l1.335-2.122C26.42,4.533,26.164,3.407,25.31,2.872zM6.555,21.786l6.474,4.066L23.581,9.054l-6.477-4.067L6.555,21.786zM5.566,26.952l-0.143,3.819l3.379-1.787l3.14-1.658l-6.246-3.925L5.566,26.952z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/People.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/People.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.People();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.People = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.People.prototype */\n{\n\n NAME: \"draw2d.shape.icon.People\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M21.066,20.667c1.227-0.682,1.068-3.311-0.354-5.874c-0.611-1.104-1.359-1.998-2.109-2.623c-0.875,0.641-1.941,1.031-3.102,1.031c-1.164,0-2.231-0.391-3.104-1.031c-0.75,0.625-1.498,1.519-2.111,2.623c-1.422,2.563-1.578,5.192-0.35,5.874c0.549,0.312,1.127,0.078,1.723-0.496c-0.105,0.582-0.166,1.213-0.166,1.873c0,2.938,1.139,5.312,2.543,5.312c0.846,0,1.265-0.865,1.466-2.188c0.2,1.314,0.62,2.188,1.461,2.188c1.396,0,2.545-2.375,2.545-5.312c0-0.66-0.062-1.291-0.168-1.873C19.939,20.745,20.516,20.983,21.066,20.667zM15.5,12.201c2.361,0,4.277-1.916,4.277-4.279S17.861,3.644,15.5,3.644c-2.363,0-4.28,1.916-4.28,4.279S13.137,12.201,15.5,12.201zM24.094,14.914c1.938,0,3.512-1.573,3.512-3.513c0-1.939-1.573-3.513-3.512-3.513c-1.94,0-3.513,1.573-3.513,3.513C20.581,13.341,22.153,14.914,24.094,14.914zM28.374,17.043c-0.502-0.907-1.116-1.641-1.732-2.154c-0.718,0.526-1.594,0.846-2.546,0.846c-0.756,0-1.459-0.207-2.076-0.55c0.496,1.093,0.803,2.2,0.861,3.19c0.093,1.516-0.381,2.641-1.329,3.165c-0.204,0.117-0.426,0.183-0.653,0.224c-0.056,0.392-0.095,0.801-0.095,1.231c0,2.412,0.935,4.361,2.088,4.361c0.694,0,1.039-0.71,1.204-1.796c0.163,1.079,0.508,1.796,1.199,1.796c1.146,0,2.09-1.95,2.09-4.361c0-0.542-0.052-1.06-0.139-1.538c0.492,0.472,0.966,0.667,1.418,0.407C29.671,21.305,29.541,19.146,28.374,17.043zM6.906,14.914c1.939,0,3.512-1.573,3.512-3.513c0-1.939-1.573-3.513-3.512-3.513c-1.94,0-3.514,1.573-3.514,3.513C3.392,13.341,4.966,14.914,6.906,14.914zM9.441,21.536c-1.593-0.885-1.739-3.524-0.457-6.354c-0.619,0.346-1.322,0.553-2.078,0.553c-0.956,0-1.832-0.321-2.549-0.846c-0.616,0.513-1.229,1.247-1.733,2.154c-1.167,2.104-1.295,4.262-0.287,4.821c0.451,0.257,0.925,0.064,1.414-0.407c-0.086,0.479-0.136,0.996-0.136,1.538c0,2.412,0.935,4.361,2.088,4.361c0.694,0,1.039-0.71,1.204-1.796c0.165,1.079,0.509,1.796,1.201,1.796c1.146,0,2.089-1.95,2.089-4.361c0-0.432-0.04-0.841-0.097-1.233C9.874,21.721,9.651,21.656,9.441,21.536z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Phone.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Phone.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Phone();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Phone = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Phone.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Phone\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M22.065,18.53c-0.467-0.29-1.167-0.21-1.556,0.179l-3.093,3.092c-0.389,0.389-1.025,0.389-1.414,0L9.05,14.848c-0.389-0.389-0.389-1.025,0-1.414l2.913-2.912c0.389-0.389,0.447-1.075,0.131-1.524L6.792,1.485C6.476,1.036,5.863,0.948,5.433,1.29c0,0-4.134,3.281-4.134,6.295c0,12.335,10,22.334,22.334,22.334c3.015,0,5.948-5.533,5.948-5.533c0.258-0.486,0.087-1.122-0.38-1.412L22.065,18.53z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Photo.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Photo.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Photo();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Photo = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Photo.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Photo\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.25,10.25H20.5v-1.5h-9.375v1.5h-3.75c-1.104,0-2,0.896-2,2v10.375c0,1.104,0.896,2,2,2H24.25c1.104,0,2-0.896,2-2V12.25C26.25,11.146,25.354,10.25,24.25,10.25zM15.812,23.499c-3.342,0-6.06-2.719-6.06-6.061c0-3.342,2.718-6.062,6.06-6.062s6.062,2.72,6.062,6.062C21.874,20.78,19.153,23.499,15.812,23.499zM15.812,13.375c-2.244,0-4.062,1.819-4.062,4.062c0,2.244,1.819,4.062,4.062,4.062c2.244,0,4.062-1.818,4.062-4.062C19.875,15.194,18.057,13.375,15.812,13.375z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Picker.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Picker.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Picker();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Picker = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Picker.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Picker\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M22.221,10.853c-0.111-0.414-0.261-0.412,0.221-1.539l1.66-3.519c0.021-0.051,0.2-0.412,0.192-0.946c0.015-0.529-0.313-1.289-1.119-1.642c-1.172-0.555-1.17-0.557-2.344-1.107c-0.784-0.396-1.581-0.171-1.979,0.179c-0.42,0.333-0.584,0.7-0.609,0.75L16.58,6.545c-0.564,1.084-0.655,0.97-1.048,1.147c-0.469,0.129-1.244,0.558-1.785,1.815c-1.108,2.346-1.108,2.346-1.108,2.346l-0.276,0.586l1.17,0.553l-3.599,7.623c-0.38,0.828-0.166,1.436-0.166,2.032c0.01,0.627-0.077,1.509-0.876,3.21l-0.276,0.586l3.517,1.661l0.276-0.585c0.808-1.699,1.431-2.326,1.922-2.717c0.46-0.381,1.066-0.6,1.465-1.42l3.599-7.618l1.172,0.554l0.279-0.589c0,0,0,0,1.105-2.345C22.578,12.166,22.419,11.301,22.221,10.853zM14.623,22.83c-0.156,0.353-0.413,0.439-1.091,0.955c-0.577,0.448-1.264,1.172-2.009,2.6l-1.191-0.562c0.628-1.48,0.75-2.474,0.73-3.203c-0.031-0.851-0.128-1.104,0.045-1.449l3.599-7.621l3.517,1.662L14.623,22.83z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Picture.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Picture.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Picture();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Picture = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Picture.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Picture\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M2.5,4.833v22.334h27V4.833H2.5zM25.25,25.25H6.75V6.75h18.5V25.25zM11.25,14c1.426,0,2.583-1.157,2.583-2.583c0-1.427-1.157-2.583-2.583-2.583c-1.427,0-2.583,1.157-2.583,2.583C8.667,12.843,9.823,14,11.25,14zM24.251,16.25l-4.917-4.917l-6.917,6.917L10.5,16.333l-2.752,2.752v5.165h16.503V16.25z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/PieChart.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/PieChart.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.PieChart();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.PieChart = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.PieChart.prototype */\n{\n\n NAME: \"draw2d.shape.icon.PieChart\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.583,15.917l1.648-10.779C16.692,5.056,16.145,5,15.583,5C9.554,5,4.666,9.888,4.666,15.917c0,6.029,4.888,10.917,10.917,10.917S26.5,21.946,26.5,15.917c0-0.256-0.021-0.507-0.038-0.759L15.583,15.917zM19.437,3.127l-1.648,10.779l10.879-0.759C28.313,8.026,24.436,3.886,19.437,3.127z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Plane.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Plane.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Plane();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Plane = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Plane.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Plane\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M19.671,8.11l-2.777,2.777l-3.837-0.861c0.362-0.505,0.916-1.683,0.464-2.135c-0.518-0.517-1.979,0.278-2.305,0.604l-0.913,0.913L7.614,8.804l-2.021,2.021l2.232,1.061l-0.082,0.082l1.701,1.701l0.688-0.687l3.164,1.504L9.571,18.21H6.413l-1.137,1.138l3.6,0.948l1.83,1.83l0.947,3.598l1.137-1.137V21.43l3.725-3.725l1.504,3.164l-0.687,0.687l1.702,1.701l0.081-0.081l1.062,2.231l2.02-2.02l-0.604-2.689l0.912-0.912c0.326-0.326,1.121-1.789,0.604-2.306c-0.452-0.452-1.63,0.101-2.135,0.464l-0.861-3.838l2.777-2.777c0.947-0.947,3.599-4.862,2.62-5.839C24.533,4.512,20.618,7.163,19.671,8.11z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Plugin.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Plugin.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Plugin();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Plugin = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Plugin.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Plugin\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M26.33,15.836l-3.893-1.545l3.136-7.9c0.28-0.705-0.064-1.505-0.771-1.785c-0.707-0.28-1.506,0.065-1.785,0.771l-3.136,7.9l-4.88-1.937l3.135-7.9c0.281-0.706-0.064-1.506-0.77-1.786c-0.706-0.279-1.506,0.065-1.785,0.771l-3.136,7.9L8.554,8.781l-1.614,4.066l2.15,0.854l-2.537,6.391c-0.61,1.54,0.143,3.283,1.683,3.895l1.626,0.646L8.985,26.84c-0.407,1.025,0.095,2.188,1.122,2.596l0.93,0.369c1.026,0.408,2.188-0.095,2.596-1.121l0.877-2.207l1.858,0.737c1.54,0.611,3.284-0.142,3.896-1.682l2.535-6.391l1.918,0.761L26.33,15.836z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Plus.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Plus.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Plus();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Plus = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Plus.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Plus\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.979,12.896 19.312,12.896 19.312,6.229 12.647,6.229 12.647,12.896 5.979,12.896 5.979,19.562 12.647,19.562 12.647,26.229 19.312,26.229 19.312,19.562 25.979,19.562z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Power.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Power.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Power();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Power = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Power.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Power\",\n\n /**\n * Creates a new icon element which are not assigned to any canvas.\n *\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.542,8.354c-1.47-1.766-2.896-2.617-3.025-2.695c-0.954-0.565-2.181-0.241-2.739,0.724c-0.556,0.961-0.24,2.194,0.705,2.763c0,0,0.001,0,0.002,0.001c0.001,0,0.002,0.001,0.003,0.002c0.001,0,0.003,0.001,0.004,0.001c0.102,0.062,1.124,0.729,2.08,1.925c1.003,1.261,1.933,3.017,1.937,5.438c-0.001,2.519-1.005,4.783-2.64,6.438c-1.637,1.652-3.877,2.668-6.368,2.669c-2.491-0.001-4.731-1.017-6.369-2.669c-1.635-1.654-2.639-3.919-2.64-6.438c0.005-2.499,0.995-4.292,2.035-5.558c0.517-0.625,1.043-1.098,1.425-1.401c0.191-0.152,0.346-0.263,0.445-0.329c0.049-0.034,0.085-0.058,0.104-0.069c0.005-0.004,0.009-0.006,0.012-0.008s0.004-0.002,0.004-0.002l0,0c0.946-0.567,1.262-1.802,0.705-2.763c-0.559-0.965-1.785-1.288-2.739-0.724c-0.128,0.079-1.555,0.93-3.024,2.696c-1.462,1.751-2.974,4.511-2.97,8.157C2.49,23.775,8.315,29.664,15.5,29.667c7.186-0.003,13.01-5.892,13.012-13.155C28.516,12.864,27.005,10.105,25.542,8.354zM15.5,17.523c1.105,0,2.002-0.907,2.002-2.023h-0.001V3.357c0-1.118-0.896-2.024-2.001-2.024s-2.002,0.906-2.002,2.024V15.5C13.498,16.616,14.395,17.523,15.5,17.523z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Ppt.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Ppt.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Ppt();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Ppt = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Ppt.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Ppt\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16.604,1.914c0-0.575-0.466-1.041-1.041-1.041s-1.041,0.466-1.041,1.041v1.04h2.082V1.914zM16.604,22.717h-2.082v3.207c0,0.574-4.225,4.031-4.225,4.031l2.468-0.003l2.807-2.673l3.013,2.693l2.272-0.039l-4.254-4.011V22.717L16.604,22.717zM28.566,7.113c0.86,0,1.56-0.698,1.56-1.56c0-0.861-0.698-1.56-1.56-1.56H2.561c-0.861,0-1.56,0.699-1.56,1.56c0,0.862,0.699,1.56,1.56,1.56h1.583v12.505l-0.932-0.022c-0.861,0-1.213,0.467-1.213,1.04c0,0.576,0.352,1.041,1.213,1.041h24.597c0.86,0,1.299-0.465,1.299-1.041c0-1.094-1.299-1.04-1.299-1.04l-0.804,0.109V7.113H28.566zM11.435,17.516c-3.771,0-4.194-4.191-4.194-4.191c0-4.096,4.162-4.161,4.162-4.161v4.161h4.193C15.596,17.516,11.435,17.516,11.435,17.516zM18.716,13.388h-1.071v-1.073h1.071V13.388zM18.716,10.267h-1.071V9.194h1.071V10.267zM23.314,13.388H20.26c-0.296,0-0.535-0.24-0.535-0.536c0-0.297,0.239-0.537,0.535-0.537h3.057c0.297,0,0.535,0.24,0.535,0.537C23.852,13.147,23.611,13.388,23.314,13.388zM23.314,10.267H20.26c-0.296,0-0.535-0.239-0.535-0.535c0-0.297,0.239-0.537,0.535-0.537h3.057c0.297,0,0.535,0.24,0.535,0.537C23.852,10.027,23.611,10.267,23.314,10.267z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Printer.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Printer.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Printer();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Printer = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Printer.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Printer\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.569,12.125h-2.12c-0.207-1.34-1.247-2.759-2.444-3.967c-1.277-1.24-2.654-2.234-3.784-2.37c-0.062-0.008-0.124-0.014-0.198-0.015H8.594c-0.119,0-0.235,0.047-0.319,0.132c-0.083,0.083-0.132,0.2-0.132,0.32v5.9H6.069c-1.104,0-2,0.896-2,2V23h4.074v2.079c0,0.118,0.046,0.23,0.132,0.318c0.086,0.085,0.199,0.131,0.319,0.131h13.445c0.118,0,0.232-0.046,0.318-0.131s0.138-0.199,0.138-0.318V23h4.074v-8.875C26.569,13.021,25.674,12.125,24.569,12.125zM21.589,24.626H9.043V21.5h12.546V24.626zM21.589,13.921c0-0.03,0-0.063-0.003-0.096c-0.015-0.068-0.062-0.135-0.124-0.2H9.043v-6.95h6.987v0.001c0.305-0.019,0.567,0.282,0.769,0.971c0.183,0.655,0.229,1.509,0.229,2.102c0.001,0.433-0.019,0.725-0.019,0.725l-0.037,0.478l0.48,0.005c0.002,0,1.109,0.014,2.196,0.26c1.044,0.226,1.86,0.675,1.938,1.184c0.003,0.045,0.003,0.091,0.003,0.133V13.921z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Quote.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Quote.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Quote();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Quote = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Quote.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Quote\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M14.505,5.873c-3.937,2.52-5.904,5.556-5.904,9.108c0,1.104,0.192,1.656,0.576,1.656l0.396-0.107c0.312-0.12,0.563-0.18,0.756-0.18c1.128,0,2.07,0.411,2.826,1.229c0.756,0.82,1.134,1.832,1.134,3.037c0,1.157-0.408,2.14-1.224,2.947c-0.816,0.807-1.801,1.211-2.952,1.211c-1.608,0-2.935-0.661-3.979-1.984c-1.044-1.321-1.565-2.98-1.565-4.977c0-2.259,0.443-4.327,1.332-6.203c0.888-1.875,2.243-3.57,4.067-5.085c1.824-1.514,2.988-2.272,3.492-2.272c0.336,0,0.612,0.162,0.828,0.486c0.216,0.324,0.324,0.606,0.324,0.846L14.505,5.873zM27.465,5.873c-3.937,2.52-5.904,5.556-5.904,9.108c0,1.104,0.192,1.656,0.576,1.656l0.396-0.107c0.312-0.12,0.563-0.18,0.756-0.18c1.104,0,2.04,0.411,2.808,1.229c0.769,0.82,1.152,1.832,1.152,3.037c0,1.157-0.408,2.14-1.224,2.947c-0.816,0.807-1.801,1.211-2.952,1.211c-1.608,0-2.935-0.661-3.979-1.984c-1.044-1.321-1.565-2.98-1.565-4.977c0-2.284,0.449-4.369,1.35-6.256c0.9-1.887,2.256-3.577,4.068-5.067c1.812-1.49,2.97-2.236,3.474-2.236c0.336,0,0.612,0.162,0.828,0.486c0.216,0.324,0.324,0.606,0.324,0.846L27.465,5.873z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Rain.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Rain.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Rain();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Rain = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Rain.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Rain\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.371,7.306c-0.092-3.924-3.301-7.077-7.248-7.079c-2.638,0.001-4.942,1.412-6.208,3.517c-0.595-0.327-1.28-0.517-2.01-0.517C7.626,3.229,5.772,5.033,5.689,7.293c-2.393,0.786-4.125,3.025-4.127,5.686c0,3.312,2.687,6,6,6v-0.002h15.874c3.312,0,6-2.688,6-6C29.434,10.34,27.732,8.11,25.371,7.306zM23.436,16.979H7.561c-2.209-0.006-3.997-1.792-4.001-4.001c-0.002-1.982,1.45-3.618,3.35-3.931c0.265-0.043,0.502-0.191,0.657-0.414C7.722,8.41,7.779,8.136,7.73,7.87C7.702,7.722,7.685,7.582,7.685,7.446C7.689,6.221,8.68,5.23,9.905,5.228c0.647,0,1.217,0.278,1.633,0.731c0.233,0.257,0.587,0.375,0.927,0.309c0.342-0.066,0.626-0.307,0.748-0.63c0.749-1.992,2.662-3.412,4.911-3.41c2.899,0.004,5.244,2.35,5.251,5.249c0,0.161-0.009,0.326-0.027,0.497c-0.049,0.517,0.305,0.984,0.815,1.079c1.86,0.344,3.274,1.966,3.271,3.923C27.43,15.186,25.645,16.973,23.436,16.979zM9.029,26.682c0-1.115,0.021-5.425,0.021-5.432c0.002-0.409-0.247-0.779-0.628-0.932c-0.38-0.152-0.815-0.059-1.099,0.24c-0.006,0.008-1.037,1.098-2.081,2.342c-0.523,0.627-1.048,1.287-1.463,1.896c-0.399,0.648-0.753,1.066-0.811,1.885C2.971,28.355,4.324,29.711,6,29.714C7.672,29.71,9.029,28.354,9.029,26.682zM4.971,26.727c0.091-0.349,1.081-1.719,1.993-2.764c0.025-0.029,0.051-0.061,0.076-0.089c-0.005,1.124-0.01,2.294-0.01,2.808c0,0.567-0.461,1.028-1.029,1.03C5.447,27.71,4.997,27.273,4.971,26.727zM16.425,26.682c0-1.115,0.021-5.424,0.021-5.43c0.002-0.41-0.247-0.779-0.628-0.934c-0.381-0.152-0.814-0.058-1.1,0.242c-0.006,0.008-1.035,1.094-2.08,2.342c-0.522,0.623-1.047,1.285-1.463,1.894c-0.399,0.649-0.753,1.068-0.809,1.888c0,1.672,1.354,3.028,3.029,3.028C15.068,29.711,16.425,28.354,16.425,26.682zM12.365,26.729c0.092-0.349,1.081-1.72,1.993-2.765c0.025-0.03,0.05-0.06,0.075-0.089c-0.005,1.123-0.011,2.294-0.011,2.807c-0.002,0.568-0.461,1.027-1.028,1.029C12.84,27.709,12.392,27.273,12.365,26.729zM23.271,20.317c-0.38-0.153-0.816-0.06-1.099,0.24c-0.009,0.008-1.037,1.097-2.08,2.342c-0.523,0.625-1.049,1.285-1.462,1.896c-0.402,0.649-0.754,1.067-0.812,1.886c0,1.672,1.354,3.029,3.03,3.029c1.673,0,3.027-1.357,3.027-3.029c0-1.115,0.022-5.425,0.022-5.431C23.9,20.84,23.651,20.47,23.271,20.317zM21.879,26.681c-0.004,0.568-0.463,1.027-1.031,1.029c-0.553-0.002-1.002-0.438-1.028-0.982c0.092-0.349,1.081-1.72,1.993-2.765c0.025-0.028,0.05-0.059,0.074-0.088C21.883,24.998,21.879,26.167,21.879,26.681z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Raphael.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Raphael.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Raphael();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Raphael = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Raphael.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Raphael\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M27.777,18.941c0.584-0.881,0.896-1.914,0.896-2.998c0-1.457-0.567-2.826-1.598-3.854l-6.91-6.911l-0.003,0.002c-0.985-0.988-2.35-1.6-3.851-1.6c-1.502,0-2.864,0.612-3.85,1.6H12.46l-6.911,6.911c-1.031,1.029-1.598,2.398-1.598,3.854c0,1.457,0.567,2.826,1.598,3.854l6.231,6.229c0.25,0.281,0.512,0.544,0.789,0.785c1.016,0.961,2.338,1.49,3.743,1.49c1.456,0,2.825-0.565,3.854-1.598l6.723-6.725c0.021-0.019,0.034-0.032,0.051-0.051l0.14-0.138c0.26-0.26,0.487-0.54,0.688-0.838c0.004-0.008,0.01-0.015,0.014-0.021L27.777,18.941zM26.658,15.946c0,0.678-0.197,1.326-0.561,1.879c-0.222,0.298-0.447,0.559-0.684,0.784L25.4,18.625c-1.105,1.052-2.354,1.35-3.414,1.35c-0.584,0-1.109-0.09-1.523-0.195c-2.422-0.608-5.056-2.692-6.261-5.732c0.649,0.274,1.362,0.426,2.11,0.426c2.811,0,5.129-2.141,5.415-4.877l3.924,3.925C26.301,14.167,26.658,15.029,26.658,15.946zM16.312,5.6c1.89,0,3.426,1.538,3.426,3.427c0,1.89-1.536,3.427-3.426,3.427c-1.889,0-3.426-1.537-3.426-3.427C12.886,7.138,14.423,5.6,16.312,5.6zM6.974,18.375c-0.649-0.648-1.007-1.512-1.007-2.429c0-0.917,0.357-1.78,1.007-2.428l2.655-2.656c-0.693,2.359-0.991,4.842-0.831,7.221c0.057,0.854,0.175,1.677,0.345,2.46L6.974,18.375zM11.514,11.592c0.583,4.562,4.195,9.066,8.455,10.143c0.693,0.179,1.375,0.265,2.033,0.265c0.01,0,0.02,0,0.027,0l-3.289,3.289c-0.648,0.646-1.512,1.006-2.428,1.006c-0.638,0-1.248-0.177-1.779-0.5l0.001-0.002c-0.209-0.142-0.408-0.295-0.603-0.461c-0.015-0.019-0.031-0.026-0.046-0.043l-0.665-0.664c-1.367-1.567-2.227-3.903-2.412-6.671C10.669,15.856,10.921,13.673,11.514,11.592\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/ReflectH.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/ReflectH.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.ReflectH();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.ReflectH = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.ReflectH.prototype */\n{\n\n NAME: \"draw2d.shape.icon.ReflectH\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.57,20.273h0.854v-1.705H15.57V20.273zM15.57,23.686h0.854V21.98H15.57V23.686zM15.57,27.096h0.854v-1.705H15.57V27.096zM15.57,29.689h0.854V28.8H15.57V29.689zM15.57,16.865h0.854V15.16H15.57V16.865zM15.57,3.225h0.854V1.52H15.57V3.225zM15.57,6.635h0.854V4.93H15.57V6.635zM15.57,10.045h0.854V8.34H15.57V10.045zM15.57,13.455h0.854V11.75H15.57V13.455zM18.41,3.327V25.46h12.015L18.41,3.327zM19.264,6.68l9.729,17.93h-9.729V6.68zM13.535,25.46V3.327L1.521,25.46H13.535z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/ReflectV.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/ReflectV.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.ReflectV();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.ReflectV = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.ReflectV.prototype */\n{\n\n NAME: \"draw2d.shape.icon.ReflectV\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M20.643,16.008v-0.854h-1.705v0.854H20.643zM24.053,16.008v-0.854h-1.705v0.854H24.053zM27.463,16.008v-0.854h-1.705v0.854H27.463zM30.059,16.008v-0.854h-0.891v0.854H30.059zM17.232,16.008v-0.854h-1.709v0.854H17.232zM3.593,16.008v-0.854H1.888v0.854H3.593zM7.003,16.008v-0.854H5.298v0.854H7.003zM10.414,16.008v-0.854H8.709v0.854H10.414zM13.824,16.008v-0.854h-1.705v0.854H13.824zM3.694,13.167h22.134V1.152L3.694,13.167zM7.048,12.314l17.929-9.729v9.729H7.048zM25.828,18.042H3.694l22.134,12.015V18.042z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Refresh.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Refresh.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Refresh();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Refresh = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Refresh.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Refresh\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.083,15.5c-0.009,4.739-3.844,8.574-8.583,8.583c-4.741-0.009-8.577-3.844-8.585-8.583c0.008-4.741,3.844-8.577,8.585-8.585c1.913,0,3.665,0.629,5.09,1.686l-1.782,1.783l8.429,2.256l-2.26-8.427l-1.89,1.89c-2.072-1.677-4.717-2.688-7.587-2.688C8.826,3.418,3.418,8.826,3.416,15.5C3.418,22.175,8.826,27.583,15.5,27.583S27.583,22.175,27.583,15.5H24.083z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Resize2.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Resize2.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Resize2();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Resize2 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Resize2.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Resize2\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M1.999,2.332v26.499H28.5V2.332H1.999zM26.499,26.832H4V12.5h8.167V4.332h14.332V26.832zM15.631,17.649l5.468,5.469l-1.208,1.206l5.482,1.469l-1.47-5.481l-1.195,1.195l-5.467-5.466l1.209-1.208l-5.482-1.469l1.468,5.48L15.631,17.649z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Rotate.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Rotate.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Rotate();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Rotate = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Rotate.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Rotate\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.5,5.27c1.914,0,3.666,0.629,5.089,1.686l-1.781,1.783l8.428,2.256l-2.26-8.427l-1.889,1.89C21.016,2.781,18.371,1.77,15.5,1.77C8.827,1.773,3.418,7.181,3.417,13.855c0.001,4.063,2.012,7.647,5.084,9.838v-4.887c-0.993-1.4-1.583-3.105-1.585-4.952C6.923,9.114,10.759,5.278,15.5,5.27zM9.5,29.23h12V12.355h-12V29.23z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Ruler.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Ruler.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Ruler();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Ruler = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Ruler.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Ruler\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M6.63,21.796l-5.122,5.121h25.743V1.175L6.63,21.796zM18.702,10.48c0.186-0.183,0.48-0.183,0.664,0l1.16,1.159c0.184,0.183,0.186,0.48,0.002,0.663c-0.092,0.091-0.213,0.137-0.332,0.137c-0.121,0-0.24-0.046-0.33-0.137l-1.164-1.159C18.519,10.96,18.519,10.664,18.702,10.48zM17.101,12.084c0.184-0.183,0.48-0.183,0.662,0l2.156,2.154c0.184,0.183,0.184,0.48,0.002,0.661c-0.092,0.092-0.213,0.139-0.334,0.139s-0.24-0.046-0.33-0.137l-2.156-2.154C16.917,12.564,16.917,12.267,17.101,12.084zM15.497,13.685c0.184-0.183,0.48-0.183,0.664,0l1.16,1.161c0.184,0.183,0.182,0.48-0.002,0.663c-0.092,0.092-0.211,0.138-0.33,0.138c-0.121,0-0.24-0.046-0.332-0.138l-1.16-1.16C15.314,14.166,15.314,13.868,15.497,13.685zM13.896,15.288c0.184-0.183,0.48-0.181,0.664,0.002l1.158,1.159c0.183,0.184,0.183,0.48,0,0.663c-0.092,0.092-0.212,0.138-0.332,0.138c-0.119,0-0.24-0.046-0.332-0.138l-1.158-1.161C13.713,15.767,13.713,15.471,13.896,15.288zM12.293,16.892c0.183-0.184,0.479-0.184,0.663,0l2.154,2.153c0.184,0.184,0.184,0.481,0,0.665c-0.092,0.092-0.211,0.138-0.33,0.138c-0.121,0-0.242-0.046-0.334-0.138l-2.153-2.155C12.11,17.371,12.11,17.075,12.293,16.892zM10.302,24.515c-0.091,0.093-0.212,0.139-0.332,0.139c-0.119,0-0.238-0.045-0.33-0.137l-2.154-2.153c-0.184-0.183-0.184-0.479,0-0.663s0.479-0.184,0.662,0l2.154,2.153C10.485,24.036,10.485,24.332,10.302,24.515zM10.912,21.918c-0.093,0.093-0.214,0.139-0.333,0.139c-0.12,0-0.24-0.045-0.33-0.137l-1.162-1.161c-0.184-0.183-0.184-0.479,0-0.66c0.184-0.185,0.48-0.187,0.664-0.003l1.161,1.162C11.095,21.438,11.095,21.735,10.912,21.918zM12.513,20.316c-0.092,0.092-0.211,0.138-0.332,0.138c-0.119,0-0.239-0.046-0.331-0.138l-1.159-1.16c-0.184-0.184-0.184-0.48,0-0.664s0.48-0.182,0.663,0.002l1.159,1.161C12.696,19.838,12.696,20.135,12.513,20.316zM22.25,21.917h-8.67l8.67-8.67V21.917zM22.13,10.7c-0.09,0.092-0.211,0.138-0.33,0.138c-0.121,0-0.242-0.046-0.334-0.138l-1.16-1.159c-0.184-0.183-0.184-0.479,0-0.663c0.182-0.183,0.479-0.183,0.662,0l1.16,1.159C22.312,10.221,22.313,10.517,22.13,10.7zM24.726,10.092c-0.092,0.092-0.213,0.137-0.332,0.137s-0.24-0.045-0.33-0.137l-2.154-2.154c-0.184-0.183-0.184-0.481,0-0.664s0.482-0.181,0.664,0.002l2.154,2.154C24.911,9.613,24.909,9.91,24.726,10.092z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Run.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Run.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Run();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Run = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Run.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Run\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M17.41,20.395l-0.778-2.723c0.228-0.2,0.442-0.414,0.644-0.643l2.721,0.778c0.287-0.418,0.534-0.862,0.755-1.323l-2.025-1.96c0.097-0.288,0.181-0.581,0.241-0.883l2.729-0.684c0.02-0.252,0.039-0.505,0.039-0.763s-0.02-0.51-0.039-0.762l-2.729-0.684c-0.061-0.302-0.145-0.595-0.241-0.883l2.026-1.96c-0.222-0.46-0.469-0.905-0.756-1.323l-2.721,0.777c-0.201-0.228-0.416-0.442-0.644-0.643l0.778-2.722c-0.418-0.286-0.863-0.534-1.324-0.755l-1.96,2.026c-0.287-0.097-0.581-0.18-0.883-0.241l-0.683-2.73c-0.253-0.019-0.505-0.039-0.763-0.039s-0.51,0.02-0.762,0.039l-0.684,2.73c-0.302,0.061-0.595,0.144-0.883,0.241l-1.96-2.026C7.048,3.463,6.604,3.71,6.186,3.997l0.778,2.722C6.736,6.919,6.521,7.134,6.321,7.361L3.599,6.583C3.312,7.001,3.065,7.446,2.844,7.907l2.026,1.96c-0.096,0.288-0.18,0.581-0.241,0.883l-2.73,0.684c-0.019,0.252-0.039,0.505-0.039,0.762s0.02,0.51,0.039,0.763l2.73,0.684c0.061,0.302,0.145,0.595,0.241,0.883l-2.026,1.96c0.221,0.46,0.468,0.905,0.755,1.323l2.722-0.778c0.2,0.229,0.415,0.442,0.643,0.643l-0.778,2.723c0.418,0.286,0.863,0.533,1.323,0.755l1.96-2.026c0.288,0.097,0.581,0.181,0.883,0.241l0.684,2.729c0.252,0.02,0.505,0.039,0.763,0.039s0.51-0.02,0.763-0.039l0.683-2.729c0.302-0.061,0.596-0.145,0.883-0.241l1.96,2.026C16.547,20.928,16.992,20.681,17.41,20.395zM11.798,15.594c-1.877,0-3.399-1.522-3.399-3.399s1.522-3.398,3.399-3.398s3.398,1.521,3.398,3.398S13.675,15.594,11.798,15.594zM27.29,22.699c0.019-0.547-0.06-1.104-0.23-1.654l1.244-1.773c-0.188-0.35-0.4-0.682-0.641-0.984l-2.122,0.445c-0.428-0.364-0.915-0.648-1.436-0.851l-0.611-2.079c-0.386-0.068-0.777-0.105-1.173-0.106l-0.974,1.936c-0.279,0.054-0.558,0.128-0.832,0.233c-0.257,0.098-0.497,0.22-0.727,0.353L17.782,17.4c-0.297,0.262-0.568,0.545-0.813,0.852l0.907,1.968c-0.259,0.495-0.437,1.028-0.519,1.585l-1.891,1.06c0.019,0.388,0.076,0.776,0.164,1.165l2.104,0.519c0.231,0.524,0.541,0.993,0.916,1.393l-0.352,2.138c0.32,0.23,0.66,0.428,1.013,0.6l1.715-1.32c0.536,0.141,1.097,0.195,1.662,0.15l1.452,1.607c0.2-0.057,0.399-0.118,0.596-0.193c0.175-0.066,0.34-0.144,0.505-0.223l0.037-2.165c0.455-0.339,0.843-0.747,1.152-1.206l2.161-0.134c0.152-0.359,0.279-0.732,0.368-1.115L27.29,22.699zM23.127,24.706c-1.201,0.458-2.545-0.144-3.004-1.345s0.143-2.546,1.344-3.005c1.201-0.458,2.547,0.144,3.006,1.345C24.931,22.902,24.328,24.247,23.127,24.706z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Rw.js\":\n/*!******************************!*\\\n !*** ./src/shape/icon/Rw.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Rw();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Rw = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Rw.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Rw\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M5.5,15.499,15.8,21.447,15.8,15.846,25.5,21.447,25.5,9.552,15.8,15.152,15.8,9.552z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Safari.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Safari.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Safari();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Safari = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Safari.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Safari\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16.154,5.135c-0.504,0-1,0.031-1.488,0.089l-0.036-0.18c-0.021-0.104-0.06-0.198-0.112-0.283c0.381-0.308,0.625-0.778,0.625-1.306c0-0.927-0.751-1.678-1.678-1.678s-1.678,0.751-1.678,1.678c0,0.745,0.485,1.376,1.157,1.595c-0.021,0.105-0.021,0.216,0,0.328l0.033,0.167C7.645,6.95,3.712,11.804,3.712,17.578c0,6.871,5.571,12.441,12.442,12.441c6.871,0,12.441-5.57,12.441-12.441C28.596,10.706,23.025,5.135,16.154,5.135zM16.369,8.1c4.455,0,8.183,3.116,9.123,7.287l-0.576,0.234c-0.148-0.681-0.755-1.191-1.48-1.191c-0.837,0-1.516,0.679-1.516,1.516c0,0.075,0.008,0.148,0.018,0.221l-2.771-0.028c-0.054-0.115-0.114-0.226-0.182-0.333l3.399-5.11l0.055-0.083l-4.766,4.059c-0.352-0.157-0.74-0.248-1.148-0.256l0.086-0.018l-1.177-2.585c0.64-0.177,1.111-0.763,1.111-1.459c0-0.837-0.678-1.515-1.516-1.515c-0.075,0-0.147,0.007-0.219,0.018l0.058-0.634C15.357,8.141,15.858,8.1,16.369,8.1zM12.146,3.455c0-0.727,0.591-1.318,1.318-1.318c0.727,0,1.318,0.591,1.318,1.318c0,0.425-0.203,0.802-0.516,1.043c-0.183-0.123-0.413-0.176-0.647-0.13c-0.226,0.045-0.413,0.174-0.535,0.349C12.542,4.553,12.146,4.049,12.146,3.455zM7.017,17.452c0-4.443,3.098-8.163,7.252-9.116l0.297,0.573c-0.61,0.196-1.051,0.768-1.051,1.442c0,0.837,0.678,1.516,1.515,1.516c0.068,0,0.135-0.006,0.2-0.015l-0.058,2.845l0.052-0.011c-0.442,0.204-0.824,0.513-1.116,0.895l0.093-0.147l-1.574-0.603l1.172,1.239l0.026-0.042c-0.19,0.371-0.306,0.788-0.324,1.229l-0.003-0.016l-2.623,1.209c-0.199-0.604-0.767-1.041-1.438-1.041c-0.837,0-1.516,0.678-1.516,1.516c0,0.064,0.005,0.128,0.013,0.191l-0.783-0.076C7.063,18.524,7.017,17.994,7.017,17.452zM16.369,26.805c-4.429,0-8.138-3.078-9.106-7.211l0.691-0.353c0.146,0.686,0.753,1.2,1.482,1.2c0.837,0,1.515-0.679,1.515-1.516c0-0.105-0.011-0.207-0.031-0.307l2.858,0.03c0.045,0.095,0.096,0.187,0.15,0.276l-3.45,5.277l0.227-0.195l4.529-3.92c0.336,0.153,0.705,0.248,1.094,0.266l-0.019,0.004l1.226,2.627c-0.655,0.166-1.142,0.76-1.142,1.468c0,0.837,0.678,1.515,1.516,1.515c0.076,0,0.151-0.007,0.225-0.018l0.004,0.688C17.566,26.746,16.975,26.805,16.369,26.805zM18.662,26.521l-0.389-0.6c0.661-0.164,1.152-0.759,1.152-1.47c0-0.837-0.68-1.516-1.516-1.516c-0.066,0-0.13,0.005-0.193,0.014v-2.86l-0.025,0.004c0.409-0.185,0.77-0.459,1.055-0.798l1.516,0.659l-1.104-1.304c0.158-0.335,0.256-0.704,0.278-1.095l2.552-1.164c0.19,0.618,0.766,1.068,1.447,1.068c0.838,0,1.516-0.679,1.516-1.516c0-0.069-0.006-0.137-0.016-0.204l0.65,0.12c0.089,0.517,0.136,1.049,0.136,1.591C25.722,21.826,22.719,25.499,18.662,26.521z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/ScrewDriver.js\":\n/*!***************************************!*\\\n !*** ./src/shape/icon/ScrewDriver.js ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.ScrewDriver();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.ScrewDriver = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.ScrewDriver.prototype */\n{\n\n NAME: \"draw2d.shape.icon.ScrewDriver\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M19.387,14.373c2.119-2.619,5.322-6.77,5.149-7.75c-0.128-0.729-0.882-1.547-1.763-2.171c-0.883-0.625-1.916-1.044-2.645-0.915c-0.98,0.173-3.786,4.603-5.521,7.49c-0.208,0.344,0.328,1.177,0.156,1.468c-0.172,0.292-1.052,0.042-1.18,0.261c-0.263,0.451-0.417,0.722-0.417,0.722s-0.553,0.823,1.163,2.163l-5.233,7.473c-0.267,0.381-1.456,0.459-1.456,0.459l-1.184,3.312l0.859,0.602l2.708-2.246c0,0-0.334-1.143-0.068-1.523l5.242-7.489c1.719,1,2.377,0.336,2.377,0.336s0.201-0.238,0.536-0.639c0.161-0.194-0.374-0.936-0.159-1.197C18.169,14.467,19.133,14.685,19.387,14.373z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Search.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Search.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Search();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Search = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Search.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Search\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M29.772,26.433l-7.126-7.126c0.96-1.583,1.523-3.435,1.524-5.421C24.169,8.093,19.478,3.401,13.688,3.399C7.897,3.401,3.204,8.093,3.204,13.885c0,5.789,4.693,10.481,10.484,10.481c1.987,0,3.839-0.563,5.422-1.523l7.128,7.127L29.772,26.433zM7.203,13.885c0.006-3.582,2.903-6.478,6.484-6.486c3.579,0.008,6.478,2.904,6.484,6.486c-0.007,3.58-2.905,6.476-6.484,6.484C10.106,20.361,7.209,17.465,7.203,13.885z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Sencha.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Sencha.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Sencha();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Sencha = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Sencha.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Sencha\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M18.265,22.734c1.365,0.662,2.309,2.062,2.309,3.682c0,1.566-0.881,2.928-2.176,3.615l1.922-0.98c3.16-1.58,5.332-4.846,5.332-8.617c0-3.719-2.109-6.945-5.195-8.547l-6.272-3.144c-1.366-0.662-2.308-2.062-2.308-3.682c0-1.567,0.881-2.928,2.175-3.614L12.13,2.428c-3.161,1.578-5.332,4.843-5.332,8.616c0,3.718,2.108,6.944,5.195,8.546L18.265,22.734z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Settings.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Settings.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Settings();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Settings = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Settings.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Settings\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16.015,12.03c-2.156,0-3.903,1.747-3.903,3.903c0,2.155,1.747,3.903,3.903,3.903c0.494,0,0.962-0.102,1.397-0.27l0.836,1.285l1.359-0.885l-0.831-1.276c0.705-0.706,1.142-1.681,1.142-2.757C19.918,13.777,18.171,12.03,16.015,12.03zM16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM26.174,20.809c-0.241,0.504-0.513,0.99-0.826,1.45L22.19,21.58c-0.481,0.526-1.029,0.994-1.634,1.385l0.119,3.202c-0.507,0.23-1.028,0.421-1.569,0.57l-1.955-2.514c-0.372,0.051-0.75,0.086-1.136,0.086c-0.356,0-0.706-0.029-1.051-0.074l-1.945,2.5c-0.541-0.151-1.065-0.342-1.57-0.569l0.117-3.146c-0.634-0.398-1.208-0.88-1.712-1.427L6.78,22.251c-0.313-0.456-0.583-0.944-0.826-1.448l2.088-2.309c-0.226-0.703-0.354-1.451-0.385-2.223l-2.768-1.464c0.055-0.563,0.165-1.107,0.301-1.643l3.084-0.427c0.29-0.702,0.675-1.352,1.135-1.942L8.227,7.894c0.399-0.389,0.83-0.744,1.283-1.07l2.663,1.672c0.65-0.337,1.349-0.593,2.085-0.75l0.968-3.001c0.278-0.021,0.555-0.042,0.837-0.042c0.282,0,0.56,0.022,0.837,0.042l0.976,3.028c0.72,0.163,1.401,0.416,2.036,0.75l2.704-1.697c0.455,0.326,0.887,0.681,1.285,1.07l-1.216,2.986c0.428,0.564,0.793,1.181,1.068,1.845l3.185,0.441c0.135,0.535,0.247,1.081,0.302,1.643l-2.867,1.516c-0.034,0.726-0.15,1.43-0.355,2.1L26.174,20.809z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/SettingsAlt.js\":\n/*!***************************************!*\\\n !*** ./src/shape/icon/SettingsAlt.js ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.SettingsAlt();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.SettingsAlt = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.SettingsAlt.prototype */\n{\n\n NAME: \"draw2d.shape.icon.SettingsAlt\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM24.386,14.968c-1.451,1.669-3.706,2.221-5.685,1.586l-7.188,8.266c-0.766,0.88-2.099,0.97-2.979,0.205s-0.973-2.099-0.208-2.979l7.198-8.275c-0.893-1.865-0.657-4.164,0.787-5.824c1.367-1.575,3.453-2.151,5.348-1.674l-2.754,3.212l0.901,2.621l2.722,0.529l2.761-3.22C26.037,11.229,25.762,13.387,24.386,14.968z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Shuffle.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Shuffle.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Shuffle();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Shuffle = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Shuffle.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Shuffle\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M21.786,20.654c-0.618-0.195-1.407-0.703-2.291-1.587c-0.757-0.742-1.539-1.698-2.34-2.741c-0.191,0.256-0.382,0.51-0.574,0.77c-0.524,0.709-1.059,1.424-1.604,2.127c1.904,2.31,3.88,4.578,6.809,4.952v2.701l7.556-4.362l-7.556-4.362V20.654zM9.192,11.933c0.756,0.741,1.538,1.697,2.339,2.739c0.195-0.262,0.39-0.521,0.587-0.788c0.52-0.703,1.051-1.412,1.592-2.11c-2.032-2.463-4.133-4.907-7.396-5.025h-3.5v3.5h3.5C6.969,10.223,7.996,10.735,9.192,11.933zM21.786,10.341v2.535l7.556-4.363l-7.556-4.363v2.647c-1.904,0.219-3.425,1.348-4.751,2.644c-2.196,2.183-4.116,5.167-6.011,7.538c-1.867,2.438-3.741,3.888-4.712,3.771h-3.5v3.5h3.5c2.185-0.029,3.879-1.266,5.34-2.693c2.194-2.184,4.116-5.167,6.009-7.538C19.205,12.003,20.746,10.679,21.786,10.341z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Skull.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Skull.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Skull();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Skull = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Skull.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Skull\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.947,11.14c0-5.174-3.979-9.406-10.613-9.406c-6.633,0-10.282,4.232-10.282,9.406c0,5.174,1.459,4.511,1.459,7.43c0,1.095-1.061,0.564-1.061,2.919c0,2.587,3.615,2.223,4.677,3.283c1.061,1.062,0.961,3.019,0.961,3.019s0.199,0.796,0.564,0.563c0,0,0.232,0.564,0.498,0.232c0,0,0.265,0.563,0.531,0.1c0,0,0.265,0.631,0.696,0.166c0,0,0.431,0.63,0.929,0.133c0,0,0.564,0.53,1.194,0.133c0.63,0.397,1.194-0.133,1.194-0.133c0.497,0.497,0.929-0.133,0.929-0.133c0.432,0.465,0.695-0.166,0.695-0.166c0.268,0.464,0.531-0.1,0.531-0.1c0.266,0.332,0.498-0.232,0.498-0.232c0.365,0.232,0.564-0.563,0.564-0.563s-0.1-1.957,0.961-3.019c1.062-1.061,4.676-0.696,4.676-3.283c0-2.354-1.061-1.824-1.061-2.919C24.488,15.651,25.947,16.314,25.947,11.14zM10.333,20.992c-1.783,0.285-2.59-0.215-2.785-1.492c-0.508-3.328,2.555-3.866,4.079-3.683c0.731,0.088,1.99,0.862,1.99,1.825C13.617,20.229,11.992,20.727,10.333,20.992zM16.461,25.303c-0.331,0-0.862-0.431-0.895-1.227c-0.033,0.796-0.63,1.227-0.961,1.227c-0.332,0-0.83-0.331-0.863-1.127c-0.033-0.796,1.028-4.013,1.792-4.013c0.762,0,1.824,3.217,1.791,4.013S16.794,25.303,16.461,25.303zM23.361,19.5c-0.195,1.277-1.004,1.777-2.787,1.492c-1.658-0.266-3.283-0.763-3.283-3.35c0-0.963,1.258-1.737,1.99-1.825C20.805,15.634,23.869,16.172,23.361,19.5z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Skype.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Skype.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Skype();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Skype = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Skype.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Skype\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.777,18.438c0.209-0.948,0.318-1.934,0.318-2.944c0-7.578-6.144-13.722-13.724-13.722c-0.799,0-1.584,0.069-2.346,0.2C11.801,1.199,10.35,0.75,8.793,0.75c-4.395,0-7.958,3.562-7.958,7.958c0,1.47,0.399,2.845,1.094,4.024c-0.183,0.893-0.277,1.814-0.277,2.76c0,7.58,6.144,13.723,13.722,13.723c0.859,0,1.699-0.078,2.515-0.23c1.119,0.604,2.399,0.945,3.762,0.945c4.395,0,7.957-3.562,7.957-7.959C29.605,20.701,29.309,19.502,28.777,18.438zM22.412,22.051c-0.635,0.898-1.573,1.609-2.789,2.115c-1.203,0.5-2.646,0.754-4.287,0.754c-1.971,0-3.624-0.346-4.914-1.031C9.5,23.391,8.74,22.717,8.163,21.885c-0.583-0.842-0.879-1.676-0.879-2.479c0-0.503,0.192-0.939,0.573-1.296c0.375-0.354,0.857-0.532,1.432-0.532c0.471,0,0.878,0.141,1.209,0.422c0.315,0.269,0.586,0.662,0.805,1.174c0.242,0.558,0.508,1.027,0.788,1.397c0.269,0.355,0.656,0.656,1.151,0.89c0.497,0.235,1.168,0.354,1.992,0.354c1.135,0,2.064-0.241,2.764-0.721c0.684-0.465,1.016-1.025,1.016-1.711c0-0.543-0.173-0.969-0.529-1.303c-0.373-0.348-0.865-0.621-1.465-0.807c-0.623-0.195-1.47-0.404-2.518-0.623c-1.424-0.306-2.634-0.668-3.596-1.076c-0.984-0.419-1.777-1-2.357-1.727c-0.59-0.736-0.889-1.662-0.889-2.75c0-1.036,0.314-1.971,0.933-2.776c0.613-0.8,1.51-1.423,2.663-1.849c1.139-0.422,2.494-0.635,4.027-0.635c1.225,0,2.303,0.141,3.201,0.421c0.904,0.282,1.668,0.662,2.267,1.13c0.604,0.472,1.054,0.977,1.335,1.5c0.284,0.529,0.43,1.057,0.43,1.565c0,0.49-0.189,0.937-0.563,1.324c-0.375,0.391-0.851,0.589-1.408,0.589c-0.509,0-0.905-0.124-1.183-0.369c-0.258-0.227-0.523-0.58-0.819-1.09c-0.342-0.65-0.756-1.162-1.229-1.523c-0.463-0.351-1.232-0.529-2.292-0.529c-0.984,0-1.784,0.197-2.379,0.588c-0.572,0.375-0.85,0.805-0.85,1.314c0,0.312,0.09,0.574,0.273,0.799c0.195,0.238,0.471,0.447,0.818,0.621c0.36,0.182,0.732,0.326,1.104,0.429c0.382,0.106,1.021,0.263,1.899,0.466c1.11,0.238,2.131,0.506,3.034,0.793c0.913,0.293,1.703,0.654,2.348,1.072c0.656,0.429,1.178,0.979,1.547,1.635c0.369,0.658,0.558,1.471,0.558,2.416C23.371,20.119,23.049,21.148,22.412,22.051z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/SlideShare.js\":\n/*!**************************************!*\\\n !*** ./src/shape/icon/SlideShare.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.SlideShare();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.SlideShare = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.SlideShare.prototype */\n{\n\n NAME: \"draw2d.shape.icon.SlideShare\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.952,12.795c-0.956,1.062-5.073,2.409-5.604,2.409h-4.513c-0.749,0-1.877,0.147-2.408,0.484c0.061,0.054,0.122,0.108,0.181,0.163c0.408,0.379,1.362,0.913,2.206,0.913c0.397,0,0.723-0.115,1-0.354c1.178-1.007,1.79-1.125,2.145-1.125c0.421,0,0.783,0.193,0.996,0.531c0.4,0.626,0.106,1.445-0.194,2.087c-0.718,1.524-3.058,3.171-5.595,3.171c-0.002,0-0.002,0-0.004,0c-0.354,0-0.701-0.033-1.033-0.099v3.251c0,0.742,1.033,2.533,4.167,2.533s3.955-3.701,3.955-4.338v-4.512c2.23-1.169,4.512-1.805,5.604-3.895C30.882,12.05,29.907,11.733,28.952,12.795zM21.942,17.521c0.796-1.699-0.053-1.699-1.54-0.425s-3.665,0.105-4.408-0.585c-0.743-0.689-1.486-1.22-2.814-1.167c-1.328,0.053-4.46-0.161-6.267-0.585c-1.805-0.425-4.895-3-5.15-2.335c-0.266,0.69,0.211,1.168,1.168,2.335c0.955,1.169,5.075,2.778,5.075,2.778s0,3.453,0,4.886c0,1.435,2.973,3.61,4.512,3.61s2.708-1.062,2.708-1.806v-4.512C17.775,21.045,21.146,19.221,21.942,17.521zM20.342,13.73c1.744,0,3.159-1.414,3.159-3.158c0-1.745-1.415-3.159-3.159-3.159s-3.158,1.414-3.158,3.159C17.184,12.316,18.598,13.73,20.342,13.73zM12.019,13.73c1.744,0,3.158-1.414,3.158-3.158c0-1.745-1.414-3.159-3.158-3.159c-1.745,0-3.159,1.414-3.159,3.159C8.86,12.316,10.273,13.73,12.019,13.73z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Smile.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Smile.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Smile();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Smile = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Smile.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Smile\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM20.729,7.375c0.934,0,1.688,1.483,1.688,3.312S21.661,14,20.729,14c-0.932,0-1.688-1.483-1.688-3.312S19.798,7.375,20.729,7.375zM11.104,7.375c0.932,0,1.688,1.483,1.688,3.312S12.037,14,11.104,14s-1.688-1.483-1.688-3.312S10.172,7.375,11.104,7.375zM16.021,26c-2.873,0-5.563-1.757-7.879-4.811c2.397,1.564,5.021,2.436,7.774,2.436c2.923,0,5.701-0.98,8.215-2.734C21.766,24.132,18.99,26,16.021,26z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Smile2.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Smile2.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Smile2();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Smile2 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Smile2.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Smile2\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM16,29.534C8.539,29.534,2.466,23.462,2.466,16C2.466,8.539,8.539,2.466,16,2.466c7.462,0,13.535,6.072,13.535,13.533C29.534,23.462,23.462,29.534,16,29.534zM11.104,14c0.932,0,1.688-1.483,1.688-3.312s-0.755-3.312-1.688-3.312s-1.688,1.483-1.688,3.312S10.172,14,11.104,14zM20.729,14c0.934,0,1.688-1.483,1.688-3.312s-0.756-3.312-1.688-3.312c-0.932,0-1.688,1.483-1.688,3.312S19.798,14,20.729,14zM8.143,21.189C10.458,24.243,13.148,26,16.021,26c2.969,0,5.745-1.868,8.11-5.109c-2.515,1.754-5.292,2.734-8.215,2.734C13.164,23.625,10.54,22.756,8.143,21.189z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Snow.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Snow.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Snow();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Snow = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Snow.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Snow\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.372,6.912c-0.093-3.925-3.302-7.078-7.248-7.08c-2.638,0.002-4.942,1.412-6.208,3.518c-0.595-0.327-1.28-0.518-2.01-0.518C7.627,2.834,5.773,4.639,5.69,6.898c-2.393,0.786-4.125,3.025-4.127,5.686c0,3.312,2.687,6,6,6v-0.002h15.875c3.312,0,6-2.688,6-6C29.434,9.944,27.732,7.715,25.372,6.912zM23.436,16.584H7.562c-2.209-0.006-3.997-1.793-4.001-4c-0.002-1.983,1.45-3.619,3.35-3.933c0.265-0.043,0.502-0.19,0.657-0.414C7.723,8.015,7.78,7.74,7.731,7.475C7.703,7.326,7.686,7.187,7.686,7.051c0.004-1.225,0.995-2.217,2.22-2.219c0.647,0,1.217,0.278,1.633,0.731c0.233,0.257,0.587,0.375,0.927,0.31c0.342-0.066,0.626-0.308,0.748-0.631c0.749-1.992,2.662-3.412,4.911-3.41c2.898,0.004,5.244,2.351,5.251,5.25c0,0.16-0.009,0.325-0.026,0.496c-0.05,0.518,0.305,0.984,0.814,1.079c1.859,0.345,3.273,1.966,3.271,3.923C27.43,14.791,25.645,16.578,23.436,16.584zM16.667,24.09l1.119-1.119c0.389-0.391,0.389-1.025,0-1.416c-0.392-0.391-1.025-0.391-1.415,0l-1.119,1.119l-1.119-1.119c-0.391-0.391-1.025-0.391-1.415,0c-0.391,0.391-0.391,1.025,0,1.416l1.118,1.117l-1.12,1.121c-0.389,0.393-0.389,1.021,0,1.414c0.195,0.188,0.451,0.293,0.707,0.293c0.256,0,0.512-0.104,0.708-0.293l1.12-1.119l1.12,1.119c0.195,0.188,0.451,0.293,0.708,0.293c0.256,0,0.512-0.104,0.707-0.293c0.391-0.396,0.391-1.021,0-1.414L16.667,24.09zM25.119,21.817c-0.393-0.392-1.025-0.392-1.415,0l-1.12,1.121l-1.12-1.121c-0.391-0.392-1.022-0.392-1.414,0c-0.39,0.392-0.39,1.022,0,1.416l1.119,1.119l-1.119,1.119c-0.39,0.391-0.39,1.022,0,1.413c0.195,0.195,0.451,0.294,0.707,0.294c0.257,0,0.513-0.099,0.707-0.294l1.12-1.118l1.12,1.118c0.194,0.195,0.45,0.294,0.707,0.294c0.256,0,0.513-0.099,0.708-0.294c0.389-0.391,0.389-1.022,0-1.413l-1.12-1.119l1.12-1.119C25.507,22.842,25.507,22.209,25.119,21.817zM9.334,23.953l1.119-1.119c0.389-0.394,0.389-1.021,0-1.414c-0.391-0.394-1.025-0.394-1.415,0l-1.119,1.119l-1.12-1.121c-0.391-0.39-1.023-0.39-1.415,0c-0.391,0.396-0.391,1.024,0,1.418l1.119,1.117l-1.12,1.118c-0.391,0.394-0.391,1.025,0,1.414c0.196,0.195,0.452,0.293,0.708,0.293c0.256,0,0.511-0.098,0.707-0.293l1.12-1.119l1.121,1.121c0.195,0.195,0.451,0.293,0.707,0.293s0.513-0.098,0.708-0.293c0.389-0.391,0.389-1.022,0-1.416L9.334,23.953z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Split.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Split.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Split();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Split = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Split.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Split\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M21.786,20.698c-1.792-0.237-2.912-1.331-4.358-2.886c-0.697-0.751-1.428-1.577-2.324-2.319c1.396-1.165,2.411-2.519,3.483-3.503c1.01-0.92,1.901-1.519,3.199-1.688v2.574l7.556-4.363L21.786,4.15v2.652c-3.34,0.266-5.45,2.378-6.934,4.013c-0.819,0.896-1.537,1.692-2.212,2.192c-0.685,0.501-1.227,0.731-2.013,0.742c-0.001,0-0.002,0-0.003,0H2.812v3.5h0.001v0.001c0,0,0.046-0.001,0.136-0.001h7.677c0.786,0.011,1.33,0.241,2.017,0.743c1.021,0.743,2.095,2.181,3.552,3.568c1.312,1.258,3.162,2.46,5.592,2.649v2.664l7.556-4.36l-7.556-4.361V20.698z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Star.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Star.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Star();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Star = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Star.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Star\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,22.375L7.116,28.83l3.396-10.438l-8.883-6.458l10.979,0.002L16.002,1.5l3.391,10.434h10.981l-8.886,6.457l3.396,10.439L16,22.375L16,22.375z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Star2.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Star2.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Star2();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Star2 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Star2.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Star2\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M14.615,4.928c0.487-0.986,1.284-0.986,1.771,0l2.249,4.554c0.486,0.986,1.775,1.923,2.864,2.081l5.024,0.73c1.089,0.158,1.335,0.916,0.547,1.684l-3.636,3.544c-0.788,0.769-1.28,2.283-1.095,3.368l0.859,5.004c0.186,1.085-0.459,1.553-1.433,1.041l-4.495-2.363c-0.974-0.512-2.567-0.512-3.541,0l-4.495,2.363c-0.974,0.512-1.618,0.044-1.432-1.041l0.858-5.004c0.186-1.085-0.307-2.6-1.094-3.368L3.93,13.977c-0.788-0.768-0.542-1.525,0.547-1.684l5.026-0.73c1.088-0.158,2.377-1.095,2.864-2.081L14.615,4.928z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Star2Off.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Star2Off.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Star2Off();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Star2Off = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Star2Off.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Star2Off\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M26.522,12.293l-5.024-0.73c-1.089-0.158-2.378-1.095-2.864-2.081l-2.249-4.554c-0.487-0.986-1.284-0.986-1.771,0l-2.247,4.554c-0.487,0.986-1.776,1.923-2.864,2.081l-5.026,0.73c-1.088,0.158-1.334,0.916-0.547,1.684l3.637,3.544c0.788,0.769,1.28,2.283,1.094,3.368l-0.858,5.004c-0.186,1.085,0.458,1.553,1.432,1.041l4.495-2.363c0.974-0.512,2.566-0.512,3.541,0l4.495,2.363c0.974,0.512,1.618,0.044,1.433-1.041l-0.859-5.004c-0.186-1.085,0.307-2.6,1.095-3.368l3.636-3.544C27.857,13.209,27.611,12.452,26.522,12.293zM22.037,16.089c-1.266,1.232-1.966,3.394-1.67,5.137l0.514,2.984l-2.679-1.409c-0.757-0.396-1.715-0.612-2.702-0.612s-1.945,0.216-2.7,0.61l-2.679,1.409l0.511-2.982c0.297-1.743-0.404-3.905-1.671-5.137l-2.166-2.112l2.995-0.435c1.754-0.255,3.592-1.591,4.373-3.175L15.5,7.652l1.342,2.716c0.781,1.583,2.617,2.92,4.369,3.173l2.992,0.435L22.037,16.089z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Star3.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Star3.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Star3();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Star3 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Star3.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Star3\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M22.441,28.181c-0.419,0-0.835-0.132-1.189-0.392l-5.751-4.247L9.75,27.789c-0.354,0.26-0.771,0.392-1.189,0.392c-0.412,0-0.824-0.128-1.175-0.384c-0.707-0.511-1-1.422-0.723-2.25l2.26-6.783l-5.815-4.158c-0.71-0.509-1.009-1.416-0.74-2.246c0.268-0.826,1.037-1.382,1.904-1.382c0.004,0,0.01,0,0.014,0l7.15,0.056l2.157-6.816c0.262-0.831,1.035-1.397,1.906-1.397s1.645,0.566,1.906,1.397l2.155,6.816l7.15-0.056c0.004,0,0.01,0,0.015,0c0.867,0,1.636,0.556,1.903,1.382c0.271,0.831-0.028,1.737-0.739,2.246l-5.815,4.158l2.263,6.783c0.276,0.826-0.017,1.737-0.721,2.25C23.268,28.053,22.854,28.181,22.441,28.181L22.441,28.181z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Star3Off.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Star3Off.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Star3Off();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Star3Off = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Star3Off.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Star3Off\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M28.631,12.359c-0.268-0.826-1.036-1.382-1.903-1.382h-0.015l-7.15,0.056l-2.155-6.816c-0.262-0.831-1.035-1.397-1.906-1.397s-1.645,0.566-1.906,1.397l-2.157,6.816l-7.15-0.056H4.273c-0.868,0-1.636,0.556-1.904,1.382c-0.27,0.831,0.029,1.737,0.74,2.246l5.815,4.158l-2.26,6.783c-0.276,0.828,0.017,1.739,0.723,2.25c0.351,0.256,0.763,0.384,1.175,0.384c0.418,0,0.834-0.132,1.189-0.392l5.751-4.247l5.751,4.247c0.354,0.26,0.771,0.392,1.189,0.392c0.412,0,0.826-0.128,1.177-0.384c0.704-0.513,0.997-1.424,0.721-2.25l-2.263-6.783l5.815-4.158C28.603,14.097,28.901,13.19,28.631,12.359zM19.712,17.996l2.729,8.184l-6.94-5.125L8.56,26.18l2.729-8.184l-7.019-5.018l8.627,0.066L15.5,4.82l2.603,8.225l8.627-0.066L19.712,17.996z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/StarOff.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/StarOff.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.StarOff();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.StarOff = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.StarOff.prototype */\n{\n\n NAME: \"draw2d.shape.icon.StarOff\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,22.375L7.116,28.83l3.396-10.438l-8.883-6.458l10.979,0.002L16.002,1.5l3.391,10.434h10.981l-8.886,6.457l3.396,10.439L16,22.375L16,22.375zM22.979,26.209l-2.664-8.205l6.979-5.062h-8.627L16,4.729l-2.666,8.206H4.708l6.979,5.07l-2.666,8.203L16,21.146L22.979,26.209L22.979,26.209z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Start.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Start.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Start();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Start = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Start.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Start\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.316,5.318,9.833,13.682,9.833,5.5,5.5,5.5,5.5,25.5,9.833,25.5,9.833,17.318,24.316,25.682z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Sticker.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Sticker.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Sticker();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Sticker = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Sticker.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Sticker\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.5,1.999c-1.042,0-1.916,0.377-2.57,1.088L2.895,13.138C2.302,13.784,1.999,14.58,1.999,15.5C1.999,22.943,8.057,29,15.5,29S29,22.943,29,15.5S22.943,1.999,15.5,1.999zM15.5,28C8.596,28,3,22.404,3,15.5c0-3.452,5.239-2.737,7.501-4.999C12.762,8.239,12.048,3,15.5,3C22.404,3,28,8.597,28,15.5S22.404,28,15.5,28z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Stop.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Stop.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Stop();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Stop = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Stop.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Stop\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M5.5,5.5h20v20h-20z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/StopWatch.js\":\n/*!*************************************!*\\\n !*** ./src/shape/icon/StopWatch.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.StopWatch();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.StopWatch = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.StopWatch.prototype */\n{\n\n NAME: \"draw2d.shape.icon.StopWatch\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M27.216,18.533c0-3.636-1.655-6.883-4.253-9.032l0.733-0.998l0.482,0.354c0.198,0.146,0.481,0.104,0.628-0.097l0.442-0.604c0.146-0.198,0.103-0.482-0.097-0.628l-2.052-1.506c-0.199-0.146-0.481-0.103-0.628,0.097L22.03,6.724c-0.146,0.199-0.104,0.482,0.096,0.628l0.483,0.354l-0.736,1.003c-1.28-0.834-2.734-1.419-4.296-1.699c0.847-0.635,1.402-1.638,1.403-2.778h-0.002c0-1.922-1.557-3.48-3.479-3.48c-1.925,0-3.48,1.559-3.48,3.48c0,1.141,0.556,2.144,1.401,2.778c-1.549,0.277-2.99,0.857-4.265,1.68L8.424,7.684l0.484-0.353c0.198-0.145,0.245-0.428,0.098-0.628l-0.44-0.604C8.42,5.899,8.136,5.855,7.937,6.001L5.881,7.5c-0.2,0.146-0.243,0.428-0.099,0.628l0.442,0.604c0.145,0.2,0.428,0.244,0.627,0.099l0.483-0.354l0.729,0.999c-2.615,2.149-4.282,5.407-4.282,9.057c0,6.471,5.245,11.716,11.718,11.716c6.47,0,11.716-5.243,11.718-11.716H27.216zM12.918,4.231c0.002-1.425,1.155-2.58,2.582-2.582c1.426,0.002,2.579,1.157,2.581,2.582c-0.002,1.192-0.812,2.184-1.908,2.482v-1.77h0.6c0.246,0,0.449-0.203,0.449-0.449V3.746c0-0.247-0.203-0.449-0.449-0.449h-2.545c-0.247,0-0.449,0.202-0.449,0.449v0.749c0,0.246,0.202,0.449,0.449,0.449h0.599v1.77C13.729,6.415,12.919,5.424,12.918,4.231zM15.5,27.554c-4.983-0.008-9.015-4.038-9.022-9.021c0.008-4.982,4.039-9.013,9.022-9.022c4.981,0.01,9.013,4.04,9.021,9.022C24.513,23.514,20.481,27.546,15.5,27.554zM15.5,12.138c0.476,0,0.861-0.385,0.861-0.86s-0.386-0.861-0.861-0.861s-0.861,0.386-0.861,0.861S15.024,12.138,15.5,12.138zM15.5,24.927c-0.476,0-0.861,0.386-0.861,0.861s0.386,0.861,0.861,0.861s0.861-0.386,0.861-0.861S15.976,24.927,15.5,24.927zM12.618,11.818c-0.237-0.412-0.764-0.553-1.176-0.315c-0.412,0.238-0.554,0.765-0.315,1.177l2.867,6.722c0.481,0.831,1.543,1.116,2.375,0.637c0.829-0.479,1.114-1.543,0.635-2.374L12.618,11.818zM18.698,24.07c-0.412,0.237-0.555,0.765-0.316,1.176c0.237,0.412,0.764,0.554,1.176,0.315c0.413-0.238,0.553-0.765,0.316-1.176C19.635,23.974,19.108,23.832,18.698,24.07zM8.787,15.65c0.412,0.238,0.938,0.097,1.176-0.315c0.237-0.413,0.097-0.938-0.314-1.176c-0.412-0.239-0.938-0.098-1.177,0.313C8.234,14.886,8.375,15.412,8.787,15.65zM22.215,21.413c-0.412-0.236-0.938-0.096-1.176,0.316c-0.238,0.412-0.099,0.938,0.314,1.176c0.41,0.238,0.937,0.098,1.176-0.314C22.768,22.178,22.625,21.652,22.215,21.413zM9.107,18.531c-0.002-0.476-0.387-0.86-0.861-0.86c-0.477,0-0.862,0.385-0.862,0.86c0.001,0.476,0.386,0.86,0.861,0.861C8.722,19.393,9.106,19.008,9.107,18.531zM21.896,18.531c0,0.477,0.384,0.862,0.859,0.86c0.476,0.002,0.862-0.382,0.862-0.859s-0.387-0.86-0.862-0.862C22.279,17.671,21.896,18.056,21.896,18.531zM8.787,21.413c-0.412,0.238-0.554,0.765-0.316,1.176c0.239,0.412,0.765,0.553,1.177,0.316c0.413-0.239,0.553-0.765,0.315-1.178C9.725,21.317,9.198,21.176,8.787,21.413zM21.352,14.157c-0.411,0.238-0.551,0.764-0.312,1.176c0.237,0.413,0.764,0.555,1.174,0.315c0.412-0.236,0.555-0.762,0.316-1.176C22.29,14.06,21.766,13.921,21.352,14.157zM12.304,24.067c-0.413-0.235-0.939-0.096-1.176,0.315c-0.238,0.413-0.098,0.939,0.312,1.178c0.413,0.236,0.939,0.096,1.178-0.315C12.857,24.832,12.715,24.308,12.304,24.067zM18.698,12.992c0.41,0.238,0.938,0.099,1.174-0.313c0.238-0.411,0.1-0.938-0.314-1.177c-0.414-0.238-0.937-0.097-1.177,0.315C18.144,12.229,18.286,12.755,18.698,12.992z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Sun.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Sun.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Sun();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Sun = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Sun.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Sun\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.502,7.504c-4.35,0-7.873,3.523-7.873,7.873c0,4.347,3.523,7.872,7.873,7.872c4.346,0,7.871-3.525,7.871-7.872C23.374,11.027,19.85,7.504,15.502,7.504zM15.502,21.25c-3.244-0.008-5.866-2.63-5.874-5.872c0.007-3.243,2.63-5.866,5.874-5.874c3.242,0.008,5.864,2.631,5.871,5.874C21.366,18.62,18.744,21.242,15.502,21.25zM15.502,6.977c0.553,0,1-0.448,1-1.001V1.125c-0.002-0.553-0.448-1-1-1c-0.553,0-1.001,0.449-1,1.002v4.85C14.502,6.528,14.949,6.977,15.502,6.977zM18.715,7.615c0.125,0.053,0.255,0.076,0.382,0.077c0.394,0,0.765-0.233,0.925-0.618l1.856-4.483c0.21-0.511-0.031-1.095-0.541-1.306c-0.511-0.211-1.096,0.031-1.308,0.541L18.174,6.31C17.963,6.82,18.205,7.405,18.715,7.615zM21.44,9.436c0.195,0.194,0.451,0.293,0.707,0.293s0.512-0.098,0.707-0.293l3.43-3.433c0.391-0.39,0.39-1.023,0-1.415c-0.392-0.39-1.025-0.39-1.415,0.002L21.44,8.021C21.049,8.412,21.049,9.045,21.44,9.436zM23.263,12.16c0.158,0.385,0.531,0.617,0.923,0.617c0.127,0,0.257-0.025,0.383-0.078l4.48-1.857c0.511-0.211,0.753-0.797,0.541-1.307s-0.796-0.752-1.307-0.54l-4.481,1.857C23.292,11.064,23.051,11.65,23.263,12.16zM29.752,14.371l-4.851,0.001c-0.552,0-1,0.448-0.998,1.001c0,0.553,0.447,0.999,0.998,0.999l4.852-0.002c0.553,0,0.999-0.449,0.999-1C30.752,14.817,30.304,14.369,29.752,14.371zM29.054,19.899l-4.482-1.854c-0.512-0.212-1.097,0.03-1.307,0.541c-0.211,0.511,0.031,1.096,0.541,1.308l4.482,1.854c0.126,0.051,0.256,0.075,0.383,0.075c0.393,0,0.765-0.232,0.925-0.617C29.806,20.695,29.563,20.109,29.054,19.899zM22.86,21.312c-0.391-0.391-1.023-0.391-1.414,0.001c-0.391,0.39-0.39,1.022,0,1.413l3.434,3.429c0.195,0.195,0.45,0.293,0.706,0.293s0.513-0.098,0.708-0.293c0.391-0.392,0.389-1.025,0-1.415L22.86,21.312zM20.029,23.675c-0.211-0.511-0.796-0.752-1.307-0.541c-0.51,0.212-0.752,0.797-0.54,1.308l1.86,4.48c0.159,0.385,0.531,0.617,0.925,0.617c0.128,0,0.258-0.024,0.383-0.076c0.511-0.211,0.752-0.797,0.54-1.309L20.029,23.675zM15.512,23.778c-0.553,0-1,0.448-1,1l0.004,4.851c0,0.553,0.449,0.999,1,0.999c0.553,0,1-0.448,0.998-1l-0.003-4.852C16.511,24.226,16.062,23.777,15.512,23.778zM12.296,23.142c-0.51-0.21-1.094,0.031-1.306,0.543l-1.852,4.483c-0.21,0.511,0.033,1.096,0.543,1.307c0.125,0.052,0.254,0.076,0.382,0.076c0.392,0,0.765-0.234,0.924-0.619l1.853-4.485C13.051,23.937,12.807,23.353,12.296,23.142zM9.57,21.325c-0.392-0.391-1.025-0.389-1.415,0.002L4.729,24.76c-0.391,0.392-0.389,1.023,0.002,1.415c0.195,0.194,0.45,0.292,0.706,0.292c0.257,0,0.513-0.098,0.708-0.293l3.427-3.434C9.961,22.349,9.961,21.716,9.57,21.325zM7.746,18.604c-0.213-0.509-0.797-0.751-1.307-0.54L1.96,19.925c-0.511,0.212-0.752,0.798-0.54,1.308c0.16,0.385,0.531,0.616,0.924,0.616c0.127,0,0.258-0.024,0.383-0.076l4.479-1.861C7.715,19.698,7.957,19.113,7.746,18.604zM7.1,15.392c0-0.553-0.447-0.999-1-0.999l-4.851,0.006c-0.553,0-1.001,0.448-0.999,1.001c0.001,0.551,0.449,1,1,0.998l4.852-0.006C6.654,16.392,7.102,15.942,7.1,15.392zM1.944,10.869l4.485,1.85c0.125,0.053,0.254,0.076,0.381,0.076c0.393,0,0.766-0.232,0.925-0.618c0.212-0.511-0.032-1.097-0.544-1.306L2.708,9.021c-0.511-0.21-1.095,0.032-1.306,0.542C1.19,10.074,1.435,10.657,1.944,10.869zM8.137,9.451c0.195,0.193,0.449,0.291,0.705,0.291s0.513-0.098,0.709-0.295c0.391-0.389,0.389-1.023-0.004-1.414L6.113,4.609C5.723,4.219,5.088,4.221,4.699,4.612c-0.391,0.39-0.389,1.024,0.002,1.414L8.137,9.451zM10.964,7.084c0.16,0.384,0.532,0.615,0.923,0.615c0.128,0,0.258-0.025,0.384-0.077c0.51-0.212,0.753-0.798,0.54-1.307l-1.864-4.479c-0.212-0.51-0.798-0.751-1.308-0.539C9.129,1.51,8.888,2.096,9.1,2.605L10.964,7.084z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Svg.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Svg.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Svg();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Svg = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Svg.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Svg\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M31.274,15.989c0-2.473-2.005-4.478-4.478-4.478l0,0c0.81-0.811,1.312-1.93,1.312-3.167c0-2.474-2.005-4.479-4.479-4.479c-1.236,0-2.356,0.501-3.167,1.312c0-2.473-2.005-4.478-4.478-4.478c-2.474,0-4.479,2.005-4.479,4.478c-0.811-0.81-1.93-1.312-3.167-1.312c-2.474,0-4.479,2.005-4.479,4.479c0,1.236,0.501,2.356,1.312,3.166c-2.474,0-4.479,2.005-4.479,4.479c0,2.474,2.005,4.479,4.479,4.479c-0.811,0.81-1.312,1.93-1.312,3.167c0,2.473,2.005,4.478,4.479,4.478c1.236,0,2.356-0.501,3.167-1.312c0,2.473,2.005,4.479,4.479,4.479c2.473,0,4.478-2.006,4.478-4.479l0,0c0.811,0.811,1.931,1.312,3.167,1.312c2.474,0,4.478-2.005,4.478-4.478c0-1.237-0.501-2.357-1.312-3.168c0.001,0,0.001,0,0.001,0C29.27,20.467,31.274,18.463,31.274,15.989zM23.583,21.211c0.016,0,0.031-0.001,0.047-0.001c1.339,0,2.424,1.085,2.424,2.425c0,1.338-1.085,2.424-2.424,2.424s-2.424-1.086-2.424-2.424c0-0.017,0.001-0.031,0.001-0.047l-3.541-3.542v5.009c0.457,0.44,0.743,1.06,0.743,1.746c0,1.339-1.086,2.424-2.424,2.424c-1.339,0-2.425-1.085-2.425-2.424c0-0.687,0.286-1.306,0.743-1.746v-5.009l-3.541,3.542c0,0.016,0.001,0.031,0.001,0.047c0,1.338-1.085,2.424-2.424,2.424s-2.424-1.086-2.424-2.424c0-1.34,1.085-2.425,2.424-2.425c0.015,0,0.031,0.001,0.046,0.001l3.542-3.541H6.919c-0.44,0.458-1.06,0.743-1.746,0.743c-1.339,0-2.424-1.085-2.424-2.424s1.085-2.424,2.424-2.424c0.686,0,1.305,0.285,1.746,0.744h5.008l-3.542-3.542c-0.015,0-0.031,0.001-0.046,0.001c-1.339,0-2.424-1.085-2.424-2.424S7.001,5.92,8.34,5.92s2.424,1.085,2.424,2.424c0,0.015-0.001,0.031-0.001,0.046l3.541,3.542V6.924c-0.457-0.441-0.743-1.06-0.743-1.746c0-1.339,1.086-2.425,2.425-2.425c1.338,0,2.424,1.085,2.424,2.425c0,0.686-0.286,1.305-0.743,1.746v5.008l3.541-3.542c0-0.015-0.001-0.031-0.001-0.046c0-1.339,1.085-2.424,2.424-2.424s2.424,1.085,2.424,2.424c0,1.339-1.085,2.424-2.424,2.424c-0.016,0-0.031-0.001-0.047-0.001l-3.541,3.542h5.008c0.441-0.458,1.061-0.744,1.747-0.744c1.338,0,2.423,1.085,2.423,2.424s-1.085,2.424-2.423,2.424c-0.687,0-1.306-0.285-1.747-0.743h-5.008L23.583,21.211z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/TShirt.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/TShirt.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.TShirt();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.TShirt = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.TShirt.prototype */\n{\n\n NAME: \"draw2d.shape.icon.TShirt\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M20.1,4.039c-0.681,1.677-2.32,2.862-4.24,2.862c-1.921,0-3.56-1.185-4.24-2.862L1.238,8.442l2.921,6.884l3.208-1.361V28h17.099V14.015l3.093,1.312l2.922-6.884L20.1,4.039z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Tag.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Tag.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Tag();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Tag = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Tag.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Tag\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M14.263,2.826H7.904L2.702,8.028v6.359L18.405,30.09l11.561-11.562L14.263,2.826zM6.495,8.859c-0.619-0.619-0.619-1.622,0-2.24C7.114,6,8.117,6,8.736,6.619c0.62,0.62,0.619,1.621,0,2.241C8.117,9.479,7.114,9.479,6.495,8.859z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/TakeOff.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/TakeOff.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.TakeOff();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.TakeOff = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.TakeOff.prototype */\n{\n\n NAME: \"draw2d.shape.icon.TakeOff\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M10.27,19.267c0,0,9.375-1.981,16.074-8.681c0,0,1.395-1.339-1.338-1.339c-2.305,0-5.6,2.438-5.6,2.438l-9.137-1.42l-1.769,1.769l4.983,2.411l-3.001,2.035l-2.571-1.285L6.09,16.052C6.09,16.052,8.02,18.062,10.27,19.267zM3.251,23.106v1.998h24.498v-1.998H3.251z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Talke.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Talke.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Talke();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Talke = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Talke.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Talke\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,4.938c-7.732,0-14,4.701-14,10.5c0,1.981,0.741,3.833,2.016,5.414L2,25.272l5.613-1.44c2.339,1.316,5.237,2.106,8.387,2.106c7.732,0,14-4.701,14-10.5S23.732,4.938,16,4.938zM16.982,21.375h-1.969v-1.889h1.969V21.375zM16.982,17.469v0.625h-1.969v-0.769c0-2.321,2.641-2.689,2.641-4.337c0-0.752-0.672-1.329-1.553-1.329c-0.912,0-1.713,0.672-1.713,0.672l-1.12-1.393c0,0,1.104-1.153,3.009-1.153c1.81,0,3.49,1.121,3.49,3.009C19.768,15.437,16.982,15.741,16.982,17.469z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Talkq.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Talkq.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Talkq();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Talkq = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Talkq.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Talkq\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,4.938c-7.732,0-14,4.701-14,10.5c0,1.981,0.741,3.833,2.016,5.414L2,25.272l5.613-1.44c2.339,1.316,5.237,2.106,8.387,2.106c7.732,0,14-4.701,14-10.5S23.732,4.938,16,4.938zM16.868,21.375h-1.969v-1.889h1.969V21.375zM16.772,18.094h-1.777l-0.176-8.083h2.113L16.772,18.094z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Thunder.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Thunder.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Thunder();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Thunder = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Thunder.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Thunder\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.371,7.306c-0.092-3.924-3.301-7.077-7.248-7.079c-2.638,0.001-4.942,1.412-6.208,3.517c-0.595-0.327-1.28-0.517-2.01-0.517C7.626,3.229,5.772,5.033,5.689,7.293c-2.393,0.786-4.125,3.025-4.127,5.686c0,3.312,2.687,6,6,6v-0.002h5.271l-2.166,3.398l1.977-0.411L10,30.875l9.138-10.102L17,21l2.167-2.023h4.269c3.312,0,6-2.688,6-6C29.434,10.34,27.732,8.11,25.371,7.306zM23.436,16.979H7.561c-2.209-0.006-3.997-1.792-4.001-4.001c-0.002-1.982,1.45-3.618,3.35-3.931c0.265-0.043,0.502-0.191,0.657-0.414C7.722,8.41,7.779,8.136,7.73,7.87C7.702,7.722,7.685,7.582,7.685,7.446C7.689,6.221,8.68,5.23,9.905,5.228c0.647,0,1.217,0.278,1.633,0.731c0.233,0.257,0.587,0.375,0.927,0.309c0.342-0.066,0.626-0.307,0.748-0.63c0.749-1.992,2.662-3.412,4.911-3.41c2.899,0.004,5.244,2.35,5.251,5.249c0,0.161-0.009,0.326-0.027,0.497c-0.049,0.517,0.305,0.984,0.815,1.079c1.86,0.344,3.274,1.966,3.271,3.923C27.43,15.186,25.645,16.973,23.436,16.979z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Trash.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Trash.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Trash();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Trash = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Trash.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Trash\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M20.826,5.75l0.396,1.188c1.54,0.575,2.589,1.44,2.589,2.626c0,2.405-4.308,3.498-8.312,3.498c-4.003,0-8.311-1.093-8.311-3.498c0-1.272,1.21-2.174,2.938-2.746l0.388-1.165c-2.443,0.648-4.327,1.876-4.327,3.91v2.264c0,1.224,0.685,2.155,1.759,2.845l0.396,9.265c0,1.381,3.274,2.5,7.312,2.5c4.038,0,7.313-1.119,7.313-2.5l0.405-9.493c0.885-0.664,1.438-1.521,1.438-2.617V9.562C24.812,7.625,23.101,6.42,20.826,5.75zM11.093,24.127c-0.476-0.286-1.022-0.846-1.166-1.237c-1.007-2.76-0.73-4.921-0.529-7.509c0.747,0.28,1.58,0.491,2.45,0.642c-0.216,2.658-0.43,4.923,0.003,7.828C11.916,24.278,11.567,24.411,11.093,24.127zM17.219,24.329c-0.019,0.445-0.691,0.856-1.517,0.856c-0.828,0-1.498-0.413-1.517-0.858c-0.126-2.996-0.032-5.322,0.068-8.039c0.418,0.022,0.835,0.037,1.246,0.037c0.543,0,1.097-0.02,1.651-0.059C17.251,18.994,17.346,21.325,17.219,24.329zM21.476,22.892c-0.143,0.392-0.69,0.95-1.165,1.235c-0.474,0.284-0.817,0.151-0.754-0.276c0.437-2.93,0.214-5.209-0.005-7.897c0.881-0.174,1.708-0.417,2.44-0.731C22.194,17.883,22.503,20.076,21.476,22.892zM11.338,9.512c0.525,0.173,1.092-0.109,1.268-0.633h-0.002l0.771-2.316h4.56l0.771,2.316c0.14,0.419,0.53,0.685,0.949,0.685c0.104,0,0.211-0.017,0.316-0.052c0.524-0.175,0.808-0.742,0.633-1.265l-1.002-3.001c-0.136-0.407-0.518-0.683-0.945-0.683h-6.002c-0.428,0-0.812,0.275-0.948,0.683l-1,2.999C10.532,8.77,10.815,9.337,11.338,9.512z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Twitter.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Twitter.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Twitter();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Twitter = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Twitter.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Twitter\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M23.295,22.567h-7.213c-2.125,0-4.103-2.215-4.103-4.736v-1.829h11.232c1.817,0,3.291-1.469,3.291-3.281c0-1.813-1.474-3.282-3.291-3.282H11.979V6.198c0-1.835-1.375-3.323-3.192-3.323c-1.816,0-3.29,1.488-3.29,3.323v11.633c0,6.23,4.685,11.274,10.476,11.274h7.211c1.818,0,3.318-1.463,3.318-3.298S25.112,22.567,23.295,22.567z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/TwitterBird.js\":\n/*!***************************************!*\\\n !*** ./src/shape/icon/TwitterBird.js ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.TwitterBird();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.TwitterBird = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.TwitterBird.prototype */\n{\n\n NAME: \"draw2d.shape.icon.TwitterBird\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M14.605,13.11c0.913-2.851,2.029-4.698,3.313-6.038c0.959-1,1.453-1.316,0.891-0.216c0.25-0.199,0.606-0.464,0.885-0.605c1.555-0.733,1.442-0.119,0.373,0.54c2.923-1.045,2.82,0.286-0.271,0.949c2.527,0.047,5.214,1.656,5.987,5.077c0.105,0.474-0.021,0.428,0.464,0.514c1.047,0.186,2.03,0.174,2.991-0.13c-0.104,0.708-1.039,1.167-2.497,1.471c-0.541,0.112-0.651,0.083-0.005,0.229c0.799,0.179,1.69,0.226,2.634,0.182c-0.734,0.846-1.905,1.278-3.354,1.296c-0.904,3.309-2.976,5.678-5.596,7.164c-6.152,3.492-15.108,2.984-19.599-3.359c2.947,2.312,7.312,2.821,10.555-0.401c-2.125,0-2.674-1.591-0.99-2.449c-1.595-0.017-2.608-0.521-3.203-1.434c-0.226-0.347-0.229-0.374,0.14-0.64c0.405-0.293,0.958-0.423,1.528-0.467c-1.651-0.473-2.66-1.335-3.009-2.491c-0.116-0.382-0.134-0.363,0.256-0.462c0.38-0.097,0.87-0.148,1.309-0.17C6.11,10.88,5.336,9.917,5.139,8.852c-0.186-1.006,0.005-0.748,0.758-0.46C9.263,9.68,12.619,11.062,14.605,13.11L14.605,13.11z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Umbrella.js\":\n/*!************************************!*\\\n !*** ./src/shape/icon/Umbrella.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Umbrella();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Umbrella = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Umbrella.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Umbrella\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M14.784,26.991c0,1.238-1.329,1.696-1.835,1.696c-0.504,0-1.536-0.413-1.65-1.812c0-0.354-0.288-0.642-0.644-0.642c-0.354,0-0.641,0.287-0.641,0.642c0.045,1.056,0.756,3.052,2.935,3.052c2.432,0,3.166-1.882,3.166-3.144v-8.176l-1.328-0.024C14.787,18.584,14.784,25.889,14.784,26.991zM15.584,9.804c-6.807,0-11.084,4.859-11.587,8.326c0.636-0.913,1.694-1.51,2.89-1.51c1.197,0,2.22,0.582,2.855,1.495c0.638-0.904,1.69-1.495,2.88-1.495c1.2,0,2.26,0.6,2.896,1.517c0.635-0.917,1.83-1.517,3.03-1.517c1.19,0,2.241,0.591,2.879,1.495c0.636-0.913,1.659-1.495,2.855-1.495c1.197,0,2.254,0.597,2.89,1.51C26.669,14.663,22.393,9.804,15.584,9.804zM14.733,7.125v2.081h1.323V7.125c0-0.365-0.296-0.661-0.661-0.661C15.029,6.464,14.733,6.76,14.733,7.125z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Undo.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/Undo.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Undo();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Undo = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Undo.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Undo\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M12.981,9.073V6.817l-12.106,6.99l12.106,6.99v-2.422c3.285-0.002,9.052,0.28,9.052,2.269c0,2.78-6.023,4.263-6.023,4.263v2.132c0,0,13.53,0.463,13.53-9.823C29.54,9.134,17.952,8.831,12.981,9.073z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Unlock.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Unlock.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Unlock();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Unlock = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Unlock.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Unlock\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M20.375,12.833h-2.209V10c0,0,0,0,0-0.001c0-2.389,1.945-4.333,4.334-4.333c2.391,0,4.335,1.944,4.335,4.333c0,0,0,0,0,0v2.834h2V9.999h-0.001c-0.001-3.498-2.836-6.333-6.334-6.333S16.166,6.502,16.166,10v2.833H3.125V25h17.25V12.833z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Usb.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Usb.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Usb();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Usb = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Usb.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Usb\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M15.5,1.667L13.745,4.74h1.252v15.709L11.8,17.391c-0.205-0.26-0.351-0.601-0.358-0.952c0-1.417-0.001-2.258-0.001-2.568c0.592-0.21,1.02-0.774,1.02-1.444c0-0.849-0.682-1.538-1.521-1.538c-0.84,0-1.521,0.689-1.521,1.538c0,0.67,0.427,1.234,1.019,1.444l-0.001,2.539c0,0.688,0.373,1.409,0.812,1.868c-0.013-0.013-0.027-0.025,0,0c0.011,0.01,3.392,3.245,3.392,3.245c0.205,0.26,0.35,0.6,0.357,0.951v1.776c-1.161,0.236-2.036,1.272-2.036,2.517c0,1.418,1.137,2.566,2.539,2.566c1.403,0,2.54-1.148,2.54-2.566c0-1.244-0.875-2.28-2.038-2.517v-1.746c0-0.005,0-0.009,0-0.014v-3.861c0.008-0.35,0.152-0.689,0.358-0.949c0,0,3.38-3.234,3.392-3.245c0.027-0.026,0.012-0.013,0,0c0.438-0.459,0.811-1.181,0.811-1.869V10.12h1.02V7.046h-3.041v3.075h1.018c0,0-0.002,0.644-0.002,2.476c-0.008,0.351-0.152,0.692-0.357,0.952l-3.198,3.06V4.74h1.254L15.5,1.667z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/User.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/User.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.User();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.User = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.User.prototype */\n{\n\n NAME: \"draw2d.shape.icon.User\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M20.771,12.364c0,0,0.849-3.51,0-4.699c-0.85-1.189-1.189-1.981-3.058-2.548s-1.188-0.454-2.547-0.396c-1.359,0.057-2.492,0.792-2.492,1.188c0,0-0.849,0.057-1.188,0.397c-0.34,0.34-0.906,1.924-0.906,2.321s0.283,3.058,0.566,3.624l-0.337,0.113c-0.283,3.283,1.132,3.68,1.132,3.68c0.509,3.058,1.019,1.756,1.019,2.548s-0.51,0.51-0.51,0.51s-0.452,1.245-1.584,1.698c-1.132,0.452-7.416,2.886-7.927,3.396c-0.511,0.511-0.453,2.888-0.453,2.888h26.947c0,0,0.059-2.377-0.452-2.888c-0.512-0.511-6.796-2.944-7.928-3.396c-1.132-0.453-1.584-1.698-1.584-1.698s-0.51,0.282-0.51-0.51s0.51,0.51,1.02-2.548c0,0,1.414-0.397,1.132-3.68H20.771z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Users.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Users.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Users();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Users = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Users.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Users\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M21.053,20.8c-1.132-0.453-1.584-1.698-1.584-1.698s-0.51,0.282-0.51-0.51s0.51,0.51,1.02-2.548c0,0,1.414-0.397,1.132-3.68h-0.34c0,0,0.849-3.51,0-4.699c-0.85-1.189-1.189-1.981-3.058-2.548s-1.188-0.454-2.547-0.396c-1.359,0.057-2.492,0.792-2.492,1.188c0,0-0.849,0.057-1.188,0.397c-0.34,0.34-0.906,1.924-0.906,2.321s0.283,3.058,0.566,3.624l-0.337,0.113c-0.283,3.283,1.132,3.68,1.132,3.68c0.509,3.058,1.019,1.756,1.019,2.548s-0.51,0.51-0.51,0.51s-0.452,1.245-1.584,1.698c-1.132,0.452-7.416,2.886-7.927,3.396c-0.511,0.511-0.453,2.888-0.453,2.888h26.947c0,0,0.059-2.377-0.452-2.888C28.469,23.686,22.185,21.252,21.053,20.8zM8.583,20.628c-0.099-0.18-0.148-0.31-0.148-0.31s-0.432,0.239-0.432-0.432s0.432,0.432,0.864-2.159c0,0,1.199-0.336,0.959-3.119H9.538c0,0,0.143-0.591,0.237-1.334c-0.004-0.308,0.006-0.636,0.037-0.996l0.038-0.426c-0.021-0.492-0.107-0.939-0.312-1.226C8.818,9.619,8.53,8.947,6.947,8.467c-1.583-0.48-1.008-0.385-2.159-0.336C3.636,8.179,2.676,8.802,2.676,9.139c0,0-0.72,0.048-1.008,0.336c-0.271,0.271-0.705,1.462-0.757,1.885v0.281c0.047,0.653,0.258,2.449,0.469,2.872l-0.286,0.096c-0.239,2.783,0.959,3.119,0.959,3.119c0.432,2.591,0.864,1.488,0.864,2.159s-0.432,0.432-0.432,0.432s-0.383,1.057-1.343,1.439c-0.061,0.024-0.139,0.056-0.232,0.092v5.234h0.575c-0.029-1.278,0.077-2.927,0.746-3.594C2.587,23.135,3.754,22.551,8.583,20.628zM30.913,11.572c-0.04-0.378-0.127-0.715-0.292-0.946c-0.719-1.008-1.008-1.679-2.59-2.159c-1.584-0.48-1.008-0.385-2.16-0.336C24.72,8.179,23.76,8.802,23.76,9.139c0,0-0.719,0.048-1.008,0.336c-0.271,0.272-0.709,1.472-0.758,1.891h0.033l0.08,0.913c0.02,0.231,0.022,0.436,0.027,0.645c0.09,0.666,0.21,1.35,0.33,1.589l-0.286,0.096c-0.239,2.783,0.96,3.119,0.96,3.119c0.432,2.591,0.863,1.488,0.863,2.159s-0.432,0.432-0.432,0.432s-0.053,0.142-0.163,0.338c4.77,1.9,5.927,2.48,6.279,2.834c0.67,0.667,0.775,2.315,0.746,3.594h0.48v-5.306c-0.016-0.006-0.038-0.015-0.052-0.021c-0.959-0.383-1.343-1.439-1.343-1.439s-0.433,0.239-0.433-0.432s0.433,0.432,0.864-2.159c0,0,0.804-0.229,0.963-1.841v-1.227c-0.001-0.018-0.001-0.033-0.003-0.051h-0.289c0,0,0.215-0.89,0.292-1.861V11.572z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Video.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Video.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Video();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Video = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Video.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Video\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M27.188,4.875v1.094h-4.5V4.875H8.062v1.094h-4.5V4.875h-1v21.25h1v-1.094h4.5v1.094h14.625v-1.094h4.5v1.094h1.25V4.875H27.188zM8.062,23.719h-4.5v-3.125h4.5V23.719zM8.062,19.281h-4.5v-3.125h4.5V19.281zM8.062,14.844h-4.5v-3.125h4.5V14.844zM8.062,10.406h-4.5V7.281h4.5V10.406zM11.247,20.59V9.754l9.382,5.418L11.247,20.59zM27.188,23.719h-4.5v-3.125h4.5V23.719zM27.188,19.281h-4.5v-3.125h4.5V19.281zM27.188,14.844h-4.5v-3.125h4.5V14.844zM27.188,10.406h-4.5V7.281h4.5V10.406z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/View.js\":\n/*!********************************!*\\\n !*** ./src/shape/icon/View.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.View();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.View = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.View.prototype */\n{\n\n NAME: \"draw2d.shape.icon.View\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M16,8.286C8.454,8.286,2.5,16,2.5,16s5.954,7.715,13.5,7.715c5.771,0,13.5-7.715,13.5-7.715S21.771,8.286,16,8.286zM16,20.807c-2.649,0-4.807-2.157-4.807-4.807s2.158-4.807,4.807-4.807s4.807,2.158,4.807,4.807S18.649,20.807,16,20.807zM16,13.194c-1.549,0-2.806,1.256-2.806,2.806c0,1.55,1.256,2.806,2.806,2.806c1.55,0,2.806-1.256,2.806-2.806C18.806,14.451,17.55,13.194,16,13.194z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Vim.js\":\n/*!*******************************!*\\\n !*** ./src/shape/icon/Vim.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Vim();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Vim = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Vim.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Vim\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M25.012,10.44l4.571-4.645c0.11-0.113,0.173-0.264,0.173-0.423V3.134c0-0.159-0.064-0.314-0.177-0.427l-0.604-0.602c-0.111-0.112-0.261-0.176-0.42-0.177l-9.646-0.086C18.71,1.84,18.523,1.935,18.41,2.099L17.807,2.96c-0.033,0.047-0.059,0.099-0.076,0.154l-2.144-2.156l0,0l-1.646,1.666l-0.447-0.497c-0.112-0.125-0.27-0.197-0.438-0.199L3.324,1.756c-0.163-0.003-0.322,0.06-0.437,0.176L2.284,2.535C2.171,2.647,2.107,2.803,2.107,2.962v2.325c0,0.164,0.066,0.32,0.183,0.434l0.657,0.635C3.056,6.461,3.2,6.521,3.352,6.525l0.285,0.007l0.007,6.512l-2.527,2.557l2.533,2.533l0.008,8.084c0,0.159,0.065,0.314,0.177,0.427l0.861,0.861c0.112,0.111,0.268,0.176,0.427,0.176h2.67c0.161,0,0.317-0.064,0.43-0.181l2.378-2.417l4.9,4.9l14.47-14.558L25.012,10.44zM9.747,24.232l-2.208,2.242H5.372l-0.509-0.509L4.856,19.34l-0.008-7.515L4.842,5.943c0-0.328-0.261-0.594-0.588-0.603L3.617,5.326L3.313,5.031v-1.82l0.245-0.245l9.215,0.163l0.319,0.354l0.126,0.141v1.419l-0.352,0.362H12.26c-0.331,0-0.6,0.266-0.603,0.597l-0.076,7.203c-0.002,0.244,0.141,0.463,0.365,0.56c0.224,0.096,0.482,0.049,0.657-0.12l7.495-7.235c0.174-0.171,0.23-0.432,0.139-0.66c-0.09-0.228-0.312-0.377-0.56-0.377h-0.479l-0.296-0.379V3.496l0.312-0.445l9.083,0.081l0.252,0.252v1.743l-4.388,4.458L9.747,24.232z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Volume0.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Volume0.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Volume0();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Volume0 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Volume0.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Volume0\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M4.998,12.127v7.896h4.495l6.729,5.526l0.004-18.948l-6.73,5.526H4.998z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Volume1.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Volume1.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Volume1();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Volume1 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Volume1.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Volume1\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M4.998,12.127v7.896h4.495l6.729,5.526l0.004-18.948l-6.73,5.526H4.998z M18.806,11.219c-0.393-0.389-1.024-0.389-1.415,0.002c-0.39,0.391-0.39,1.024,0.002,1.416v-0.002c0.863,0.864,1.395,2.049,1.395,3.366c0,1.316-0.531,2.497-1.393,3.361c-0.394,0.389-0.394,1.022-0.002,1.415c0.195,0.195,0.451,0.293,0.707,0.293c0.257,0,0.513-0.098,0.708-0.293c1.222-1.22,1.98-2.915,1.979-4.776C20.788,14.136,20.027,12.439,18.806,11.219z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Volume2.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Volume2.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Volume2();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Volume2 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Volume2.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Volume2\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M4.998,12.127v7.896h4.495l6.729,5.526l0.004-18.948l-6.73,5.526H4.998z M18.806,11.219c-0.393-0.389-1.024-0.389-1.415,0.002c-0.39,0.391-0.39,1.024,0.002,1.416v-0.002c0.863,0.864,1.395,2.049,1.395,3.366c0,1.316-0.531,2.497-1.393,3.361c-0.394,0.389-0.394,1.022-0.002,1.415c0.195,0.195,0.451,0.293,0.707,0.293c0.257,0,0.513-0.098,0.708-0.293c1.222-1.22,1.98-2.915,1.979-4.776C20.788,14.136,20.027,12.439,18.806,11.219z M21.101,8.925c-0.393-0.391-1.024-0.391-1.413,0c-0.392,0.391-0.392,1.025,0,1.414c1.45,1.451,2.344,3.447,2.344,5.661c0,2.212-0.894,4.207-2.342,5.659c-0.392,0.39-0.392,1.023,0,1.414c0.195,0.195,0.451,0.293,0.708,0.293c0.256,0,0.512-0.098,0.707-0.293c1.808-1.809,2.929-4.315,2.927-7.073C24.033,13.24,22.912,10.732,21.101,8.925z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Volume3.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Volume3.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Volume3();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Volume3 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Volume3.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Volume3\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M4.998,12.127v7.896h4.495l6.729,5.526l0.004-18.948l-6.73,5.526H4.998z M18.806,11.219c-0.393-0.389-1.024-0.389-1.415,0.002c-0.39,0.391-0.39,1.024,0.002,1.416v-0.002c0.863,0.864,1.395,2.049,1.395,3.366c0,1.316-0.531,2.497-1.393,3.361c-0.394,0.389-0.394,1.022-0.002,1.415c0.195,0.195,0.451,0.293,0.707,0.293c0.257,0,0.513-0.098,0.708-0.293c1.222-1.22,1.98-2.915,1.979-4.776C20.788,14.136,20.027,12.439,18.806,11.219z M21.101,8.925c-0.393-0.391-1.024-0.391-1.413,0c-0.392,0.391-0.392,1.025,0,1.414c1.45,1.451,2.344,3.447,2.344,5.661c0,2.212-0.894,4.207-2.342,5.659c-0.392,0.39-0.392,1.023,0,1.414c0.195,0.195,0.451,0.293,0.708,0.293c0.256,0,0.512-0.098,0.707-0.293c1.808-1.809,2.929-4.315,2.927-7.073C24.033,13.24,22.912,10.732,21.101,8.925z M23.28,6.746c-0.393-0.391-1.025-0.389-1.414,0.002c-0.391,0.389-0.391,1.023,0.002,1.413h-0.002c2.009,2.009,3.248,4.773,3.248,7.839c0,3.063-1.239,5.828-3.246,7.838c-0.391,0.39-0.391,1.023,0.002,1.415c0.194,0.194,0.45,0.291,0.706,0.291s0.513-0.098,0.708-0.293c2.363-2.366,3.831-5.643,3.829-9.251C27.115,12.389,25.647,9.111,23.28,6.746z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Warning.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Warning.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Warning();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Warning = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Warning.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Warning\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M29.225,23.567l-3.778-6.542c-1.139-1.972-3.002-5.2-4.141-7.172l-3.778-6.542c-1.14-1.973-3.003-1.973-4.142,0L9.609,9.853c-1.139,1.972-3.003,5.201-4.142,7.172L1.69,23.567c-1.139,1.974-0.207,3.587,2.071,3.587h23.391C29.432,27.154,30.363,25.541,29.225,23.567zM16.536,24.58h-2.241v-2.151h2.241V24.58zM16.428,20.844h-2.023l-0.201-9.204h2.407L16.428,20.844z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/WheelChair.js\":\n/*!**************************************!*\\\n !*** ./src/shape/icon/WheelChair.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.WheelChair();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.WheelChair = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.WheelChair.prototype */\n{\n\n NAME: \"draw2d.shape.icon.WheelChair\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M20.373,19.85c0,4.079-3.318,7.397-7.398,7.397c-4.079,0-7.398-3.318-7.398-7.397c0-2.466,1.213-4.652,3.073-5.997l-0.251-2.21c-2.875,1.609-4.825,4.684-4.825,8.207c0,5.184,4.217,9.4,9.401,9.4c4.395,0,8.093-3.031,9.117-7.111L20.37,19.73C20.37,19.771,20.373,19.81,20.373,19.85zM11.768,6.534c1.321,0,2.392-1.071,2.392-2.392c0-1.321-1.071-2.392-2.392-2.392c-1.321,0-2.392,1.071-2.392,2.392C9.375,5.463,10.446,6.534,11.768,6.534zM27.188,22.677l-5.367-7.505c-0.28-0.393-0.749-0.579-1.226-0.538c-0.035-0.003-0.071-0.006-0.106-0.006h-6.132l-0.152-1.335h4.557c0.53,0,0.96-0.429,0.96-0.959c0-0.53-0.43-0.959-0.96-0.959h-4.776l-0.25-2.192c-0.146-1.282-1.303-2.203-2.585-2.057C9.869,7.271,8.948,8.428,9.094,9.71l0.705,6.19c0.136,1.197,1.154,2.078,2.332,2.071c0.004,0,0.007,0.001,0.012,0.001h8.023l4.603,6.436c0.439,0.615,1.338,0.727,2.007,0.248C27.442,24.178,27.628,23.292,27.188,22.677z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Windows.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Windows.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Windows();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Windows = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Windows.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Windows\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M20.023,17.484c-1.732-0.205-3.022-0.908-4.212-1.701l0,0l-0.559,0.279l-2.578,8.924l0,0c1.217,0.805,2.905,1.707,4.682,1.914c2.686,0.312,5.56-0.744,6.391-1.195l2.617-9.061l-0.559-0.279C25.805,16.365,23.193,17.857,20.023,17.484zM14.424,14.825c-1.267-0.87-2.578-1.652-4.375-1.816c-0.318-0.029-0.627-0.042-0.925-0.042c-3.011,0-4.948,1.347-4.948,1.347l-2.565,8.877l0,0l0.526,0.281c0.981-0.476,2.78-1.145,5.09-0.984c1.665,0.113,2.92,0.781,4.117,1.531l0.507-0.26l0,0L14.424,14.825zM10.201,12.094c1.664,0.114,2.921,0.78,4.117,1.533l0.509-0.26l0,0L17.4,4.431c-1.27-0.87-2.579-1.653-4.377-1.816c-0.318-0.029-0.626-0.042-0.924-0.042C9.088,2.573,7.15,3.92,7.15,3.92l-2.566,8.878L5.11,13.08C6.092,12.604,7.891,11.936,10.201,12.094zM28.779,5.971L28.779,5.971c0,0.001-2.609,1.492-5.779,1.119c-1.734-0.204-3.023-0.907-4.213-1.701L18.227,5.67l-2.576,8.923l0,0c1.215,0.803,2.906,1.709,4.68,1.915c2.687,0.312,5.558-0.745,6.392-1.197l2.615-9.059L28.779,5.971z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Woman.js\":\n/*!*********************************!*\\\n !*** ./src/shape/icon/Woman.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Woman();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Woman = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Woman.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Woman\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M21.022,16.349c-0.611-1.104-1.359-1.998-2.109-2.623c-0.875,0.641-1.941,1.031-3.104,1.031c-1.164,0-2.231-0.391-3.105-1.031c-0.75,0.625-1.498,1.519-2.111,2.623c-1.422,2.563-1.579,5.192-0.351,5.874c0.55,0.307,1.127,0.078,1.723-0.496c-0.105,0.582-0.167,1.213-0.167,1.873c0,2.932,1.139,5.307,2.543,5.307c0.846,0,1.265-0.865,1.466-2.189c0.201,1.324,0.62,2.189,1.464,2.189c1.406,0,2.545-2.375,2.545-5.307c0-0.66-0.061-1.291-0.168-1.873c0.598,0.574,1.174,0.803,1.725,0.496C22.603,21.541,22.444,18.912,21.022,16.349zM15.808,13.757c2.363,0,4.279-1.916,4.279-4.279s-1.916-4.279-4.279-4.279c-2.363,0-4.28,1.916-4.28,4.279S13.445,13.757,15.808,13.757zM18.731,4.974c1.235,0.455,0.492-0.725,0.492-1.531s0.762-1.792-0.492-1.391c-1.316,0.422-2.383,0.654-2.383,1.461S17.415,4.489,18.731,4.974zM15.816,4.4c0.782,0,0.345-0.396,0.345-0.884c0-0.488,0.438-0.883-0.345-0.883s-0.374,0.396-0.374,0.883C15.442,4.005,15.034,4.4,15.816,4.4zM12.884,4.974c1.316-0.484,2.383-0.654,2.383-1.461S14.2,2.474,12.884,2.052c-1.254-0.402-0.492,0.584-0.492,1.391S11.648,5.428,12.884,4.974z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Wrench.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/Wrench.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Wrench();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Wrench = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Wrench.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Wrench\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M26.834,14.693c1.816-2.088,2.181-4.938,1.193-7.334l-3.646,4.252l-3.594-0.699L19.596,7.45l3.637-4.242c-2.502-0.63-5.258,0.13-7.066,2.21c-1.907,2.193-2.219,5.229-1.039,7.693L5.624,24.04c-1.011,1.162-0.888,2.924,0.274,3.935c1.162,1.01,2.924,0.888,3.935-0.274l9.493-10.918C21.939,17.625,24.918,16.896,26.834,14.693z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Wrench2.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Wrench2.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Wrench2();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Wrench2 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Wrench2.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Wrench2\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M24.946,9.721l-2.872-0.768l-0.771-2.874l3.188-3.231c-1.992-0.653-4.268-0.192-5.848,1.391c-1.668,1.668-2.095,4.111-1.279,6.172l-3.476,3.478l-3.478,3.478c-2.062-0.816-4.504-0.391-6.173,1.277c-1.583,1.581-2.043,3.856-1.39,5.849l3.231-3.188l2.874,0.77l0.769,2.872l-3.239,3.197c1.998,0.665,4.288,0.207,5.876-1.384c1.678-1.678,2.1-4.133,1.271-6.202l3.463-3.464l3.464-3.463c2.069,0.828,4.523,0.406,6.202-1.272c1.592-1.589,2.049-3.878,1.384-5.876L24.946,9.721z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/Wrench3.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/Wrench3.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.Wrench3();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.Wrench3 = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.Wrench3.prototype */\n{\n\n NAME: \"draw2d.shape.icon.Wrench3\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n *\n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M27.839,6.775l-3.197,3.239L21.77,9.246l-0.771-2.874l3.188-3.231c-1.992-0.653-4.268-0.192-5.848,1.391c-1.668,1.668-2.095,4.111-1.279,6.172L7.42,20.344c-0.204-0.032-0.408-0.062-0.621-0.062c-2.173,0-3.933,1.759-3.933,3.933c0,2.173,1.76,3.933,3.933,3.933c2.171,0,3.931-1.76,3.933-3.933c0-0.24-0.03-0.473-0.071-0.7l9.592-9.59c2.069,0.828,4.523,0.406,6.202-1.272C28.047,11.062,28.504,8.772,27.839,6.775zM6.799,25.146c-0.517,0-0.933-0.418-0.935-0.933c0.002-0.515,0.418-0.933,0.935-0.933c0.514,0,0.932,0.418,0.932,0.933S7.313,25.146,6.799,25.146z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/ZoomIn.js\":\n/*!**********************************!*\\\n !*** ./src/shape/icon/ZoomIn.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.ZoomIn();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.ZoomIn = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.ZoomIn.prototype */\n{\n\n NAME: \"draw2d.shape.icon.ZoomIn\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M22.646,19.307c0.96-1.583,1.523-3.435,1.524-5.421C24.169,8.093,19.478,3.401,13.688,3.399C7.897,3.401,3.204,8.093,3.204,13.885c0,5.789,4.693,10.481,10.484,10.481c1.987,0,3.839-0.563,5.422-1.523l7.128,7.127l3.535-3.537L22.646,19.307zM13.688,20.369c-3.582-0.008-6.478-2.904-6.484-6.484c0.006-3.582,2.903-6.478,6.484-6.486c3.579,0.008,6.478,2.904,6.484,6.486C20.165,17.465,17.267,20.361,13.688,20.369zM15.687,9.051h-4v2.833H8.854v4.001h2.833v2.833h4v-2.834h2.832v-3.999h-2.833V9.051z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/icon/ZoomOut.js\":\n/*!***********************************!*\\\n !*** ./src/shape/icon/ZoomOut.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n\n *\n * @example\n *\n * let icon = new draw2d.shape.icon.ZoomOut();\n *\n * canvas.add(icon,50,10);\n *\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.shape.icon.Icon\n */\n_packages2.default.shape.icon.ZoomOut = _packages2.default.shape.icon.Icon.extend(\n/** @lends draw2d.shape.icon.ZoomOut.prototype */\n{\n\n NAME: \"draw2d.shape.icon.ZoomOut\",\n\n /**\n *\n * Creates a new icon element which are not assigned to any canvas.\n * \n * @param {Object} attr the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 50, height: 50 }, attr), setter, getter);\n },\n\n /**\n * @private\n * @returns {Object} the raphaelJS path object\n */\n createSet: function createSet() {\n return this.canvas.paper.path(\"M22.646,19.307c0.96-1.583,1.523-3.435,1.524-5.421C24.169,8.093,19.478,3.401,13.688,3.399C7.897,3.401,3.204,8.093,3.204,13.885c0,5.789,4.693,10.481,10.484,10.481c1.987,0,3.839-0.563,5.422-1.523l7.128,7.127l3.535-3.537L22.646,19.307zM13.688,20.369c-3.582-0.008-6.478-2.904-6.484-6.484c0.006-3.582,2.903-6.478,6.484-6.486c3.579,0.008,6.478,2.904,6.484,6.486C20.165,17.465,17.267,20.361,13.688,20.369zM8.854,11.884v4.001l9.665-0.001v-3.999L8.854,11.884z\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/layout/FlexGridLayout.js\":\n/*!********************************************!*\\\n !*** ./src/shape/layout/FlexGridLayout.js ***!\n \\********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * FlexGridLayout is a powerful, flexible and precise layout manager that aligns components vertically and\n * horizontally in a dynamic rectangular grid of cells, with each component occupying in one or more cell.\n * To define a form layout you specify the form's columns, rows. Everyhing that applies to columns applies\n * to rows too - just with a different orientation. FlexGridLayout uses the same API, algorithms and implementation\n * for column and rows.\n *\n * FlexGridLayout focuses on form-oriented panels much like the 'Segment' panel. Nevertheless, it is a general purpose\n * layout system that can be used for the vast majority of rectangular layouts.\n *\n * Define your layout with:\n * <ul>\n * <li>[number]px</li>\n * <li>grow</li>\n * <li>pref</li>\n * </ul>\n *\n * e.g. we want build a shape with a border on the left and right and a label in the\n * center. We allow the center to grow, the shape is resizeable.\n *\n * <pre>\n * 10px grow 10px\n *\n * -----+------------------+-----\n * | | [LABEL] | |\n * | | | |\n * | | | | grow\n * | | | |\n * | | | |\n * -----+------------------+-----\n * </pre>\n *\n * The number forces the exact width or height of the cell. <b>grow</b> respect the minimum width of the\n * element and allows to resize the shape. The row/col with the <b>grow</b> declaration will be resized.\n * The <b>pref</b> declaration forces the cell to the minimum width/height of the embedded figure.\n *\n * Example Implementation of a shape:\n *\n * @example\n * let PredefinedProcess = draw2d.shape.layout.FlexGridLayout.extend({\n *\n *\n * // 10px grow 10px\n * //\n * // -----+------------------+-----\n * // | | [LABEL] | |\n * // | | | |\n * // | | | | grow\n * // | | | |\n * // | | | |\n * // -----+------------------+-----\n * //\n * // @param attr\n * //\n * init: function(attr, setter, getter)\n * {\n * this._super(extend({\n * columns:\"10px, grow, 10px\",\n * rows: \"grow\",\n * bgColor:\"#FFFFFF\",\n * stroke:2\n * },attr),\n * setter,\n * getter);\n *\n *\n * this.label = new draw2d.shape.basic.Label({text:\"Process Name\", resizeable:true, stroke:2});\n * this.label.installEditor(new draw2d.ui.LabelInplaceEditor());\n * this.add(this.label, {row:0, col:1});\n *\n * this.setDimension(120,80);\n * }\n * });\n * let shape = new PredefinedProcess();\n * canvas.add(shape,10,10);\n *\n *\n * @author Andreas Herz\n * @extends draw2d.shape.layout.Layout\n * @since 2.5.1\n */\n_packages2.default.shape.layout.FlexGridLayout = _packages2.default.shape.layout.Layout.extend(\n/** @lends draw2d.shape.layout.FlexGridLayout.prototype */\n{\n\n NAME: \"draw2d.shape.layout.FlexGridLayout\",\n\n /**\n * Create a new instance\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n var _this = this;\n this.cellLocator = {\n relocate: function relocate(index, figure) {\n if (_this.gridDef.layoutRequired === true) {\n _this._layout();\n }\n var cell = figure.__cellConstraint;\n var x = cell.x;\n var y = cell.y;\n\n // stretch the figure to fill the complete cell\n //\n if (figure.isResizeable()) {\n figure.setDimension(Math.max(figure.getMinWidth(), cell.width), Math.max(figure.getMinHeight(), cell.height));\n }\n // else apply the valign and align property\n //\n else {\n // apply vertical alignment\n //\n switch (cell.valign) {\n case \"middle\":\n y = y + (cell.height - figure.getHeight()) / 2;\n break;\n case \"bottom\":\n y = y + (cell.height - figure.getHeight());\n break;\n }\n\n // apply horizontal alignment\n //\n switch (cell.align) {\n case \"center\":\n x = x + (cell.width - figure.getWidth()) / 2;\n break;\n case \"right\":\n x = x + (cell.width - figure.getWidth());\n break;\n }\n }\n figure.setPosition(x, y);\n },\n bind: function bind() {},\n unbind: function unbind() {},\n translate: function translate(figure, diff) {\n figure.setPosition(figure.x + diff.x, figure.y + diff.y);\n }\n };\n\n this.debug = false;\n this.gridDef = {\n debugLines: [],\n def_cols: [],\n def_rows: [],\n min_height: [],\n min_width: [],\n minGridWidth: 10,\n minGridHeight: 10,\n hResizeable: false,\n vResizeable: false,\n layoutRequired: true\n };\n\n this._super((0, _extend2.default)({ stroke: 2 }, attr), (0, _extend2.default)({}, setter), (0, _extend2.default)({}, getter));\n\n this.resizeListener = function (figure) {\n _this.gridDef.layoutRequired = true;\n // propagate the event to the parent or other listener if existing\n //\n if (_this.getParent() instanceof _packages2.default.shape.layout.Layout) {\n _this.fireEvent(\"resize\");\n }\n // or we are the parent and must consume it self\n else {\n _this.setDimension(_this.gridDef.hResizeable === true ? _this.getWidth() : 1, _this.gridDef.vResizeable === true ? _this.getHeight() : 1);\n }\n };\n\n var rows = attr.rows.split(\",\");\n var columns = attr.columns.split(\",\");\n for (var i = 0; i < columns.length; i++) {\n this.gridDef.def_cols[i] = this.cellWidthFromDef(columns[i]);\n }\n\n for (var _i = 0; _i < rows.length; _i++) {\n this.gridDef.def_rows[_i] = this.cellWidthFromDef(rows[_i]);\n }\n\n this.installEditPolicy(new _packages2.default.policy.figure.RectangleSelectionFeedbackPolicy());\n },\n\n add: function add(figure, cellConstraint) {\n\n figure.__cellConstraint = (0, _extend2.default)({}, {\n row: 0,\n col: 0,\n rowspan: 1,\n colspan: 1,\n align: \"left\",\n valign: \"top\",\n width: 1,\n height: 1\n }, cellConstraint);\n this.gridDef.layoutRequired = true;\n this._super(figure, this.cellLocator);\n this._layout();\n },\n\n /**\n * @inheritdoc\n */\n getMinWidth: function getMinWidth() {\n return this.gridDef.minGridWidth;\n },\n\n /**\n * @inheritdoc\n */\n getMinHeight: function getMinHeight() {\n return this.gridDef.minGridHeight;\n },\n\n /**\n * @inheritdoc\n */\n setCanvas: function setCanvas(canvas) {\n // layout must be recalculated if the shape will be assigned\n // to a canvas. \"Text\" elements can now calculate correct with the right font settings.\n //\n this.gridDef.layoutRequired = true;\n this._super(canvas);\n\n return this;\n },\n\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return this;\n }\n this._super(attributes);\n if (this.debug) {\n this.paintDebugGrid();\n }\n\n return this;\n },\n\n setDimension: function setDimension(w, h) {\n // we need the calculated layout to determine the min width/height of the figure\n //\n if (this.gridDef.layoutRequired === true) {\n this._layout();\n }\n // set the new dimension\n this._super(w, h);\n\n // after setting the new dimension a recalculation of the layout is required. May the shape\n // has grown up\n this.gridDef.layoutRequired = true;\n this.repaint();\n\n return this;\n },\n\n _layout: function _layout() {\n this.gridDef.layoutRequired = false;\n\n var figures = this.getChildren();\n\n // copy the initial requested width/heights\n //\n this.gridDef.min_height = this.gridDef.def_rows.slice(0);\n this.gridDef.min_width = this.gridDef.def_cols.slice(0);\n\n // Calculate the basic width/height of the elements without considering the \"span\" and \"grow\"\n //\n for (var i = 0; i < figures.getSize(); i++) {\n var figure = figures.get(i);\n var cell = figure.__cellConstraint;\n // ermitteln der derzeitig zur verfügung stehenden weite\n this.gridDef.min_width[cell.col] = Math.max(this.gridDef.min_width[cell.col], figure.getMinWidth());\n\n // Falls das Elemente eine y_span hat, dann versuchen ob es auf die ganze\n // höhe rein passt. Wenn nicht wird der Teil der 'grow' angegeben hat verändert.\n // Wenn kein Element 'grow' angegeben hat, dann wird das letzte Element verändert\n if (cell.rowspan > 1) {\n var eHeight = figure.getMinHeight();\n var cHeight = this.cellHeight(cell.row, cell.row + cell.rowspan);\n if (cHeight < eHeight) {\n var diff = eHeight - cHeight;\n this.gridDef.min_height[cell.row + cell.rowspan - 1] = this.gridDef.min_height[cell.row + cell.rowspan - 1] + diff;\n }\n } else {\n this.gridDef.min_height[cell.row] = Math.max(this.gridDef.min_height[cell.row], figure.getMinHeight());\n }\n }\n this.gridDef.minGridWidth = this._getGridWidth();\n this.gridDef.minGridHeight = this._getGridHeight();\n\n // Resize the grid height if at least one row supports \"grow\"\n //\n var gridHeight = this._getGridHeight();\n for (var _i2 = 0; _i2 < this.gridDef.def_rows.length; _i2++) {\n // row found which can grow\n if (this.gridDef.def_rows[_i2] === -1) {\n this.gridDef.min_height[_i2] = this.gridDef.min_height[_i2] + Math.max(0, this.getHeight() - gridHeight);\n this.gridDef.vResizeable = true;\n break;\n }\n }\n\n // Resize the grid if at least one column supports \"grow\"\n //\n var gridWidth = this._getGridWidth();\n for (var _i3 = 0; _i3 < this.gridDef.def_cols.length; _i3++) {\n // column found which can grow\n if (this.gridDef.def_cols[_i3] === -1) {\n this.gridDef.min_width[_i3] = this.gridDef.min_width[_i3] + Math.max(0, this.getWidth() - gridWidth);\n this.gridDef.hResizeable = true;\n break;\n }\n }\n\n // apply the cell constraints to the elements\n //\n for (var _i4 = 0; _i4 < figures.getSize(); _i4++) {\n var _cell = figures.get(_i4).__cellConstraint;\n _cell.width = this.cellWidth(_cell.col, _cell.col + _cell.colspan);\n _cell.height = this.cellHeight(_cell.row, _cell.row + _cell.rowspan);\n _cell.x = this.cellX(_cell.col);\n _cell.y = this.cellY(_cell.row);\n }\n\n return this;\n },\n\n cellX: function cellX(col) {\n var r = 0;\n for (var i = 0; i < col; i++) {\n r = r + this.gridDef.min_width[i];\n }\n\n return r;\n },\n\n cellY: function cellY(row) {\n var r = 0;\n for (var i = 0; i < row; i++) {\n r = r + this.gridDef.min_height[i];\n }\n\n return r;\n },\n\n cellWidth: function cellWidth(from, to) {\n var r = 0;\n for (var i = from; i < to; i++) {\n r = r + this.gridDef.min_width[i];\n }\n\n return r;\n },\n\n cellHeight: function cellHeight(from, to) {\n var r = 0;\n for (var i = from; i < to; i++) {\n r = r + this.gridDef.min_height[i];\n }\n\n return r;\n },\n\n paintDebugGrid: function paintDebugGrid() {\n // alte Linien erstmal entfernen bevor man neue zeichnet\n //\n for (var i = 0; i < this.gridDef.debugLines.length; i++) {\n this.gridDef.debugLines[i].remove();\n }this.gridDef.debugLines = [];\n\n var gridHeight = this._getGridHeight();\n var gridWidth = this._getGridWidth();\n var posX = this.getAbsoluteX();\n var posY = this.getAbsoluteY();\n\n // draw the cols first\n var x = posX;\n for (var _i5 = 0; _i5 <= this.gridDef.min_width.length; _i5++) {\n var newLine = this.canvas.paper.path(\"M \" + x + \" \" + posY + \" l 0 \" + gridHeight).attr({\n \"stroke\": \"#FF0000\",\n \"stroke-width\": 1\n });\n this.gridDef.debugLines.push(newLine);\n if (_i5 < this.gridDef.min_width.length) x = x + this.gridDef.min_width[_i5];\n }\n\n var y = posY;\n for (var _i6 = 0; _i6 <= this.gridDef.min_height.length; _i6++) {\n var _newLine = this.canvas.paper.path(\"M \" + posX + \" \" + y + \" l \" + gridWidth + \" 0\").attr({\n \"stroke\": \"#FF0000\",\n \"stroke-width\": 1\n });\n this.gridDef.debugLines.push(_newLine);\n if (_i6 < this.gridDef.min_height.length) y = y + this.gridDef.min_height[_i6];\n }\n },\n\n _getGridWidth: function _getGridWidth() {\n var gridWidth = 0;\n for (var i = 0; i < this.gridDef.min_width.length; i++) {\n gridWidth = gridWidth + this.gridDef.min_width[i];\n }\n\n return gridWidth;\n },\n\n _getGridHeight: function _getGridHeight() {\n var gridHeight = 0;\n for (var i = 0; i < this.gridDef.min_height.length; i++) {\n gridHeight = gridHeight + this.gridDef.min_height[i];\n }\n\n return gridHeight;\n },\n\n cellWidthFromDef: function cellWidthFromDef(def) {\n var pattern = new RegExp(\"(\\\\d+)(?:px)?\");\n var match = def.match(pattern);\n\n if (match != null) {\n return parseInt(match[1]);\n }\n\n pattern = new RegExp(\"p(?:ref)?\");\n match = def.match(pattern);\n if (match != null) {\n return 0;\n }\n\n pattern = new RegExp(\"g(?:row)?\");\n match = def.match(pattern);\n if (match != null) {\n this.autoResize = false;\n return -1;\n }\n\n return 0;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/layout/HorizontalLayout.js\":\n/*!**********************************************!*\\\n !*** ./src/shape/layout/HorizontalLayout.js ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * The HorizontalLayout class arranges the layout elements in a horizontal sequence,\n * left to right, with optional gaps between the elements.\n *\n * During the execution of the setDimension() method, the minimum width of the container is calculated\n * by accumulating the minimum sizes of the elements, including stroke, gaps and padding.\n *\n *\n * See the example below with and without gap and border settings\n *\n *\n * @example\n *\n * // first container without any gap and a border of the parent\n * // container\n * let label1 = new draw2d.shape.basic.Label({text:\"Label 1\"});\n * let label2 = new draw2d.shape.basic.Label({text:\"Label 2\"});\n * let label3 = new draw2d.shape.basic.Label({text:\"Label 3\"});\n *\n * let container1 = new draw2d.shape.layout.HorizontalLayout();\n *\n * container1.add(label1);\n * container1.add(label2);\n * container1.add(label3);\n * container1.setGap(10);\n * container1.setStroke(2);\n * canvas.add(container1,50,10);\n *\n * // second container without any gab or border\n * //\n * let label11 = new draw2d.shape.basic.Label({text:\"Label 1\"});\n * let label12 = new draw2d.shape.basic.Label({text:\"Label 2\"});\n * let label13 = new draw2d.shape.basic.Label({text:\"Label 3\"});\n *\n * let container2 = new draw2d.shape.layout.HorizontalLayout();\n *\n * container2.add(label11);\n * container2.add(label12);\n * container2.add(label13);\n *\n * canvas.add(container2,50,90);\n *\n *\n * @author Andreas Herz\n * @extends draw2d.shape.layout.Layout\n * @since 2.5.1\n */\n_packages2.default.shape.layout.HorizontalLayout = _packages2.default.shape.layout.Layout.extend(\n/** @lends draw2d.shape.layout.HorizontalLayout.prototype */\n{\n\n NAME: \"draw2d.shape.layout.HorizontalLayout\",\n\n /**\n * Create a new instance\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this.gap = 0;\n var _this = this;\n this.locator = {\n translate: function translate(figure, diff) {\n figure.setPosition(figure.x + diff.x, figure.y + diff.y);\n },\n bind: function bind() {},\n unbind: function unbind() {},\n relocate: function relocate(index, target) {\n var stroke = _this.getStroke();\n var yPos = stroke + _this.padding.top;\n var xPos = stroke + _this.padding.left; // respect the border and padding of the parent\n for (var i = 0; i < index; i++) {\n var child = _this.children.get(i).figure;\n if (child.isVisible()) {\n xPos += child.getWidth() + _this.gap;\n }\n }\n\n target.setPosition(xPos, yPos);\n }\n };\n\n this._super((0, _extend2.default)({ width: 1, height: 1, gap: 0 }, attr), (0, _extend2.default)({\n // @attr {Number} gap the gap between the children shapes */\n gap: this.setGap\n }, setter), (0, _extend2.default)({\n gap: this.getGap\n }, getter));\n },\n\n /**\n * @inheritdoc\n */\n add: function add(child, locator, index) {\n this._super(child, this.locator, index);\n\n this.setDimension(1, 1);\n\n return this;\n },\n\n /**\n *\n * Set the gap width between child components within this layout.\n * This will only affect the space between components, not the space around all the components in the layout.\n *\n * @param {Number} gap The space, in pixels, between items.\n * @since 2.5.1\n */\n setGap: function setGap(gap) {\n this.gap = gap;\n // this forces a relayout of the element\n this.setDimension(1, 1);\n\n return this;\n },\n\n /**\n *\n * Return the gap between the children shapes\n *\n * @since 5.0.0\n *\n */\n getGap: function getGap() {\n return this.gap;\n },\n\n /**\n * @inheritdoc\n */\n getMinWidth: function getMinWidth() {\n var _this = this;\n var width = this.stroke * 2 + this.padding.left + this.padding.right;\n var gap = 0;\n\n this.children.each(function (i, e) {\n if (e.figure.isVisible()) {\n width += e.figure.isResizeable() ? e.figure.getMinWidth() : e.figure.getWidth() + gap;\n gap = _this.gap;\n }\n });\n\n return width;\n },\n\n /**\n * @inheritdoc\n */\n getMinHeight: function getMinHeight() {\n var markup = this.stroke * 2 + this.padding.top + this.padding.bottom;\n var height = 0;\n\n this.children.each(function (i, e) {\n height = Math.max(height, e.figure.isResizeable() ? e.figure.getMinHeight() : e.figure.getHeight());\n });\n\n return height + markup;\n },\n\n /**\n * @inheritdoc\n */\n setDimension: function setDimension(w, h) {\n this._super(w, h);\n\n var diff = this.width - this.getMinWidth();\n if (diff > 0) {\n diff = diff / this.children.getSize() | 0;\n this.children.each(function (i, e) {\n if (e.figure.isResizeable() === true) {\n e.figure.setDimension(e.figure.getMinWidth() + diff, e.figure.getHeight());\n }\n });\n } else {\n var minHeight = this.getMinHeight();\n this.children.each(function (i, e) {\n // The layout respect the \"resizeable\" flag because a layout is a kind of layouter and\n // any kind of autolayouter must respect this flag\n if (e.figure.isResizeable() === true) {\n // reset the shape to the minimum width/height. see setMinWidth/setMinHeight\n e.figure.setDimension(1, minHeight);\n }\n });\n }\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n getPersistentAttributes: function getPersistentAttributes() {\n var memento = this._super();\n\n memento.gap = this.gap;\n\n return memento;\n },\n\n /**\n * @inheritdoc\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this._super(memento);\n\n if (typeof memento.gap === \"number\") {\n this.gap = memento.gap;\n }\n\n return this;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/layout/Layout.js\":\n/*!************************************!*\\\n !*** ./src/shape/layout/Layout.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A base class for positioning child figures and determining the ideal size for\n * a figure with children.\n *\n *\n * @author Andreas Herz\n * @extends draw2d.shape.basic.Rectangle\n */\n_packages2.default.shape.layout.Layout = _packages2.default.shape.basic.Rectangle.extend(\n/** @lends draw2d.shape.layout.Layout.prototype */\n{\n\n NAME: \"draw2d.shape.layout.Layout\",\n\n /**\n * Create a new instance\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n var _this = this;\n\n // @since 4.3.3\n this.padding = { top: 0, right: 0, bottom: 0, left: 0 };\n\n this._super((0, _extend2.default)({ bgColor: null, radius: 0, stroke: 0 }, attr), (0, _extend2.default)({\n // @attr {Number} padding the padding in pixel around the text */\n padding: this.setPadding\n }, setter), (0, _extend2.default)({\n padding: this.getPadding\n }, getter));\n\n this.resizeListener = function (figure) {\n // propagate the event to the parent or other listener if existing\n //\n if (_this.getParent() instanceof _packages2.default.shape.layout.Layout) {\n _this.fireEvent(\"resize\");\n }\n // or we are the parent and must consume it self\n else {\n _this.setDimension(1, 1);\n _this.fireEvent(\"resize\");\n }\n };\n\n this.installEditPolicy(new _packages2.default.policy.figure.AntSelectionFeedbackPolicy());\n },\n\n /**\n * @inheritdoc\n */\n add: function add(child, locator, index) {\n this._super(child, locator, index);\n\n child.on(\"resize\", this.resizeListener);\n child.on(\"change:visibility\", this.resizeListener);\n\n // don't use the getter/setter. This considers the canvas assignment and\n // the child is always invisible. BIG BUG. The example shape_db will break if you change this.\n // child.setVisible(this.isVisible());\n // respect the \"visible\" flag of the child as well\n child.visible = child.visible && this.visible;\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n remove: function remove(child) {\n var r = this._super(child);\n child.off(this.resizeListener);\n this.setDimension(1, 1);\n\n return r;\n },\n\n /**\n * \n * Set the padding of the element\n *\n * // Alternatively you can use the attr method:\n * //\n * // set the padding for top,left,bottom,right in one call\n * figure.attr({\n * padding: 3\n * });\n *\n * // update the padding left and top\n * figure.attr({\n * padding: {left:3, top:30}\n * });\n *\n * @param {Number|Object} padding The new padding\n * @since 4.3.3\n **/\n setPadding: function setPadding(padding) {\n if (typeof padding === \"number\") {\n this.padding = { top: padding, right: padding, bottom: padding, left: padding };\n } else {\n this.padding = (0, _extend2.default)(this.padding, padding);\n }\n this.fireEvent(\"change:padding\", { value: this.padding });\n\n // force a relayout of the figure\n this.setDimension(1, 1);\n\n return this;\n },\n\n /**\n * \n * Get the padding of the element.\n *\n * @since 4.3.3\n * @returns {this}\n **/\n getPadding: function getPadding() {\n return this.padding;\n },\n\n /**\n * @inheritdoc\n * @returns {this}\n */\n setVisible: function setVisible(flag) {\n // propagate the visibility to all children too.\n //\n this.children.each(function (i, e) {\n e.figure.setVisible(flag);\n });\n\n this._super(flag);\n\n // force a relayout of the shape because the dimension has been changed\n // by enable/disable of child shapes\n this.setDimension(1, 1);\n\n return this;\n },\n\n /**\n * \n * Returns the Command to perform the specified Request or null.\n *\n * @param {draw2d.command.CommandType} request describes the Command being requested\n * @returns {draw2d.command.Command} null or a Command\n * @private\n **/\n createCommand: function createCommand(request) {\n // it is not possible to rate a layout object\n // ..at the moment\n if (request.getPolicy() === _packages2.default.command.CommandType.ROTATE) {\n return null;\n }\n\n return this._super(request);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/layout/StackLayout.js\":\n/*!*****************************************!*\\\n !*** ./src/shape/layout/StackLayout.js ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Using the StackLayout as their layout shape have their children placed on top of one another.\n * Order of placement is determined by the order in which the children were added, first child\n * added placed on the bottom. Only one child is visible at once.\n *\n * @author Andreas Herz\n * @extends draw2d.shape.layout.Layout\n */\n_packages2.default.shape.layout.StackLayout = _packages2.default.shape.layout.Layout.extend(\n/** @lends draw2d.shape.layout.StackLayout.prototype */\n{\n\n NAME: \"draw2d.shape.layout.StackLayout\",\n\n /**\n * Create a new instance\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this.visibleLayer = 0;\n this.locator = new _packages2.default.layout.locator.XYAbsPortLocator(0, 0);\n\n this._super((0, _extend2.default)({ resizeable: true, width: 10, height: 10 }, attr), (0, _extend2.default)({}, setter), (0, _extend2.default)({}, getter));\n\n this.resizeListener = function (figure) {};\n // install default selection handler. Can be overridden or replaced\n this.installEditPolicy(new _packages2.default.policy.figure.RectangleSelectionFeedbackPolicy());\n },\n\n /**\n *\n * Set the current visible layer of the stack layout\n *\n * @param {Number} visibleLayer\n */\n setVisibleLayer: function setVisibleLayer(visibleLayer, duration) {\n this.getChildren().get(this.visibleLayer).setVisible(false, duration);\n this.visibleLayer = Math.min(this.getChildren().getSize() - 1, Math.max(0, visibleLayer));\n\n this.getChildren().get(this.visibleLayer).setVisible(true, duration);\n return this;\n },\n\n /**\n *\n * Returns the current visible layer\n *\n * @returns {Number}\n */\n getVisibleLayer: function getVisibleLayer() {\n return this.visibleLayer;\n },\n\n /**\n * @inheritdoc\n */\n add: function add(child, locator, index) {\n // the child didn'T care about events...at the moment\n //\n child.hitTest = function () {\n return false;\n };\n\n // make all existing shapes invisible\n //\n this.getChildren().each(function (i, c) {\n c.setVisible(false);\n });\n this.visibleLayer = this.getChildren().getSize();\n\n // ignore the parameter \"locator\" and use the locator for the stack layout instead\n return this._super(child, this.locator, index);\n },\n\n /**\n * @inheritdoc\n */\n setVisible: function setVisible(flag) {\n _packages2.default.shape.basic.Rectangle.prototype.setVisible.call(this, flag);\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n getMinWidth: function getMinWidth() {\n var markup = this.stroke * 2 + this.padding.left + this.padding.right;\n var width = 10;\n this.children.each(function (i, e) {\n width = Math.max(width, e.figure.isResizeable() ? e.figure.getMinWidth() : e.figure.getWidth());\n });\n return width + markup;\n },\n\n /**\n * @inheritdoc\n */\n getMinHeight: function getMinHeight() {\n var markup = this.stroke * 2 + this.padding.top + this.padding.bottom;\n var height = 10;\n this.children.each(function (i, e) {\n height = Math.max(height, e.figure.isResizeable() ? e.figure.getMinHeight() : e.figure.getHeight());\n });\n return height + markup;\n },\n\n /**\n * @inheritdoc\n */\n setDimension: function setDimension(w, h) {\n this._super(w, h);\n\n var width = this.width - this.padding.left - this.padding.right;\n var height = this.height - this.padding.top - this.padding.bottom;\n if (width === this._recursiveWidth && height === this._recursiveHeight) {\n return this;\n }\n this._recursiveHeight = height;\n this._recursiveWidth = width;\n\n this.children.each(function (i, e) {\n if (e.figure.isResizeable()) {\n e.figure.setDimension(width, height);\n }\n });\n\n delete this._recursiveHeight;\n delete this._recursiveWidth;\n\n return this;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/layout/TableLayout.js\":\n/*!*****************************************!*\\\n !*** ./src/shape/layout/TableLayout.js ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * The TableLayout class arranges the children in a row/column order. Each cell can be styled\n * with valign, align and padding.\n *\n *\n * See the example below with and without padding or alignment settings\n *\n *\n * @example\n *\n * let label1 = new draw2d.shape.basic.Label({text:\"[0,1] with long long long long label\", fontColor:\"#00AF00\"});\n * let label2 = new draw2d.shape.basic.Label({text:\"[1,1] padding:10\", fontColor:\"#00AF00\"});\n * let label3 = new draw2d.shape.basic.Label({text:\"[2,1] align:right\", fontColor:\"#00AF00\"});\n * let label4 = new draw2d.shape.basic.Label({text:\"[3,1] resize:true\",resizeable:true, fontColor:\"#00AF00\"});\n *\n * let container = new draw2d.shape.layout.TableLayout();\n *\n * container.addRow(\"[0,0]\", label1 ,\"[0,2] align:center\");\n * container.addRow(\"[1,0] valign:bottom\", label2,\"[1,2] long long long label\");\n * container.addRow(\"[2,0]\", label3,\"[2,2]\");\n * container.addRow(\"[3,0]\", label4,\"[3,2]\");\n *\n * container.setPadding(0);\n * container.setCellPadding(1,1, 10);\n *\n * container.setCellAlign(0,2, \"center\");\n * container.setCellAlign(2,1, \"right\");\n *\n * container.setCellVerticalAlign(1, 0, \"bottom\");\n * canvas.add(container,10,10);\n *\n *\n * @author Andreas Herz\n * @extends draw2d.shape.layout.Layout\n * @since 5.3.0\n */\n_packages2.default.shape.layout.TableLayout = _packages2.default.shape.layout.Layout.extend(\n/** @lends draw2d.shape.layout.TableLayout.prototype */\n{\n\n NAME: \"draw2d.shape.layout.TableLayout\",\n\n DUMMY_CELL: {\n getMinHeight: function getMinHeight() {\n return 1;\n },\n getMinWidth: function getMinWidth() {\n return 1;\n },\n off: function off() {}\n },\n /**\n * Create a new instance\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n var _this = this;\n this.cellLocator = {\n relocate: function relocate(index, figure) {\n if (_this.repaintBlocked === true) {\n return;\n }\n var cell = figure.__cell;\n var layout = _this.getCellLayout(cell.row, cell.column);\n var outerWidth = _this.getWidth();\n var minWidth = _this.getMinWidth();\n var widthOffset = 0;\n if (outerWidth != minWidth) {\n widthOffset = (outerWidth - minWidth) / _this.layoutInfos[0].length * cell.column;\n }\n\n var width = figure.getWidth();\n var height = figure.getHeight();\n var x = layout.x + _this.padding.left + layout.padding.left + widthOffset;\n var y = layout.y + _this.padding.top + layout.padding.top;\n\n // stretch the figure to fill the complete cell\n //\n if (figure.isResizeable()) {\n var w = Math.max(figure.getMinWidth(), layout.w - (layout.padding.left + layout.padding.right) + widthOffset);\n var h = Math.max(figure.getMinHeight(), layout.h - (layout.padding.top + layout.padding.bottom));\n figure.setDimension(w, h);\n }\n // else apply the valign and align property\n //\n else {\n // apply vertical alignment\n //\n switch (layout.valign) {\n case \"middle\":\n y = y + (layout.h - (height + layout.padding.top + layout.padding.bottom)) / 2;\n break;\n case \"bottom\":\n y = y + (layout.h - (height + layout.padding.top + layout.padding.bottom));\n break;\n }\n\n // apply horizontal alignment\n //\n switch (layout.align) {\n case \"center\":\n x = x + (layout.w - (width + layout.padding.left + layout.padding.right)) / 2 + widthOffset / 2;\n break;\n case \"right\":\n x = x + (layout.w - (width + layout.padding.left + layout.padding.right)) + widthOffset;\n break;\n }\n }\n figure.setPosition(x, y);\n },\n bind: function bind() {},\n unbind: function unbind() {},\n translate: function translate(figure, diff) {\n figure.setPosition(figure.x + diff.x, figure.y + diff.y);\n }\n };\n\n this.padding = { top: 4, right: 4, bottom: 4, left: 4 };\n\n this.grid = [];\n this.layoutInfos = [];\n this.layoutInfos[0] = [];\n this.layoutInfos[0][0] = { x: 0, y: 0, w: 1, h: 1, valign: \"top\", align: \"left\" };\n\n this._super(extend({ stroke: 1, resizeable: false }, attr), extend({\n // @attr {Number} padding the padding in pixel around the text */\n padding: this.setPadding\n }, setter), extend({\n padding: this.getPadding\n }, getter));\n },\n\n /**\n * \n * Set the padding of the given cell.\n *\n *\n * @param {Number|Object} padding The new padding\n **/\n setCellPadding: function setCellPadding(row, column, padding) {\n var layout = this.getCellLayout(row, column);\n if (layout === null) {\n return this;\n }\n\n if (typeof padding === \"number\") {\n layout.padding = { top: padding, right: padding, bottom: padding, left: padding };\n } else {\n extend(layout.padding, padding);\n }\n\n this.calculateLayout();\n this.setDimension(1, 1);\n\n return this;\n },\n\n /**\n * \n * Get the padding of the outer grid.\n *\n **/\n getCellPadding: function getCellPadding(row, column) {\n\n var layout = this.getCellLayout(row, column);\n if (layout === null || typeof layout.padding === \"undefined\") {\n return { top: 0, right: 0, bottom: 0, left: 0 };\n }\n return layout.padding;\n },\n\n /**\n * \n * Set the padding of the outer grid.\n *\n * // Alternatively you can use the attr method:\n * //\n * // set the padding for top,left,bottom,right in one call\n * figure.attr({\n * padding: 3\n * });\n *\n * // update the padding left and top\n * figure.attr({\n * padding: {left:3, top:30}\n * });\n *\n * @param {Number|Object} padding The new padding\n **/\n setPadding: function setPadding(padding) {\n if (typeof padding === \"number\") {\n this.padding = { top: padding, right: padding, bottom: padding, left: padding };\n } else {\n this.padding = extend(this.padding, padding);\n }\n this.calculateLayout();\n this.setDimension(1, 1);\n this.fireEvent(\"change:padding\", { value: this.padding });\n\n return this;\n },\n\n /**\n * \n * Get the padding of the outer grid.\n *\n **/\n getPadding: function getPadding() {\n return this.padding;\n },\n\n setCanvas: function setCanvas(canvas) {\n this._super(canvas);\n this.calculateLayout();\n this.setDimension(2, 2);\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n add: function add(child, locator, index) {\n this._super(child, locator, index);\n\n this.setDimension(1, 1);\n\n return this;\n },\n\n /**\n *\n * \n * Removes the row from the TableLayout\n *\n * @returns the removed row\n */\n removeRow: function removeRow(index) {\n var _this = this;\n var removedRow = this.grid.splice(index, 1);\n removedRow[0].forEach(function (figure) {\n _this.remove(figure);\n });\n\n this.calculateLayout();\n this.setDimension(2, 2);\n\n return removedRow;\n },\n\n /**\n * \n * Add a row to the table grid.\n * This method has a variable argument list. All arguments are added in one row.\n *\n * @param {Array} figures variable count of figures to add as one row\n */\n addRow: function addRow() {\n var figuresToAdd = [];\n var _this = this;\n var args = Array.prototype.slice.call(arguments); // sometimes js is stupid...\n\n var rowCount = this.grid.length + 1;\n var columnCount = this.grid.length > 0 ? Math.max(this.grid[0].length, args.length) : args.length;\n\n var row = [];\n\n args.forEach(function (figure, index) {\n if (typeof figure === \"string\") {\n figure = new _packages2.default.shape.basic.Label({ text: figure });\n }\n row.push(figure);\n figuresToAdd.push(figure);\n });\n this.grid.push(row);\n\n // adjust the columns. All rows must have the same column count. Add empty cells\n // if required.\n //\n this.grid.forEach(function (row, index) {\n var missingColumns = columnCount - row.length;\n for (var i = 0; i < missingColumns; i++) {\n row.push(_this.DUMMY_CELL);\n }\n });\n\n var orig = this.repaintBlocked;\n this.repaintBlocked = true;\n figuresToAdd.forEach(function (figure) {\n _this.add(figure, _this.cellLocator);\n });\n this.repaintBlocked = orig;\n\n this.calculateLayout();\n this.setDimension(1, 1);\n\n return this;\n },\n\n getMinWidth: function getMinWidth() {\n // return some good default if we are not part of the canvas.\n // A real width/height calculation isn'T possible if the canvas not set\n if (this.canvas === null || this.layoutInfos.length === 0) {\n return 10;\n }\n\n var bottom = this.layoutInfos[this.layoutInfos.length - 1];\n var layout = bottom[bottom.length - 1];\n\n return layout.w + layout.x + this.padding.left + this.padding.right;\n },\n\n getMinHeight: function getMinHeight() {\n // return some good default if we are not part of the canvas.\n // A real width/height calculation isn'T possible if the canvas not set\n if (this.canvas === null || this.layoutInfos.length === 0) {\n return 10;\n }\n\n var bottom = this.layoutInfos[this.layoutInfos.length - 1];\n var layout = bottom[bottom.length - 1];\n\n return layout.h + layout.y + this.padding.top + this.padding.bottom;\n },\n\n /**\n * \n * Set the vertical alignment of a cell. Possible values are\n * <ul>\n * <li>top</li>\n * <li>middle</li>\n * <li>bottom</li>\n * </ul>\n *\n * @param {Number} row The row index of the cell. Starting by 0\n * @param {Number} column The column index of the cell. Starting by 0\n * @param {String} align The vertical alignment of the cell\n */\n setCellVerticalAlign: function setCellVerticalAlign(row, column, valign) {\n var layout = this.getCellLayout(row, column);\n if (layout === null) {\n return; // silently\n }\n\n switch (valign) {\n case \"top\":\n case \"middle\":\n case \"bottom\":\n layout.valign = valign;\n this.calculateLayout();\n this.setDimension(1, 1);\n }\n\n return this;\n },\n\n /**\n * \n * Get the vertical alignment of a cell. Possible values are\n * <ul>\n * <li>top</li>\n * <li>middle</li>\n * <li>bottom</li>\n * </ul>\n *\n * @param {Number} row The row index of the cell. Starting by 0\n * @param {Number} column The column index of the cell. Starting by 0\n * @returns {String} The vertical alignment of the cell\n */\n getCellVerticalAlign: function getCellVerticalAlign(row, column) {\n var layout = this.getCellLayout(row, column);\n if (layout === null) {\n return \"top\";\n }\n\n return layout.valign;\n },\n\n /**\n * \n * Set the alignment of a cell. Possible values are\n * <ul>\n * <li>left</li>\n * <li>center</li>\n * <li>right</li>\n * </ul>\n *\n *\n * @param {Number} row The row index of the cell. Starting by 0\n * @param {Number} column The column index of the cell. Starting by 0\n * @param {String} align The horizontal alignment of the cell\n */\n setCellAlign: function setCellAlign(row, column, align) {\n\n var layout = this.getCellLayout(row, column);\n if (layout === null) {\n return; // silently\n }\n\n switch (align) {\n case \"left\":\n case \"center\":\n case \"right\":\n layout.align = align;\n this.calculateLayout();\n this.setDimension(1, 1);\n }\n\n return this;\n },\n\n /**\n * \n * Return the alignment of a cell. Possible values are\n * <ul>\n * <li>left</li>\n * <li>center</li>\n * <li>right</li>\n * </ul>\n *\n *\n * @param {Number} row The row index of the cell. Starting by 0\n * @param {Number} column The column index of the cell. Starting by 0\n * return {String} The horizontal alignment of the cell\n */\n getCellAlign: function getCellAlign(row, column) {\n\n var layout = this.getCellLayout(row, column);\n if (layout === null) {\n return \"left\";\n }\n return layout.align;\n },\n\n /**\n * \n * Return the layout information for the given row/column or <b>null</b>\n * if the row/column index is out of range.\n *\n * @private\n */\n getCellLayout: function getCellLayout(row, column) {\n if (row < 0 || column < 0) {\n return null; // silently\n }\n\n if (row >= this.layoutInfos.length) {\n return null; // silently\n }\n\n var layouts = this.layoutInfos[row];\n if (column >= layouts.length) {\n return null; // silently\n }\n\n return layouts[column];\n },\n\n /**\n * \n * Recalculate the layout of the table\n *\n * @private\n */\n calculateLayout: function calculateLayout() {\n var _this = this;\n var rowCount = this.grid.length;\n var columnCount = this.grid.length > 0 ? this.grid[0].length : 0;\n\n var newLayoutInfos = [];\n for (var row = 0; row < rowCount; row++) {\n newLayoutInfos[row] = [];\n for (var column = 0; column < columnCount; column++) {\n newLayoutInfos[row][column] = {\n width: 0,\n height: 0,\n x: 0,\n y: 0,\n valign: this.getCellVerticalAlign(row, column),\n align: this.getCellAlign(row, column),\n padding: this.getCellPadding(row, column)\n };\n }\n }\n\n // determine the heights/widths of the grid\n //\n var layoutWidths = new Array(columnCount + 1).join('0').split('').map(parseFloat);\n var layoutHeights = new Array(rowCount + 1).join('0').split('').map(parseFloat);\n this.grid.forEach(function (figures, row) {\n for (var _column = 0; _column < columnCount; _column++) {\n var layout = newLayoutInfos[row][_column];\n var figure = figures[_column];\n figure.__cell = { row: row, column: _column };\n layoutHeights[row] = Math.max(layoutHeights[row], figure.getMinHeight() + layout.padding.top + layout.padding.bottom);\n layoutWidths[_column] = Math.max(layoutWidths[_column], figure.getMinWidth() + layout.padding.left + layout.padding.right);\n }\n });\n\n var x = 0,\n y = 0;\n for (var _row = 0; _row < rowCount; _row++) {\n for (var _column2 = 0; _column2 < columnCount; _column2++) {\n var layout = newLayoutInfos[_row][_column2];\n layout.w = layoutWidths[_column2];\n layout.h = layoutHeights[_row];\n layout.x = x;\n layout.y = y;\n x = x + layout.w;\n }\n y = y + layoutHeights[_row];\n x = 0;\n }\n\n this.layoutInfos = newLayoutInfos;\n\n return this;\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/layout/VerticalLayout.js\":\n/*!********************************************!*\\\n !*** ./src/shape/layout/VerticalLayout.js ***!\n \\********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * The VerticalLayout class arranges the layout elements in a vertical sequence,\n * left to right, with optional gaps between the elements.\n *\n * During the execution of the setDimension() method, the minimum height of the container is calculated\n * by accumulating the minimum sizes of the elements, including stroke, gaps and padding.\n *\n * See the example below with and without gap and border settings\n *\n *\n * @example\n *\n * // first container without any gap and a border of the parent\n * // container\n * let label1 = new draw2d.shape.basic.Label({text:\"Label 1\"});\n * let label2 = new draw2d.shape.basic.Label({text:\"Label 2\"});\n * let label3 = new draw2d.shape.basic.Label({text:\"Label 3\"});\n *\n * let container1 = new draw2d.shape.layout.VerticalLayout();\n *\n * container1.add(label1);\n * container1.add(label2);\n * container1.add(label3);\n * container1.setGap(10);\n * container1.setStroke(2);\n * canvas.add(container1,50,10);\n *\n * // second container without any gab or border\n * //\n * let label11 = new draw2d.shape.basic.Label({text:\"Label 1\"});\n * let label12 = new draw2d.shape.basic.Label({text:\"Label 2\"});\n * let label13 = new draw2d.shape.basic.Label({text:\"Label 3\"});\n *\n * let container2 = new draw2d.shape.layout.VerticalLayout();\n *\n * container2.add(label11);\n * container2.add(label12);\n * container2.add(label13);\n *\n * canvas.add(container2,150,10);\n *\n * @author Andreas Herz\n * @extends draw2d.shape.layout.Layout\n */\n_packages2.default.shape.layout.VerticalLayout = _packages2.default.shape.layout.Layout.extend(\n/** @lends draw2d.shape.layout.VerticalLayout.prototype */\n{\n\n NAME: \"draw2d.shape.layout.VerticalLayout\",\n\n /**\n * Create a new instance\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n // some layout parameter\n //\n this.gap = 0;\n\n // \"this\" shortcut to avoid $.proxy\n var _this = this;\n\n this.locator = {\n translate: function translate(figure, diff) {\n figure.setPosition(figure.x + diff.x, figure.y + diff.y);\n },\n bind: function bind() {},\n unbind: function unbind() {},\n relocate: function relocate(index, target) {\n var stroke = _this.getStroke();\n var yPos = stroke + _this.padding.top; // respect the border and padding of the shape\n var xPos = _this.padding.left;\n\n for (var i = 0; i < index; i++) {\n var child = _this.children.get(i).figure;\n if (child.isVisible()) {\n yPos += child.getHeight() + _this.gap;\n }\n }\n\n target.setPosition(xPos, yPos);\n }\n };\n\n this._super(extend({ width: 10, height: 10 }, attr), extend({\n // @attr {Number} gap the gap between the children shapes */\n gap: this.setGap\n }, setter), extend({\n gap: this.getGap\n }, getter));\n },\n\n /**\n * @inheritdoc\n */\n add: function add(child, locator, index) {\n this._super(child, this.locator, index);\n\n this.setDimension(1, 1);\n\n return this;\n },\n\n /**\n * \n * Set the gap width between child components within this layout.\n * This will only affect the space between components, not the space around all the components in the layout.\n *\n * @param {Number} gap The space, in pixels, between items.\n */\n setGap: function setGap(gap) {\n this.gap = gap;\n // this forces a relayout of the element\n this.setDimension(1, 1);\n },\n\n /**\n * @inheritdoc\n */\n getMinWidth: function getMinWidth() {\n var markup = this.stroke * 2 + this.padding.left + this.padding.right;\n var width = 10;\n this.children.each(function (i, e) {\n if (e.figure.isVisible()) width = Math.max(width, e.figure.isResizeable() ? e.figure.getMinWidth() : e.figure.getWidth());\n });\n return width + markup;\n },\n\n /**\n * @inheritdoc\n */\n getMinHeight: function getMinHeight() {\n var _this = this;\n var gap = 0;\n var markup = this.stroke * 2 + this.padding.top + this.padding.bottom;\n var height = 0;\n\n this.children.each(function (i, e) {\n if (e.figure.isVisible()) {\n height += (e.figure.isResizeable() ? e.figure.getMinHeight() : e.figure.getHeight()) + gap;\n // first element is iterated. Now we must add the gap to all next elements\n gap = _this.gap;\n }\n });\n\n return height + markup;\n },\n\n /**\n * @inheritdoc\n */\n setDimension: function setDimension(w, h) {\n this._super(w, h);\n\n var width = this.width - this.padding.left - this.padding.right;\n if (width === this._recursiveWidth) {\n return this;\n }\n this._recursiveWidth = width;\n\n this.children.each(function (i, e) {\n if (e.figure.isResizeable() && e.figure.isVisible()) {\n e.figure.setDimension(width, e.figure.getMinHeight());\n }\n });\n\n delete this._recursiveWidth;\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n getPersistentAttributes: function getPersistentAttributes() {\n var memento = this._super();\n\n memento.gap = this.gap;\n\n return memento;\n },\n\n /**\n * @inheritdoc\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this._super(memento);\n\n if (typeof memento.gap === \"number\") {\n this.gap = memento.gap;\n }\n\n return this;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/node/Between.js\":\n/*!***********************************!*\\\n !*** ./src/shape/node/Between.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * A simple Node which has a InputPort and OutputPort. Mainly used for demo and examples.\n *\n *\n * @example\n *\n * let figure = new draw2d.shape.node.Between({color: \"#3d3d3d\"});\n *\n * canvas.add(figure,50,10);\n *\n * @extends draw2d.shape.basic.Rectangle\n */\n_packages2.default.shape.node.Between = _packages2.default.shape.basic.Rectangle.extend(\n/** @lends draw2d.shape.node.Between.prototype */\n{\n\n NAME: \"draw2d.shape.node.Between\",\n\n DEFAULT_COLOR: new _packages2.default.util.Color(\"#4D90FE\"),\n\n /**\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({\n bgColor: this.DEFAULT_COLOR,\n color: this.DEFAULT_COLOR.darker(),\n width: 50,\n height: 50\n }, attr), setter, getter);\n\n this.createPort(\"output\");\n this.createPort(\"input\");\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/node/End.js\":\n/*!*******************************!*\\\n !*** ./src/shape/node/End.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * A simple Node which has a InputPort. Mainly used for demo and examples.\n *\n *\n * @example\n *\n * let figure = new draw2d.shape.node.End({color: \"#3d3d3d\"});\n *\n * canvas.add(figure,50,10);\n *\n * @extends draw2d.shape.basic.Rectangle\n */\n_packages2.default.shape.node.End = _packages2.default.shape.basic.Rectangle.extend(\n/** @lends draw2d.shape.node.End.prototype */\n{\n\n NAME: \"draw2d.shape.node.End\",\n\n DEFAULT_COLOR: new _packages2.default.util.Color(\"#4D90FE\"),\n\n /**\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({\n bgColor: this.DEFAULT_COLOR,\n color: this.DEFAULT_COLOR.darker(),\n width: 50,\n height: 50\n }, attr), setter, getter);\n\n this.createPort(\"input\");\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/node/Fulcrum.js\":\n/*!***********************************!*\\\n !*** ./src/shape/node/Fulcrum.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _JSONUtil = __webpack_require__(/*! ../../util/JSONUtil */ \"./src/util/JSONUtil.js\");\n\nvar _JSONUtil2 = _interopRequireDefault(_JSONUtil);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A horizontal bus shape with a special kind of port handling. The hole figure is a hybrid port.\n *\n *\n * @example\n *\n * canvas.add( new draw2d.shape.node.Fulcrum(),50,10);\n * canvas.add( new draw2d.shape.node.Fulcrum(),80,100);\n * canvas.add( new draw2d.shape.node.Fulcrum(),150,50);\n *\n * @extends draw2d.shape.node.Hub\n */\n_packages2.default.shape.node.Fulcrum = _packages2.default.shape.node.Hub.extend(\n/** @lends draw2d.shape.node.Fulcrum.prototype */\n{\n\n NAME: \"draw2d.shape.node.Fulcrum\",\n\n /**\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({ width: 40, height: 40 }, attr), setter, getter);\n\n this.port.setConnectionAnchor(new _packages2.default.layout.anchor.ConnectionAnchor(this.port));\n this.port.setVisible(true);\n this.port.hitTest = this.port._orig_hitTest;\n\n this.setConnectionDirStrategy(0);\n this.setColor(null);\n this.setRadius(10);\n this.setBackgroundColor(null);\n this.setStroke(0);\n this.installEditPolicy(new _packages2.default.policy.figure.AntSelectionFeedbackPolicy());\n },\n\n /**\n * @inheritdoc\n */\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return this;\n }\n\n attributes = attributes || {};\n\n // set some good defaults if the parent didn't\n _JSONUtil2.default.ensureDefault(attributes, \"fill\", this.bgColor.rgba());\n\n return this._super(attributes);\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/node/HorizontalBus.js\":\n/*!*****************************************!*\\\n !*** ./src/shape/node/HorizontalBus.js ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A horizontal bus shape with a special kind of port handling. The hole figure is a hybrid port.\n *\n *\n * @example\n *\n * let figure = new draw2d.shape.node.HorizontalBus({width:300, height:20, text:\"Horizontal Bus\"});\n *\n * canvas.add(figure,50,10);\n *\n * @extends draw2d.shape.node.Hub\n */\n_packages2.default.shape.node.HorizontalBus = _packages2.default.shape.node.Hub.extend(\n/** @lends draw2d.shape.node.HorizontalBus.prototype */\n{\n\n NAME: \"draw2d.shape.node.HorizontalBus\",\n\n /**\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n this.setConnectionDirStrategy(1);\n\n this.installEditPolicy(new _packages2.default.policy.figure.HBusSelectionFeedbackPolicy());\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/node/Hub.js\":\n/*!*******************************!*\\\n !*** ./src/shape/node/Hub.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _Color = __webpack_require__(/*! ../../util/Color */ \"./src/util/Color.js\");\n\nvar _Color2 = _interopRequireDefault(_Color);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A hub is a shape with a special kind of port handling. The hole figure is a hybrid port. You can drag&drop a Port directly on\n * the figure.\n *\n *\n * @example\n *\n *\n * canvas.add(new draw2d.shape.node.Start({x:50, y:50}));\n * canvas.add(new draw2d.shape.node.Hub({x:150, y:50}));\n *\n * @extends draw2d.shape.basic.Rectangle\n */\n_packages2.default.shape.node.Hub = _packages2.default.shape.basic.Rectangle.extend(\n/** @lends draw2d.shape.node.Hub.prototype */\n{\n\n NAME: \"draw2d.shape.node.Hub\",\n\n DEFAULT_COLOR: new _Color2.default(\"#4DF0FE\"),\n BACKGROUND_COLOR: new _Color2.default(\"#29AA77\"),\n\n /**\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this.label = null;\n\n this._super(extend({ color: this.DEFAULT_COLOR.darker(), bgColor: this.BACKGROUND_COLOR }, attr), extend({\n // deprecated\n label: this.setLabel,\n // @attr {String} text the text to display in the center of the hub */\n text: this.setLabel\n }, setter), extend({\n label: this.getLabel,\n text: this.getLabel\n }, getter));\n\n var _port = this.port = this.createPort(\"hybrid\", new _packages2.default.layout.locator.CenterLocator());\n\n var r = _packages2.default.geo.Rectangle;\n this.CONNECTION_DIR_STRATEGY = [function (peerPort) {\n return _port.getParent().getBoundingBox().getDirection(peerPort.getAbsolutePosition());\n }, function (peerPort) {\n return _port.getAbsoluteY() > peerPort.getAbsoluteY() ? r.DIRECTION_UP : r.DIRECTION_DOWN;\n }, function (peerPort) {\n return _port.getAbsoluteX() > peerPort.getAbsoluteX() ? r.DIRECTION_LEFT : r.DIRECTION_RIGHT;\n }];\n\n // redirect the glow effect and the hitTest for the port to the parent node\n //\n this.port.setGlow = this.setGlow.bind(this);\n this.port._orig_hitTest = this.port.hitTest;\n this.port.hitTest = this.hitTest.bind(this);\n\n // provide a special connection anchor for this port. We use the bounding box of the\n // parent as connection border\n //\n this.port.setConnectionAnchor(new _packages2.default.layout.anchor.ShortesPathConnectionAnchor(this.port));\n this.port.setVisible(false);\n this.port.setVisible = function () {};\n\n this.setConnectionDirStrategy(0);\n },\n\n /**\n *\n * Called by the framework during drag&drop operations if the user drag a figure over this figure\n *\n * @param {draw2d.Figure} draggedFigure The figure which is currently dragging\n *\n * @returns {draw2d.Figure} the figure which should receive the drop event or null if the element didn't want a drop event\n **/\n delegateTarget: function delegateTarget(draggedFigure) {\n // redirect the dragEnter handling to the hybrid port\n //\n return this.getHybridPort(0).delegateTarget(draggedFigure);\n },\n\n /**\n *\n * This value is relevant for the interactive resize of the figure.\n *\n * @returns {Number} Returns the min. width of this object.\n */\n getMinWidth: function getMinWidth() {\n if (this.label !== null) {\n return Math.max(this.label.getMinWidth(), this._super());\n }\n return this._super();\n },\n\n /**\n * @inheritdoc\n *\n * @private\n */\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n attributes = attributes || {};\n\n // set some good defaults if the parent didn't\n if (typeof attributes.fill === \"undefined\") {\n if (this.bgColor !== null) {\n attributes.fill = \"90-\" + this.bgColor.hash() + \":5-\" + this.bgColor.lighter(0.3).hash() + \":95\";\n } else {\n attributes.fill = \"none\";\n }\n }\n\n this._super(attributes);\n },\n\n /**\n *\n * Set the label for the Hub\n *\n * // Alternatively you can use the attr method:\n * figure.attr({\n * text: label\n * });\n *\n *\n * @param {String} label\n * @since 3.0.4\n */\n setLabel: function setLabel(label) {\n // Create any Draw2D figure as decoration for the connection\n //\n if (this.label === null) {\n var _this = this;\n\n this.label = new _packages2.default.shape.basic.Label({ text: label, color: \"#0d0d0d\", fontColor: \"#0d0d0d\", stroke: 0 });\n // add the new decoration to the connection with a position locator.\n //\n this.add(this.label, new _packages2.default.layout.locator.CenterLocator());\n this.label.setSelectionAdapter(function () {\n return _this;\n });\n this.label.delegateTarget = function () {\n return _this.port;\n };\n } else {\n this.label.setText(label);\n }\n },\n\n /**\n *\n * Set the strategy for the connection direction calculation.<br>\n * <br>\n *\n * <ul>\n * <li>0 - Use the best/shortest direction (UP/RIGHT/DOWN/LEFT) for the connection routing (default)</li>\n * <li>1 - Use UP/DOWN for the connection direction</li>\n * <li>2 - Use LEFT/RIGHT</li>\n * </ul>\n * @param {Number} strategy the connection routing strategy to use\n * @since 2.4.3\n */\n setConnectionDirStrategy: function setConnectionDirStrategy(strategy) {\n switch (strategy) {\n case 0:\n case 1:\n case 2:\n this.port.getConnectionDirection = this.CONNECTION_DIR_STRATEGY[strategy];\n break;\n }\n },\n\n /**\n * @inheritdoc\n */\n getPersistentAttributes: function getPersistentAttributes() {\n var memento = this._super();\n\n memento.dirStrategy = this.CONNECTION_DIR_STRATEGY.indexOf(this.port.getConnectionDirection);\n if (this.label !== null) {\n memento.label = this.label.getText();\n }\n\n return memento;\n },\n\n /**\n * @inheritdoc\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this._super(memento);\n\n if (typeof memento.dirStrategy === \"number\") {\n this.setConnectionDirStrategy(memento.dirStrategy);\n }\n\n if (typeof memento.label !== \"undefined\") {\n this.setLabel(memento.label);\n }\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/node/Node.js\":\n/*!********************************!*\\\n !*** ./src/shape/node/Node.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _extend = __webpack_require__(/*! ../../util/extend */ \"./src/util/extend.js\");\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A Node is the base class for all figures which can have {@link draw2d.Port}s. A {@link draw2d.Port} is the\n * anchor for a {@link draw2d.Connection} line.<br><br>A {@link draw2d.Port} is a green dot which can\n * be dragged and dropped over another port.<br>\n * @inheritable\n * @author Andreas Herz\n * @extends draw2d.Figure\n */\n_packages2.default.shape.node.Node = _packages2.default.Figure.extend(\n/** @lends draw2d.shape.node.Node.prototype */\n{\n\n NAME: \"draw2d.shape.node.Node\",\n\n /**\n * Creates a new Node element which are not assigned to any canvas.\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this.inputPorts = new _packages2.default.util.ArrayList();\n this.outputPorts = new _packages2.default.util.ArrayList();\n this.hybridPorts = new _packages2.default.util.ArrayList();\n\n // flag which indicates if the figure should read/write ports to\n // JSON\n this.persistPorts = true;\n\n // Flags just for performance reasons\n //\n this.portRelayoutRequired = true;\n\n // just for performance reasons\n //\n this.cachedPorts = null;\n\n this._super((0, _extend2.default)({ width: 50, height: 50 }, attr), (0, _extend2.default)({\n // @attr {Number} indicate whenever you want persists the ports too */\n persistPorts: this.setPersistPorts\n }, setter), (0, _extend2.default)({\n persistPorts: this.getPersistPorts\n }, getter));\n },\n\n /**\n *\n * Indicates if the node should read/write the ports via the draw2d.Figure.getPersistenAttributes\n * to the JSON object\n *\n * @param {Boolean} flag\n * @since 5.0.4\n */\n setPersistPorts: function setPersistPorts(flag) {\n this.persistPorts = flag;\n this.fireEvent(\"change:persistPorts\", { value: this.persistPorts });\n\n return this;\n },\n\n /**\n *\n * Indicates if the figure writes the ports to the JSON structore too.\n * Default is \"false\"\n *\n * @returns {Boolean}\n */\n getPersistPorts: function getPersistPorts() {\n return this.persistPorts;\n },\n\n /**\n * @inheritdoc\n */\n toFront: function toFront(figure) {\n var _this = this;\n\n this._super(figure);\n\n this.getPorts().each(function (i, port) {\n port.getConnections().each(function (i, connection) {\n return connection.toFront(figure);\n });\n port.toFront(_this);\n });\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n toBack: function toBack(figure) {\n\n this.getPorts().each(function (i, port) {\n port.getConnections().each(function (i, connection) {\n return connection.toBack(figure);\n });\n port.toBack(figure);\n });\n\n this._super(figure);\n\n return this;\n },\n\n /**\n * @inheritdoc\n */\n setVisible: function setVisible(flag, duration) {\n // adjust the visibility of the ports to the parent state\n //\n if (!flag) {\n this.getPorts().each(function (i, port) {\n port.__initialVisibilityState = port.isVisible();\n port.setVisible(false, duration);\n });\n } else {\n this.getPorts().each(function (i, port) {\n if (typeof port.__initialVisibilityState !== \"undefined\") {\n port.setVisible(port.__initialVisibilityState, duration);\n } else {\n port.setVisible(true, duration);\n }\n delete port.__initialVisibilityState;\n });\n }\n this._super(flag, duration);\n },\n\n /**\n *\n * Return all ports of the node. The results contains\n * all ports of the children too per default. Set <b>recursive</b>\n * to false to retrieve direct assigned ports only.\n *\n * @param {Boolean} [recursive] indicates if the method should return children ports too. Default is <b>true</b>\n * @returns {draw2d.util.ArrayList}\n **/\n getPorts: function getPorts(recursive) {\n var _this2 = this;\n\n if (typeof recursive === \"boolean\" && recursive === false) {\n var ports = new _packages2.default.util.ArrayList();\n ports.addAll(this.inputPorts);\n ports.addAll(this.outputPorts);\n ports.addAll(this.hybridPorts);\n return ports;\n }\n\n if (this.cachedPorts === null) {\n this.cachedPorts = new _packages2.default.util.ArrayList();\n this.cachedPorts.addAll(this.inputPorts);\n this.cachedPorts.addAll(this.outputPorts);\n this.cachedPorts.addAll(this.hybridPorts);\n\n this.children.each(function (i, e) {\n _this2.cachedPorts.addAll(e.figure.getPorts());\n });\n }\n return this.cachedPorts;\n },\n\n /**\n *\n * Return all input ports of the node.\n *\n * @returns {draw2d.util.ArrayList}\n **/\n getInputPorts: function getInputPorts() {\n return this.inputPorts.clone().addAll(this.hybridPorts);\n },\n\n /**\n *\n * Return all output ports of the node.\n *\n * @returns {draw2d.util.ArrayList}\n **/\n getOutputPorts: function getOutputPorts() {\n return this.outputPorts.clone().addAll(this.hybridPorts);\n },\n\n /**\n *\n * Clone the figure. <br>\n * You must override and implement the methods <b>getPersistentAttributes</b> and <b>setPersistentAttributes</b> for your custom\n * figures if the have special attributes.\n *\n * The clone() method performs a deep copy of the object, meaning that it copies the children, ports and decorations\n * per default. You can control the clone procedure with the 'cloneMetaData'.\n *\n *\n * @param {Object} [cloneMetaData] controls the clone procedure\n * @param {Boolean} [cloneMetaData.excludeChildren] set it to true if you want exclude the children.\n * @param {Boolean} [cloneMetaData.excludePorts] set it to true if you want exclude the ports of the node.\n *\n * @since 4.1.0\n * @experimental\n */\n clone: function clone(cloneMetaData) {\n cloneMetaData = (0, _extend2.default)({ excludePorts: false }, cloneMetaData);\n\n var clone = this._super(cloneMetaData);\n\n // remove all ports of the clone. the \"init\" method can have create some. but this must\n // removed because we want a clone of an existing figure\n //\n if (cloneMetaData.excludePorts === false) {\n clone.resetPorts();\n var ports = this.getPorts(false);\n\n ports.each(function (i, port) {\n var clonePort = port.clone();\n var locator = port.getLocator().clone();\n clone.addPort(clonePort, locator);\n });\n }\n\n return clone;\n },\n\n /**\n *\n * Return the port with the corresponding name.\n *\n *\n * @param {String} portName The name of the port to return.\n * @returns {draw2d.Port} Returns the port with the hands over name or null.\n **/\n getPort: function getPort(portName) {\n return this.getPorts().find(function (e) {\n return e.getName() === portName;\n });\n },\n\n /**\n *\n * Return the input port with the corresponding name.\n *\n *\n * @param {String/Number} portNameOrIndex The name or numeric index of the port to return.\n * @returns {draw2d.InputPort} Returns the port with the hands over name or null.\n **/\n getInputPort: function getInputPort(portNameOrIndex) {\n if (typeof portNameOrIndex === \"number\") {\n return this.inputPorts.get(portNameOrIndex);\n }\n\n for (var i = 0; i < this.inputPorts.getSize(); i++) {\n var port = this.inputPorts.get(i);\n if (port.getName() === portNameOrIndex) {\n return port;\n }\n }\n\n return null;\n },\n\n /**\n *\n * Return the output port with the corresponding name.\n *\n * @param {String/Number} portNameOrIndex The name or the numeric index of the port to return.\n * @returns {draw2d.OutputPort} Returns the port with the hands over name or null.\n **/\n getOutputPort: function getOutputPort(portNameOrIndex) {\n if (typeof portNameOrIndex === \"number\") {\n return this.outputPorts.get(portNameOrIndex);\n }\n\n for (var i = 0; i < this.outputPorts.getSize(); i++) {\n var port = this.outputPorts.get(i);\n if (port.getName() === portNameOrIndex) {\n return port;\n }\n }\n\n return null;\n },\n\n /**\n *\n * Return the input port with the corresponding name.\n *\n *\n * @param {String/Number} portNameOrIndex The name or numeric index of the port to return.\n * @returns {draw2d.InputPort} Returns the port with the hands over name or null.\n **/\n getHybridPort: function getHybridPort(portNameOrIndex) {\n if (typeof portNameOrIndex === \"number\") {\n return this.hybridPorts.get(portNameOrIndex);\n }\n\n for (var i = 0; i < this.hybridPorts.getSize(); i++) {\n var port = this.hybridPorts.get(i);\n if (port.getName() === portNameOrIndex) {\n return port;\n }\n }\n\n return null;\n },\n\n /**\n *\n * Add a port to this node at the given position.<br>\n *\n * @param {draw2d.Port} port The new port to add.\n * @param {draw2d.layout.locator.Locator} locator The layout for the port.\n **/\n addPort: function addPort(port, locator) {\n if (!(port instanceof _packages2.default.Port)) {\n throw \"Argument is not typeof 'draw2d.Port'. \\nFunction: draw2d.shape.node.Node#addPort\";\n }\n\n // add to the internal cache if already build\n if (this.cachedPorts !== null) {\n this.cachedPorts.add(port);\n }\n\n this.portRelayoutRequired = true;\n\n if (port instanceof _packages2.default.InputPort) {\n this.inputPorts.add(port);\n } else if (port instanceof _packages2.default.OutputPort) {\n this.outputPorts.add(port);\n } else if (port instanceof _packages2.default.HybridPort) {\n this.hybridPorts.add(port);\n }\n\n if (typeof locator !== \"undefined\" && locator instanceof _packages2.default.layout.locator.Locator) {\n port.setLocator(locator);\n }\n\n port.setParent(this);\n port.setCanvas(this.canvas);\n\n // You can't delete a port with the [DEL] key if a port is a child of a node\n port.setDeleteable(false);\n\n if (this.canvas !== null) {\n port.getShapeElement();\n this.canvas.registerPort(port);\n }\n\n return port;\n },\n\n /**\n *\n * Remove all ports of this node\n *\n * @since 5.0.0\n * @returns {this}\n */\n resetPorts: function resetPorts() {\n var _this3 = this;\n\n this.getPorts().each(function (i, port) {\n return _this3.removePort(port);\n });\n return this;\n },\n\n /**\n *\n * Removes a port and all related connections from this node.<br>\n *\n * @param {draw2d.Port} port The port to remove.\n * @returns {this}\n **/\n removePort: function removePort(port) {\n this.portRelayoutRequired = true;\n\n this.cachedPorts = null;\n this.inputPorts.remove(port);\n this.outputPorts.remove(port);\n this.hybridPorts.remove(port);\n\n if (port.getCanvas() !== null) {\n var canvas = port.getCanvas();\n canvas.unregisterPort(port);\n // remove the related connections of the port too.\n var connections = port.getConnections().clone();\n connections.each(function (i, connection) {\n canvas.remove(connection);\n });\n }\n\n port.setCanvas(null);\n\n return this;\n },\n\n /**\n *\n * Create a standard Port for this element. Inherited class can override this\n * method to create its own type of ports.\n *\n * @param {String} type the type of the requested port. possible [\"input\", \"output\"]\n * @param {draw2d.layout.locator.Locator} [locator] the layouter to use for this port\n * @template\n */\n createPort: function createPort(type, locator) {\n var newPort = null;\n var count = 0;\n\n switch (type) {\n case \"input\":\n newPort = _packages2.default.Configuration.factory.createInputPort(this);\n count = this.inputPorts.getSize();\n break;\n case \"output\":\n newPort = _packages2.default.Configuration.factory.createOutputPort(this);\n count = this.outputPorts.getSize();\n break;\n case \"hybrid\":\n newPort = _packages2.default.Configuration.factory.createHybridPort(this);\n count = this.hybridPorts.getSize();\n break;\n default:\n throw \"Unknown type [\" + type + \"] of port requested\";\n }\n\n newPort.setName(type + count);\n\n this.addPort(newPort, locator);\n // relayout the ports\n this.setDimension(this.width, this.height);\n\n return newPort;\n },\n\n /**\n *\n * Return all connections related to this node.\n *\n * @returns {draw2d.util.ArrayList}\n */\n getConnections: function getConnections() {\n var connections = new _packages2.default.util.ArrayList();\n var ports = this.getPorts();\n for (var i = 0; i < ports.getSize(); i++) {\n var port = ports.get(i);\n // Do NOT add twice the same connection if it is linking ports from the same node\n for (var c = 0, c_size = port.getConnections().getSize(); c < c_size; c++) {\n if (!connections.contains(port.getConnections().get(c))) {\n connections.add(port.getConnections().get(c));\n }\n }\n }\n return connections;\n },\n\n /**\n * @returns {this}\n */\n setCanvas: function setCanvas(canvas) {\n var oldCanvas = this.canvas;\n this._super(canvas);\n\n var ports = this.getPorts();\n if (oldCanvas !== null) {\n ports.each(function (i, port) {\n return oldCanvas.unregisterPort(port);\n });\n }\n\n if (canvas !== null) {\n ports.each(function (i, port) {\n port.setCanvas(canvas);\n canvas.registerPort(port);\n });\n // relayout the ports\n this.setDimension(this.width, this.height);\n } else {\n ports.each(function (i, port) {\n return port.setCanvas(null);\n });\n }\n return this;\n },\n\n /**\n * @returns {this}\n */\n setRotationAngle: function setRotationAngle(angle) {\n this.portRelayoutRequired = true;\n this._super(angle);\n\n this.layoutPorts();\n\n return this;\n },\n\n /**\n * @returns {this}\n */\n setDimension: function setDimension(w, h) {\n this.portRelayoutRequired = true;\n this._super(w, h);\n\n return this;\n },\n\n /**\n *\n * Called if the value of any port has been changed\n *\n * @param {draw2d.Port} relatedPort\n * @template\n */\n onPortValueChanged: function onPortValueChanged(relatedPort) {},\n\n /**\n * @private\n * @return {this}\n */\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return this;\n }\n\n this._super(attributes);\n this.layoutPorts();\n\n return this;\n },\n\n /**\n *\n *\n * @private\n * @returns {this}\n */\n layoutPorts: function layoutPorts() {\n if (this.portRelayoutRequired === false) {\n return this; //silently\n }\n this.portRelayoutRequired = false;\n\n // layout the ports\n //\n this.outputPorts.each(function (i, port) {\n return port.locator.relocate(i, port);\n });\n this.inputPorts.each(function (i, port) {\n return port.locator.relocate(i, port);\n });\n this.hybridPorts.each(function (i, port) {\n return port.locator.relocate(i, port);\n });\n\n return this;\n },\n\n /**\n *\n * Returns the Command to perform the specified Request or null.\n *\n * @param {draw2d.command.CommandType} request describes the Command being requested\n * @returns {draw2d.command.Command} null or a Command\n * @private\n **/\n createCommand: function createCommand(request) {\n if (request === null) {\n return null;\n }\n\n if (request.getPolicy() === _packages2.default.command.CommandType.ROTATE) {\n return new _packages2.default.command.CommandRotate(this, (this.getRotationAngle() + 90) % 360);\n }\n\n return this._super(request);\n },\n\n /**\n *\n * Return an objects with all important attributes for XML or JSON serialization\n *\n * @returns {Object}\n */\n getPersistentAttributes: function getPersistentAttributes() {\n var memento = this._super();\n\n // write all ports to the JSON\n //\n if (this.persistPorts === true) {\n memento.ports = [];\n this.getPorts().each(function (i, port) {\n memento.ports.push((0, _extend2.default)(port.getPersistentAttributes(), {\n name: port.getName(),\n port: port.NAME,\n locator: port.getLocator().NAME,\n locatorAttr: port.getLocator().attr()\n }));\n });\n }\n\n return memento;\n },\n\n /**\n *\n * Read all attributes from the serialized properties and transfer them into the shape.\n *\n * @param {Object} memento\n * @returns {this}\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n var _this4 = this;\n\n this._super(memento);\n\n if (typeof memento.ports !== \"undefined\") {\n // we read the ports from the JSON and now we save it to the JSON too.\n this.persistPorts = true;\n\n // remove all ports created in the init method\n //\n this.resetPorts();\n\n // and restore all ports of the JSON document instead.\n //\n memento.ports.forEach(function (e) {\n var locator = eval(\"new \" + e.locator + \"()\");\n if (e.locatorAttr) {\n locator.attr(e.locatorAttr);\n }\n\n var port = eval(\"new \" + e.port + \"()\");\n port.setPersistentAttributes(e);\n _this4.addPort(port, locator);\n });\n }\n\n return this;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/node/Start.js\":\n/*!*********************************!*\\\n !*** ./src/shape/node/Start.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A generic Node which has an OutputPort. Mainly used for demos and examples.\n *\n *\n * @example\n *\n * let figure = new draw2d.shape.node.Start({color: \"#3d3d3d\"});\n *\n * canvas.add(figure,50,10);\n *\n * @extends draw2d.shape.basic.Rectangle\n */\n_packages2.default.shape.node.Start = _packages2.default.shape.basic.Rectangle.extend(\n/** @lends draw2d.shape.node.Start.prototype */\n{\n\n NAME: \"draw2d.shape.node.Start\",\n DEFAULT_COLOR: new _packages2.default.util.Color(\"#4D90FE\"),\n\n /**\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(extend({\n bgColor: this.DEFAULT_COLOR,\n color: this.DEFAULT_COLOR.darker(),\n width: 50,\n height: 50\n }, attr), setter, getter);\n this.createPort(\"output\");\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/node/VerticalBus.js\":\n/*!***************************************!*\\\n !*** ./src/shape/node/VerticalBus.js ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A horizontal bus shape with a special kind of port handling. The hole figure is a hybrid port.\n *\n *\n * @example\n *\n * let figure = new draw2d.shape.node.VerticalBus({width:40, height:300, text:\"Vertical Bus\"});\n *\n * canvas.add(figure,50,10);\n *\n * @extends draw2d.shape.node.Hub\n */\n_packages2.default.shape.node.VerticalBus = _packages2.default.shape.node.Hub.extend(\n/** @lends draw2d.shape.node.VerticalBus.prototype */\n{\n\n NAME: \"draw2d.shape.node.VerticalBus\",\n\n /**\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n this.setConnectionDirStrategy(2);\n this.installEditPolicy(new _packages2.default.policy.figure.VBusSelectionFeedbackPolicy());\n },\n\n /**\n * \n * set the label for the Hub\n *\n * @param {String} labelString\n * @since 3.0.4\n */\n setLabel: function setLabel(labelString) {\n var mustAdjustTheAngel = this.label === null;\n\n this._super(labelString);\n\n if (mustAdjustTheAngel === true && this.label !== null) {\n this.label.setRotationAngle(90);\n }\n },\n\n /**\n * @inheritdoc\n */\n getMinHeight: function getMinHeight() {\n if (this.shape === null && this.label === null) {\n return 0;\n }\n\n if (this.label !== null) {\n return this.label.getMinWidth();\n }\n\n return this._super();\n },\n\n /**\n * @inheritdoc\n */\n getMinWidth: function getMinWidth() {\n if (this.shape === null && this.label === null) {\n return 0;\n }\n\n if (this.label !== null) {\n return this.label.getMinHeight();\n }\n\n return this._super();\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/note/PostIt.js\":\n/*!**********************************!*\\\n !*** ./src/shape/note/PostIt.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Simple Post-it like figure with text. Can be used for annotations or documentation.\n *\n *\n * @example\n *\n * let shape = new draw2d.shape.note.PostIt({\n * text:\"This is a simple sticky note\",\n * color:\"#000000\",\n * padding:20\n * });\n *\n * canvas.add(shape,40,10);\n *\n * @author Andreas Herz\n * @extends draw2d.shape.basic.Label\n */\n_packages2.default.shape.note.PostIt = _packages2.default.shape.basic.Label.extend(\n/** @lends draw2d.shape.note.PostIt.prototype */\n{\n\n NAME: \"draw2d.shape.note.PostIt\",\n\n /**\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n this.setStroke(1);\n this.setBackgroundColor(\"#5b5b5b\");\n this.setColor(\"#FFFFFF\");\n this.setFontColor(\"#ffffff\");\n this.setFontSize(14);\n this.setPadding(5);\n this.setRadius(5);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/pert/Activity.js\":\n/*!************************************!*\\\n !*** ./src/shape/pert/Activity.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * NOT FOR PRODUCTIVE\n *\n * Checkout [Wikipedia PERT][1] for more information.\n * [1] http://en.wikipedia.org/wiki/Program_Evaluation_and_Review_Technique\n *\n * Double click on the Task name or the top middle number to change the value.\n *\n *\n * @example\n *\n * canvas.add( new draw2d.shape.pert.Start(),10,10);\n * canvas.add( new draw2d.shape.pert.Activity(),80,130);\n * canvas.add( new draw2d.shape.pert.Activity(),180,50);\n *\n *\n *\n *\n * @extends draw2d.shape.layout.VerticalLayout\n */\n_packages2.default.shape.pert.Activity = _packages2.default.shape.layout.VerticalLayout.extend(\n/** @lends draw2d.shape.pert.Activity.prototype */\n{\n\n NAME: \"draw2d.shape.pert.Activity\",\n\n /**\n * Create a new instance\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n // shortcut for some callback methods to avoid $.proxy wrapper\n var _this = this;\n\n // persistence values for the activity\n // will be stored/read in the JSON\n this.mementoValues = {\n duration: null\n\n // just some color attributes for the rendering/gradient\n };this.bgColor = new _packages2.default.util.Color(\"#f3f3f3\");\n this.lighterBgColor = this.bgColor.lighter(0.2).rgba();\n this.darkerBgColor = this.bgColor.darker(0.2).rgba();\n\n this._super(extend({ bgColor: this.bgColor, stroke: 2, radius: 2, color: this.darkerBgColor }, attr), setter, getter);\n\n // Compose the top row of the shape\n //\n var top = new _packages2.default.shape.layout.HorizontalLayout({ stroke: 0 });\n\n this.earlyStartLabel = this.createLabel(\"Early Start\").setStroke(0);\n\n this.durationLabel = new _packages2.default.shape.basic.Label({\n text: \"Duration\",\n stroke: 1,\n color: this.darkerBgColor,\n radius: 0,\n bgColor: null,\n padding: 5\n });\n // duration label has a inplaceEditor for the value\n this.durationLabel.installEditor(new _packages2.default.ui.LabelEditor({\n onCommit: function onCommit(value) {\n _this.setDuration(parseFloat(value));\n }\n }));\n\n this.earlyEndLabel = this.createLabel({ text: \"Early End\", stroke: 0 });\n\n top.add(this.earlyStartLabel);\n top.add(this.durationLabel);\n top.add(this.earlyEndLabel);\n\n // the middle part of the shape\n // This part contains the ports for the connection\n //\n this.activityLabel = new _packages2.default.shape.basic.Label({\n text: \"Activity Name\",\n radius: 0,\n padding: 10,\n color: this.darkerBgColor,\n bgColor: null\n });\n // direct editor for the label\n this.activityLabel.installEditor(new _packages2.default.ui.LabelInplaceEditor());\n\n this.inputPort = this.activityLabel.createPort(\"input\");\n this.inputPort.getActivity = function () {\n return _this;\n };\n this.inputPort.onConnect = function () {\n _this.setDuration(_this.mementoValues.duration);\n };\n this.inputPort.onDisconnect = function () {\n _this.setDuration(_this.mementoValues.duration);\n };\n this.inputPort.setValue = function (anyValue) {\n _this.setDuration(_this.mementoValues.duration);\n };\n\n this.outputPort = this.activityLabel.createPort(\"output\");\n this.outputPort.getActivity = function () {\n return _this;\n };\n this.outputPort.onConnect = function () {\n _this.setDuration(_this.mementoValues.duration);\n };\n this.outputPort.onDisconnect = function () {\n _this.setDuration(_this.mementoValues.duration);\n };\n\n // the bottom of the activity shape\n //\n var bottom = new _packages2.default.shape.layout.HorizontalLayout({ stroke: 0 });\n\n this.lateStartLabel = this.createLabel(\"Late Start\").setStroke(0);\n this.stackLabel = this.createLabel(\"Stack\");\n this.lateEndLabel = this.createLabel(\"Late End\").setStroke(0);\n\n bottom.add(this.lateStartLabel);\n bottom.add(this.stackLabel);\n bottom.add(this.lateEndLabel);\n\n // finally compose the shape with top/middle/bottom in VerticalLayout\n //\n this.add(top);\n this.add(this.activityLabel);\n this.add(bottom);\n\n // set some good default value for the activity\n //\n this.setDuration(1);\n },\n\n /**\n * \n * Set the duration for the activity. This triggers a complete recalculation of the complete\n * diagram. No further calls are required\n *\n * @param {Number} duration the new Duration for the activity\n */\n setDuration: function setDuration(duration) {\n\n if (this.mementoValues.duration !== duration) {\n // store the new value\n this.mementoValues.duration = duration;\n\n // update the labels for duration\n this.durationLabel.setText(this.mementoValues.duration);\n }\n\n // calculate the earlyStart and latestEnd and set the labels\n //\n var start = this.getEarlyStart();\n\n this.earlyStartLabel.setText(start);\n this.earlyEndLabel.setText(start + this.mementoValues.duration);\n\n // notify all children that a parent value has been changed\n // Just knock on the inputPort...\n //\n var connections = this.outputPort.getConnections();\n connections.each(function (i, conn) {\n var targetPort = conn.getTarget();\n targetPort.setValue();\n });\n\n // propagate the lateFinish up to all parent nodes if we are a leaf\n //\n if (connections.getSize() === 0) {\n var lateFinish = parseFloat(this.earlyEndLabel.getText());\n this.setLateFinish(lateFinish);\n }\n },\n\n getEarlyEnd: function getEarlyEnd() {\n return this.getEarlyStart() + this.mementoValues.duration;\n },\n\n getEarlyStart: function getEarlyStart() {\n var latestEarlyEnd = 0;\n\n // retrieve the greatest \"earlyStart\" from all parent activities\n this.inputPort.getConnections().each(function (i, conn) {\n var parentActivity = conn.getSource().getActivity();\n latestEarlyEnd = Math.max(latestEarlyEnd, parentActivity.getEarlyEnd());\n });\n\n return latestEarlyEnd;\n },\n\n setLateFinish: function setLateFinish(value) {\n var lateStart = value - this.mementoValues.duration;\n\n this.lateEndLabel.setText(value);\n this.lateStartLabel.setText(lateStart);\n this.stackLabel.setText(lateStart - parseFloat(this.earlyStartLabel.getText()));\n\n var connections = this.inputPort.getConnections();\n connections.each(function (i, conn) {\n var sourcePort = conn.getSource();\n sourcePort.getActivity().setLateFinish(lateStart);\n });\n },\n\n /**\n * \n * help method to create some labels\n *\n * @param {String} txt the label to display\n * @returns {draw2d.shape.basic.Label}\n */\n createLabel: function createLabel(txt) {\n var label = new _packages2.default.shape.basic.Label({ text: txt });\n label.setStroke(1);\n label.setColor(this.darkerBgColor);\n label.setRadius(0);\n label.setBackgroundColor(null);\n label.setPadding(5);\n label.setColor(this.bgColor.darker(0.2));\n label.onDoubleClick = function (angle) {/* ignore them for the layout elements*/\n };\n\n return label;\n },\n\n /**\n * @inheritdoc\n */\n setBackgroundColor: function setBackgroundColor(color) {\n this._super(color);\n\n // calculate the new lighter and darker colors for the gradient\n //\n this.lighterBgColor = this.bgColor.lighter(0.2).rgba();\n this.darkerBgColor = this.bgColor.darker(0.2).rgba();\n },\n\n /**\n * @inheritdoc\n */\n repaint: function repaint(attributes) {\n\n // repaint can be blocked during deserialization and if the shape\n // not part of any canvas.\n //\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n attributes = attributes || {};\n\n if (this.getAlpha() < 0.9) {\n attributes.fill = this.bgColor.rgba();\n } else {\n attributes.fill = [\"90\", this.bgColor.hash(), this.lighterBgColor].join(\"-\");\n }\n\n this._super(attributes);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/pert/Start.js\":\n/*!*********************************!*\\\n !*** ./src/shape/pert/Start.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * NOT FOR PRODUCTIVE\n *\n * Checkout [Wikipedia PERT][1] for more information.\n *\n * Double click on the Task name or the top middle number to change the value.\n *\n *\n * @example\n *\n * canvas.add( new draw2d.shape.pert.Start(),10,10);\n * canvas.add( new draw2d.shape.pert.Activity(),80,130);\n * canvas.add( new draw2d.shape.pert.Activity(),180,50);\n *\n * [1] http://en.wikipedia.org/wiki/Program_Evaluation_and_Review_Technique\n *\n * @extends draw2d.shape.layout.VerticalLayout\n */\n_packages2.default.shape.pert.Start = _packages2.default.shape.layout.VerticalLayout.extend(\n/** @lends draw2d.shape.pert.Start.prototype */\n{\n\n NAME: \"draw2d.shape.pert.Start\",\n\n /**\n * Create a new instance\n *\n * @param {Object} [attr] the configuration of the shape\n */\n init: function init(attr, setter, getter) {\n // shortcut for some callback methods to avoid $.proxy wrapper\n var _this = this;\n\n // persistence values for the activity\n // will be stored/read in the JSON\n this.mementoValues = {\n duration: null\n\n // just some color attributes for the rendering/gradient\n };this.bgColor = new _packages2.default.util.Color(\"#f3f3f3\");\n this.lighterBgColor = this.bgColor.lighter(0.2).rgba();\n this.darkerBgColor = this.bgColor.darker(0.2).rgba();\n\n this._super(extend({ bgColor: this.bgColor, stroke: 2, radius: 2, color: this.darkerBgColor }, attr), setter, getter);\n\n // Compose the top row of the shape\n //\n var top = new _packages2.default.shape.layout.HorizontalLayout({ stroke: 0 });\n\n this.durationLabel = new _packages2.default.shape.basic.Label({\n text: \"Duration\",\n stroke: 1,\n color: this.darkerBgColor,\n radius: 0,\n bgColor: null,\n padding: 5\n });\n // duration label has a inplaceEditor for the value\n this.durationLabel.installEditor(new _packages2.default.ui.LabelEditor({\n text: \"Enter new duration\",\n onCommit: function onCommit(value) {\n _this.setDuration(parseFloat(value));\n }\n }));\n\n this.earlyEndLabel = this.createLabel({ text: \"Early End\", stroke: 0 });\n\n top.add(this.durationLabel);\n top.add(this.earlyEndLabel);\n\n // the middle part of the shape\n // This part contains the ports for the connection\n //\n this.activityLabel = new _packages2.default.shape.basic.Label({\n text: \"Start\",\n radius: 0,\n padding: 10,\n color: this.darkerBgColor,\n bgColor: null\n });\n // direct editor for the label\n this.activityLabel.installEditor(new _packages2.default.ui.LabelInplaceEditor());\n\n this.outputPort = this.activityLabel.createPort(\"output\");\n this.outputPort.getActivity = function () {\n return _this;\n };\n this.outputPort.onConnect = function () {\n _this.setDuration(_this.mementoValues.duration);\n };\n this.outputPort.onDisconnect = function () {\n _this.setDuration(_this.mementoValues.duration);\n };\n\n // the bottom of the activity shape\n //\n var bottom = this.createLabel(\" \");\n bottom.setPadding(10);\n bottom.setStroke(0);\n this.lateEndLabel = bottom;\n\n // finally compose the shape with top/middle/bottom in VerticalLayout\n //\n this.add(top);\n this.add(this.activityLabel);\n this.add(bottom);\n\n // set some good default value for the activity\n //\n this.setDuration(1);\n },\n\n /**\n * \n * Set the duration for the activity. This triggers a complete recalculation of the complete\n * diagram. No further calls are required\n *\n * @param {Number} duration the new Duration for the activity\n */\n setDuration: function setDuration(duration) {\n\n if (this.mementoValues.duration !== duration) {\n // store the new value\n this.mementoValues.duration = duration;\n\n // update the labels for duration\n this.durationLabel.setText(this.mementoValues.duration);\n }\n\n this.earlyEndLabel.setText(this.mementoValues.duration);\n\n // notify all children that a parent value has been changed\n // Just knock on the inputPort...\n //\n var connections = this.outputPort.getConnections();\n connections.each(function (i, conn) {\n var targetPort = conn.getTarget();\n targetPort.setValue();\n });\n\n // propagate the lateFinish up to all parent nodes if we are a leaf\n //\n if (connections.getSize() === 0) {\n var lateFinish = parseFloat(this.earlyEndLabel.getText());\n this.setLateFinish(lateFinish);\n }\n },\n\n getEarlyEnd: function getEarlyEnd() {\n return this.mementoValues.duration;\n },\n\n setLateFinish: function setLateFinish(value) {\n var lateStart = value - this.mementoValues.duration;\n\n this.lateEndLabel.setText(value);\n },\n\n /**\n * \n * help method to create some labels\n *\n * @param {String} txt the label to display\n * @returns {draw2d.shape.basic.Label}\n */\n createLabel: function createLabel(txt) {\n var label = new _packages2.default.shape.basic.Label({ text: txt });\n label.setStroke(1);\n label.setColor(this.darkerBgColor);\n label.setRadius(0);\n label.setBackgroundColor(null);\n label.setPadding(5);\n label.setColor(this.bgColor.darker(0.2));\n label.onDoubleClick = function (angle) {/* ignore them for the layout elements*/\n };\n\n return label;\n },\n\n /**\n * @inheritdoc\n */\n setBackgroundColor: function setBackgroundColor(color) {\n this._super(color);\n\n // calculate the new lighter and darker colors for the gradient\n //\n this.lighterBgColor = this.bgColor.lighter(0.2).rgba();\n this.darkerBgColor = this.bgColor.darker(0.2).rgba();\n },\n\n /**\n * @inheritdoc\n */\n repaint: function repaint(attributes) {\n\n // repaint can be blocked during deserialization and if the shape\n // not part of any canvas.\n //\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n attributes = attributes || {};\n\n if (this.getAlpha() < 0.9) {\n attributes.fill = this.bgColor.rgba();\n } else {\n attributes.fill = [\"90\", this.bgColor.hash(), this.lighterBgColor].join(\"-\");\n }\n\n this._super(attributes);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/state/Connection.js\":\n/*!***************************************!*\\\n !*** ./src/shape/state/Connection.js ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Connection designed for a state diagram with arrow decoration at the\n * target of the connection and a label\n *\n *\n * @example\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * let start = new draw2d.shape.state.Start();\n * let end = new draw2d.shape.state.End();\n\n * // ...add it to the canvas\n * canvas.add( start, 50,50);\n * canvas.add( end, 230,180);\n *\n * // Create a Connection and connect the Start and End node\n * //\n * let c = new draw2d.shape.state.Connection({\n * \t source : start.getOutputPort(0),\n * target : end.getInputPort(0)\n * });\n *\n * // and finally add the connection to the canvas\n * canvas.add(c);\n *\n *\n * @extends draw2d.Connection\n */\n_packages2.default.shape.state.Connection = _packages2.default.Connection.extend(\n/** @lends draw2d.shape.state.Connection.prototype */\n{\n NAME: \"draw2d.shape.state.Connection\",\n\n DEFAULT_COLOR: new _packages2.default.util.Color(\"#4D90FE\"),\n\n init: function init(attr, setter, getter) {\n this._super(extend({ router: null, stroke: 2 }, attr), setter, getter);\n\n this.setTargetDecorator(new _packages2.default.decoration.connection.ArrowDecorator(17, 8));\n\n this.label = new _packages2.default.shape.basic.Label({ text: \"label\" });\n this.label.setStroke(1);\n this.label.setPadding(2);\n this.label.setBackgroundColor(\"#f0f0f0\");\n this.add(this.label, new _packages2.default.layout.locator.ParallelMidpointLocator());\n },\n /**\n * \n * Set the text to show if the state shape\n *\n * @param {String} text\n */\n setLabel: function setLabel(text) {\n this.label.setText(text);\n\n // hide the label if no text available\n this.label.setVisible(!(text === null || text === \"\"));\n this.fireEvent(\"change:label\", { value: text });\n\n return this;\n },\n\n /**\n * \n * Return the label of the shape\n *\n */\n getLabel: function getLabel() {\n return this.label.getText();\n },\n\n /**\n * @inheritdoc\n */\n getPersistentAttributes: function getPersistentAttributes() {\n return extend(this._super(), {\n label: this.getLabel()\n });\n },\n\n /**\n * @inheritdoc\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this._super(memento);\n\n if (typeof memento.label !== \"undefined\") {\n this.setLabel(memento.label);\n }\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/state/End.js\":\n/*!********************************!*\\\n !*** ./src/shape/state/End.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * The end node for a state diagram\n *\n *\n * @example\n * let end = new draw2d.shape.state.End();\n\n * // ...add it to the canvas\n * canvas.add( end, 230,80);\n *\n * @extends draw2d.shape.basic.Circle\n */\n_packages2.default.shape.state.End = _packages2.default.shape.basic.Circle.extend(\n/** @lends draw2d.shape.state.End.prototype */\n{\n\n NAME: \"draw2d.shape.state.End\",\n\n DEFAULT_COLOR: new _packages2.default.util.Color(\"#4D90FE\"),\n\n init: function init(attr, setter, getter) {\n this.innerCircle = new _packages2.default.shape.basic.Circle(20);\n\n this._super(attr, setter, getter);\n\n this.port = this.createPort(\"input\", new _packages2.default.layout.locator.TopLocator());\n this.port.setConnectionAnchor(new _packages2.default.layout.anchor.ShortesPathConnectionAnchor(this.port));\n\n this.setDimension(50, 50);\n this.setBackgroundColor(this.DEFAULT_COLOR);\n this.installEditPolicy(new _packages2.default.policy.figure.AntSelectionFeedbackPolicy());\n\n this.innerCircle.setStroke(2);\n this.innerCircle.setBackgroundColor(null);\n this.add(this.innerCircle, new _packages2.default.layout.locator.CenterLocator());\n\n this.setStroke(0);\n //this.setColor(this.DEFAULT_COLOR.darker());\n },\n\n /**\n * @inheritdoc\n */\n setDimension: function setDimension(w, h) {\n this._super(w, h);\n this.innerCircle.setDimension(this.getWidth() - 10, this.getHeight() - 10);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/state/Start.js\":\n/*!**********************************!*\\\n !*** ./src/shape/state/Start.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * The start node for a state diagram\n *\n *\n * @example\n *\n * let figure = new draw2d.shape.state.Start({color:\"#3d3d3d\"});\n *\n * canvas.add(figure,50,10);\n *\n * @extends draw2d.shape.basic.Rectangle\n */\n_packages2.default.shape.state.Start = _packages2.default.shape.basic.Circle.extend(\n/** @lends draw2d.shape.state.Start.prototype */\n{\n\n NAME: \"draw2d.shape.state.Start\",\n\n DEFAULT_COLOR: new _packages2.default.util.Color(\"#3369E8\"),\n\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n this.port = this.createPort(\"output\", new _packages2.default.layout.locator.BottomLocator());\n this.port.setConnectionAnchor(new _packages2.default.layout.anchor.ShortesPathConnectionAnchor(this.port));\n\n this.setDimension(50, 50);\n this.setBackgroundColor(this.DEFAULT_COLOR);\n this.installEditPolicy(new _packages2.default.policy.figure.AntSelectionFeedbackPolicy());\n\n this.setStroke(0);\n //this.setColor(this.DEFAULT_COLOR.darker());\n\n var label = new _packages2.default.shape.basic.Label({ text: \"START\" });\n label.setStroke(0);\n label.setFontColor(\"#ffffff\");\n label.setFontFamily('\"Open Sans\",sans-serif');\n this.add(label, new _packages2.default.layout.locator.CenterLocator());\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/state/State.js\":\n/*!**********************************!*\\\n !*** ./src/shape/state/State.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * a state shape for a state diagram\n *\n * @example\n *\n * // create and add two nodes which contains Ports (In and OUT)\n * //\n * let start = new draw2d.shape.state.Start();\n * let state = new draw2d.shape.state.State();\n\n * // ...add it to the canvas\n * canvas.add( start, 50,50);\n * canvas.add( state, 230,180);\n *\n * // Create a Connection and connect the Start and End node\n * //\n * let c = new draw2d.shape.state.Connection({\n * \t\tsource : start.getOutputPort(0),\n * target : state.getInputPort(0)\n * });\n *\n *\n * // and finally add the connection to the canvas\n * canvas.add(c);\n *\n * @extends draw2d.shape.layout.VerticalLayout\n */\n_packages2.default.shape.state.State = _packages2.default.shape.layout.VerticalLayout.extend(\n/** @lends draw2d.shape.state.State.prototype */\n{\n\n NAME: \"draw2d.shape.state.State\",\n\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n\n this.port = this.createPort(\"hybrid\", new _packages2.default.layout.locator.BottomLocator());\n this.port.setConnectionAnchor(new _packages2.default.layout.anchor.ChopboxConnectionAnchor(this.port));\n\n this.setBackgroundColor(\"#f3f3f3\");\n\n // UI representation\n this.setStroke(1);\n this.setColor(\"#e0e0e0\");\n this.setRadius(5);\n\n // Compose the top row of the shape\n //\n var top = this.createLabel(\"State\").setStroke(0);\n this.label = top;\n\n // the middle part of the shape\n // This part contains the ports for the connection\n //\n var center = new _packages2.default.shape.basic.Rectangle();\n center.getHeight = function () {\n return 1;\n };\n center.setMinWidth(90);\n center.setColor(\"#e0e0e0\");\n\n // the bottom of the activity shape\n //\n var bottom = new _packages2.default.shape.basic.Rectangle();\n bottom.setMinHeight(30);\n bottom.setStroke(0);\n bottom.setBackgroundColor(null);\n\n // finally compose the shape with top/middle/bottom in VerticalLayout\n //\n this.add(top);\n this.add(center);\n this.add(bottom);\n },\n\n /**\n *\n * Set the text to show if the state shape\n *\n * @param {String} text\n */\n setLabel: function setLabel(text) {\n this.label.setText(text);\n this.fireEvent(\"change:label\", { value: text });\n\n return this;\n },\n\n /**\n *\n * Return the label of the shape\n *\n */\n getLabel: function getLabel() {\n return this.label.getText();\n },\n\n /**\n *\n * helper method to create some labels\n *\n * @param {String} txt the label to display\n * @returns {draw2d.shape.basic.Label}\n * @private\n */\n createLabel: function createLabel(txt) {\n var label = new _packages2.default.shape.basic.Label(txt);\n label.setStroke(1);\n label.setColor(this.darkerBgColor);\n label.setRadius(0);\n label.setBackgroundColor(null);\n label.setPadding(5);\n label.setColor(this.bgColor.darker(0.2));\n label.onDoubleClick = function (angle) {/* ignore them for the layout elements*/\n };\n\n return label;\n },\n\n /**\n * @inheritdoc\n */\n getPersistentAttributes: function getPersistentAttributes() {\n return extend(this._super(), {\n label: this.getLabel()\n });\n },\n\n /**\n * @inheritdoc\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this._super(memento);\n\n if (typeof memento.label !== \"undefined\") {\n this.setLabel(memento.label);\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/shape/widget/Slider.js\":\n/*!************************************!*\\\n !*** ./src/shape/widget/Slider.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _shifty = __webpack_require__(/*! shifty */ \"./node_modules/shifty/dist/shifty.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * @example\n *\n * let slider = new draw2d.shape.widget.Slider({width:120, height:20});\n * canvas.add( slider,100,60);\n *\n * @extends draw2d.shape.widget.Widget\n */\n_packages2.default.shape.widget.Slider = _packages2.default.shape.widget.Widget.extend(\n/** @lends draw2d.shape.widget.Slider.prototype */\n{\n\n NAME: \"draw2d.shape.widget.Slider\",\n\n DEFAULT_COLOR_THUMB: new _packages2.default.util.Color(\"#bddf69\"),\n DEFAULT_COLOR_BG: new _packages2.default.util.Color(\"#d3d3d3\"),\n\n init: function init(attr, setter, getter) {\n this.currentValue = 0; // [0..100]\n this.slideBoundingBox = new _packages2.default.geo.Rectangle(0, 0, 10, 20);\n this.padding = { top: 4, right: 4, bottom: 4, left: 4 };\n this.panning = false;\n this.thumbGrow = 0;\n\n this._super(extend({\n width: 150,\n height: 15,\n stroke: 1,\n radius: 4,\n resizeable: true,\n color: this.DEFAULT_COLOR_THUMB,\n bgColor: this.DEFAULT_COLOR_BG,\n value: 50\n }, attr), extend({\n // @attr {Number} padding the padding in pixel around the text */\n padding: this.setPadding,\n // @attr {Number} value the new value of the slider. values must be in range of [0..100] */\n value: this.setValue\n }, setter), extend({\n padding: this.getPadding,\n value: this.getValue\n }, getter));\n\n this.setMinHeight(15);\n this.setMinWidth(80);\n },\n\n /**\n * \n * Create the additional elements for the figure\n *\n */\n createSet: function createSet() {\n var result = this.canvas.paper.set();\n var thumb = this.canvas.paper.rect(0, 0, 10, 20);\n thumb.node.style.cursor = \"col-resize\";\n result.push(thumb);\n\n return result;\n },\n\n /**\n * @inheritdoc\n */\n setDimension: function setDimension(w, h) {\n this._super(w, h);\n this.slideBoundingBox.setBoundary(this.padding.left, 0, this.getWidth() - this.padding.right, this.getHeight());\n this.slideBoundingBox.setHeight(this.getHeight() + 1);\n\n // TODO: and repaint again.....two repaints for one \"setDimension\"....BAD\n //\n this.repaint();\n },\n\n /**\n * \n * Set the padding of the element\n *\n * // Alternatively you can use the attr method:\n * //\n * // set the padding for top,left,bottom,right in one call\n * figure.attr({\n * padding: 3\n * });\n *\n * // update the padding left and top\n * figure.attr({\n * padding: {left:3, top:30}\n * });\n *\n * @param {Number|Object} padding The new padding\n * @since 5.6.0\n **/\n setPadding: function setPadding(padding) {\n this.clearCache();\n if (typeof padding === \"number\") {\n this.padding = { top: padding, right: padding, bottom: padding, left: padding };\n } else {\n this.padding = extend(this.padding, padding);\n }\n this.repaint();\n this.fireEvent(\"change:padding\", { value: this.padding });\n\n return this;\n },\n\n /**\n * \n * Get the padding of the element.\n *\n * @since 5.6.0\n **/\n getPadding: function getPadding() {\n return this.padding;\n },\n\n /**\n * \n * Called if the value of the slider has been changed.\n *\n * @param {Number} value The new value of the slider in percentage [0..100]\n * @template\n */\n onValueChange: function onValueChange(value) {},\n\n /**\n * \n * Will be called if the drag and drop action begins. You can return [false] if you\n * want avoid that the figure can be move.\n *\n * @param {Number} x the x-coordinate of the mouse up event\n * @param {Number} y the y-coordinate of the mouse up event\n * @param {Boolean} shiftKey true if the shift key has been pressed during this event\n * @param {Boolean} ctrlKey true if the ctrl key has been pressed during the event\n *\n * @returns {Boolean} true if the figure accepts dragging\n **/\n onDragStart: function onDragStart(x, y, shiftKey, ctrlKey) {\n // check if the use has been clicked on the thumb.\n // Return \"false\" to prevent drag&drop operation.\n //\n if (this.slideBoundingBox.hitTest(x, y)) {\n\n this.panningX = x;\n this.panningY = y;\n this.panning = true;\n var tweenable = new _shifty.Tweenable();\n tweenable.tween({\n from: { grow: this.thumbGrow },\n to: { grow: 10 },\n duration: 500,\n easing: 'easeOutQuart',\n step: function (state) {\n this.thumbGrow = state.grow;\n this.repaint();\n }.bind(this),\n finish: function finish() {\n tweenable.dispose();\n }\n });\n return false;\n }\n\n return this._super(x, y, shiftKey, ctrlKey);\n },\n\n /**\n * \n * Called by the framework if the figure returns false for the drag operation. In this\n * case we send a \"panning\" event - mouseDown + mouseMove. This is very useful for\n * UI-Widget like slider, spinner,...\n *\n * @param {Number} dx the x difference between the mouse down operation and now\n * @param {Number} dy the y difference between the mouse down operation and now\n * @param {Number} dx2 The x diff since the last call of this dragging operation\n * @param {Number} dy2 The y diff since the last call of this dragging operation\n */\n\n onPanning: function onPanning(dx, dy, dx2, dy2) {\n // calculate the current position of the mouse pos\n //\n var width = this.getWidth();\n var sliderWidth = width - this.padding.left - this.padding.right;\n\n var figurePos = Math.min(width, Math.max(0, this.panningX + dx));\n var sliderPos = Math.min(width - this.padding.left - this.padding.right, figurePos);\n\n this.setValue(100 / sliderWidth * sliderPos);\n },\n\n /**\n * @inheritdoc\n */\n onPanningEnd: function onPanningEnd() {\n this.panning = false;\n\n var tweenable = new _shifty.Tweenable();\n tweenable.tween({\n from: { grow: this.thumbGrow },\n to: { grow: 0 },\n duration: 300,\n easing: 'easeOutQuart',\n step: function (state) {\n this.thumbGrow = state.grow;\n this.repaint();\n }.bind(this),\n finish: function finish() {\n tweenable.dispose();\n }\n });\n this.thumbGrow = 0;\n this.repaint();\n },\n\n /**\n * \n * Set the current value of the slider. Valid values are [0..100]\n *\n * @param {Number} value values between [0..100]\n */\n setValue: function setValue(value) {\n this.currentValue = Math.min(Math.max(0, value | 0), 100);\n this.repaint();\n this.onValueChange(this.currentValue);\n this.fireEvent(\"change:value\", { value: this.currentValue });\n\n return this;\n },\n\n /**\n * \n * Returns the current value of the slider\n *\n * @since 5.6.0\n *\n * @returns {Number}\n */\n getValue: function getValue() {\n return this.currentValue;\n },\n\n /**\n *\n * @param attributes\n */\n repaint: function repaint(attributes) {\n if (this.repaintBlocked === true || this.shape === null) {\n return;\n }\n\n attributes = attributes || {};\n\n // adjust the slider to the current value and the new dimension of the widget\n //\n var thumbX = (this.getWidth() - this.padding.left - this.padding.right) / 100 * this.currentValue + this.padding.left | 0;\n this.slideBoundingBox.setX(thumbX);\n\n // update slider\n //\n if (this.svgNodes !== null) {\n var attr = this.slideBoundingBox.toJSON();\n attr.y -= this.thumbGrow / 2;\n attr.height += this.thumbGrow;\n attr.fill = this.getColor().rgba();\n attr.stroke = this.getColor().darker(0.2).rgba();\n attr.r = 4;\n this.svgNodes.attr(attr);\n }\n\n attributes.fill = \"90-\" + this.bgColor.hash() + \":5-\" + this.bgColor.lighter(0.3).hash() + \":95\";\n attributes.stroke = this.bgColor.darker(0.1).rgba();\n\n this._super(attributes);\n },\n\n applyTransformation: function applyTransformation() {\n this.svgNodes.transform(\"T\" + this.getAbsoluteX() + \",\" + this.getAbsoluteY());\n\n return this;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/shape/widget/Widget.js\":\n/*!************************************!*\\\n !*** ./src/shape/widget/Widget.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Base class for all diagrams.\n *\n * @extends draw2d.SetFigure\n */\n_packages2.default.shape.widget.Widget = _packages2.default.SetFigure.extend({\n\n init: function init(attr, setter, getter) {\n this._super(attr, setter, getter);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/ui/LabelEditor.js\":\n/*!*******************************!*\\\n !*** ./src/ui/LabelEditor.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Base class for all draw2d.shape.basic.Label editors. The default implementation is to open\n * a simple javascript prompt dialog.<br>\n * Use LabelInplaceEditor or your own implementation if you need more comfort.\n *\n * @example\n *\n * let label = new draw2d.shape.basic.Label({text:\"Double Click on me\"});\n *\n * label.installEditor(new draw2d.ui.LabelEditor({\n * // called after the value has been set to the LabelFigure\n * onCommit: $.proxy(function(value){\n * alert(\"new value set to:\"+value);\n * },this),\n * // called if the user abort the operation\n * onCancel: function(){\n * }\n * }));\n *\n * canvas.add(label,50,10);\n *\n *\n * @author Andreas Herz\n */\n_packages2.default.ui.LabelEditor = Class.extend(\n/** @lends draw2d.ui.LabelEditor.prototype */\n{\n NAME: \"draw2d.ui.LabelEditor\",\n\n /**\n *\n * @param {Object} attr callback handler and configuration. **{ onCommit:function(){}}, onCancel: function(){}, onStart: function(){}, text:'My Dialog Title' }**\n */\n init: function init(attr) {\n // register some default listener and override this with the handover one\n this.configuration = extend({\n onCommit: function onCommit() {},\n onCancel: function onCancel() {},\n onStart: function onStart() {},\n text: \"Value\"\n }, attr);\n },\n\n /**\n *\n * Trigger the edit of the label text.\n *\n * @param {draw2d.shape.basic.Label} label the label to edit\n */\n start: function start(label) {\n this.configuration.onStart();\n var newText = prompt(this.configuration.text, label.getText());\n if (newText) {\n var cmd = new _packages2.default.command.CommandAttr(label, { text: newText });\n label.getCanvas().getCommandStack().execute(cmd);\n\n this.configuration.onCommit(label.getText());\n } else {\n this.configuration.onCancel();\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/ui/LabelInplaceEditor.js\":\n/*!**************************************!*\\\n !*** ./src/ui/LabelInplaceEditor.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nvar _jquery = __webpack_require__(/*! lib/jquery.autoresize */ \"./src/lib/jquery.autoresize.js\");\n\nvar _jquery2 = _interopRequireDefault(_jquery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * Inplace editor for draw2d.shape.base.Label\n *\n * @example\n *\n * var label = new draw2d.shape.basic.Label({text:\"Double Click on me\"});\n *\n * label.installEditor(new draw2d.ui.LabelInplaceEditor({\n * // called after the value has been set to the LabelFigure\n * onCommit: $.proxy(function(value){\n * alert(\"new value set to:\"+value);\n * },this),\n * // called if the user abort the operation\n * onCancel: function(){\n * }\n * }));\n *\n * canvas.add(label,50,10);\n *\n * @author Andreas Herz\n * @extends draw2d.ui.LabelEditor\n */\n_packages2.default.ui.LabelInplaceEditor = _packages2.default.ui.LabelEditor.extend(\n/** @lends draw2d.ui.LabelInplaceEditor.prototype */\n{\n\n NAME: \"draw2d.ui.LabelInplaceEditor\",\n\n init: function init(listener) {\n this._super();\n\n // register some default listener and override this with the handover one\n this.listener = extend({\n onCommit: function onCommit() {},\n onCancel: function onCancel() {},\n onStart: function onStart() {}\n }, listener);\n },\n\n /**\n *\n * Trigger the edit of the label text.\n *\n * @param {draw2d.shape.basic.Label} label the label to edit\n */\n start: function start(label) {\n var _this = this;\n\n this.label = label;\n\n this.commitCallback = this.commit.bind(this);\n\n // commit the editor if the user clicks anywhere in the document\n //\n $(\"body\").bind(\"click\", this.commitCallback);\n\n // append the input field to the document and register\n // the ENTER and ESC key to commit /cancel the operation\n //\n this.html = $('<input id=\"inplaceeditor\">');\n this.html.val(label.getText());\n this.html.hide();\n\n $(\"body\").append(this.html);\n\n this.html.autoResize();\n\n this.html.bind(\"keyup\", function (e) {\n switch (e.which) {\n case 13:\n this.commit();\n break;\n case 27:\n this.cancel();\n break;\n }\n }.bind(this));\n\n this.html.bind(\"blur\", this.commitCallback);\n\n // avoid commit of the operation if we click inside the editor\n //\n this.html.bind(\"click\", function (e) {\n e.stopPropagation();\n e.preventDefault();\n });\n\n // Position the INPUT and init the autoresize of the element\n //\n var canvas = this.label.getCanvas();\n var bb = this.label.getBoundingBox();\n\n bb.setPosition(canvas.fromCanvasToDocumentCoordinate(bb.x, bb.y));\n\n // remove the scroll from the body if we add the canvas directly into the body\n var scrollDiv = canvas.getScrollArea();\n if (scrollDiv.is($(\"body\"))) {\n bb.translate(canvas.getScrollLeft(), canvas.getScrollTop());\n }\n\n bb.translate(-1, -1);\n bb.resize(2, 2);\n\n this.html.css({\n position: \"absolute\",\n \"top\": bb.y,\n \"left\": bb.x,\n \"min-width\": bb.w * (1 / canvas.getZoom()),\n \"height\": Math.max(25, bb.h * (1 / canvas.getZoom()))\n });\n this.html.fadeIn(function () {\n _this.html.focus();\n _this.listener.onStart();\n });\n },\n\n /**\n *\n * Transfer the data from the editor into the label.<br>\n * Remove the editor.<br>\n *\n * @private\n */\n commit: function commit() {\n var _this2 = this;\n\n this.html.unbind(\"blur\", this.commitCallback);\n $(\"body\").unbind(\"click\", this.commitCallback);\n var label = this.html.val();\n var cmd = new _packages2.default.command.CommandAttr(this.label, { text: label });\n this.label.getCanvas().getCommandStack().execute(cmd);\n this.html.fadeOut(function () {\n _this2.html.remove();\n _this2.html = null;\n _this2.listener.onCommit(_this2.label.getText());\n });\n },\n\n /**\n *\n * Transfer the data from the editor into the label.<br>\n * Remove the editor.<br>\n * @private\n */\n cancel: function cancel() {\n var _this3 = this;\n\n this.html.unbind(\"blur\", this.commitCallback);\n $(\"body\").unbind(\"click\", this.commitCallback);\n this.html.fadeOut(function () {\n _this3.html.remove();\n _this3.html = null;\n _this3.listener.onCancel();\n });\n }\n});\n\n/***/ }),\n\n/***/ \"./src/util/ArrayList.js\":\n/*!*******************************!*\\\n !*** ./src/util/ArrayList.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * <Disclaimer> Writing my own class for arrays was one of my worst ideas...\n *\n * An ArrayList stores a variable number of objects. This is similar to making an array of\n * objects, but with an ArrayList, items can be easily added and removed from the ArrayList\n * and it is resized dynamically. This can be very convenient, but it's slower than making\n * an array of objects when using many elements.\n */\n_packages2.default.util.ArrayList = Class.extend(\n/** @lends draw2d.util.ArrayList */\n{\n\n init: function init(a) {\n if (Array.isArray(a)) {\n this.data = a;\n } else {\n this.data = [];\n }\n },\n\n /**\n *\n * Clears the array\n *\n * @since 6.1.0\n * @returns {this}\n */\n clear: function clear() {\n this.data = [];\n\n return this;\n },\n\n /**\n *\n * Reverses the order of the elements in the ArrayList. The array will be modified!\n *\n * @returns {this}\n */\n reverse: function reverse() {\n this.data.reverse();\n\n return this;\n },\n\n /**\n *\n * The size/count of the stored objects.\n *\n * @returns {Number}\n */\n getSize: function getSize() {\n return this.data.length;\n },\n\n /**\n *\n * checks to see if the Vector has any elements.\n *\n * @returns {Boolean} true if the list is empty\n **/\n isEmpty: function isEmpty() {\n return this.getSize() === 0;\n },\n\n /**\n *\n * return the last element.\n *\n * @returns {Object}\n */\n last: function last() {\n return this.data[this.data.length - 1];\n },\n\n /**\n *\n * Return a reference to the internal javascript native array.\n *\n * @returns {Array}\n */\n asArray: function asArray() {\n return this.data;\n },\n\n /**\n *\n * returns the first element\n *\n * @returns {Object}\n */\n first: function first() {\n if (this.data.length > 0) {\n return this.data[0];\n }\n return null;\n },\n\n /**\n *\n * returns an element at a specified index\n *\n * @param {Number} i\n * @returns {Object}\n */\n get: function get(i) {\n return this.data[i];\n },\n\n /**\n *\n * Adds a element at the end of the Vector.\n *\n * @param {Object} obj the object to add\n * @returns {this}\n */\n add: function add() {\n var _data;\n\n (_data = this.data).push.apply(_data, arguments);\n\n return this;\n },\n\n /**\n *\n *\n * The method removes items from an array as necessary so that all remaining items pass a\n * provided test. The test is a function that is passed an array item and the index of the\n * item within the array. Only if the test returns true will the item stay in the array.\n *\n * @param {Function} func the filter function(element,index)\n * @param {Object} func.value value of the element in iteration.\n * @since 2.0.0\n * @returns {this}\n */\n grep: function grep(func) {\n this.data = this.data.filter(func);\n\n return this;\n },\n\n /**\n *\n *\n * Return ONE element which matches by the given function or <b>null</b>\n * if no element is found.\n *\n * var r1= figures.find(function(figure){\n * return figure.id===123456\n * });\n *\n * @param {Function} func the filter function\n * @param {Object} func.value value of the element in iteration.\n * @param {Object} func.index index of the element in collection.\n * @since 2.0.0\n */\n find: function find(func) {\n var result = this.data.filter(func);\n if (result.length === 0) {\n return null;\n }\n return result[0];\n },\n\n /**\n *\n * Translate all items in the array into new items. The array list is modified after this call.\n * You must clone the array before if you want avoid this.\n *\n * var labels = this.commands.clone().map(function(e){\n * return e.getLabel();\n * });\n *\n * @param {Function} func The function to process each item against. The first argument to the function is the value; the second argument is the index or key of the array or object property.\n * @param {Object} func.value value of the element in iteration.\n * @param {Number} func.i index of the element in iteration\n *\n * @since 4.0.0\n * @returns {this}\n */\n map: function map(func) {\n this.data = this.data.map(func);\n\n return this;\n },\n\n /**\n *\n * Removes any duplicate elements from the array. The array is modified after this call. You\n * must clone the array before if you want avoid this\n *\n * @since 4.0.0\n * @returns {this}\n */\n unique: function unique() {\n this.data = this.data.filter(function (value, index, self) {\n return self.indexOf(value) === index;\n });\n\n return this;\n },\n\n /**\n *\n * Add all elements into this array.\n *\n * @param {draw2d.util.ArrayList} list\n * @param {Boolean} [avoidDuplicates] checks whenever the new elements exists before insert if the parameter is to [true]\n * @returns {this}\n */\n addAll: function addAll(list, avoidDuplicates) {\n if (!(list instanceof _packages2.default.util.ArrayList)) {\n throw \"Unable to handle unknown object type in ArrayList.addAll\";\n }\n\n this.data = this.data.concat(list.data);\n if (avoidDuplicates) {\n this.unique();\n }\n return this;\n },\n\n /**\n *\n * You can use the Array list as Stack as well. this is the pop method to remove one element\n * at the end of the stack.\n *\n * @returns {Object} the remove object\n */\n pop: function pop() {\n return this.removeElementAt(this.data.length - 1);\n },\n\n /**\n * Push one element at the top of the stack/array\n *\n * @param {Object} value The object to add\n * @returns {this}\n */\n push: function push(value) {\n this.add(value);\n },\n\n /**\n *\n * Remove the element from the list\n *\n * @param {Object} obj the object to remove\n *\n * @returns {Object} the removed object or null\n */\n remove: function remove(obj) {\n var index = this.indexOf(obj);\n if (index >= 0) {\n return this.removeElementAt(index);\n }\n\n return null;\n },\n\n /**\n *\n * Inserts an element at a given position. Existing elements will be shifted\n * to the right.\n *\n * @param {Object} obj the object to insert.\n * @param {Number} index the insert position.\n * @returns {this}\n */\n insertElementAt: function insertElementAt(obj, index) {\n this.data.splice(index, 0, obj);\n\n return this;\n },\n\n /**\n *\n * Removes an element at a specific index.\n *\n * @param {Number} index the index of the element to remove\n * @returns {Object} the removed object\n */\n removeElementAt: function removeElementAt(index) {\n var element = this.data[index];\n\n this.data.splice(index, 1);\n\n return element;\n },\n\n /**\n *\n * removes all given elements in the ArrayList\n *\n * @param {draw2d.util.ArrayList} elements The elements to remove\n * @returns {this}\n */\n removeAll: function removeAll(elements) {\n var _this = this;\n\n if (elements instanceof _packages2.default.util.ArrayList) {\n elements = elements.data;\n }\n\n if (Array.isArray(elements)) {\n elements.forEach(function (e) {\n _this.remove(e);\n });\n }\n\n return this;\n },\n\n /**\n *\n * Return the zero based index of the given element or -1 if the element\n * not in the list.\n *\n * @param {Object} obj the element to check\n *\n * @returns {Number} the index of the element or -1\n */\n indexOf: function indexOf(obj) {\n return this.data.indexOf(obj);\n },\n\n /**\n *\n * returns true if the element is in the Vector, otherwise false.\n *\n * @param {Object} obj the object to check\n *\n * @returns {Boolean}\n */\n contains: function contains(obj) {\n return this.indexOf(obj) !== -1;\n },\n\n /**\n *\n * Sorts the collection based on a field name or sort a function. See on http://www.w3schools.com/jsref/jsref_sort.asp\n * if you use a sort function.\n *\n * @param {String|Function} f the field name for the sorting or a sort function\n *\n * @returns {this}\n *\n */\n sort: function sort(f) {\n if (typeof f === \"function\") {\n this.data.sort(f);\n } else {\n this.data.sort(function (a, b) {\n if (a[f] < b[f]) return -1;\n if (a[f] > b[f]) return 1;\n return 0;\n });\n }\n return this;\n },\n\n /**\n *\n * Copies the contents of a Vector to another Vector returning the new Vector.\n *\n * @param {Boolean} [deep] call \"clone\" of each elements and add the clone to the new ArrayList\n *\n * @returns {draw2d.util.ArrayList} the new ArrayList\n */\n clone: function clone(deep) {\n var newVector = new _packages2.default.util.ArrayList();\n\n if (deep) {\n for (var i = 0; i < this.data.length; i++) {\n newVector.data.push(this.data[i].clone());\n }\n } else {\n newVector.data = this.data.slice(0);\n }\n\n return newVector;\n },\n\n /**\n *\n * Iterates over the list of elements, yielding each in turn to an iterator\n * function.\n * Each invocation of iterator is called with two arguments: (index, element).\n *\n * @param {Function} func the callback function to call for each element\n * @param {Number} func.i index of the element in iteration\n * @param {Object} func.value value of the element in iteration.\n * @param {Boolean} [reverse] optional parameter. Iterate the collection reverse if it set to <b>true</b>\n * @returns {this}\n */\n each: function each(func, reverse) {\n if (typeof reverse !== \"undefined\" && reverse === true) {\n for (var i = this.data.length - 1; i >= 0; i--) {\n if (func(i, this.data[i]) === false) break;\n }\n } else {\n for (var _i = 0; _i < this.data.length; _i++) {\n if (func(_i, this.data[_i]) === false) break;\n }\n }\n\n return this;\n },\n\n /**\n * overwrites the element with an object at the specific index.\n *\n * @param {Object} obj The object to add\n * @param {Number} index the index where the object should places.\n *\n * @returns {this}\n */\n overwriteElementAt: function overwriteElementAt(obj, index) {\n this.data[index] = obj;\n\n return this;\n },\n\n /**\n *\n * @returns {Object} the attributes which are required for persistence\n */\n getPersistentAttributes: function getPersistentAttributes() {\n return { data: this.data };\n },\n\n /**\n *\n * Read all attributes from the serialized properties and transfer them into the shape.\n *\n * @param {Object} memento\n * @returns {this}\n */\n setPersistentAttributes: function setPersistentAttributes(memento) {\n this.data = memento.data;\n\n return this;\n }\n\n});\n\n_packages2.default.util.ArrayList.EMPTY_LIST = new _packages2.default.util.ArrayList();\n\n/***/ }),\n\n/***/ \"./src/util/Base64.js\":\n/*!****************************!*\\\n !*** ./src/util/Base64.js ***!\n \\****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.util.Base64 = {\n\n /**\n * Maps bytes to characters.\n * @type {Object}\n * @private\n */\n byteToCharMap_: null,\n\n /**\n * Maps characters to bytes.\n * @type {Object}\n * @private\n */\n charToByteMap_: null,\n\n /**\n * Maps bytes to websafe characters.\n * @type {Object}\n * @private\n */\n byteToCharMapWebSafe_: null,\n\n /**\n * Maps websafe characters to bytes.\n * @type {Object}\n * @private\n */\n charToByteMapWebSafe_: null,\n\n /**\n * Our default alphabet, shared between\n * ENCODED_VALS and ENCODED_VALS_WEBSAFE\n * @type {string}\n */\n ENCODED_VALS_BASE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',\n\n /**\n * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\n * @type {string}\n */\n ENCODED_VALS: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' + '+/=',\n\n /**\n * Our websafe alphabet.\n * @type {string}\n */\n ENCODED_VALS_WEBSAFE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' + '-_.',\n\n encodeByteArray: function encodeByteArray(input, opt_webSafe) {\n _packages2.default.util.Base64.init();\n\n var byteToCharMap = opt_webSafe ? _packages2.default.util.Base64.byteToCharMapWebSafe_ : _packages2.default.util.Base64.byteToCharMap_;\n\n var output = [];\n\n for (var i = 0; i < input.length; i += 3) {\n var byte1 = input[i];\n var haveByte2 = i + 1 < input.length;\n var byte2 = haveByte2 ? input[i + 1] : 0;\n var haveByte3 = i + 2 < input.length;\n var byte3 = haveByte3 ? input[i + 2] : 0;\n\n var outByte1 = byte1 >> 2;\n var outByte2 = (byte1 & 0x03) << 4 | byte2 >> 4;\n var outByte3 = (byte2 & 0x0F) << 2 | byte3 >> 6;\n var outByte4 = byte3 & 0x3F;\n\n if (!haveByte3) {\n outByte4 = 64;\n\n if (!haveByte2) {\n outByte3 = 64;\n }\n }\n\n output.push(byteToCharMap[outByte1], byteToCharMap[outByte2], byteToCharMap[outByte3], byteToCharMap[outByte4]);\n }\n\n return output.join('');\n },\n\n /**\n * \n * Base64-encode a string.\n *\n * @param {string} input A string to encode.\n * @param {boolean=} opt_webSafe If true, we should use the alternative alphabet.\n * @returns {string} The base64 encoded string.\n */\n encode: function encode(input, opt_webSafe) {\n return _packages2.default.util.Base64.encodeByteArray(_packages2.default.util.Base64.stringToByteArray(input), opt_webSafe);\n },\n\n /**\n * \n * Base64-decode a string.\n *\n * @param {String} input to decode (length not required to be a multiple of 4).\n * @param {boolean=} opt_webSafe True if we should use the\n * alternative alphabet.\n * @returns {Array} bytes representing the decoded value.\n */\n decode: function decode(input, opt_webSafe) {\n _packages2.default.util.Base64.init();\n\n var charToByteMap = opt_webSafe ? _packages2.default.util.Base64.charToByteMapWebSafe_ : _packages2.default.util.Base64.charToByteMap_;\n\n var output = [];\n\n for (var i = 0; i < input.length;) {\n var byte1 = charToByteMap[input.charAt(i++)];\n\n var haveByte2 = i < input.length;\n var byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\n ++i;\n\n var haveByte3 = i < input.length;\n var byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 0;\n ++i;\n\n var haveByte4 = i < input.length;\n var byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 0;\n ++i;\n\n if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\n throw Error();\n }\n\n var outByte1 = byte1 << 2 | byte2 >> 4;\n output.push(outByte1);\n\n if (byte3 != 64) {\n var outByte2 = byte2 << 4 & 0xF0 | byte3 >> 2;\n output.push(outByte2);\n\n if (byte4 != 64) {\n var outByte3 = byte3 << 6 & 0xC0 | byte4;\n output.push(outByte3);\n }\n }\n }\n\n return output;\n },\n\n /**\n * Turns a string into an array of bytes; a \"byte\" being a JS number in the\n * range 0-255.\n * @param {string} str String value to arrify.\n * @returns {!Array.<number>} Array of numbers corresponding to the\n * UCS character codes of each character in str.\n */\n stringToByteArray: function stringToByteArray(str) {\n var output = [],\n p = 0;\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n while (c > 0xff) {\n output[p++] = c & 0xff;\n c >>= 8;\n }\n output[p++] = c;\n }\n return output;\n },\n\n init: function init() {\n if (!_packages2.default.util.Base64.byteToCharMap_) {\n _packages2.default.util.Base64.byteToCharMap_ = {};\n _packages2.default.util.Base64.charToByteMap_ = {};\n _packages2.default.util.Base64.byteToCharMapWebSafe_ = {};\n _packages2.default.util.Base64.charToByteMapWebSafe_ = {};\n\n // We want quick mappings back and forth, so we precompute two maps.\n for (var i = 0; i < _packages2.default.util.Base64.ENCODED_VALS.length; i++) {\n _packages2.default.util.Base64.byteToCharMap_[i] = _packages2.default.util.Base64.ENCODED_VALS.charAt(i);\n _packages2.default.util.Base64.charToByteMap_[_packages2.default.util.Base64.byteToCharMap_[i]] = i;\n _packages2.default.util.Base64.byteToCharMapWebSafe_[i] = _packages2.default.util.Base64.ENCODED_VALS_WEBSAFE.charAt(i);\n _packages2.default.util.Base64.charToByteMapWebSafe_[_packages2.default.util.Base64.byteToCharMapWebSafe_[i]] = i;\n }\n }\n }\n};\n\n/***/ }),\n\n/***/ \"./src/util/Color.js\":\n/*!***************************!*\\\n !*** ./src/util/Color.js ***!\n \\***************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Util class to handle colors in the draw2d enviroment.\n *\n * @example\n * // Create a new Color with RGB values\n * var color = new draw2d.util.Color(127,0,0);\n *\n * // of from a hex string\n * var color2 = new draw2d.util.Color(\"#f00000\");\n *\n * // Create a little bit darker color\n * var darkerColor = color.darker(0.2); // 20% darker\n *\n * // create a optimal text color if 'color' the background color\n * // (best in meaning of contrast and readability)\n * var fontColor = color.getIdealTextColor();\n *\n * @param {Number|String|draw2d.util.Color|Array} red\n * @param {Number} green\n * @param {Number} blue\n * @param {Number} [alpha]\n */\n_packages2.default.util.Color = Class.extend(\n/** @lends draw2d.util.Color */\n{\n\n init: function init(red, green, blue, alpha) {\n\n this.hashString = null;\n\n if (typeof red === \"undefined\" || red === null) {\n this.hashString = \"none\";\n } else if (red instanceof _packages2.default.util.Color) {\n if (red.hashString === \"none\") {\n this.hashString = \"none\";\n } else {\n this.red = red.red;\n this.green = red.green;\n this.blue = red.blue;\n this.alpha = red.alpha;\n }\n } else if (typeof red === \"string\") {\n if (red === \"none\") {\n this.hashString = \"none\";\n } else {\n var rgba = this.hex2rgb(red);\n this.red = rgba[0];\n this.green = rgba[1];\n this.blue = rgba[2];\n this.alpha = rgba[3];\n }\n }\n // JSON struct of {red:###, green:###, blue:### }\n else if ((typeof red === \"undefined\" ? \"undefined\" : _typeof(red)) === \"object\" && typeof red.red === \"number\") {\n this.red = red.red;\n this.green = red.green;\n this.blue = red.blue;\n this.alpha = red.alpha;\n }\n // array detection 1\n else if (red instanceof Array && red.length === 3) {\n this.red = red[0];\n this.green = red[1];\n this.blue = red[2];\n this.alpha = red[3];\n }\n // array detection 2\n else if ((typeof red === \"undefined\" ? \"undefined\" : _typeof(red)) === \"object\" && typeof red.length === \"number\" && red.length === 3) {\n this.red = red[0];\n this.green = red[1];\n this.blue = red[2];\n this.alpha = red[3];\n } else {\n this.red = parseInt(red);\n this.green = parseInt(green);\n this.blue = parseInt(blue);\n this.alpha = typeof alpha === 'undefined' ? 1 : parseFloat(alpha);\n }\n },\n\n /**\n * \n * Convert the color object into a HTML CSS representation\n * @returns {String} the color in rgb(##,##,##) representation\n **/\n getHTMLStyle: function getHTMLStyle() {\n if (typeof this.red === \"undefined\") return \"rgba(0,0,0,0)\";\n\n return \"rgba(\" + this.red + \",\" + this.green + \",\" + this.blue + \",\" + this.alpha + \")\";\n },\n\n /**\n * \n * The red part of the color.\n *\n * @returns {Number} the [red] part of the color.\n **/\n getRed: function getRed() {\n return this.red;\n },\n\n /**\n * \n * The green part of the color.\n *\n * @returns {Number} the [green] part of the color.\n **/\n getGreen: function getGreen() {\n return this.green;\n },\n\n /**\n * \n * The blue part of the color\n *\n * @returns {Number} the [blue] part of the color.\n **/\n getBlue: function getBlue() {\n return this.blue;\n },\n\n /**\n * \n * The alpha part of the color\n *\n * @returns {Number} the [alpha] part of the color.\n **/\n getAlpha: function getAlpha() {\n return this.alpha;\n },\n\n /**\n * \n * Returns the ideal Text Color. Useful for font color selection by a given background color.\n *\n * @returns {draw2d.util.Color} The <i>ideal</i> inverse color.\n **/\n getIdealTextColor: function getIdealTextColor() {\n var nThreshold = 105;\n var bgDelta = this.red * 0.299 + this.green * 0.587 + this.blue * 0.114;\n return 255 - bgDelta < nThreshold ? new _packages2.default.util.Color(0, 0, 0) : new _packages2.default.util.Color(255, 255, 255);\n },\n\n /**\n * return array of [r,g,b,a] from any valid color. if failed returns [0,0,0,1]\n *\n * @param hexcolor\n * @returns {*}\n */\n hex2rgb: function hex2rgb(color) {\n if (!color) {\n return [0, 0, 0, 1];\n }\n\n if (color.toLowerCase() === 'transparent') {\n return [0, 0, 0, 0];\n }\n\n if (color[0] === '#') {\n if (color.length < 7) {\n // convert #RGB and #RGBA to #RRGGBB and #RRGGBBAA\n color = '#' + color[1] + color[1] + color[2] + color[2] + color[3] + color[3] + (color.length > 4 ? color[4] + color[4] : '');\n }\n return [parseInt(color.substr(1, 2), 16), parseInt(color.substr(3, 2), 16), parseInt(color.substr(5, 2), 16), color.length > 7 ? parseInt(color.substr(7, 2), 16) / 255 : 1];\n }\n\n if (color.indexOf('rgb') === -1) {\n // convert named colors\n var temp_elem = document.body.appendChild(document.createElement('fictum')); // intentionally use unknown tag to lower chances of css rule override with !important\n var flag = 'rgb(1, 2, 3)'; // this flag tested on chrome 59, ff 53, ie9, ie10, ie11, edge 14\n temp_elem.style.color = flag;\n if (temp_elem.style.color !== flag) {\n return [0, 0, 0, 1]; // color set failed - some monstrous css rule is probably taking over the color of our object\n }\n temp_elem.style.color = color;\n\n if (temp_elem.style.color === flag || temp_elem.style.color === '') {\n return [0, 0, 0, 1]; // color parse failed\n }\n color = getComputedStyle(temp_elem).color;\n document.body.removeChild(temp_elem);\n }\n\n if (color.indexOf('rgb') === 0) {\n if (color.indexOf('rgba') === -1) {\n color += ',1'; // convert 'rgb(R,G,B)' to 'rgb(R,G,B)A' which looks awful but will pass the regxep below\n }\n return color.match(/[\\.\\d]+/g).map(function (a) {\n return +a;\n });\n }\n },\n\n /**\n *\n **/\n hex: function hex() {\n return this.int2hex(this.red) + this.int2hex(this.green) + this.int2hex(this.blue)\n // breaks raphaelJS...so don'T use it right now\n //(this.alpha * 255).toString(16).substring(0,2).toUpperCase()\n ;\n },\n\n /**\n * \n * Convert the color object into a HTML CSS representation\n * @returns {String} the color in rgb(##,##,##) representation\n **/\n rgba: function rgba() {\n return this.getHTMLStyle();\n },\n\n /**\n * \n * Convert the color object into a HTML CSS representation\n * @returns {String} the color in #RRGGBB representation\n **/\n hash: function hash() {\n if (this.hashString === null) {\n this.hashString = \"#\" + this.hex();\n }\n return this.hashString;\n },\n\n /**\n * @private\n */\n int2hex: function int2hex(v) {\n v = Math.round(Math.min(Math.max(0, v), 255));\n return \"0123456789ABCDEF\".charAt((v - v % 16) / 16) + \"0123456789ABCDEF\".charAt(v % 16);\n },\n\n /**\n * \n * Returns a darker color of the given one. The original color is unchanged.\n *\n * @param {Number} fraction Darkness fraction between [0..1].\n * @return{draw2d.util.Color} Darker color.\n */\n darker: function darker(fraction) {\n // we can't \"darker\" a undefined color. In this case we return the undefnied color itself\n //\n if (this.hashString === \"none\") return this;\n\n fraction = typeof fraction === 'undefined' ? 0.1 : fraction;\n\n var red = parseInt(Math.round(this.getRed() * (1.0 - fraction)));\n var green = parseInt(Math.round(this.getGreen() * (1.0 - fraction)));\n var blue = parseInt(Math.round(this.getBlue() * (1.0 - fraction)));\n\n if (red < 0) red = 0;else if (red > 255) red = 255;\n if (green < 0) green = 0;else if (green > 255) green = 255;\n if (blue < 0) blue = 0;else if (blue > 255) blue = 255;\n\n return new _packages2.default.util.Color(red, green, blue, this.alpha);\n },\n\n /**\n * \n * Make a color lighter. The original color is unchanged.\n *\n * @param {Number} fraction lighter fraction between [0..1].\n * @returns {draw2d.util.Color} Lighter color.\n */\n lighter: function lighter(fraction) {\n // we can't \"lighter\" a undefined color. In this case we return the undefined color itself\n //\n if (this.hashString === \"none\") return this;\n\n fraction = typeof fraction === 'undefined' ? 0.1 : fraction;\n\n var red = parseInt(Math.round(this.getRed() * (1.0 + fraction)));\n var green = parseInt(Math.round(this.getGreen() * (1.0 + fraction)));\n var blue = parseInt(Math.round(this.getBlue() * (1.0 + fraction)));\n\n if (red < 0) red = 0;else if (red > 255) red = 255;\n if (green < 0) green = 0;else if (green > 255) green = 255;\n if (blue < 0) blue = 0;else if (blue > 255) blue = 255;\n\n return new _packages2.default.util.Color(red, green, blue, this.alpha);\n },\n\n /**\n * \n * Return a new color wich is faded to the given color.\n * @param {draw2d.util.Color} color\n * @param {Number} pc the fade percentage in [0..1]\n * @returns {draw2d.util.Color}\n *\n * @since 2.1.0\n */\n fadeTo: function fadeTo(color, pc) {\n\n var r = Math.floor(this.red + pc * (color.red - this.red) + .5);\n var g = Math.floor(this.green + pc * (color.green - this.green) + .5);\n var b = Math.floor(this.blue + pc * (color.blue - this.blue) + .5);\n var a = Math.floor(this.alpha + pc * (color.alpha - this.alpha) + .5);\n\n return new _packages2.default.util.Color(r, g, b, a);\n },\n\n /**\n * \n * Compares two color objects\n *\n * @param {draw2d.util.Color} o\n * @returns {Boolean}\n **/\n equals: function equals(o) {\n if (!(o instanceof _packages2.default.util.Color)) {\n return false;\n }\n return this.rgba() === o.rgba();\n }\n\n});\n\nmodule.exports = _packages2.default.util.Color;\n\n/***/ }),\n\n/***/ \"./src/util/Debug.js\":\n/*!***************************!*\\\n !*** ./src/util/Debug.js ***!\n \\***************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/*!\n * JavaScript Debug - v0.4 - 6/22/2010\n * http://benalman.com/projects/javascript-debug-console-log/\n *\n * Copyright (c) 2010 \"Cowboy\" Ben Alman\n * Dual licensed under the MIT and GPL licenses.\n * http://benalman.com/about/license/\n *\n * With lots of help from Paul Irish!\n * http://paulirish.com/\n */\n// Script: JavaScript Debug: A simple wrapper for console.log\n//\n// *Version: 0.4, Last Updated: 6/22/2010*\n//\n// Tested with Internet Explorer 6-8, Firefox 3-3.6, Safari 3-4, Chrome 3-5, Opera 9.6-10.5\n//\n// Home - http://benalman.com/projects/javascript-debug-console-log/\n// GitHub - http://github.com/cowboy/javascript-debug/\n// Source - http://github.com/cowboy/javascript-debug/raw/master/ba-debug.js\n// (Minified) - http://github.com/cowboy/javascript-debug/raw/master/ba-debug.min.js (1.1kb)\n//\n// About: License\n//\n// Copyright (c) 2010 \"Cowboy\" Ben Alman,\n// Dual licensed under the MIT and GPL licenses.\n// http://benalman.com/about/license/\n//\n// About: Support and Testing\n//\n// Information about what browsers this code has been tested in.\n//\n// Browsers Tested - Internet Explorer 6-8, Firefox 3-3.6, Safari 3-4, Chrome\n// 3-5, Opera 9.6-10.5\n//\n// About: Examples\n//\n// These working examples, complete with fully commented code, illustrate a few\n// ways in which this plugin can be used.\n//\n// Examples - http://benalman.com/code/projects/javascript-debug/examples/debug/\n//\n// About: Revision History\n//\n// 0.4 - (6/22/2010) Added missing passthrough methods: exception,\n// groupCollapsed, table\n// 0.3 - (6/8/2009) Initial release\n//\n// Topic: Pass-through console methods\n//\n// assert, clear, count, dir, dirxml, exception, group, groupCollapsed,\n// groupEnd, profile, profileEnd, table, time, timeEnd, trace\n//\n// These console methods are passed through (but only if both the console and\n// the method exists), so use them without fear of reprisal. Note that these\n// methods will not be passed through if the logging level is set to 0 via\n// <debug.setLevel>.\n\nwindow.debug = function () {\n var window = this,\n\n\n // Some convenient shortcuts.\n aps = Array.prototype.slice,\n con = console,\n\n\n // Public object to be returned.\n that = {},\n callback_func,\n callback_force,\n\n\n // Default logging level, show everything.\n log_level = 9,\n\n\n // Logging methods, in \"priority order\". Not all console implementations\n // will utilize these, but they will be used in the callback passed to\n // setCallback.\n log_methods = ['error', 'warn', 'info', 'debug', 'log'],\n\n\n // Pass these methods through to the console if they exist, otherwise just\n // fail gracefully. These methods are provided for convenience.\n pass_methods = 'assert clear count dir dirxml exception group groupCollapsed groupEnd profile profileEnd table time timeEnd trace'.split(' '),\n idx = pass_methods.length,\n\n\n // Logs are stored here so that they can be recalled as necessary.\n logs = [];\n\n while (--idx >= 0) {\n (function (method) {\n\n // Generate pass-through methods. These methods will be called, if they\n // exist, as long as the logging level is non-zero.\n that[method] = function () {\n log_level !== 0 && con && con[method] && con[method].apply(con, arguments);\n };\n })(pass_methods[idx]);\n }\n\n idx = log_methods.length;\n while (--idx >= 0) {\n (function (idx, level) {\n\n // Method: debug.log\n //\n // Call the console.log method if available. Adds an entry into the logs\n // array for a callback specified via <debug.setCallback>.\n //\n // Usage:\n //\n // debug.log( object [, object, ...] ); - -\n //\n // Arguments:\n //\n // object - (Object) Any valid JavaScript object.\n\n // Method: debug.debug\n //\n // Call the console.debug method if available, otherwise call console.log.\n // Adds an entry into the logs array for a callback specified via\n // <debug.setCallback>.\n //\n // Usage:\n //\n // debug.debug( object [, object, ...] ); - -\n //\n // Arguments:\n //\n // object - (Object) Any valid JavaScript object.\n\n // Method: debug.info\n //\n // Call the console.info method if available, otherwise call console.log.\n // Adds an entry into the logs array for a callback specified via\n // <debug.setCallback>.\n //\n // Usage:\n //\n // debug.info( object [, object, ...] ); - -\n //\n // Arguments:\n //\n // object - (Object) Any valid JavaScript object.\n\n // Method: debug.warn\n //\n // Call the console.warn method if available, otherwise call console.log.\n // Adds an entry into the logs array for a callback specified via\n // <debug.setCallback>.\n //\n // Usage:\n //\n // debug.warn( object [, object, ...] ); - -\n //\n // Arguments:\n //\n // object - (Object) Any valid JavaScript object.\n\n // Method: debug.error\n //\n // Call the console.error method if available, otherwise call console.log.\n // Adds an entry into the logs array for a callback specified via\n // <debug.setCallback>.\n //\n // Usage:\n //\n // debug.error( object [, object, ...] ); - -\n //\n // Arguments:\n //\n // object - (Object) Any valid JavaScript object.\n\n that[level] = function () {\n var args = aps.call(arguments),\n log_arr = [level].concat(args);\n\n logs.push(log_arr);\n exec_callback(log_arr);\n\n if (!con || !is_level(idx)) {\n return;\n }\n\n con.firebug ? con[level].apply(window, args) : con[level] ? con[level](args) : con.log(args);\n };\n })(idx, log_methods[idx]);\n }\n\n // Execute the callback function if set.\n function exec_callback(args) {\n if (callback_func && (callback_force || !con || !con.log)) {\n callback_func.apply(window, args);\n }\n };\n\n // Method: debug.setLevel\n //\n // Set a minimum or maximum logging level for the console. Doesn't affect\n // the <debug.setCallback> callback function, but if set to 0 to disable\n // logging, <Pass-through console methods> will be disabled as well.\n //\n // Usage:\n //\n // debug.setLevel( [ level ] ) - -\n //\n // Arguments:\n //\n // level - (Number) If 0, disables logging. If negative, shows N lowest\n // priority levels of log messages. If positive, shows N highest priority\n // levels of log messages.\n //\n // Priority levels:\n //\n // log (1) < debug (2) < info (3) < warn (4) < error (5)\n\n that.setLevel = function (level) {\n log_level = typeof level === 'number' ? level : 9;\n };\n\n // Determine if the level is visible given the current log_level.\n function is_level(level) {\n return log_level > 0 ? log_level > level : log_methods.length + log_level <= level;\n };\n\n // Method: debug.setCallback\n //\n // Set a callback to be used if logging isn't possible due to console.log\n // not existing. If unlogged logs exist when callback is set, they will all\n // be logged immediately unless a limit is specified.\n //\n // Usage:\n //\n // debug.setCallback( callback [, force ] [, limit ] )\n //\n // Arguments:\n //\n // callback - (Function) The aforementioned callback function. The first\n // argument is the logging level, and all subsequent arguments are those\n // passed to the initial debug logging method.\n // force - (Boolean) If false, log to console.log if available, otherwise\n // callback. If true, log to both console.log and callback.\n // limit - (Number) If specified, number of lines to limit initial scrollback\n // to.\n\n that.setCallback = function () {\n var args = aps.call(arguments),\n max = logs.length,\n i = max;\n\n callback_func = args.shift() || null;\n callback_force = typeof args[0] === 'boolean' ? args.shift() : false;\n\n i -= typeof args[0] === 'number' ? args.shift() : max;\n\n while (i < max) {\n exec_callback(logs[i++]);\n }\n };\n\n return that;\n}();\n\n/***/ }),\n\n/***/ \"./src/util/JSONUtil.js\":\n/*!******************************!*\\\n !*** ./src/util/JSONUtil.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.util.JSON = {\n\n /**\n * \n * Given a dot deliminated string set will create an object\n * based on the structure of the string with the desired value\n *\n * @param {Object} data the json object to modify\n * @param {String} path path indicating where value should be placed\n * @param {Object} value the value desired to be set at the location determined by path\n */\n set: function set(data, path, value) {\n if (!path || path === '') {\n return;\n }\n\n var re = /[\\w-]+|\\[\\]|([^\\[[\\w]\\]]|[\"'](.*?)['\"])/g;\n // parse path on dots, and brackets\n var pathList = path.match(re);\n var parent = data;\n var parentKey = void 0;\n var grandParent = null;\n var grandParentKey = null;\n\n var addObj = function addObj(obj, key, data) {\n if (key === '[]') {\n obj.push(data);\n } else {\n obj[key] = data;\n }\n };\n\n while (pathList.length > 0) {\n parentKey = pathList.shift().replace(/[\"']/g, '');\n\n // Number, treat it as an array\n if (!isNaN(+parentKey) || parentKey === \"[]\") {\n if (parent.constructor !== Array) {\n parent = [];\n addObj(grandParent, grandParentKey, parent);\n }\n // String, treat it as a key\n } else if (typeof parentKey === \"string\") {\n if (!$.isPlainObject(parent)) {\n parent = {};\n addObj(grandParent, grandParentKey, parent);\n }\n }\n // Next\n grandParent = parent;\n grandParentKey = parentKey;\n parent = parent[parentKey];\n }\n\n addObj(grandParent, grandParentKey, value);\n },\n\n /**\n * \n * Returns the value defined by the path passed in\n *\n * @param {Object} data the JSON data object\n * @param {String} path string leading to a desired value\n */\n get: function get(data, path) {\n var regex = /[\\w-]+|\\[\\]|([^\\[[\\w]\\]]|[\"'](.*?)['\"])/g;\n //check if path is truthy\n if (!path) {\n return undefined;\n }\n //parse path on dots and brackets\n var paths = path.match(regex);\n //step through data object until all keys in path have been processed\n while (data !== null && paths.length > 0) {\n if (data.propertyIsEnumerable(paths[0].replace(/\"/g, ''))) {\n data = data[paths.shift().replace(/\"/g, '')];\n } else {\n return undefined;\n }\n }\n return data;\n },\n\n /**\n * \n * calculates the diff between the given json objects\n *\n */\n diff: function diff(obj1, obj2) {\n var result = {};\n for (var key in obj1) {\n var v1 = obj1[key];\n var v2 = obj2[key];\n if (v1 !== v2) {\n if (v1.equals) {\n if (!v1.equals(v2)) {\n result[key] = obj1[key];\n }\n } else {\n result[key] = obj1[key];\n }\n }\n }\n return result;\n },\n\n flatDiff: function flatDiff(obj1, obj2) {\n var result = {};\n for (var key in obj1) {\n if (obj1[key] !== obj2[key]) {\n result[key] = obj1[key];\n }\n }\n return result;\n },\n\n ensureDefault: function ensureDefault(json, attribute, value) {\n if (!json.hasOwnProperty(attribute)) {\n json[attribute] = value;\n }\n }\n};\n\nmodule.exports = _packages2.default.util.JSON;\n\n/***/ }),\n\n/***/ \"./src/util/Polyfill.js\":\n/*!******************************!*\\\n !*** ./src/util/Polyfill.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// avoid iPad bounce effect during DragDrop//\ndocument.ontouchmove = function (e) {\n e.preventDefault();\n};\n\n/***/ }),\n\n/***/ \"./src/util/SVGUtil.js\":\n/*!*****************************!*\\\n !*** ./src/util/SVGUtil.js ***!\n \\*****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// extending raphael with a polygon function\nRaphael.fn.polygon = function (pointString) {\n var poly = ['M'];\n var point = pointString.split(' ');\n\n for (var i = 0; i < point.length; i++) {\n var c = point[i].split(',');\n for (var j = 0; j < c.length; j++) {\n var d = parseFloat(c[j]);\n if (!isNaN(d)) poly.push(d);\n };\n if (i == 0) poly.push('L');\n }\n poly.push('Z');\n\n return this.path(poly);\n};\n\n/***/ }),\n\n/***/ \"./src/util/UUID.js\":\n/*!**************************!*\\\n !*** ./src/util/UUID.js ***!\n \\**************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n * Generates a (pseudo) UUID's\n *\n * @example\n * // a UUID in the format\n * // xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12)\n * var id = draw2d.util.UUID.create();\n *\n * @author Andreas Herz\n */\n_packages2.default.util.UUID = {\n /**\n *\n * Generates a unique id.<br>\n * But just for the correctness: <strong>this is no Global Unique Identifier</strong>, it is just a random generator\n * with the output that looks like a GUID. <br>\n * But may be also useful.\n *\n * @returns {String} the UUID in the format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12)\n **/\n create: function create() {\n var segment = function segment() {\n return ((1 + Math.random()) * 0x10000 | 0).toString(16).substring(1);\n };\n return segment() + segment() + \"-\" + segment() + \"-\" + segment() + \"-\" + segment() + \"-\" + segment() + segment() + segment();\n }\n};\n\nmodule.exports = _packages2.default.util.UUID;\n\n/***/ }),\n\n/***/ \"./src/util/extend.js\":\n/*!****************************!*\\\n !*** ./src/util/extend.js ***!\n \\****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\n\n// Pass in the objects to merge as arguments.// For a deep extend, set the first argument to `true`.\nvar fn = function fn() {\n\n // Variables\n var extended = {};\n var deep = false;\n var i = 0;\n var length = arguments.length;\n\n // Check if a deep merge\n if (Object.prototype.toString.call(arguments[0]) === '[object Boolean]') {\n deep = arguments[0];\n i++;\n }\n\n // Merge the object into the extended object\n /**\n *\n * @param obj\n */\n var merge = function merge(obj) {\n for (var prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n // If deep merge and property is an object, merge properties\n if (deep && Object.prototype.toString.call(obj[prop]) === '[object Object]') {\n extended[prop] = extend(true, extended[prop], obj[prop]);\n } else {\n extended[prop] = obj[prop];\n }\n }\n }\n };\n\n // Loop through each object and conduct a merge\n for (; i < length; i++) {\n var obj = arguments[i];\n merge(obj);\n }\n\n return extended;\n};\nmodule.exports = fn;\nglobal.extend = fn;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n/***/ }),\n\n/***/ \"./src/util/raphael_ext.js\":\n/*!*********************************!*\\\n !*** ./src/util/raphael_ext.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * adding support method to check if the node is already visible\n **/\n(function () {\n Raphael.el.isVisible = function () {\n return this.node.style.display !== \"none\";\n };\n})();\n\n/***/ }),\n\n/***/ \"./src/util/spline/BezierSpline.js\":\n/*!*****************************************!*\\\n !*** ./src/util/spline/BezierSpline.js ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.util.spline.BezierSpline = _packages2.default.util.spline.Spline.extend(\n\n/** @lends draw2d.util.spline.BezierSpline.prototype */\n{\n\n NAME: \"draw2d.util.spline.BezierSpline\",\n\n /**\n */\n init: function init() {\n this._super();\n },\n\n /**\n * Create a spline based on the given control points.\n * The generated curve starts in the first control point and ends\n * in the last control point.\n *\n * @param {Array} controlPoints Control points of spline (x0,y0,z0,x1,y1,z1,...).\n * @param {Number} parts Number of parts to divide each leg into.\n *\n * @returns {Array} the new generated array with new draw2d.geo.Point\n */\n generate: function generate(controlPoints, parts) {\n var n = controlPoints.getSize();\n var spline = new _packages2.default.util.ArrayList();\n\n spline.add(this.p(0, 0, controlPoints));\n\n for (var i = 0; i < n - 3; i += 3) {\n for (var j = 1; j <= parts; j++) {\n spline.add(this.p(i, j / parts, controlPoints));\n }\n }\n\n // spline.add(controlPoints.get(controlPoints.getSize()-1));\n\n return spline;\n },\n\n p: function p(i, t, cp) {\n var x = 0.0;\n var y = 0.0;\n\n var k = i;\n for (var j = 0; j <= 3; j++) {\n var b = this.blend(j, t);\n var p = cp.get(k++);\n x += b * p.x;\n y += b * p.y;\n }\n\n return new _packages2.default.geo.Point(x, y);\n },\n\n blend: function blend(i, t) {\n if (i == 0) return (1 - t) * (1 - t) * (1 - t);else if (i == 1) return 3 * t * (1 - t) * (1 - t);else if (i == 2) return 3 * t * t * (1 - t);else return t * t * t;\n }\n});\n\n/**\n * @class\n *\n * A bezier spline object.\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.util.spline.Spline\n */\n\n/***/ }),\n\n/***/ \"./src/util/spline/CatmullRomSpline.js\":\n/*!*********************************************!*\\\n !*** ./src/util/spline/CatmullRomSpline.js ***!\n \\*********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A catmull-rom spline object.\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.util.spline.CubicSpline\n */\n_packages2.default.util.spline.CatmullRomSpline = _packages2.default.util.spline.CubicSpline.extend(\n\n/** @lends draw2d.util.spline.CatmullRomSpline.prototype */\n{\n\n NAME: \"draw2d.util.spline.CatmullRomSpline\",\n\n /**\n */\n init: function init() {\n this._super();\n },\n\n blend: function blend(i, t) {\n if (i == -2) return ((-t + 2) * t - 1) * t / 2;else if (i == -1) return ((3 * t - 5) * t * t + 2) / 2;else if (i == 0) return ((-3 * t + 4) * t + 1) * t / 2;else return (t - 1) * t * t / 2;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/util/spline/CubicSpline.js\":\n/*!****************************************!*\\\n !*** ./src/util/spline/CubicSpline.js ***!\n \\****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @class\n *\n * A cubic spline object.\n *\n * @inheritable\n * @author Andreas Herz\n *\n * @extends draw2d.util.spline.Spline\n */\n_packages2.default.util.spline.CubicSpline = _packages2.default.util.spline.Spline.extend(\n\n/** @lends draw2d.util.spline.CubicSpline.prototype */\n{\n\n NAME: \"draw2d.util.spline.CubicSpline\",\n\n /**\n */\n init: function init() {\n this._super();\n },\n\n /**\n * Create a spline based on the given control points.\n * The generated curve starts in the first control point and ends\n * in the last control point.\n *\n * @param {Array} controlPoints Control points of spline (x0,y0,z0,x1,y1,z1,...).\n * @param {Number} parts Number of parts to divide each leg into.\n *\n * @returns {Array} the new generated array with new draw2d.geo.Point\n */\n generate: function generate(controlPoints, parts) {\n // Endpoints are added twice to get them include in the\n // generated array\n var cp = new _packages2.default.util.ArrayList();\n cp.add(controlPoints.get(0));\n cp.addAll(controlPoints);\n cp.add(controlPoints.get(controlPoints.getSize() - 1));\n\n var n = cp.getSize();\n var spline = new _packages2.default.util.ArrayList();\n spline.add(controlPoints.get(0));\n spline.add(this.p(1, 0, cp));\n\n for (var i = 1; i < n - 2; i++) {\n for (var j = 1; j <= parts; j++) {\n spline.add(this.p(i, j / parts, cp));\n }\n }\n spline.add(controlPoints.get(controlPoints.getSize() - 1));\n\n return spline;\n },\n\n p: function p(i, t, cp) {\n var x = 0.0;\n var y = 0.0;\n\n var k = i - 1;\n for (var j = -2; j <= 1; j++) {\n var b = this.blend(j, t);\n var p = cp.get(k++);\n x += b * p.x;\n y += b * p.y;\n }\n\n return new _packages2.default.geo.Point(x, y);\n },\n\n blend: function blend(i, t) {\n if (i === -2) return (((-t + 3) * t - 3) * t + 1) / 6;else if (i === -1) return ((3 * t - 6) * t * t + 4) / 6;else if (i === 0) return (((-3 * t + 3) * t + 3) * t + 1) / 6;\n\n return t * t * t / 6;\n }\n\n});\n\n/***/ }),\n\n/***/ \"./src/util/spline/Spline.js\":\n/*!***********************************!*\\\n !*** ./src/util/spline/Spline.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _packages = __webpack_require__(/*! ../../packages */ \"./src/packages.js\");\n\nvar _packages2 = _interopRequireDefault(_packages);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_packages2.default.util.spline.Spline = Class.extend(\n/** @lends draw2d.util.spline.Spline.prototype */\n{\n\n NAME: \"draw2d.util.spline.Spline\",\n\n /**\n */\n init: function init() {},\n\n /**\n * Create a spline based on the given control points.\n * The generated curve starts in the first control point and ends\n * in the last control point.\n *\n * @param {Array} controlPoints Control points of spline (x0,y0,z0,x1,y1,z1,...).\n * @param {Number} parts Number of parts to divide each leg into.\n **/\n generate: function generate(controlPoints, parts) {\n throw \"inherit classes must implement the method 'draw2d.util.spline.Spline.generate()'\";\n }\n\n});\n/**\n * @class\n *\n * An abstract class defining a general spline object.\n */\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=draw2d.js.map","import _get from \"lodash/get\";\nimport _isArray from \"lodash/isArray\";\nimport _isNaN from \"lodash/isNaN\";\nimport _isNumber from \"lodash/isNumber\";\nimport _isString from \"lodash/isString\";\nexport var mathSign = function mathSign(value) {\n if (value === 0) {\n return 0;\n }\n\n if (value > 0) {\n return 1;\n }\n\n return -1;\n};\nexport var isPercent = function isPercent(value) {\n return _isString(value) && value.indexOf('%') === value.length - 1;\n};\nexport var isNumber = function isNumber(value) {\n return _isNumber(value) && !_isNaN(value);\n};\nexport var isNumOrStr = function isNumOrStr(value) {\n return isNumber(value) || _isString(value);\n};\nvar idCounter = 0;\nexport var uniqueId = function uniqueId(prefix) {\n var id = ++idCounter;\n return \"\".concat(prefix || '').concat(id);\n};\n/**\n * Get percent value of a total value\n * @param {Number|String} percent A percent\n * @param {Number} totalValue Total value\n * @param {NUmber} defaultValue The value returned when percent is undefined or invalid\n * @param {Boolean} validate If set to be true, the result will be validated\n * @return {Number} value\n */\n\nexport var getPercentValue = function getPercentValue(percent, totalValue) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var validate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (!isNumber(percent) && !_isString(percent)) {\n return defaultValue;\n }\n\n var value;\n\n if (isPercent(percent)) {\n var index = percent.indexOf('%');\n value = totalValue * parseFloat(percent.slice(0, index)) / 100;\n } else {\n value = +percent;\n }\n\n if (_isNaN(value)) {\n value = defaultValue;\n }\n\n if (validate && value > totalValue) {\n value = totalValue;\n }\n\n return value;\n};\nexport var getAnyElementOfObject = function getAnyElementOfObject(obj) {\n if (!obj) {\n return null;\n }\n\n var keys = Object.keys(obj);\n\n if (keys && keys.length) {\n return obj[keys[0]];\n }\n\n return null;\n};\nexport var hasDuplicate = function hasDuplicate(ary) {\n if (!_isArray(ary)) {\n return false;\n }\n\n var len = ary.length;\n var cache = {};\n\n for (var i = 0; i < len; i++) {\n if (!cache[ary[i]]) {\n cache[ary[i]] = true;\n } else {\n return true;\n }\n }\n\n return false;\n};\nexport var interpolateNumber = function interpolateNumber(numberA, numberB) {\n if (isNumber(numberA) && isNumber(numberB)) {\n return function (t) {\n return numberA + t * (numberB - numberA);\n };\n }\n\n return function () {\n return numberB;\n };\n};\nexport function findEntryInArray(ary, specifiedKey, specifiedValue) {\n if (!ary || !ary.length) {\n return null;\n }\n\n return ary.find(function (entry) {\n return entry && (typeof specifiedKey === 'function' ? specifiedKey(entry) : _get(entry, specifiedKey)) === specifiedValue;\n });\n}\n/**\n * The least square linear regression\n * @param {Array} data The array of points\n * @returns {Object} The domain of x, and the parameter of linear function\n */\n\nexport var getLinearRegression = function getLinearRegression(data) {\n if (!data || !data.length) {\n return null;\n }\n\n var len = data.length;\n var xsum = 0;\n var ysum = 0;\n var xysum = 0;\n var xxsum = 0;\n var xmin = Infinity;\n var xmax = -Infinity;\n var xcurrent = 0;\n var ycurrent = 0;\n\n for (var i = 0; i < len; i++) {\n xcurrent = data[i].cx || 0;\n ycurrent = data[i].cy || 0;\n xsum += xcurrent;\n ysum += ycurrent;\n xysum += xcurrent * ycurrent;\n xxsum += xcurrent * xcurrent;\n xmin = Math.min(xmin, xcurrent);\n xmax = Math.max(xmax, xcurrent);\n }\n\n var a = len * xxsum !== xsum * xsum ? (len * xysum - xsum * ysum) / (len * xxsum - xsum * xsum) : 0;\n return {\n xmin: xmin,\n xmax: xmax,\n a: a,\n b: (ysum - a * xsum) / len\n };\n};","'use strict';\n\nmodule.exports = require('./components/button/Button.js');","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import React, { createContext, useContext } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport BoxTitle from \"./BoxTitle\";\r\nimport BoxBody from \"./BoxBody\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./Box.module.css\";\r\n\r\nconst BoxContext = createContext();\r\n\r\nexport const useBoxContext = () => {\r\n const context = useContext(BoxContext);\r\n if (!context) throw new Error(`Box compound components cannot be rendered outside the Box component.`);\r\n\r\n return context;\r\n};\r\n\r\nconst Box = (props) => {\r\n const activeStyles = props.useAccent ? [styles.box, styles.accent] : [styles.box];\r\n\r\n return (\r\n <BoxContext.Provider value={{}}>\r\n <div id={props.id} className={activeStyles.join(\" \")}>{props.children}</div>\r\n </BoxContext.Provider>\r\n );\r\n};\r\n\r\nexport default Box;\r\n\r\nBox.Title = BoxTitle;\r\nBox.Body = BoxBody;\r\n\r\nBox.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string,\r\n /** Adds an orange color accent to the top of the box */\r\n useAccent: PropTypes.bool,\r\n};\r\n\r\nBox.defaultProps = {\r\n useAccent: false,\r\n};\r\n","import React from \"react\";\r\nimport { useBoxContext } from \"./Box\";\r\n\r\nimport styles from \"./Box.module.css\";\r\n\r\n/**\r\n * @visibleName Box.Title\r\n */\r\nconst BoxTitle = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useBoxContext();\r\n\r\n return <h3 className={styles.title}>{children}</h3>;\r\n};\r\n\r\nexport default BoxTitle;\r\n","import React from \"react\";\r\nimport { useBoxContext } from \"./Box\";\r\n\r\nimport styles from \"./Box.module.css\";\r\n\r\n/**\r\n * @visibleName Box.Body\r\n */\r\nconst BoxBody = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useBoxContext();\r\n\r\n return <div className={styles.body}>{children}</div>;\r\n};\r\n\r\nexport default BoxBody;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./Button.module.css\";\r\n\r\nconst Button = ({ id, variant, onClick, disabled, block, children }) => {\r\n const classNames = [styles.button, styles[variant]];\r\n const [data, setData] = useState();\r\n\r\n if (disabled) {\r\n classNames.push(styles.disabled);\r\n }\r\n\r\n if (block) {\r\n classNames.push(styles.block);\r\n }\r\n\r\n useEffect(() => {\r\n let data;\r\n\r\n if (Array.isArray(children)) {\r\n data = [...children];\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n const value = data[i];\r\n if (typeof value === \"string\") {\r\n data[i] = <span key={i}>{value}</span>;\r\n }\r\n }\r\n } else {\r\n data = children;\r\n if (typeof children === \"string\") {\r\n data = <span>{children}</span>;\r\n }\r\n }\r\n\r\n setData(data);\r\n }, [children]);\r\n\r\n return (\r\n <button id={id} className={classNames.join(\" \")} onClick={onClick} disabled={disabled}>\r\n {data}\r\n </button>\r\n );\r\n};\r\n\r\nexport default Button;\r\n\r\nButton.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string,\r\n /** The variant for the button */\r\n variant: PropTypes.oneOf([\"primary\", \"secondary\", \"tertiary\", \"action\"]),\r\n /** Disables the Button, preventing mouse events, even if the underlying component is an <a> element */\r\n disabled: PropTypes.bool,\r\n /** Spans the full width of the Button parent */\r\n block: PropTypes.bool,\r\n /** Gets called when the user clicks on the button */\r\n onClick: PropTypes.func,\r\n};\r\n\r\nButton.defaultProps = {\r\n variant: \"primary\",\r\n disabled: false,\r\n};\r\n","import React from \"react\";\r\nimport { useCardContext } from \"./Card\";\r\n\r\nimport styles from \"./Card.module.css\";\r\n\r\n/**\r\n * @visibleName Card.Header\r\n */\r\nconst CardHeader = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useCardContext();\r\n\r\n return <div className={styles.header}>{children}</div>;\r\n};\r\n\r\nexport default CardHeader;\r\n","import React from \"react\";\r\nimport { useCardContext } from \"./Card\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport styles from \"./Card.module.css\";\r\n\r\n/**\r\n * @visibleName Card.Image\r\n */\r\nconst CardImage = ({ src }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useCardContext();\r\n\r\n return src && <div className={styles.image} style={{ backgroundImage: `url(${src})` }}></div>;\r\n};\r\n\r\nexport default CardImage;\r\n\r\nCardImage.propTypes = {\r\n /** Path to the image to display in the card */\r\n src: PropTypes.string,\r\n};\r\n\r\nCardImage.defaultProps = {\r\n src: null,\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useCardContext } from \"./Card\";\r\n\r\nimport styles from \"./Card.module.css\";\r\n\r\n/**\r\n * @visibleName Card.Footer\r\n */\r\nconst CardFooter = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useCardContext();\r\n const [classNames, setClassNames] = useState([styles.footer]);\r\n\r\n useEffect(() => {\r\n if (Array.isArray(children)) {\r\n setClassNames([styles.footer, styles.multiple]);\r\n } else {\r\n setClassNames([styles.footer, styles.single]);\r\n }\r\n }, [children]);\r\n\r\n return <div className={classNames.join(\" \")}>{children}</div>;\r\n};\r\n\r\nexport default CardFooter;\r\n","import React, { createContext, useContext } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport CardHeader from \"./CardHeader\";\r\nimport CardBody from \"./CardBody\";\r\nimport CardImage from \"./CardImage\";\r\nimport CardFooter from \"./CardFooter\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./Card.module.css\";\r\n\r\nconst CardContext = createContext();\r\n\r\nexport const useCardContext = () => {\r\n const context = useContext(CardContext);\r\n if (!context) throw new Error(`Card compound components cannot be rendered outside the Card component.`);\r\n\r\n return context;\r\n};\r\n\r\nconst Card = ({ id, children }) => {\r\n return (\r\n <CardContext.Provider value={{}}>\r\n <div id={id} className={styles.card}>{children}</div>\r\n </CardContext.Provider>\r\n );\r\n};\r\n\r\nexport default Card;\r\n\r\nCard.Header = CardHeader;\r\nCard.Body = CardBody;\r\nCard.Image = CardImage;\r\nCard.Footer = CardFooter;\r\n\r\nCard.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string\r\n};\r\n\r\nCard.defaultProps = {};\r\n","import React from \"react\";\r\nimport { useCardContext } from \"./Card\";\r\n\r\nimport styles from \"./Card.module.css\";\r\n\r\n/**\r\n * @visibleName Card.Body\r\n */\r\nconst CardBody = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useCardContext();\r\n\r\n return <div className={styles.body}>{children}</div>;\r\n};\r\n\r\nexport default CardBody;\r\n","import React, { useEffect, useRef } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./Checkbox.module.css\";\r\n\r\nconst Checkbox = (props) => {\r\n const checkbox = useRef();\r\n const activeStyles = props.disabled ? [styles.container, styles.disabled] : [styles.container];\r\n\r\n useEffect(() => {\r\n checkbox.current.indeterminate = props.indeterminate;\r\n }, [props.indeterminate]);\r\n\r\n return (\r\n <label className={activeStyles.join(\" \")}>\r\n {props.label}\r\n <input {...props} ref={checkbox} type=\"checkbox\" indeterminate={props.indeterminate ?? undefined} />\r\n <span className={styles.focus}></span>\r\n <span className={styles.indicator}></span>\r\n </label>\r\n );\r\n};\r\n\r\nexport default Checkbox;\r\n\r\nCheckbox.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string,\r\n /** Text to display next to the checkbox */\r\n label: PropTypes.string,\r\n /** Checked status of the checkbox */\r\n checked: PropTypes.bool,\r\n /** Disables the checkbox */\r\n disabled: PropTypes.bool,\r\n /** Indeterminate status of the checkbox */\r\n indeterminate: PropTypes.bool,\r\n /** Gets called when the user clicks on the checkbox */\r\n onChange: PropTypes.func,\r\n};\r\n\r\nCheckbox.defaultProps = {\r\n checked: false,\r\n indeterminate: false,\r\n disabled: false,\r\n};\r\n","import React from \"react\";\r\nimport { useContentContext } from \"./Content\";\r\n\r\nimport styles from \"./Content.module.css\";\r\n\r\n/**\r\n * @visibleName Content.Header\r\n */\r\nconst ContentHeader = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useContentContext();\r\n\r\n return <div className={styles.header}>{children}</div>;\r\n};\r\n\r\nexport default ContentHeader;\r\n","import React, { useContext, createContext } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport ContentHeader from \"./ContentHeader\";\r\nimport ContentActions from \"./ContentActions\";\r\nimport ContentInfo from \"./ContentInfo\";\r\nimport ContentBody from \"./ContentBody\";\r\nimport ContentFooter from \"./ContentFooter\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./Content.module.css\";\r\n\r\nconst ContentContext = createContext();\r\n\r\nexport const useContentContext = () => {\r\n const context = useContext(ContentContext);\r\n if (!context) throw new Error(`Content compound components cannot be rendered outside the Content component.`);\r\n\r\n return context;\r\n};\r\n\r\nconst Content = (props) => {\r\n return (\r\n <ContentContext.Provider value={{}}>\r\n <div id={props.id} className={styles.content}>{props.children}</div>\r\n </ContentContext.Provider>\r\n );\r\n};\r\n\r\nexport default Content;\r\n\r\nContent.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string\r\n};\r\n\r\nContent.Header = ContentHeader;\r\nContent.Actions = ContentActions;\r\nContent.Info = ContentInfo;\r\nContent.Body = ContentBody;\r\nContent.Footer = ContentFooter;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar ChevronDown = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"polyline\", {\n points: \"6 9 12 15 18 9\"\n }));\n});\nChevronDown.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nChevronDown.displayName = 'ChevronDown';\nexport default ChevronDown;","import React from \"react\";\r\nimport { useContentContext } from \"./Content\";\r\n\r\nimport styles from \"./Content.module.css\";\r\n\r\n/**\r\n * @visibleName Content.Actions\r\n */\r\nconst ContentActions = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useContentContext();\r\n\r\n return <div className={styles.actions}>{children}</div>;\r\n};\r\n\r\nexport default ContentActions;\r\n","import React from \"react\";\r\nimport { useContentContext } from \"./Content\";\r\n\r\nimport styles from \"./Content.module.css\";\r\n\r\n/**\r\n * @visibleName Content.Info\r\n */\r\nconst ContentInfo = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useContentContext();\r\n\r\n return <div className={styles.info}>{children}</div>;\r\n};\r\n\r\nexport default ContentInfo;\r\n","import React from \"react\";\r\nimport { useContentContext } from \"./Content\";\r\n\r\n/**\r\n * @visibleName Content.Body\r\n */\r\nconst ContentBody = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useContentContext();\r\n\r\n return <React.Fragment>{children}</React.Fragment>;\r\n};\r\n\r\nexport default ContentBody;\r\n","import React from \"react\";\r\nimport { useContentContext } from \"./Content\";\r\n\r\nimport styles from \"./Content.module.css\";\r\n\r\n/**\r\n * @visibleName Content\r\n *.Footer\r\n */\r\nconst ContentFooter = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useContentContext();\r\n\r\n return <div className={styles.footer}>{children}</div>;\r\n};\r\n\r\nexport default ContentFooter;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar Info = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"12\",\n cy: \"12\",\n r: \"10\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"12\",\n y1: \"16\",\n x2: \"12\",\n y2: \"12\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"12\",\n y1: \"8\",\n x2: \"12.01\",\n y2: \"8\"\n }));\n});\nInfo.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nInfo.displayName = 'Info';\nexport default Info;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar Minus = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"5\",\n y1: \"12\",\n x2: \"19\",\n y2: \"12\"\n }));\n});\nMinus.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nMinus.displayName = 'Minus';\nexport default Minus;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar Plus = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"12\",\n y1: \"5\",\n x2: \"12\",\n y2: \"19\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"5\",\n y1: \"12\",\n x2: \"19\",\n y2: \"12\"\n }));\n});\nPlus.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nPlus.displayName = 'Plus';\nexport default Plus;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar XSquare = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"rect\", {\n x: \"3\",\n y: \"3\",\n width: \"18\",\n height: \"18\",\n rx: \"2\",\n ry: \"2\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"9\",\n y1: \"9\",\n x2: \"15\",\n y2: \"15\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"15\",\n y1: \"9\",\n x2: \"9\",\n y2: \"15\"\n }));\n});\nXSquare.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nXSquare.displayName = 'XSquare';\nexport default XSquare;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar X = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"18\",\n y1: \"6\",\n x2: \"6\",\n y2: \"18\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"6\",\n y1: \"6\",\n x2: \"18\",\n y2: \"18\"\n }));\n});\nX.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nX.displayName = 'X';\nexport default X;","import React, { useEffect, useRef, useState } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { Plus, Minus } from \"react-feather\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./InputNumeric.module.css\";\r\n\r\n/**\r\n * @visibleName Input.Numeric\r\n */\r\nconst InputNumeric = (props) => {\r\n const input = useRef();\r\n const [timer, setTimer] = useState();\r\n\r\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, \"value\").set;\r\n\r\n useEffect(() => {\r\n if (!props.value) return;\r\n\r\n if (Number(props.value) > props.max) input.current.value = props.max;\r\n else if (Number(props.value) < props.min) input.current.value = props.min;\r\n else input.current.value = Number(props.value);\r\n\r\n //eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const increment = () => {\r\n if (props.max <= input.current.value) return;\r\n input.current.value = Number(input.current.value);\r\n\r\n nativeInputValueSetter.call(input.current, Number(input.current.value) + props.step);\r\n const e = new Event(\"change\", { bubbles: true });\r\n input.current.dispatchEvent(e);\r\n };\r\n\r\n const decrement = () => {\r\n if (props.min >= input.current.value) return;\r\n input.current.value = Number(input.current.value);\r\n\r\n nativeInputValueSetter.call(input.current, Number(input.current.value) - props.step);\r\n const e = new Event(\"change\", { bubbles: true });\r\n input.current.dispatchEvent(e);\r\n };\r\n\r\n const onInputChanged = (e) => {\r\n input.current.value = Number(e.target.value);\r\n props.onChange && props.onChange(e);\r\n };\r\n\r\n const onValidateInput = (e) => {\r\n if (Number(e.target.value) > props.max) input.current.value = props.max;\r\n else if (Number(e.target.value) < props.min) input.current.value = props.min;\r\n else input.current.value = Number(e.target.value);\r\n\r\n props.onChange && props.onChange(e);\r\n };\r\n\r\n const startAction = (action) => {\r\n clearInterval(timer);\r\n action();\r\n const interval = setInterval(action, 250);\r\n setTimer(interval);\r\n };\r\n\r\n const stopAction = () => {\r\n clearInterval(timer);\r\n };\r\n\r\n return (\r\n <div className={styles.main}>\r\n <div className={styles.numeric}>\r\n <input\r\n {...props}\r\n ref={input}\r\n type=\"number\"\r\n onChange={onInputChanged}\r\n onBlur={onValidateInput}\r\n autoComplete=\"off\"\r\n />\r\n <div className={styles.controls}>\r\n <button onMouseDown={() => startAction(increment)} onMouseUp={stopAction} onMouseLeave={stopAction} tabIndex={-1}>\r\n <Plus />\r\n </button>\r\n <button onMouseDown={() => startAction(decrement)} onMouseUp={stopAction} onMouseLeave={stopAction} tabIndex={-1}>\r\n <Minus />\r\n </button>\r\n </div>\r\n {props.legend && <span className={styles.legend}>{props.legend}</span>}\r\n </div>\r\n {props.required && <span className={styles.required}>Required field</span>}\r\n </div>\r\n );\r\n};\r\n\r\nexport default InputNumeric;\r\n\r\nInputNumeric.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string,\r\n /** Minimum allowed value */\r\n min: PropTypes.number,\r\n /** Maximum allowed value */\r\n max: PropTypes.number,\r\n /** Increment/decrement buttons step size */\r\n step: PropTypes.number,\r\n /** Displayed value */\r\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n /** Gets called when the value is changed */\r\n onChange: PropTypes.func,\r\n /** Is the input required */\r\n required: PropTypes.bool,\r\n};\r\n\r\nInputNumeric.defaultProps = {\r\n min: 0,\r\n max: 100,\r\n required: false,\r\n step: 1\r\n};\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./InputPassword.module.css\";\r\n\r\n/**\r\n * @visibleName Input.Password\r\n */\r\nconst InputPassword = (props) => {\r\n return (\r\n <div className={styles.main}>\r\n <input {...props} className={styles.input} type=\"password\" autoComplete=\"off\" />\r\n {props.legend !== undefined && props.legend !== \"\" && <span className={styles.legend}>{props.legend}</span>}\r\n {props.required && <span className={styles.required}>Required field</span>}\r\n </div>\r\n );\r\n};\r\n\r\nexport default InputPassword;\r\n\r\nInputPassword.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string,\r\n /** Displayed value */\r\n value: PropTypes.string,\r\n /** Gets called when the value is changed */\r\n onChange: PropTypes.func,\r\n /** Placeholder text */\r\n placeholder: PropTypes.string,\r\n /** Legend text */\r\n legend: PropTypes.string,\r\n /** Is the input required */\r\n required: PropTypes.bool,\r\n};\r\n\r\nInputPassword.defaultProps = {\r\n required: false,\r\n};\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./InputText.module.css\";\r\n\r\n/**\r\n * @visibleName Input.Text\r\n */\r\nconst InputText = (props) => {\r\n return (\r\n <div className={styles.main}>\r\n <input {...props} className={styles.input} type=\"text\" autoComplete=\"off\" />\r\n {props.legend !== undefined && props.legend !== \"\" && <span className={styles.legend}>{props.legend}</span>}\r\n {props.required && <span className={styles.required}>Required field</span>}\r\n </div>\r\n );\r\n};\r\n\r\nexport default InputText;\r\n\r\nInputText.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string,\r\n /** Value text */\r\n value: PropTypes.string,\r\n /** Gets called when the value is changed */\r\n onChange: PropTypes.func,\r\n /** Placeholder text */\r\n placeholder: PropTypes.string,\r\n /** Legend text */\r\n legend: PropTypes.string,\r\n /** Is the input required */\r\n required: PropTypes.bool,\r\n};\r\n\r\nInputText.defaultProps = {\r\n required: false,\r\n};\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./InputTextArea.module.css\";\r\n\r\n/**\r\n * @visibleName Input.TextArea\r\n */\r\nconst InputTextArea = (props) => {\r\n return (\r\n <div className={styles.main}>\r\n <textarea {...props} className={styles.textarea} type=\"text\" autoComplete=\"off\"></textarea>\r\n {props.required && <span className={styles.required}>Required field</span>}\r\n </div>\r\n );\r\n};\r\n\r\nexport default InputTextArea;\r\n\r\nInputTextArea.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string,\r\n /** Value text */\r\n value: PropTypes.string,\r\n /** Gets called when the value is changed */\r\n onChange: PropTypes.func,\r\n /** Placeholder text */\r\n placeholder: PropTypes.string,\r\n /** Is the input required */\r\n required: PropTypes.bool,\r\n};\r\n\r\nInputTextArea.defaultProps = {\r\n required: false,\r\n};\r\n","import InputNumeric from \"./InputNumeric\";\r\nimport InputPassword from \"./InputPassword\";\r\nimport InputText from \"./InputText\";\r\nimport InputTextArea from \"./InputTextArea\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\n\r\nconst Input = _ => {\r\n return null;\r\n};\r\n\r\nexport default Input;\r\n\r\nInput.Numeric = InputNumeric;\r\nInput.Password = InputPassword;\r\nInput.Text = InputText\r\nInput.TextArea = InputTextArea;","import { useEffect } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\n\r\nimport \"./Portal.css\";\r\n\r\nconst Portal = ({ children }) => {\r\n const container = document.createElement(\"div\");\r\n\r\n useEffect(() => {\r\n container.setAttribute(\"id\", `portal-root-${Math.floor(Math.random() * 10000)}`);\r\n document.body.appendChild(container);\r\n\r\n return () => document.body.removeChild(container);\r\n });\r\n\r\n return createPortal(children, container);\r\n};\r\n\r\nexport default Portal;\r\n","import React, { useRef } from \"react\";\r\n\r\nimport styles from \"./Overlay.module.css\";\r\n\r\nconst Overlay = (props) => {\r\n const overlay = useRef();\r\n\r\n const handleClick = (e) => {\r\n if (e.target !== overlay.current) return;\r\n props.onClick && props.onClick();\r\n };\r\n\r\n return (\r\n <div className={styles.overlay} ref={overlay} onClick={handleClick}>\r\n {props.children}\r\n </div>\r\n );\r\n};\r\n\r\nexport default Overlay;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { X } from \"react-feather\";\r\nimport { useModalContext } from \"./Modal\";\r\n\r\nimport styles from \"./Modal.module.css\";\r\n\r\n/**\r\n * @visibleName Modal.Header\r\n */\r\nconst ModalHeader = (props) => {\r\n const { onHide } = useModalContext();\r\n\r\n return (\r\n <div className={styles.header}>\r\n {props.children}\r\n {props.closeButton && (\r\n <div className={styles.close} onClick={onHide}>\r\n <X />\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default ModalHeader;\r\n\r\nModalHeader.propTypes = {\r\n /** Specify whether the component should contain a close button */\r\n closeButton: PropTypes.bool,\r\n};\r\n\r\nModalHeader.defaultProps = {\r\n closeButton: true,\r\n};\r\n","import React from \"react\";\r\nimport { useModalContext } from \"./Modal\";\r\n\r\n/**\r\n * @visibleName Modal.Title\r\n */\r\nconst ModalTitle = (props) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useModalContext();\r\n\r\n return <h2>{props.children}</h2>;\r\n};\r\n\r\nexport default ModalTitle;\r\n","import React from \"react\";\r\nimport { useModalContext } from \"./Modal\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport styles from \"./Modal.module.css\";\r\n\r\n/**\r\n * @visibleName Modal.Body\r\n */\r\nconst ModalBody = (props) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useModalContext();\r\n const activeStyles = props.useAccent ? [styles.body, styles.accent] : [styles.body];\r\n\r\n return (\r\n <div className={activeStyles.join(\" \")}>\r\n <div className={styles.spacer}>{props.children}</div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default ModalBody;\r\n\r\nModalBody.propTypes = {\r\n /** Adds an orange color accent to the top of the modal's content */\r\n useAccent: PropTypes.bool,\r\n};\r\n\r\nModalBody.defaultProps = {\r\n useAccent: false,\r\n};\r\n","import React from \"react\";\r\nimport { useModalContext } from \"./Modal\";\r\n\r\nimport styles from \"./Modal.module.css\";\r\n\r\n/**\r\n * @visibleName Modal.Footer\r\n */\r\nconst ModalFooter = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useModalContext();\r\n\r\n return <div className={styles.footer}>{children}</div>;\r\n};\r\n\r\nexport default ModalFooter;\r\n","import React, { useEffect, useContext, createContext } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport Portal from \"../Portal\";\r\nimport Overlay from \"../Overlay\";\r\n\r\nimport ModalHeader from \"./ModalHeader\";\r\nimport ModalTitle from \"./ModalTitle\";\r\nimport ModalBody from \"./ModalBody\";\r\nimport ModalFooter from \"./ModalFooter\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./Modal.module.css\";\r\n\r\nconst ModalContext = createContext();\r\n\r\nexport const useModalContext = () => {\r\n const context = useContext(ModalContext);\r\n if (!context) throw new Error(`Modal compound components cannot be rendered outside the Modal component.`);\r\n\r\n return context;\r\n};\r\n\r\nconst Modal = (props) => {\r\n useEffect(() => {\r\n document.body.classList.toggle(\"noscroll\");\r\n return () => document.body.classList.toggle(\"noscroll\");\r\n }, []);\r\n\r\n const state = {\r\n onHide: props.onHide,\r\n };\r\n\r\n return (\r\n <ModalContext.Provider value={state}>\r\n <Portal>\r\n <Overlay onClick={props.onHide}>\r\n <div id={props.id} className={[styles.modal, styles[props.size]].join(\" \")}>{props.children}</div>\r\n </Overlay>\r\n </Portal>\r\n </ModalContext.Provider>\r\n );\r\n};\r\n\r\nexport default Modal;\r\n\r\nModal.Header = ModalHeader;\r\nModal.Title = ModalTitle;\r\nModal.Body = ModalBody;\r\nModal.Footer = ModalFooter;\r\n\r\nModal.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string,\r\n /** The size of the modal */\r\n size: PropTypes.oneOf([\"small\", \"normal\", \"large\"]),\r\n /** A callback fired when the header closeButton or non-static backdrop is clicked. Required if either are specified. */\r\n onHide: PropTypes.func,\r\n};\r\n\r\nModal.defaultProps = {\r\n size: \"normal\",\r\n};\r\n","import React from \"react\";\r\nimport { usePanelContext } from \"./Panel\";\r\n\r\nimport styles from \"./Panel.module.css\";\r\n\r\n/**\r\n * @visibleName Panel.Header\r\n */\r\nconst PanelHeader = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = usePanelContext();\r\n\r\n return <div className={styles.header}>{children}</div>;\r\n};\r\n\r\nexport default PanelHeader;\r\n","import React, { useContext, createContext } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport PanelHeader from \"./PanelHeader\";\r\nimport PanelBody from \"./PanelBody\";\r\nimport PanelFooter from \"./PanelFooter\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./Panel.module.css\";\r\n\r\nconst PanelContext = createContext();\r\n\r\nexport const usePanelContext = () => {\r\n const context = useContext(PanelContext);\r\n if (!context) throw new Error(`Panel compound components cannot be rendered outside the Panel component.`);\r\n\r\n return context;\r\n};\r\n\r\nconst Panel = (props) => {\r\n const activeStyles = props.noPadding ? [styles.panel, styles.noPadding] : [styles.panel];\r\n\r\n return (\r\n <PanelContext.Provider value={{}}>\r\n <div id={props.id} className={activeStyles.join(\" \")}>\r\n {props.children}\r\n </div>\r\n </PanelContext.Provider>\r\n );\r\n};\r\n\r\nexport default Panel;\r\n\r\nPanel.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string,\r\n /** Optionally remove the inner padding of the panel */\r\n noPadding: PropTypes.bool,\r\n};\r\n\r\nPanel.defaultProps = {\r\n noPadding: false,\r\n};\r\n\r\nPanel.Header = PanelHeader;\r\nPanel.Body = PanelBody;\r\nPanel.Footer = PanelFooter;\r\n","import React from \"react\";\r\nimport { usePanelContext } from \"./Panel\";\r\n\r\nimport styles from \"./Panel.module.css\";\r\n\r\n/**\r\n * @visibleName Panel.Body\r\n */\r\nconst PanelBody = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = usePanelContext();\r\n\r\n return <div className={styles.body}>{children}</div>;\r\n};\r\n\r\nexport default PanelBody;\r\n","import React from \"react\";\r\nimport { usePanelContext } from \"./Panel\";\r\n\r\nimport styles from \"./Panel.module.css\";\r\n\r\n/**\r\n * @visibleName Panel.Footer\r\n */\r\nconst PanelFooter = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = usePanelContext();\r\n\r\n return <div className={styles.footer}>{children}</div>;\r\n};\r\n\r\nexport default PanelFooter;\r\n","import React from \"react\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./Panel.module.css\";\r\n\r\nconst PanelGroup = (props) => {\r\n return <div className={styles.group}>{props.children}</div>;\r\n};\r\n\r\nexport default PanelGroup;\r\n","import React from \"react\";\r\nimport { useQuestionContext } from \"./Question\";\r\n\r\nimport styles from \"./Question.module.css\";\r\n\r\n/**\r\n * @visibleName Question.Title\r\n */\r\nconst QuestionTitle = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useQuestionContext();\r\n\r\n return <p className={styles.title}>{children}</p>;\r\n};\r\n\r\nexport default QuestionTitle;\r\n","import React from \"react\";\r\nimport { useQuestionContext } from \"./Question\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport styles from \"./Question.module.css\";\r\n\r\n/**\r\n * @visibleName Question.Image\r\n */\r\nconst QuestionImage = (props) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useQuestionContext();\r\n\r\n return props.src && <div className={styles.image} style={{ backgroundImage: \"url(\" + props.src + \")\" }}></div>;\r\n};\r\n\r\nexport default QuestionImage;\r\n\r\nQuestionImage.propTypes = {\r\n /** Path to the image to display in the question box */\r\n src: PropTypes.string,\r\n};\r\n\r\nQuestionImage.defaultProps = {\r\n src: null,\r\n};\r\n","import React, { useContext, createContext } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport QuestionTitle from \"./QuestionTitle\";\r\nimport QuestionBody from \"./QuestionBody\";\r\nimport QuestionInfo from \"./QuestionInfo\";\r\nimport QuestionImage from \"./QuestionImage\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./Question.module.css\";\r\n\r\nconst QuestionContext = createContext();\r\n\r\nexport const useQuestionContext = () => {\r\n const context = useContext(QuestionContext);\r\n if (!context) throw new Error(`Question compound components cannot be rendered outside the Question component.`);\r\n\r\n return context;\r\n};\r\n\r\nconst Question = (props) => {\r\n let content = [];\r\n let image;\r\n props.children.forEach((child) => {\r\n if (React.isValidElement(child)) {\r\n if (child.type.name !== \"QuestionImage\") {\r\n content.push(child);\r\n } else {\r\n image = child;\r\n }\r\n }\r\n });\r\n return (\r\n <QuestionContext.Provider value={{}}>\r\n <div id={props.id} className={styles.question}>\r\n <div className={styles.content}>{content}</div>\r\n {image}\r\n </div>\r\n </QuestionContext.Provider>\r\n );\r\n};\r\n\r\nexport default Question;\r\n\r\nQuestion.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string\r\n};\r\n\r\nQuestion.Title = QuestionTitle;\r\nQuestion.Body = QuestionBody;\r\nQuestion.Info = QuestionInfo;\r\nQuestion.Image = QuestionImage;\r\n","import React from \"react\";\r\nimport { useQuestionContext } from \"./Question\";\r\n\r\nimport styles from \"./Question.module.css\";\r\n\r\n/**\r\n * @visibleName Question.Body\r\n */\r\nconst QuestionBody = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useQuestionContext();\r\n\r\n return <div className={styles.body}>{children}</div>;\r\n};\r\n\r\nexport default QuestionBody;\r\n","import React from \"react\";\r\nimport { Info } from \"react-feather\";\r\nimport { useQuestionContext } from \"./Question\";\r\n\r\nimport styles from \"./Question.module.css\";\r\n\r\n/**\r\n * @visibleName Question.Info\r\n */\r\nconst QuestionInfo = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useQuestionContext();\r\n\r\n return (\r\n <div className={styles.info}>\r\n <Info className={styles.icon} />\r\n <p>{children}</p>\r\n </div>\r\n );\r\n};\r\n\r\nexport default QuestionInfo;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./Radio.module.css\";\r\n\r\nconst Radio = (props) => {\r\n const activeStyles = props.disabled ? [styles.container, styles.disabled] : [styles.container];\r\n\r\n return (\r\n <label className={activeStyles.join(\" \")}>\r\n {props.label}\r\n <input {...props} type=\"radio\" />\r\n <span className={styles.focus}></span>\r\n <span className={styles.checkmark}></span>\r\n </label>\r\n );\r\n};\r\n\r\nexport default Radio;\r\n\r\nRadio.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string,\r\n /** Text to display next to the radio button */\r\n label: PropTypes.string,\r\n /** Checked status of the radio button */\r\n checked: PropTypes.bool,\r\n /** Disables the radio button */\r\n disabled: PropTypes.bool,\r\n /** Gets called when the user clicks on the radio button */\r\n onChange: PropTypes.func,\r\n};\r\n\r\nRadio.defaultProps = {\r\n checked: false,\r\n disabled: false,\r\n};\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport Portal from \"../Portal/Portal\";\r\nimport { ChevronDown, X, XSquare } from \"react-feather\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./Select.module.css\";\r\n\r\nconst Select = ({\r\n label,\r\n description,\r\n placeholder,\r\n options,\r\n selection,\r\n valueProperty,\r\n displayProperty,\r\n isMulti,\r\n isClearable,\r\n onChange,\r\n disabled,\r\n}) => {\r\n const [selectedItems, setSelectedItems] = useState([]);\r\n const [coords, setCoords] = useState({});\r\n\r\n const [expanded, setExpanded] = useState(false);\r\n const expand = useRef(false);\r\n const controlRef = useRef();\r\n const optionsRef = useRef();\r\n\r\n const isMultiSelect = isMulti;\r\n const canClear = isClearable;\r\n\r\n const activeStyles = disabled ? [styles.select, styles.disabled] : [styles.select];\r\n\r\n useEffect(() => {\r\n document.addEventListener(\"click\", handleClickOutsideSelect);\r\n document.addEventListener(\"keyup\", handleEscapeKey);\r\n window.addEventListener(\"blur\", handleWindowEvents);\r\n window.addEventListener(\"resize\", handleWindowEvents);\r\n\r\n return () => {\r\n document.removeEventListener(\"click\", handleClickOutsideSelect);\r\n document.removeEventListener(\"keyup\", handleEscapeKey);\r\n window.removeEventListener(\"blur\", handleWindowEvents);\r\n window.removeEventListener(\"resize\", handleWindowEvents);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!selection || selection.length === 0) {\r\n setSelectedItems([]);\r\n return;\r\n }\r\n\r\n if (!valueProperty) {\r\n setSelectedItems(Array.isArray(selection) ? selection : [selection]);\r\n return;\r\n }\r\n\r\n if (isMultiSelect) {\r\n const items = [];\r\n for (let i = 0; i < selection.length; i++) {\r\n const item = options.find((x) => x[valueProperty] === selection[i]);\r\n\r\n if (item) items.push(item);\r\n }\r\n\r\n setSelectedItems(items);\r\n\r\n if (items.length > 0) onChange && onChange(items);\r\n } else {\r\n const item = options.find((x) => x[valueProperty] === selection);\r\n\r\n setSelectedItems([item]);\r\n if (item) onChange && onChange(item);\r\n }\r\n\r\n //eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [options, selection]);\r\n\r\n useEffect(() => {\r\n if (expanded) {\r\n const rect = controlRef.current.getBoundingClientRect();\r\n setCoords({\r\n left: rect.x,\r\n top: rect.y + window.scrollY + rect.height,\r\n width: rect.width - 2,\r\n });\r\n }\r\n\r\n //eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [selectedItems]);\r\n\r\n const handleClickOutsideSelect = (e) => {\r\n const path = e.path || (e.composedPath && e.composedPath())\r\n if (path) {\r\n for (let i = 0; i < path.length; i++) {\r\n if (path[i] === controlRef.current || path[i] === optionsRef.current) {\r\n e.stopPropagation();\r\n return;\r\n }\r\n }\r\n } else {\r\n // Browser isn't supplying path info\r\n let element = e.target;\r\n while (element !== null) {\r\n if (element === controlRef.current || element === optionsRef.current) {\r\n e.stopPropagation();\r\n return;\r\n }\r\n\r\n element = element.parentElement\r\n }\r\n }\r\n\r\n setExpanded(false);\r\n expand.current = false;\r\n };\r\n\r\n const handleEscapeKey = (e) => {\r\n if (e.key === \"Escape\" && expand.current) {\r\n setExpanded(false);\r\n expand.current = false;\r\n }\r\n };\r\n\r\n const handleWindowEvents = (e) => {\r\n if (expand.current) {\r\n expand.current = false;\r\n setExpanded(false);\r\n }\r\n };\r\n\r\n const onClickSelectBox = (e) => {\r\n e.stopPropagation();\r\n\r\n if (!expanded) {\r\n const rect = controlRef.current.getBoundingClientRect();\r\n setCoords({\r\n left: rect.x,\r\n top: rect.y + window.scrollY + rect.height,\r\n width: rect.width - 2,\r\n });\r\n }\r\n\r\n expand.current = !expanded;\r\n setExpanded((show) => !show);\r\n };\r\n\r\n const onClickSelectItem = (e, item) => {\r\n e.stopPropagation();\r\n\r\n if (!expanded) {\r\n const rect = controlRef.current.getBoundingClientRect();\r\n setCoords({\r\n left: rect.x,\r\n top: rect.y + window.scrollY + rect.height,\r\n width: rect.width - 2,\r\n });\r\n }\r\n\r\n if (isMultiSelect) {\r\n let selected = [...selectedItems];\r\n if (!selected.find((x) => x === item)) {\r\n selected.push(item);\r\n }\r\n\r\n setSelectedItems(selected);\r\n setExpanded(false);\r\n\r\n onChange && onChange(selected);\r\n } else {\r\n setSelectedItems([item]);\r\n setExpanded(false);\r\n\r\n onChange && onChange(item);\r\n }\r\n };\r\n\r\n const onRemoveSelectedItem = (e, item) => {\r\n e.stopPropagation();\r\n\r\n const selected = selectedItems.filter((x) => x !== item);\r\n setSelectedItems(selected);\r\n onChange && onChange(selected);\r\n };\r\n\r\n const onClearSelection = (e) => {\r\n e.stopPropagation();\r\n setSelectedItems([]);\r\n onChange && onChange(isMultiSelect ? [] : null);\r\n };\r\n\r\n const renderSelection = () => {\r\n if (!selectedItems || selectedItems.length === 0) return <span className={styles.placeholder}>{placeholder}</span>;\r\n\r\n if (isMultiSelect) {\r\n return (\r\n <span className={styles.multiselect_items}>\r\n {selectedItems.map((item, index) => (\r\n <span key={index} className={styles.multiselect_item}>\r\n {renderItem(item)}\r\n <XSquare onClick={(e) => onRemoveSelectedItem(e, item)} />\r\n </span>\r\n ))}\r\n </span>\r\n );\r\n } else {\r\n return renderItem(selectedItems[0]);\r\n }\r\n };\r\n\r\n const renderOptions = () => {\r\n let items = options;\r\n if (isMultiSelect) {\r\n items = items.filter((x) => !selectedItems.some((y) => x === y));\r\n }\r\n\r\n return (\r\n <ul>\r\n {items.map((item, i) => (\r\n <li key={i} onClick={(e) => onClickSelectItem(e, item)} title={renderItem(item)}>\r\n {renderItem(item)}\r\n </li>\r\n ))}\r\n {items.length === 0 && <li className={styles.disabled}>No options available</li>}\r\n </ul>\r\n );\r\n };\r\n\r\n const renderItem = (item) => {\r\n if (!item) return;\r\n\r\n if (displayProperty) return item[displayProperty];\r\n return item;\r\n };\r\n\r\n return (\r\n <div className={label ? activeStyles.join(\" \") : [...activeStyles, styles.withoutLabel].join(\" \")}>\r\n {label && <label>{label}</label>}\r\n <div\r\n className={expanded ? [styles.input, styles.focused].join(\" \") : styles.input}\r\n onClick={(e) => onClickSelectBox(e)}\r\n ref={controlRef}\r\n >\r\n {renderSelection()}\r\n\r\n <div className={isClearable ? [styles.controls, styles.clearable].join(\" \") : styles.controls}>\r\n {canClear && selectedItems && selectedItems.length > 0 && <X onClick={onClearSelection} />}\r\n <ChevronDown />\r\n </div>\r\n </div>\r\n\r\n {expanded && (\r\n <Portal>\r\n <div\r\n ref={optionsRef}\r\n className={styles.dropdown}\r\n style={{\r\n left: coords.left,\r\n top: coords.top,\r\n width: coords.width,\r\n }}\r\n >\r\n {renderOptions()}\r\n </div>\r\n </Portal>\r\n )}\r\n\r\n {description && <span className={styles.description}>{description}</span>}\r\n </div>\r\n );\r\n};\r\n\r\nexport default Select;\r\n\r\nSelect.propTypes = {\r\n /** Determine if selecting multiple options is possible */\r\n isMulti: PropTypes.bool,\r\n /** Determine if it is possible to clear the active selection using a button */\r\n isClearable: PropTypes.bool,\r\n /** Label text */\r\n label: PropTypes.string,\r\n /** Description text displayed underneath the dropdown */\r\n description: PropTypes.string,\r\n /** Options array */\r\n options: PropTypes.array,\r\n /** The active selection */\r\n selection: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object, PropTypes.array]),\r\n /** The property of the object to display in the dropdown */\r\n displayProperty: PropTypes.string,\r\n /** The property of the object to use to determine selection */\r\n valueProperty: PropTypes.string,\r\n /** Gets called when the user selects an option from the dropdown */\r\n onChange: PropTypes.func,\r\n};\r\n\r\nSelect.defaultProps = {\r\n isMulti: false,\r\n isClearable: false,\r\n};\r\n","import React, { useContext, createContext, useState } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\n\r\nconst SelectGroupContext = createContext();\r\n\r\nexport const useSelectGroupContext = () => {\r\n const context = useContext(SelectGroupContext);\r\n if (!context) throw new Error(`SelectGroup compound components cannot be rendered outside the SelectGroup component.`);\r\n\r\n return context;\r\n};\r\n\r\nconst SelectGroup = ({ id, children, onChange, initialSelection }) => {\r\n const [active, setActive] = useState(initialSelection);\r\n\r\n const onItemClicked = (index) => {\r\n setActive(index);\r\n onChange && onChange(index);\r\n };\r\n\r\n return (\r\n <SelectGroupContext.Provider value={{}}>\r\n <div id={id}>\r\n {children.map((item, index) => {\r\n if (!React.isValidElement(item) || item.type.name !== \"SelectGroupItem\") return null;\r\n\r\n return (\r\n <React.Fragment key={index}>\r\n {React.cloneElement(item, {\r\n selected: active === Number(item.props.id),\r\n onClick: () => onItemClicked(Number(item.props.id)),\r\n })}\r\n </React.Fragment>\r\n );\r\n })}\r\n </div>\r\n </SelectGroupContext.Provider>\r\n );\r\n};\r\n\r\nexport default SelectGroup;\r\n\r\nSelectGroup.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string,\r\n /** Id of the selected value */\r\n initialSelection: PropTypes.number,\r\n /** Gets called when the user clicks on one of the SelectGroupItem components */\r\n onChange: PropTypes.func,\r\n};\r\n","import React from \"react\";\r\nimport { useSelectGroupContext } from \"./SelectGroup\";\r\n\r\n/**\r\n * @visibleName SelectGroupItem.Title\r\n */\r\nconst SelectGroupItemTitle = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useSelectGroupContext();\r\n\r\n return <h3>{children}</h3>;\r\n};\r\n\r\nexport default SelectGroupItemTitle;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport SelectGroupItemTitle from \"./SelectGroupItemTitle\";\r\nimport SelectGroupItemDescription from \"./SelectGroupItemDescription\";\r\nimport SelectGroupItemImage from \"./SelectGroupItemImage\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./SelectGroupItem.module.css\";\r\n\r\nconst SelectGroupItem = ({ selected, onClick, children }) => {\r\n const content = [];\r\n let image;\r\n children.forEach((child) => {\r\n if (!React.isValidElement(child)) return;\r\n\r\n if (child.type.name !== \"SelectGroupItemImage\") {\r\n content.push(child);\r\n } else {\r\n image = child;\r\n }\r\n });\r\n\r\n return (\r\n <div onClick={onClick} className={selected ? [styles.item, styles.selected].join(\" \") : styles.item}>\r\n <div className={styles.box}>{content}</div>\r\n {image}\r\n </div>\r\n );\r\n};\r\n\r\nexport default SelectGroupItem;\r\n\r\nSelectGroupItem.Title = SelectGroupItemTitle;\r\nSelectGroupItem.Description = SelectGroupItemDescription;\r\nSelectGroupItem.Image = SelectGroupItemImage;\r\n\r\nSelectGroupItem.propTypes = {\r\n /** Unique identifier of the item */\r\n id: PropTypes.string\r\n};\r\n","import React from \"react\";\r\nimport { useSelectGroupContext } from \"./SelectGroup\";\r\n\r\n/**\r\n * @visibleName SelectGroupItem.Title\r\n */\r\nconst SelectGroupItemDescription = ({ children }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useSelectGroupContext();\r\n\r\n return <p>{children}</p>;\r\n};\r\n\r\nexport default SelectGroupItemDescription;\r\n","import React from \"react\";\r\nimport { useSelectGroupContext } from \"./SelectGroup\";\r\n\r\n/**\r\n * @visibleName SelectGroupItem.Image\r\n */\r\nconst SelectGroupItemImage = ({ src }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useSelectGroupContext();\r\n\r\n return src && <img src={src} alt=\"\" />;\r\n};\r\n\r\nexport default SelectGroupItemImage;\r\n","import React, { useContext, createContext, useState, useEffect } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./Steps.module.css\";\r\n\r\nconst StepsContext = createContext();\r\n\r\nexport const useStepsContext = () => {\r\n const context = useContext(StepsContext);\r\n if (!context) throw new Error(`Steps compound components cannot be rendered outside the Steps component.`);\r\n\r\n return context;\r\n};\r\n\r\nconst Steps = ({ id, activeStep, onChange, children }) => {\r\n const [active, setActive] = useState(activeStep || 0);\r\n const steps = [];\r\n\r\n useEffect(() => {\r\n setActive(activeStep);\r\n }, [activeStep])\r\n\r\n const trySetActive = (index) => {\r\n if (onChange && onChange(active, index) === false) {\r\n return;\r\n }\r\n\r\n setActive(index);\r\n };\r\n\r\n children.forEach((step, index) => {\r\n if (React.isValidElement(step) && step.type.name === \"Step\") {\r\n steps.push(\r\n React.cloneElement(step, {\r\n key: index,\r\n id: index,\r\n selected: index === active,\r\n isCompleted: index < active,\r\n onClick: () => trySetActive(index),\r\n })\r\n );\r\n }\r\n });\r\n\r\n return (\r\n <StepsContext.Provider value={{}}>\r\n <div id={id} className={styles.container}>\r\n <ul className={styles.box}>{steps}</ul>\r\n </div>\r\n {steps[active] && steps[active].props.children}\r\n </StepsContext.Provider>\r\n );\r\n};\r\n\r\nexport default Steps;\r\n\r\nSteps.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string,\r\n /** The step that is currently being displayed */\r\n activeStep: PropTypes.number,\r\n /** Function that is called when the active step is changed. Return false in this function to prevent the step from being changed. */\r\n onChange: PropTypes.func\r\n};\r\n","import React from \"react\";\r\nimport { useStepsContext } from \"./Steps\";\r\n\r\nimport styles from \"./Steps.module.css\";\r\n\r\nconst Step = ({ id, label, selected, isCompleted, onClick }) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const _ = useStepsContext();\r\n\r\n return (\r\n <li onClick={selected ? null : onClick} className={selected ? styles.active : isCompleted ? styles.completed : \"\"}>\r\n <p>\r\n <span className={styles.nmbr}>{id + 1}</span>\r\n <span>{label}</span>\r\n </p>\r\n </li>\r\n );\r\n};\r\n\r\nexport default Step;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./Subheader.module.css\";\r\n\r\nconst Subheader = (props) => {\r\n const color = props.color === \"\" ? \"orange\" : props.color;\r\n\r\n return (\r\n <div id={props.id} className={styles.subheader}>\r\n <div className={styles.line}></div>\r\n <div className={[styles.content, styles[color]].join(\" \")}>{props.children}</div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Subheader;\r\n\r\nSubheader.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string,\r\n /** The color of the box */\r\n color: PropTypes.oneOf([\"yellow\", \"green\", \"blue\", \"purple\", \"red\", \"orange\"]),\r\n};\r\n\r\nSubheader.defaultProps = {\r\n color: \"orange\",\r\n};\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nimport \"../../styles/Global.css\";\r\nimport \"../../styles/Typography.css\";\r\nimport styles from \"./Table.module.css\";\r\n\r\nconst Table = (props) => {\r\n return (\r\n <table id={props.id} className={styles.table}>\r\n {props.children}\r\n </table>\r\n );\r\n};\r\n\r\nexport default Table;\r\n\r\nTable.propTypes = {\r\n /** Adds the value as id to the element */\r\n id: PropTypes.string,\r\n};\r\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AuthError } from \"./AuthError\";\n\n/**\n * ClientAuthErrorMessage class containing string constants used by error codes and messages.\n */\nexport const ClientAuthErrorMessage = {\n clientInfoDecodingError: {\n code: \"client_info_decoding_error\",\n desc: \"The client info could not be parsed/decoded correctly. Please review the trace to determine the root cause.\"\n },\n clientInfoEmptyError: {\n code: \"client_info_empty_error\",\n desc: \"The client info was empty. Please review the trace to determine the root cause.\"\n },\n tokenParsingError: {\n code: \"token_parsing_error\",\n desc: \"Token cannot be parsed. Please review stack trace to determine root cause.\"\n },\n nullOrEmptyToken: {\n code: \"null_or_empty_token\",\n desc: \"The token is null or empty. Please review the trace to determine the root cause.\"\n },\n endpointResolutionError: {\n code: \"endpoints_resolution_error\",\n desc: \"Error: could not resolve endpoints. Please check network and try again.\"\n },\n networkError: {\n code: \"network_error\",\n desc: \"Network request failed. Please check network trace to determine root cause.\"\n },\n unableToGetOpenidConfigError: {\n code: \"openid_config_error\",\n desc: \"Could not retrieve endpoints. Check your authority and verify the .well-known/openid-configuration endpoint returns the required endpoints.\"\n },\n hashNotDeserialized: {\n code: \"hash_not_deserialized\",\n desc: \"The hash parameters could not be deserialized. Please review the trace to determine the root cause.\"\n },\n blankGuidGenerated: {\n code: \"blank_guid_generated\",\n desc: \"The guid generated was blank. Please review the trace to determine the root cause.\"\n },\n invalidStateError: {\n code: \"invalid_state\",\n desc: \"State was not the expected format. Please check the logs to determine whether the request was sent using ProtocolUtils.setRequestState().\"\n },\n stateMismatchError: {\n code: \"state_mismatch\",\n desc: \"State mismatch error. Please check your network. Continued requests may cause cache overflow.\"\n },\n stateNotFoundError: {\n code: \"state_not_found\",\n desc: \"State not found\"\n },\n nonceMismatchError: {\n code: \"nonce_mismatch\",\n desc: \"Nonce mismatch error. This may be caused by a race condition in concurrent requests.\"\n },\n nonceNotFoundError: {\n code: \"nonce_not_found\",\n desc: \"nonce not found\"\n },\n authTimeNotFoundError: {\n code: \"auth_time_not_found\",\n desc: \"Max Age was requested and the ID token is missing the auth_time variable.\" +\n \" auth_time is an optional claim and is not enabled by default - it must be enabled.\" +\n \" See https://aka.ms/msaljs/optional-claims for more information.\"\n },\n maxAgeTranspiredError: {\n code: \"max_age_transpired\",\n desc: \"Max Age is set to 0, or too much time has elapsed since the last end-user authentication.\"\n },\n noTokensFoundError: {\n code: \"no_tokens_found\",\n desc: \"No tokens were found for the given scopes, and no authorization code was passed to acquireToken. You must retrieve an authorization code before making a call to acquireToken().\"\n },\n multipleMatchingTokens: {\n code: \"multiple_matching_tokens\",\n desc: \"The cache contains multiple tokens satisfying the requirements. \" +\n \"Call AcquireToken again providing more requirements such as authority or account.\"\n },\n multipleMatchingAccounts: {\n code: \"multiple_matching_accounts\",\n desc: \"The cache contains multiple accounts satisfying the given parameters. Please pass more info to obtain the correct account\"\n },\n multipleMatchingAppMetadata: {\n code: \"multiple_matching_appMetadata\",\n desc: \"The cache contains multiple appMetadata satisfying the given parameters. Please pass more info to obtain the correct appMetadata\"\n },\n tokenRequestCannotBeMade: {\n code: \"request_cannot_be_made\",\n desc: \"Token request cannot be made without authorization code or refresh token.\"\n },\n appendEmptyScopeError: {\n code: \"cannot_append_empty_scope\",\n desc: \"Cannot append null or empty scope to ScopeSet. Please check the stack trace for more info.\"\n },\n removeEmptyScopeError: {\n code: \"cannot_remove_empty_scope\",\n desc: \"Cannot remove null or empty scope from ScopeSet. Please check the stack trace for more info.\"\n },\n appendScopeSetError: {\n code: \"cannot_append_scopeset\",\n desc: \"Cannot append ScopeSet due to error.\"\n },\n emptyInputScopeSetError: {\n code: \"empty_input_scopeset\",\n desc: \"Empty input ScopeSet cannot be processed.\"\n },\n DeviceCodePollingCancelled: {\n code: \"device_code_polling_cancelled\",\n desc: \"Caller has cancelled token endpoint polling during device code flow by setting DeviceCodeRequest.cancel = true.\"\n },\n DeviceCodeExpired: {\n code: \"device_code_expired\",\n desc: \"Device code is expired.\"\n },\n DeviceCodeUnknownError: {\n code: \"device_code_unknown_error\",\n desc: \"Device code stopped polling for unknown reasons.\"\n },\n NoAccountInSilentRequest: {\n code: \"no_account_in_silent_request\",\n desc: \"Please pass an account object, silent flow is not supported without account information\"\n },\n invalidCacheRecord: {\n code: \"invalid_cache_record\",\n desc: \"Cache record object was null or undefined.\"\n },\n invalidCacheEnvironment: {\n code: \"invalid_cache_environment\",\n desc: \"Invalid environment when attempting to create cache entry\"\n },\n noAccountFound: {\n code: \"no_account_found\",\n desc: \"No account found in cache for given key.\"\n },\n CachePluginError: {\n code: \"no cache plugin set on CacheManager\",\n desc: \"ICachePlugin needs to be set before using readFromStorage or writeFromStorage\"\n },\n noCryptoObj: {\n code: \"no_crypto_object\",\n desc: \"No crypto object detected. This is required for the following operation: \"\n },\n invalidCacheType: {\n code: \"invalid_cache_type\",\n desc: \"Invalid cache type\"\n },\n unexpectedAccountType: {\n code: \"unexpected_account_type\",\n desc: \"Unexpected account type.\"\n },\n unexpectedCredentialType: {\n code: \"unexpected_credential_type\",\n desc: \"Unexpected credential type.\"\n },\n invalidAssertion: {\n code: \"invalid_assertion\",\n desc: \"Client assertion must meet requirements described in https://tools.ietf.org/html/rfc7515\"\n },\n invalidClientCredential: {\n code: \"invalid_client_credential\",\n desc: \"Client credential (secret, certificate, or assertion) must not be empty when creating a confidential client. An application should at most have one credential\"\n },\n tokenRefreshRequired: {\n code: \"token_refresh_required\",\n desc: \"Cannot return token from cache because it must be refreshed. This may be due to one of the following reasons: forceRefresh parameter is set to true, claims have been requested, there is no cached access token or it is expired.\"\n },\n userTimeoutReached: {\n code: \"user_timeout_reached\",\n desc: \"User defined timeout for device code polling reached\",\n },\n tokenClaimsRequired: {\n code: \"token_claims_cnf_required_for_signedjwt\",\n desc: \"Cannot generate a POP jwt if the token_claims are not populated\"\n },\n noAuthorizationCodeFromServer: {\n code: \"authorization_code_missing_from_server_response\",\n desc: \"Server response does not contain an authorization code to proceed\"\n },\n noAzureRegionDetected: {\n code: \"no_azure_region_detected\",\n desc: \"No azure region was detected and no fallback was made available\"\n },\n accessTokenEntityNullError: {\n code: \"access_token_entity_null\",\n desc: \"Access token entity is null, please check logs and cache to ensure a valid access token is present.\"\n },\n bindingKeyNotRemovedError: {\n code: \"binding_key_not_removed\",\n desc: \"Could not remove the credential's binding key from storage.\"\n },\n logoutNotSupported: {\n code: \"end_session_endpoint_not_supported\",\n desc: \"Provided authority does not support logout.\"\n },\n keyIdMissing: {\n code: \"key_id_missing\",\n desc: \"A keyId value is missing from the requested bound token's cache record and is required to match the token to it's stored binding key.\"\n }\n};\n\n/**\n * Error thrown when there is an error in the client code running on the browser.\n */\nexport class ClientAuthError extends AuthError {\n\n constructor(errorCode: string, errorMessage?: string) {\n super(errorCode, errorMessage);\n this.name = \"ClientAuthError\";\n\n Object.setPrototypeOf(this, ClientAuthError.prototype);\n }\n\n /**\n * Creates an error thrown when client info object doesn't decode correctly.\n * @param caughtError\n */\n static createClientInfoDecodingError(caughtError: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.clientInfoDecodingError.code,\n `${ClientAuthErrorMessage.clientInfoDecodingError.desc} Failed with error: ${caughtError}`);\n }\n\n /**\n * Creates an error thrown if the client info is empty.\n * @param rawClientInfo\n */\n static createClientInfoEmptyError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.clientInfoEmptyError.code,\n `${ClientAuthErrorMessage.clientInfoEmptyError.desc}`);\n }\n\n /**\n * Creates an error thrown when the id token extraction errors out.\n * @param err\n */\n static createTokenParsingError(caughtExtractionError: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.tokenParsingError.code,\n `${ClientAuthErrorMessage.tokenParsingError.desc} Failed with error: ${caughtExtractionError}`);\n }\n\n /**\n * Creates an error thrown when the id token string is null or empty.\n * @param invalidRawTokenString\n */\n static createTokenNullOrEmptyError(invalidRawTokenString: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.nullOrEmptyToken.code,\n `${ClientAuthErrorMessage.nullOrEmptyToken.desc} Raw Token Value: ${invalidRawTokenString}`);\n }\n\n /**\n * Creates an error thrown when the endpoint discovery doesn't complete correctly.\n */\n static createEndpointDiscoveryIncompleteError(errDetail: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.endpointResolutionError.code,\n `${ClientAuthErrorMessage.endpointResolutionError.desc} Detail: ${errDetail}`);\n }\n\n /**\n * Creates an error thrown when the fetch client throws\n */\n static createNetworkError(endpoint: string, errDetail: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.networkError.code,\n `${ClientAuthErrorMessage.networkError.desc} | Fetch client threw: ${errDetail} | Attempted to reach: ${endpoint.split(\"?\")[0]}`);\n }\n\n /**\n * Creates an error thrown when the openid-configuration endpoint cannot be reached or does not contain the required data\n */\n static createUnableToGetOpenidConfigError(errDetail: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.unableToGetOpenidConfigError.code,\n `${ClientAuthErrorMessage.unableToGetOpenidConfigError.desc} Attempted to retrieve endpoints from: ${errDetail}`);\n }\n\n /**\n * Creates an error thrown when the hash cannot be deserialized.\n * @param hashParamObj\n */\n static createHashNotDeserializedError(hashParamObj: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.hashNotDeserialized.code,\n `${ClientAuthErrorMessage.hashNotDeserialized.desc} Given Object: ${hashParamObj}`);\n }\n\n /**\n * Creates an error thrown when the state cannot be parsed.\n * @param invalidState\n */\n static createInvalidStateError(invalidState: string, errorString?: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.invalidStateError.code,\n `${ClientAuthErrorMessage.invalidStateError.desc} Invalid State: ${invalidState}, Root Err: ${errorString}`);\n }\n\n /**\n * Creates an error thrown when two states do not match.\n */\n static createStateMismatchError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.stateMismatchError.code,\n ClientAuthErrorMessage.stateMismatchError.desc);\n }\n\n /**\n * Creates an error thrown when the state is not present\n * @param missingState\n */\n static createStateNotFoundError(missingState: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.stateNotFoundError.code,\n `${ClientAuthErrorMessage.stateNotFoundError.desc}: ${missingState}`);\n }\n\n /**\n * Creates an error thrown when the nonce does not match.\n */\n static createNonceMismatchError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.nonceMismatchError.code,\n ClientAuthErrorMessage.nonceMismatchError.desc);\n }\n\n /**\n * Creates an error thrown when max_age was provided in the request, but auth_time is not in the token claims\n * @param missingNonce\n */\n static createAuthTimeNotFoundError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.authTimeNotFoundError.code,\n ClientAuthErrorMessage.authTimeNotFoundError.desc);\n }\n\n /**\n * Creates an error thrown when too much time has elapsed since the last end-user authentication\n */\n static createMaxAgeTranspiredError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.maxAgeTranspiredError.code,\n ClientAuthErrorMessage.maxAgeTranspiredError.desc);\n }\n\n /**\n * Creates an error thrown when the mnonce is not present\n * @param missingNonce\n */\n static createNonceNotFoundError(missingNonce: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.nonceNotFoundError.code,\n `${ClientAuthErrorMessage.nonceNotFoundError.desc}: ${missingNonce}`);\n }\n\n /**\n * Throws error when multiple tokens are in cache.\n */\n static createMultipleMatchingTokensInCacheError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingTokens.code,\n `${ClientAuthErrorMessage.multipleMatchingTokens.desc}.`);\n }\n\n /**\n * Throws error when multiple accounts are in cache for the given params\n */\n static createMultipleMatchingAccountsInCacheError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingAccounts.code,\n ClientAuthErrorMessage.multipleMatchingAccounts.desc);\n }\n\n /**\n * Throws error when multiple appMetada are in cache for the given clientId.\n */\n static createMultipleMatchingAppMetadataInCacheError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingAppMetadata.code,\n ClientAuthErrorMessage.multipleMatchingAppMetadata.desc);\n }\n\n /**\n * Throws error when no auth code or refresh token is given to ServerTokenRequestParameters.\n */\n static createTokenRequestCannotBeMadeError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.tokenRequestCannotBeMade.code, ClientAuthErrorMessage.tokenRequestCannotBeMade.desc);\n }\n\n /**\n * Throws error when attempting to append a null, undefined or empty scope to a set\n * @param givenScope\n */\n static createAppendEmptyScopeToSetError(givenScope: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.appendEmptyScopeError.code, `${ClientAuthErrorMessage.appendEmptyScopeError.desc} Given Scope: ${givenScope}`);\n }\n\n /**\n * Throws error when attempting to append a null, undefined or empty scope to a set\n * @param givenScope\n */\n static createRemoveEmptyScopeFromSetError(givenScope: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.removeEmptyScopeError.code, `${ClientAuthErrorMessage.removeEmptyScopeError.desc} Given Scope: ${givenScope}`);\n }\n\n /**\n * Throws error when attempting to append null or empty ScopeSet.\n * @param appendError\n */\n static createAppendScopeSetError(appendError: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.appendScopeSetError.code, `${ClientAuthErrorMessage.appendScopeSetError.desc} Detail Error: ${appendError}`);\n }\n\n /**\n * Throws error if ScopeSet is null or undefined.\n * @param givenScopeSet\n */\n static createEmptyInputScopeSetError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.emptyInputScopeSetError.code, `${ClientAuthErrorMessage.emptyInputScopeSetError.desc}`);\n }\n\n /**\n * Throws error if user sets CancellationToken.cancel = true during polling of token endpoint during device code flow\n */\n static createDeviceCodeCancelledError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodePollingCancelled.code, `${ClientAuthErrorMessage.DeviceCodePollingCancelled.desc}`);\n }\n\n /**\n * Throws error if device code is expired\n */\n static createDeviceCodeExpiredError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodeExpired.code, `${ClientAuthErrorMessage.DeviceCodeExpired.desc}`);\n }\n\n /**\n * Throws error if device code is expired\n */\n static createDeviceCodeUnknownError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodeUnknownError.code, `${ClientAuthErrorMessage.DeviceCodeUnknownError.desc}`);\n }\n\n /**\n * Throws error when silent requests are made without an account object\n */\n static createNoAccountInSilentRequestError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.NoAccountInSilentRequest.code, `${ClientAuthErrorMessage.NoAccountInSilentRequest.desc}`);\n }\n\n /**\n * Throws error when cache record is null or undefined.\n */\n static createNullOrUndefinedCacheRecord(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheRecord.code, ClientAuthErrorMessage.invalidCacheRecord.desc);\n }\n\n /**\n * Throws error when provided environment is not part of the CloudDiscoveryMetadata object\n */\n static createInvalidCacheEnvironmentError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheEnvironment.code, ClientAuthErrorMessage.invalidCacheEnvironment.desc);\n }\n\n /**\n * Throws error when account is not found in cache.\n */\n static createNoAccountFoundError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.noAccountFound.code, ClientAuthErrorMessage.noAccountFound.desc);\n }\n\n /**\n * Throws error if ICachePlugin not set on CacheManager.\n */\n static createCachePluginError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.CachePluginError.code, `${ClientAuthErrorMessage.CachePluginError.desc}`);\n }\n\n /**\n * Throws error if crypto object not found.\n * @param operationName\n */\n static createNoCryptoObjectError(operationName: string): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.noCryptoObj.code, `${ClientAuthErrorMessage.noCryptoObj.desc}${operationName}`);\n }\n\n /**\n * Throws error if cache type is invalid.\n */\n static createInvalidCacheTypeError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheType.code, `${ClientAuthErrorMessage.invalidCacheType.desc}`);\n }\n\n /**\n * Throws error if unexpected account type.\n */\n static createUnexpectedAccountTypeError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.unexpectedAccountType.code, `${ClientAuthErrorMessage.unexpectedAccountType.desc}`);\n }\n\n /**\n * Throws error if unexpected credential type.\n */\n static createUnexpectedCredentialTypeError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.unexpectedCredentialType.code, `${ClientAuthErrorMessage.unexpectedCredentialType.desc}`);\n }\n\n /**\n * Throws error if client assertion is not valid.\n */\n static createInvalidAssertionError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.invalidAssertion.code, `${ClientAuthErrorMessage.invalidAssertion.desc}`);\n }\n\n /**\n * Throws error if client assertion is not valid.\n */\n static createInvalidCredentialError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.invalidClientCredential.code, `${ClientAuthErrorMessage.invalidClientCredential.desc}`);\n }\n\n /**\n * Throws error if token cannot be retrieved from cache due to refresh being required.\n */\n static createRefreshRequiredError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.tokenRefreshRequired.code, ClientAuthErrorMessage.tokenRefreshRequired.desc);\n }\n\n /**\n * Throws error if the user defined timeout is reached.\n */\n static createUserTimeoutReachedError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.userTimeoutReached.code, ClientAuthErrorMessage.userTimeoutReached.desc);\n }\n\n /*\n * Throws error if token claims are not populated for a signed jwt generation\n */\n static createTokenClaimsRequiredError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.tokenClaimsRequired.code, ClientAuthErrorMessage.tokenClaimsRequired.desc);\n }\n\n /**\n * Throws error when the authorization code is missing from the server response\n */\n static createNoAuthCodeInServerResponseError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.noAuthorizationCodeFromServer.code, ClientAuthErrorMessage.noAuthorizationCodeFromServer.desc);\n }\n\n static createBindingKeyNotRemovedError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.bindingKeyNotRemovedError.code, ClientAuthErrorMessage.bindingKeyNotRemovedError.desc);\n }\n\n /**\n * Thrown when logout is attempted for an authority that doesnt have an end_session_endpoint\n */\n static createLogoutNotSupportedError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.logoutNotSupported.code, ClientAuthErrorMessage.logoutNotSupported.desc);\n }\n\n /**\n * Create an error when kid attribute is missing from a PoP token's cache record\n */\n static createKeyIdMissingError(): ClientAuthError {\n return new ClientAuthError(ClientAuthErrorMessage.keyIdMissing.code, ClientAuthErrorMessage.keyIdMissing.desc);\n }\n}\n","'use strict';\n\nmodule.exports = require('./components/dropdown/Dropdown');","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","'use strict';\n\nmodule.exports = require('./components/dialog/Dialog');","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { DecodedAuthToken } from \"../account/DecodedAuthToken\";\nimport { ClientAuthError } from \"../error/ClientAuthError\";\n\n/**\n * @hidden\n */\nexport class StringUtils {\n\n /**\n * decode a JWT\n *\n * @param authToken\n */\n static decodeAuthToken(authToken: string): DecodedAuthToken {\n if (StringUtils.isEmpty(authToken)) {\n throw ClientAuthError.createTokenNullOrEmptyError(authToken);\n }\n const tokenPartsRegex = /^([^\\.\\s]*)\\.([^\\.\\s]+)\\.([^\\.\\s]*)$/;\n const matches = tokenPartsRegex.exec(authToken);\n if (!matches || matches.length < 4) {\n throw ClientAuthError.createTokenParsingError(`Given token is malformed: ${JSON.stringify(authToken)}`);\n }\n const crackedToken: DecodedAuthToken = {\n header: matches[1],\n JWSPayload: matches[2],\n JWSSig: matches[3]\n };\n return crackedToken;\n }\n\n /**\n * Check if a string is empty.\n *\n * @param str\n */\n static isEmpty(str?: string): boolean {\n return (typeof str === \"undefined\" || !str || 0 === str.length);\n }\n\n /**\n * Check if stringified object is empty\n * @param strObj \n */\n static isEmptyObj(strObj?: string): boolean {\n if (strObj && !StringUtils.isEmpty(strObj)) {\n try {\n const obj = JSON.parse(strObj);\n return Object.keys(obj).length === 0;\n } catch (e) {}\n }\n return true;\n }\n\n static startsWith(str: string, search: string): boolean {\n return str.indexOf(search) === 0;\n }\n\n static endsWith(str: string, search: string): boolean {\n return (str.length >= search.length) && (str.lastIndexOf(search) === (str.length - search.length));\n }\n\n /**\n * Parses string into an object.\n *\n * @param query\n */\n static queryStringToObject<T>(query: string): T {\n const obj: {} = {};\n const params = query.split(\"&\");\n const decode = (s: string) => decodeURIComponent(s.replace(/\\+/g, \" \"));\n params.forEach((pair) => {\n if (pair.trim()) {\n const [key, value] = pair.split(/=(.+)/g, 2); // Split on the first occurence of the '=' character\n if (key && value) {\n obj[decode(key)] = decode(value);\n }\n }\n });\n return obj as T;\n }\n\n /**\n * Trims entries in an array.\n *\n * @param arr\n */\n static trimArrayEntries(arr: Array<string>): Array<string> {\n return arr.map(entry => entry.trim());\n }\n\n /**\n * Removes empty strings from array\n * @param arr\n */\n static removeEmptyStringsFromArray(arr: Array<string>): Array<string> {\n return arr.filter(entry => {\n return !StringUtils.isEmpty(entry);\n });\n }\n\n /**\n * Attempts to parse a string into JSON\n * @param str\n */\n static jsonParseHelper<T>(str: string): T | null {\n try {\n return JSON.parse(str) as T;\n } catch (e) {\n return null;\n }\n }\n\n /**\n * Tests if a given string matches a given pattern, with support for wildcards and queries.\n * @param pattern Wildcard pattern to string match. Supports \"*\" for wildcards and \"?\" for queries\n * @param input String to match against\n */\n static matchPattern(pattern: string, input: string): boolean {\n /**\n * Wildcard support: https://stackoverflow.com/a/3117248/4888559\n * Queries: replaces \"?\" in string with escaped \"\\?\" for regex test\n */\n const regex: RegExp = new RegExp(pattern.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\*/g, \"[^ ]*\").replace(/\\?/g, \"\\\\\\?\")); // eslint-disable-line security/detect-non-literal-regexp\n\n return regex.test(input);\n }\n}\n","import defineProperty from \"./defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Button = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _ClassNames = require(\"../utils/ClassNames\");\n\nvar _Tooltip = require(\"../tooltip/Tooltip\");\n\nvar _ObjectUtils = _interopRequireDefault(require(\"../utils/ObjectUtils\"));\n\nvar _Ripple = require(\"../ripple/Ripple\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar Button = /*#__PURE__*/function (_Component) {\n _inherits(Button, _Component);\n\n var _super = _createSuper(Button);\n\n function Button() {\n _classCallCheck(this, Button);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Button, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.tooltip !== this.props.tooltip) {\n if (this.tooltip) this.tooltip.updateContent(this.props.tooltip);else this.renderTooltip();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = (0, _Tooltip.tip)({\n target: this.element,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"renderIcon\",\n value: function renderIcon() {\n if (this.props.icon) {\n var className = (0, _ClassNames.classNames)(this.props.icon, 'p-c', {\n 'p-button-icon-left': this.props.iconPos === 'left' && this.props.label,\n 'p-button-icon-right': this.props.iconPos === 'right' && this.props.label,\n 'p-button-icon-top': this.props.iconPos === 'top' && this.props.label,\n 'p-button-icon-bottom': this.props.iconPos === 'bottom' && this.props.label\n });\n return /*#__PURE__*/_react.default.createElement(\"span\", {\n className: className\n });\n }\n\n return null;\n }\n }, {\n key: \"renderLabel\",\n value: function renderLabel() {\n if (!this.props.label) {\n return /*#__PURE__*/_react.default.createElement(\"span\", {\n className: \"p-button-label p-c\",\n dangerouslySetInnerHTML: {\n __html: \" \"\n }\n });\n }\n\n return /*#__PURE__*/_react.default.createElement(\"span\", {\n className: \"p-button-label p-c\"\n }, this.props.label);\n }\n }, {\n key: \"renderBadge\",\n value: function renderBadge() {\n if (this.props.badge) {\n var badgeClassName = (0, _ClassNames.classNames)('p-badge', this.props.badgeClassName);\n return /*#__PURE__*/_react.default.createElement(\"span\", {\n className: badgeClassName\n }, this.props.badge);\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this = this;\n\n var className = (0, _ClassNames.classNames)('p-button p-component', this.props.className, {\n 'p-button-icon-only': this.props.icon && !this.props.label,\n 'p-button-vertical': (this.props.iconPos === 'top' || this.props.iconPos === 'bottom') && this.label,\n 'p-disabled': this.props.disabled\n });\n var icon = this.renderIcon();\n var label = this.renderLabel();\n var badge = this.renderBadge();\n\n var buttonProps = _ObjectUtils.default.findDiffKeys(this.props, Button.defaultProps);\n\n return /*#__PURE__*/_react.default.createElement(\"button\", _extends({\n ref: function ref(el) {\n return _this.element = el;\n }\n }, buttonProps, {\n className: className\n }), icon, label, this.props.children, badge, /*#__PURE__*/_react.default.createElement(_Ripple.Ripple, null));\n }\n }]);\n\n return Button;\n}(_react.Component);\n\nexports.Button = Button;\n\n_defineProperty(Button, \"defaultProps\", {\n label: null,\n icon: null,\n iconPos: 'left',\n badge: null,\n badgeClassName: null,\n tooltip: null,\n tooltipOptions: null\n});\n\n_defineProperty(Button, \"propTypes\", {\n label: _propTypes.default.string,\n icon: _propTypes.default.string,\n iconPos: _propTypes.default.string,\n badge: _propTypes.default.string,\n badgeClassName: _propTypes.default.string,\n tooltip: _propTypes.default.string,\n tooltipOptions: _propTypes.default.object\n});","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"PrismicReactjs\", [\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PrismicReactjs\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"PrismicReactjs\"] = factory(root[\"react\"]);\n})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_react__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./node_modules/object-assign/index.js\":\n/*!*********************************************!*\\\n !*** ./node_modules/object-assign/index.js ***!\n \\*********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n/* eslint-disable no-unused-vars */\n\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n\n return Object(val);\n}\n\nfunction shouldUseNative() {\n try {\n if (!Object.assign) {\n return false;\n } // Detect buggy property enumeration order in older V8 versions.\n // https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\n\n var test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\n test1[5] = 'de';\n\n if (Object.getOwnPropertyNames(test1)[0] === '5') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test2 = {};\n\n for (var i = 0; i < 10; i++) {\n test2['_' + String.fromCharCode(i)] = i;\n }\n\n var order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n return test2[n];\n });\n\n if (order2.join('') !== '0123456789') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test3 = {};\n 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n test3[letter] = letter;\n });\n\n if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {\n return false;\n }\n\n return true;\n } catch (err) {\n // We don't expect any of the above to throw, but better to be safe.\n return false;\n }\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n\n return to;\n};\n\n/***/ }),\n\n/***/ \"./node_modules/prismic-helpers/dist/prismic-helpers.min.js\":\n/*!******************************************************************!*\\\n !*** ./node_modules/prismic-helpers/dist/prismic-helpers.min.js ***!\n \\******************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n!function (e, t) {\n true ? module.exports = t() : undefined;\n}(\"undefined\" != typeof self ? self : this, function () {\n return function (e) {\n var t = {};\n\n function n(r) {\n if (t[r]) return t[r].exports;\n var o = t[r] = {\n i: r,\n l: !1,\n exports: {}\n };\n return e[r].call(o.exports, o, o.exports, n), o.l = !0, o.exports;\n }\n\n return n.m = e, n.c = t, n.d = function (e, t, r) {\n n.o(e, t) || Object.defineProperty(e, t, {\n enumerable: !0,\n get: r\n });\n }, n.r = function (e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }, n.t = function (e, t) {\n if (1 & t && (e = n(e)), 8 & t) return e;\n if (4 & t && \"object\" == typeof e && e && e.__esModule) return e;\n var r = Object.create(null);\n if (n.r(r), Object.defineProperty(r, \"default\", {\n enumerable: !0,\n value: e\n }), 2 & t && \"string\" != typeof e) for (var o in e) n.d(r, o, function (t) {\n return e[t];\n }.bind(null, o));\n return r;\n }, n.n = function (e) {\n var t = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return n.d(t, \"a\", t), t;\n }, n.o = function (e, t) {\n return Object.prototype.hasOwnProperty.call(e, t);\n }, n.p = \"\", n(n.s = 0);\n }([function (e, t, n) {\n e.exports = n(1);\n }, function (e, t, n) {\n var r = n(2),\n o = n(3);\n e.exports = {\n Link: r,\n Date: o\n };\n }, function (e, t, n) {\n e.exports = {\n url: function (e, t) {\n if (e && [e.link_type, e._linkType, e.linkType].some(function (e) {\n return e && [\"Document\", \"Link.Document\", \"Link.document\"].includes(e);\n }) && t && \"function\" == typeof t) {\n var n = t(e);\n if (n) return n;\n }\n\n return e && e.url ? e.url : \"\";\n }\n };\n }, function (e, t) {\n e.exports = function (e) {\n if (!e) return null;\n var t = 24 == e.length ? \"\".concat(e.substring(0, 22), \":\").concat(e.substring(22, 24)) : e;\n return new Date(t);\n };\n }]);\n});\n\n/***/ }),\n\n/***/ \"./node_modules/prismic-richtext/dist/prismic-richtext.min.js\":\n/*!********************************************************************!*\\\n !*** ./node_modules/prismic-richtext/dist/prismic-richtext.min.js ***!\n \\********************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n!function (e, t) {\n true ? module.exports = t() : undefined;\n}(\"undefined\" != typeof self ? self : this, function () {\n return function (e) {\n var t = {};\n\n function n(r) {\n if (t[r]) return t[r].exports;\n var o = t[r] = {\n i: r,\n l: !1,\n exports: {}\n };\n return e[r].call(o.exports, o, o.exports, n), o.l = !0, o.exports;\n }\n\n return n.m = e, n.c = t, n.d = function (e, t, r) {\n n.o(e, t) || Object.defineProperty(e, t, {\n enumerable: !0,\n get: r\n });\n }, n.r = function (e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }, n.t = function (e, t) {\n if (1 & t && (e = n(e)), 8 & t) return e;\n if (4 & t && \"object\" == typeof e && e && e.__esModule) return e;\n var r = Object.create(null);\n if (n.r(r), Object.defineProperty(r, \"default\", {\n enumerable: !0,\n value: e\n }), 2 & t && \"string\" != typeof e) for (var o in e) n.d(r, o, function (t) {\n return e[t];\n }.bind(null, o));\n return r;\n }, n.n = function (e) {\n var t = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return n.d(t, \"a\", t), t;\n }, n.o = function (e, t) {\n return Object.prototype.hasOwnProperty.call(e, t);\n }, n.p = \"\", n(n.s = 9);\n }([function (e, t, n) {\n var r = n(3);\n\n e.exports = function (e) {\n return function t(n) {\n return 0 === arguments.length || r(n) ? t : e.apply(this, arguments);\n };\n };\n }, function (e, t, n) {\n var r = n(0),\n o = n(3);\n\n e.exports = function (e) {\n return function t(n, i) {\n switch (arguments.length) {\n case 0:\n return t;\n\n case 1:\n return o(n) ? t : r(function (t) {\n return e(n, t);\n });\n\n default:\n return o(n) && o(i) ? t : o(n) ? r(function (t) {\n return e(t, i);\n }) : o(i) ? r(function (t) {\n return e(n, t);\n }) : e(n, i);\n }\n };\n };\n }, function (e, t, n) {\n \"use strict\";\n\n var r;\n\n function o(e, t, n) {\n return t in e ? Object.defineProperty(e, t, {\n value: n,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[t] = n, e;\n }\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.PRIORITIES = t.NODE_TYPES = void 0;\n var i = {\n heading1: \"heading1\",\n heading2: \"heading2\",\n heading3: \"heading3\",\n heading4: \"heading4\",\n heading5: \"heading5\",\n heading6: \"heading6\",\n paragraph: \"paragraph\",\n preformatted: \"preformatted\",\n strong: \"strong\",\n em: \"em\",\n listItem: \"list-item\",\n oListItem: \"o-list-item\",\n list: \"group-list-item\",\n oList: \"group-o-list-item\",\n image: \"image\",\n embed: \"embed\",\n hyperlink: \"hyperlink\",\n label: \"label\",\n span: \"span\"\n };\n t.NODE_TYPES = i;\n var u = (o(r = {}, i.heading1, 4), o(r, i.heading2, 4), o(r, i.heading3, 4), o(r, i.heading4, 4), o(r, i.heading5, 4), o(r, i.heading6, 4), o(r, i.paragraph, 3), o(r, i.preformatted, 5), o(r, i.strong, 6), o(r, i.em, 6), o(r, i.oList, 1), o(r, i.list, 1), o(r, i.listItem, 1), o(r, i.oListItem, 1), o(r, i.image, 1), o(r, i.embed, 1), o(r, i.hyperlink, 3), o(r, i.label, 4), o(r, i.span, 7), r);\n t.PRIORITIES = u;\n }, function (e, t) {\n e.exports = function (e) {\n return null != e && \"object\" == typeof e && !0 === e[\"@@functional/placeholder\"];\n };\n }, function (e, t, n) {\n \"use strict\";\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = void 0;\n var r = d(n(12)),\n o = d(n(15)),\n i = d(n(16)),\n u = d(n(17)),\n c = d(n(21)),\n a = d(n(7)),\n l = n(23),\n f = n(2),\n s = n(8);\n\n function d(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n\n function p(e, t) {\n for (var n = 0; n < t.length; n++) {\n var r = t[n];\n r.enumerable = r.enumerable || !1, r.configurable = !0, \"value\" in r && (r.writable = !0), Object.defineProperty(e, r.key, r);\n }\n }\n\n function h(e) {\n return function (e) {\n if (Array.isArray(e)) return e;\n }(e) || function (e) {\n if (Symbol.iterator in Object(e) || \"[object Arguments]\" === Object.prototype.toString.call(e)) return Array.from(e);\n }(e) || function () {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }();\n }\n\n function y(e, t) {\n var n = t.others.reduce(function (n, r) {\n var o = n.inner,\n i = n.outer,\n u = function (e, t, n) {\n return n.start < t.start ? {\n inner: s.SpanNode.slice(n, t.start, n.end, e),\n outer: s.SpanNode.slice(n, n.start, t.start, e)\n } : n.end > t.end ? {\n inner: s.SpanNode.slice(n, n.start, t.end, e),\n outer: s.SpanNode.slice(n, t.end, n.end, e)\n } : {\n inner: n\n };\n }(e, t.elected, r);\n\n return {\n inner: o.concat(u.inner),\n outer: u.outer ? i.concat(u.outer) : i\n };\n }, {\n inner: [],\n outer: []\n }),\n r = n.inner,\n o = n.outer;\n return [t.elected.setChildren(x(e, r, t.elected.boundaries()))].concat(b(e, o));\n }\n\n function v(e) {\n return function (e, t) {\n return t.reduce(function (t, n) {\n var r = (0, c.default)(t);\n\n if (r) {\n if (r.some(function (e) {\n return e.isParentOf(n);\n })) return (0, u.default)(t).concat([r.concat(n)]);\n var o = (0, c.default)(r);\n return o && e(o, n) ? (0, u.default)(t).concat([r.concat(n)]) : t.concat([[n]]);\n }\n\n return [[n]];\n }, []);\n }(function (e, t) {\n return e.end >= t.start;\n }, (0, i.default)([function (e, t) {\n return e.start - t.start;\n }, function (e, t) {\n return e.end - t.end;\n }], e));\n }\n\n function m(e) {\n if (0 === e.length) throw new Error(\"Unable to elect node on empty list\");\n var t = h(e.sort(function (e, t) {\n if (e.isParentOf(t)) return -1;\n if (t.isParentOf(e)) return 1;\n var n = f.PRIORITIES[e.type] - f.PRIORITIES[t.type];\n return 0 === n ? e.text.length - t.text.length : n;\n }));\n return {\n elected: t[0],\n others: t.slice(1)\n };\n }\n\n function x(e, t, n) {\n if (t.length > 0) return function (e, t, n) {\n return t.reduce(function (r, o, i) {\n var u = [],\n c = 0 === i && o.start > n.lower,\n a = i === t.length - 1 && n.upper > o.end;\n\n if (c) {\n var l = new s.TextNode(n.lower, o.start, e.slice(n.lower, o.start));\n u = u.concat(l);\n } else {\n var f = t[i - 1];\n\n if (f && o.start > f.end) {\n var d = e.slice(f.end, o.start),\n p = new s.TextNode(f.end, o.start, d);\n u = u.concat(p);\n }\n }\n\n if (u = u.concat(o), a) {\n var h = new s.TextNode(o.end, n.upper, e.slice(o.end, n.upper));\n u = u.concat(h);\n }\n\n return r.concat(u);\n }, []);\n }(e, b(e, t), n);\n var r = e.slice(n.lower, n.upper);\n return [new s.TextNode(n.lower, n.upper, r)];\n }\n\n function b(e, t) {\n var n = v((0, o.default)(function (e) {\n return e.start;\n }, t)).map(m),\n i = (0, r.default)(n.map(function (t) {\n return y(e, t);\n }));\n return (0, o.default)(function (e) {\n return e.start;\n }, i);\n }\n\n var g = function () {\n function e() {\n !function (e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e);\n }\n\n var t, n, r;\n return t = e, r = [{\n key: \"fromRichText\",\n value: function (e) {\n return {\n key: (0, a.default)(),\n children: e.reduce(function (e, t, n) {\n if (l.RichTextBlock.isEmbedBlock(t.type) || l.RichTextBlock.isImageBlock(t.type)) return e.concat(new s.BlockNode(t.type, t));\n\n var r = function (e) {\n var t = e.spans.map(function (t) {\n var n = e.text.slice(t.start, t.end);\n return new s.SpanNode(t.start, t.end, t.type, n, [], t);\n }),\n n = {\n lower: 0,\n upper: e.text.length\n };\n return x(e.text, t, n);\n }(t),\n o = e[e.length - 1];\n\n if (l.RichTextBlock.isListItem(t.type) && o && o instanceof s.ListBlockNode) {\n var i = new s.ListItemBlockNode(t, r),\n c = o.addChild(i);\n return (0, u.default)(e).concat(c);\n }\n\n if (l.RichTextBlock.isOrderedListItem(t.type) && o && o instanceof s.OrderedListBlockNode) {\n var a = new s.OrderedListItemBlockNode(t, r),\n f = o.addChild(a);\n return (0, u.default)(e).concat(f);\n }\n\n if (l.RichTextBlock.isListItem(t.type)) {\n var d = new s.ListItemBlockNode(t, r),\n p = new s.ListBlockNode(l.RichTextBlock.emptyList(), [d]);\n return e.concat(p);\n }\n\n if (l.RichTextBlock.isOrderedListItem(t.type)) {\n var h = new s.OrderedListItemBlockNode(t, r),\n y = new s.OrderedListBlockNode(l.RichTextBlock.emptyOrderedList(), [h]);\n return e.concat(y);\n }\n\n return e.concat(new s.BlockNode(t.type, t, r));\n }, [])\n };\n }\n }], (n = null) && p(t.prototype, n), r && p(t, r), e;\n }();\n\n t.default = g;\n }, function (e, t) {\n e.exports = Array.isArray || function (e) {\n return null != e && e.length >= 0 && \"[object Array]\" === Object.prototype.toString.call(e);\n };\n }, function (e, t) {\n e.exports = function (e) {\n return \"[object String]\" === Object.prototype.toString.call(e);\n };\n }, function (e, t, n) {\n \"use strict\";\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = function () {\n var e = new Date().getTime();\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function (t) {\n var n = (e + 16 * Math.random()) % 16 | 0;\n return e = Math.floor(e / 16), (\"x\" == t ? n : 3 & n | 8).toString(16);\n });\n };\n }, function (e, t, n) {\n \"use strict\";\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.ListBlockNode = t.OrderedListBlockNode = t.OrderedListItemBlockNode = t.ListItemBlockNode = t.BlockNode = t.TextNode = t.SpanNode = t.Node = void 0;\n var r,\n o = (r = n(7)) && r.__esModule ? r : {\n default: r\n },\n i = n(2);\n\n function u(e) {\n return (u = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (e) {\n return typeof e;\n } : function (e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n })(e);\n }\n\n function c(e, t) {\n for (var n = 0; n < t.length; n++) {\n var r = t[n];\n r.enumerable = r.enumerable || !1, r.configurable = !0, \"value\" in r && (r.writable = !0), Object.defineProperty(e, r.key, r);\n }\n }\n\n function a(e, t, n) {\n return t && c(e.prototype, t), n && c(e, n), e;\n }\n\n function l(e, t) {\n return !t || \"object\" !== u(t) && \"function\" != typeof t ? function (e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n }(e) : t;\n }\n\n function f(e) {\n return (f = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {\n return e.__proto__ || Object.getPrototypeOf(e);\n })(e);\n }\n\n function s(e, t) {\n if (\"function\" != typeof t && null !== t) throw new TypeError(\"Super expression must either be null or a function\");\n e.prototype = Object.create(t && t.prototype, {\n constructor: {\n value: e,\n writable: !0,\n configurable: !0\n }\n }), t && d(e, t);\n }\n\n function d(e, t) {\n return (d = Object.setPrototypeOf || function (e, t) {\n return e.__proto__ = t, e;\n })(e, t);\n }\n\n function p(e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n }\n\n var h = function e(t, n, r) {\n p(this, e), this.key = (0, o.default)(), this.type = t, this.element = n, this.children = r;\n };\n\n t.Node = h;\n\n var y = function (e) {\n function t(e, n, r, o, i, u) {\n var c;\n return p(this, t), (c = l(this, f(t).call(this, r, u, i))).start = e, c.end = n, c.text = o, c.children = i, c;\n }\n\n return s(t, h), a(t, [{\n key: \"boundaries\",\n value: function () {\n return {\n lower: this.start,\n upper: this.end\n };\n }\n }, {\n key: \"isParentOf\",\n value: function (e) {\n return this.start <= e.start && this.end >= e.end;\n }\n }, {\n key: \"setChildren\",\n value: function (e) {\n return new t(this.start, this.end, this.type, this.text, e, this.element);\n }\n }], [{\n key: \"slice\",\n value: function (e, n, r, o) {\n return new t(n, r, e.type, o.slice(n, r), e.children, e.element);\n }\n }]), t;\n }();\n\n t.SpanNode = y;\n\n var v = function (e) {\n function t(e, n, r) {\n p(this, t);\n var o = {\n type: i.NODE_TYPES.span,\n start: e,\n end: n,\n text: r\n };\n return l(this, f(t).call(this, e, n, i.NODE_TYPES.span, r, [], o));\n }\n\n return s(t, y), t;\n }();\n\n t.TextNode = v;\n\n var m = function (e) {\n function t(e, n) {\n var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : [];\n return p(this, t), l(this, f(t).call(this, e, n, r));\n }\n\n return s(t, h), t;\n }();\n\n t.BlockNode = m;\n\n var x = function (e) {\n function t(e, n) {\n return p(this, t), l(this, f(t).call(this, i.NODE_TYPES.listItem, e, n));\n }\n\n return s(t, m), t;\n }();\n\n t.ListItemBlockNode = x;\n\n var b = function (e) {\n function t(e, n) {\n return p(this, t), l(this, f(t).call(this, i.NODE_TYPES.oListItem, e, n));\n }\n\n return s(t, m), t;\n }();\n\n t.OrderedListItemBlockNode = b;\n\n var g = function (e) {\n function t(e, n) {\n return p(this, t), l(this, f(t).call(this, i.NODE_TYPES.oList, e, n));\n }\n\n return s(t, m), a(t, [{\n key: \"addChild\",\n value: function (e) {\n var n = this.children.concat(e);\n return new t(this.element, n);\n }\n }]), t;\n }();\n\n t.OrderedListBlockNode = g;\n\n var O = function (e) {\n function t(e, n) {\n return p(this, t), l(this, f(t).call(this, i.NODE_TYPES.list, e, n));\n }\n\n return s(t, m), a(t, [{\n key: \"addChild\",\n value: function (e) {\n var n = this.children.concat(e);\n return new t(this.element, n);\n }\n }]), t;\n }();\n\n t.ListBlockNode = O;\n }, function (e, t, n) {\n e.exports = n(10);\n }, function (e, t, n) {\n \"use strict\";\n\n var r = c(n(11)),\n o = c(n(4)),\n i = c(n(24)),\n u = n(2);\n\n function c(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n\n e.exports = {\n asText: r.default,\n asTree: o.default.fromRichText,\n serialize: i.default,\n Elements: u.NODE_TYPES\n };\n }, function (e, t, n) {\n \"use strict\";\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = void 0;\n\n var r = function (e, t) {\n var n = \"string\" == typeof t ? t : \" \";\n return e.map(function (e) {\n return e.text;\n }).join(n);\n };\n\n t.default = r;\n }, function (e, t, n) {\n var r = n(0)(n(13)(!0));\n e.exports = r;\n }, function (e, t, n) {\n var r = n(14);\n\n e.exports = function (e) {\n return function t(n) {\n for (var o, i, u, c = [], a = 0, l = n.length; a < l;) {\n if (r(n[a])) for (u = 0, i = (o = e ? t(n[a]) : n[a]).length; u < i;) c[c.length] = o[u], u += 1;else c[c.length] = n[a];\n a += 1;\n }\n\n return c;\n };\n };\n }, function (e, t, n) {\n var r = n(0),\n o = n(5),\n i = n(6),\n u = r(function (e) {\n return !!o(e) || !!e && \"object\" == typeof e && !i(e) && (1 === e.nodeType ? !!e.length : 0 === e.length || e.length > 0 && e.hasOwnProperty(0) && e.hasOwnProperty(e.length - 1));\n });\n e.exports = u;\n }, function (e, t, n) {\n var r = n(1)(function (e, t) {\n return Array.prototype.slice.call(t, 0).sort(function (t, n) {\n var r = e(t),\n o = e(n);\n return r < o ? -1 : r > o ? 1 : 0;\n });\n });\n e.exports = r;\n }, function (e, t, n) {\n var r = n(1)(function (e, t) {\n return Array.prototype.slice.call(t, 0).sort(function (t, n) {\n for (var r = 0, o = 0; 0 === r && o < e.length;) r = e[o](t, n), o += 1;\n\n return r;\n });\n });\n e.exports = r;\n }, function (e, t, n) {\n var r = n(18)(0, -1);\n e.exports = r;\n }, function (e, t, n) {\n var r = n(19),\n o = n(20)(r(\"slice\", function (e, t, n) {\n return Array.prototype.slice.call(n, e, t);\n }));\n e.exports = o;\n }, function (e, t, n) {\n var r = n(5);\n\n e.exports = function (e, t) {\n return function () {\n var n = arguments.length;\n if (0 === n) return t();\n var o = arguments[n - 1];\n return r(o) || \"function\" != typeof o[e] ? t.apply(this, arguments) : o[e].apply(o, Array.prototype.slice.call(arguments, 0, n - 1));\n };\n };\n }, function (e, t, n) {\n var r = n(0),\n o = n(1),\n i = n(3);\n\n e.exports = function (e) {\n return function t(n, u, c) {\n switch (arguments.length) {\n case 0:\n return t;\n\n case 1:\n return i(n) ? t : o(function (t, r) {\n return e(n, t, r);\n });\n\n case 2:\n return i(n) && i(u) ? t : i(n) ? o(function (t, n) {\n return e(t, u, n);\n }) : i(u) ? o(function (t, r) {\n return e(n, t, r);\n }) : r(function (t) {\n return e(n, u, t);\n });\n\n default:\n return i(n) && i(u) && i(c) ? t : i(n) && i(u) ? o(function (t, n) {\n return e(t, n, c);\n }) : i(n) && i(c) ? o(function (t, n) {\n return e(t, u, n);\n }) : i(u) && i(c) ? o(function (t, r) {\n return e(n, t, r);\n }) : i(n) ? r(function (t) {\n return e(t, u, c);\n }) : i(u) ? r(function (t) {\n return e(n, t, c);\n }) : i(c) ? r(function (t) {\n return e(n, u, t);\n }) : e(n, u, c);\n }\n };\n };\n }, function (e, t, n) {\n var r = n(22)(-1);\n e.exports = r;\n }, function (e, t, n) {\n var r = n(1),\n o = n(6),\n i = r(function (e, t) {\n var n = e < 0 ? t.length + e : e;\n return o(t) ? t.charAt(n) : t[n];\n });\n e.exports = i;\n }, function (e, t, n) {\n \"use strict\";\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.RichTextBlock = void 0;\n var r = n(2);\n\n function o(e, t) {\n for (var n = 0; n < t.length; n++) {\n var r = t[n];\n r.enumerable = r.enumerable || !1, r.configurable = !0, \"value\" in r && (r.writable = !0), Object.defineProperty(e, r.key, r);\n }\n }\n\n var i = function () {\n function e(t, n, r) {\n !function (e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e), this.type = t, this.text = n, this.spans = r;\n }\n\n var t, n, i;\n return t = e, i = [{\n key: \"isEmbedBlock\",\n value: function (e) {\n return e === r.NODE_TYPES.embed;\n }\n }, {\n key: \"isImageBlock\",\n value: function (e) {\n return e === r.NODE_TYPES.image;\n }\n }, {\n key: \"isList\",\n value: function (e) {\n return e === r.NODE_TYPES.list;\n }\n }, {\n key: \"isOrderedList\",\n value: function (e) {\n return e === r.NODE_TYPES.oList;\n }\n }, {\n key: \"isListItem\",\n value: function (e) {\n return e === r.NODE_TYPES.listItem;\n }\n }, {\n key: \"isOrderedListItem\",\n value: function (e) {\n return e === r.NODE_TYPES.oListItem;\n }\n }, {\n key: \"emptyList\",\n value: function () {\n return {\n type: r.NODE_TYPES.list,\n spans: [],\n text: \"\"\n };\n }\n }, {\n key: \"emptyOrderedList\",\n value: function () {\n return {\n type: r.NODE_TYPES.oList,\n spans: [],\n text: \"\"\n };\n }\n }], (n = null) && o(t.prototype, n), i && o(t, i), e;\n }();\n\n t.RichTextBlock = i;\n }, function (e, t, n) {\n \"use strict\";\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = void 0;\n var r,\n o = (r = n(4)) && r.__esModule ? r : {\n default: r\n },\n i = n(8);\n\n var u = function (e, t, n) {\n return o.default.fromRichText(e).children.map(function (e, r) {\n return function (e, t, n, r) {\n return function e(n, o) {\n var u = n instanceof i.SpanNode ? n.text : null,\n c = n.children.reduce(function (t, n, r) {\n return t.concat([e(n, r)]);\n }, []),\n a = r && r(n.type, n.element, u, c, o);\n return a || t(n.type, n.element, u, c, o);\n }(e, n);\n }(e, t, r, n);\n });\n };\n\n t.default = u;\n }]);\n});\n\n/***/ }),\n\n/***/ \"./node_modules/prop-types/checkPropTypes.js\":\n/*!***************************************************!*\\\n !*** ./node_modules/prop-types/checkPropTypes.js ***!\n \\***************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\nvar printWarning = function () {};\n\nif (true) {\n var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ \"./node_modules/prop-types/lib/ReactPropTypesSecret.js\");\n\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function (text) {\n var message = 'Warning: ' + text;\n\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\n\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (true) {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n\n if (error && !(error instanceof Error)) {\n printWarning((componentName || 'React class') + ': type specification of ' + location + ' `' + typeSpecName + '` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).');\n }\n\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n var stack = getStack ? getStack() : '';\n printWarning('Failed ' + location + ' type: ' + error.message + (stack != null ? stack : ''));\n }\n }\n }\n }\n}\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\n\n\ncheckPropTypes.resetWarningCache = function () {\n if (true) {\n loggedTypeFailures = {};\n }\n};\n\nmodule.exports = checkPropTypes;\n\n/***/ }),\n\n/***/ \"./node_modules/prop-types/factoryWithTypeCheckers.js\":\n/*!************************************************************!*\\\n !*** ./node_modules/prop-types/factoryWithTypeCheckers.js ***!\n \\************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\nvar ReactIs = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\");\n\nvar assign = __webpack_require__(/*! object-assign */ \"./node_modules/object-assign/index.js\");\n\nvar ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ \"./node_modules/prop-types/lib/ReactPropTypesSecret.js\");\n\nvar checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ \"./node_modules/prop-types/checkPropTypes.js\");\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\n\nvar printWarning = function () {};\n\nif (true) {\n printWarning = function (text) {\n var message = 'Warning: ' + text;\n\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function (isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n\n var ANONYMOUS = '<<anonymous>>'; // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker\n };\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n\n /*eslint-disable no-self-compare*/\n\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n\n\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n } // Make `instanceof Error` still work for returned errors.\n\n\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (true) {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use `PropTypes.checkPropTypes()` to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n } else if ( true && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n\n if (!manualPropTypeCallCache[cacheKey] && // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3) {\n printWarning('You are manually calling a React.PropTypes validation ' + 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' + 'and will throw in the standalone `prop-types` package. ' + 'You may be seeing this warning due to a third-party PropTypes ' + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.');\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n\n var propValue = props[propName];\n\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n\n if (error instanceof Error) {\n return error;\n }\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (true) {\n if (arguments.length > 1) {\n printWarning('Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).');\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n\n if (type === 'symbol') {\n return String(value);\n }\n\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n\n var propValue = props[propName];\n var propType = getPropType(propValue);\n\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n\n if (error instanceof Error) {\n return error;\n }\n }\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : undefined;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n\n if (typeof checker !== 'function') {\n printWarning('Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.');\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n\n if (!checker) {\n continue;\n }\n\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n\n if (error) {\n return error;\n }\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n } // We need to check all keys in case some are required but missing from\n // props.\n\n\n var allKeys = assign({}, props[propName], shapeTypes);\n\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n\n if (!checker) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') + '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' '));\n }\n\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n\n if (error) {\n return error;\n }\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n\n case 'boolean':\n return !propValue;\n\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n } // falsy value can't be a Symbol\n\n\n if (!propValue) {\n return false;\n } // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n\n\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n } // Fallback for non-spec compliant Symbols which are polyfilled.\n\n\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n } // Equivalent of `typeof` but with special handling for array and regexp.\n\n\n function getPropType(propValue) {\n var propType = typeof propValue;\n\n if (Array.isArray(propValue)) {\n return 'array';\n }\n\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n\n return propType;\n } // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n\n\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n\n var propType = getPropType(propValue);\n\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n\n return propType;\n } // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n\n\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n\n default:\n return type;\n }\n } // Returns class name of the object, if any.\n\n\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n};\n\n/***/ }),\n\n/***/ \"./node_modules/prop-types/index.js\":\n/*!******************************************!*\\\n !*** ./node_modules/prop-types/index.js ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nif (true) {\n var ReactIs = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\"); // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n\n\n var throwOnDirectAccess = true;\n module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ \"./node_modules/prop-types/factoryWithTypeCheckers.js\")(ReactIs.isElement, throwOnDirectAccess);\n} else {}\n\n/***/ }),\n\n/***/ \"./node_modules/prop-types/lib/ReactPropTypesSecret.js\":\n/*!*************************************************************!*\\\n !*** ./node_modules/prop-types/lib/ReactPropTypesSecret.js ***!\n \\*************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\nmodule.exports = ReactPropTypesSecret;\n\n/***/ }),\n\n/***/ \"./node_modules/react-is/cjs/react-is.development.js\":\n/*!***********************************************************!*\\\n !*** ./node_modules/react-is/cjs/react-is.development.js ***!\n \\***********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/** @license React v16.9.0\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\nif (true) {\n (function () {\n 'use strict';\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n }); // The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n // nor polyfill, then a plain number is used for performance.\n\n var hasSymbol = typeof Symbol === 'function' && Symbol.for;\n var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\n var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\n var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\n var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\n var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\n var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\n var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n // (unstable) APIs that have been removed. Can we remove the symbols?\n\n var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\n var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\n var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\n var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\n var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\n var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\n var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\n var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\n\n function isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE);\n }\n /**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\n\n var lowPriorityWarning = function () {};\n\n {\n var printWarning = function (format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n\n if (typeof console !== 'undefined') {\n console.warn(message);\n }\n\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n }\n var lowPriorityWarning$1 = lowPriorityWarning;\n\n function typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n } // AsyncMode is deprecated along with isAsyncMode\n\n\n var AsyncMode = REACT_ASYNC_MODE_TYPE;\n var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\n var ContextConsumer = REACT_CONTEXT_TYPE;\n var ContextProvider = REACT_PROVIDER_TYPE;\n var Element = REACT_ELEMENT_TYPE;\n var ForwardRef = REACT_FORWARD_REF_TYPE;\n var Fragment = REACT_FRAGMENT_TYPE;\n var Lazy = REACT_LAZY_TYPE;\n var Memo = REACT_MEMO_TYPE;\n var Portal = REACT_PORTAL_TYPE;\n var Profiler = REACT_PROFILER_TYPE;\n var StrictMode = REACT_STRICT_MODE_TYPE;\n var Suspense = REACT_SUSPENSE_TYPE;\n var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\n function isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n }\n\n function isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n }\n\n function isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n }\n\n function isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n }\n\n function isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n\n function isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n }\n\n function isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n }\n\n function isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n }\n\n function isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n }\n\n function isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n }\n\n function isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n }\n\n function isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n }\n\n function isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n }\n\n exports.typeOf = typeOf;\n exports.AsyncMode = AsyncMode;\n exports.ConcurrentMode = ConcurrentMode;\n exports.ContextConsumer = ContextConsumer;\n exports.ContextProvider = ContextProvider;\n exports.Element = Element;\n exports.ForwardRef = ForwardRef;\n exports.Fragment = Fragment;\n exports.Lazy = Lazy;\n exports.Memo = Memo;\n exports.Portal = Portal;\n exports.Profiler = Profiler;\n exports.StrictMode = StrictMode;\n exports.Suspense = Suspense;\n exports.isValidElementType = isValidElementType;\n exports.isAsyncMode = isAsyncMode;\n exports.isConcurrentMode = isConcurrentMode;\n exports.isContextConsumer = isContextConsumer;\n exports.isContextProvider = isContextProvider;\n exports.isElement = isElement;\n exports.isForwardRef = isForwardRef;\n exports.isFragment = isFragment;\n exports.isLazy = isLazy;\n exports.isMemo = isMemo;\n exports.isPortal = isPortal;\n exports.isProfiler = isProfiler;\n exports.isStrictMode = isStrictMode;\n exports.isSuspense = isSuspense;\n })();\n}\n\n/***/ }),\n\n/***/ \"./node_modules/react-is/index.js\":\n/*!****************************************!*\\\n !*** ./node_modules/react-is/index.js ***!\n \\****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ \"./node_modules/react-is/cjs/react-is.development.js\");\n}\n\n/***/ }),\n\n/***/ \"./src/Component.js\":\n/*!**************************!*\\\n !*** ./src/Component.js ***!\n \\**************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var prismic_richtext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prismic-richtext */ \"./node_modules/prismic-richtext/dist/prismic-richtext.min.js\");\n/* harmony import */ var prismic_richtext__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prismic_richtext__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _richtext__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./richtext */ \"./src/richtext.js\");\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\n\n\nvar createHtmlSerializer = function createHtmlSerializer() {\n var bucket = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var serializers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var processors = serializers.reduce(function (acc, _ref) {\n var type = _ref.type,\n fn = _ref.fn;\n return Object.assign({}, acc, _defineProperty({}, type, fn));\n }, {});\n return function (type) {\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 processors[type] ? processors[type].apply(processors, [type].concat(args)) : null;\n };\n};\n\nvar RichText = function RichText(_ref2) {\n var Component = _ref2.Component,\n elements = _ref2.elements,\n htmlSerializer = _ref2.htmlSerializer,\n linkResolver = _ref2.linkResolver,\n render = _ref2.render,\n renderAsText = _ref2.renderAsText,\n serializeHyperlink = _ref2.serializeHyperlink,\n rest = _objectWithoutProperties(_ref2, [\"Component\", \"elements\", \"htmlSerializer\", \"linkResolver\", \"render\", \"renderAsText\", \"serializeHyperlink\"]);\n\n var maybeSerializer = htmlSerializer || serializeHyperlink && createHtmlSerializer({}, [{\n type: prismic_richtext__WEBPACK_IMPORTED_MODULE_2__[\"Elements\"].hyperlink,\n fn: serializeHyperlink\n }]);\n return render ? Object(_richtext__WEBPACK_IMPORTED_MODULE_3__[\"renderRichText\"])(render, linkResolver, maybeSerializer, Component, elements, rest) : null;\n};\n\nRichText.propTypes = {\n Component: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"elementType\"],\n linkResolver: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n htmlSerializer: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n elements: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"object\"],\n serializeHyperlink: function serializeHyperlink(props, _, componentName) {\n if (props.serializeHyperlink && props.htmlSerializer) {\n return new Error(\"You cannot specify both 'htmlSerializer' and 'serializeHyperlink'. The latter will be ignored by '\".concat(componentName, \"'.\"));\n }\n },\n render: function render(props, _, componentName) {\n if (!props.render) {\n return new Error(\"Prop 'render' was not specified in '\".concat(componentName, \"'.\"));\n }\n }\n};\nRichText.asText = _richtext__WEBPACK_IMPORTED_MODULE_3__[\"asText\"];\nRichText.render = _richtext__WEBPACK_IMPORTED_MODULE_3__[\"renderRichText\"];\nRichText.displayName = 'RichText';\n/* harmony default export */ __webpack_exports__[\"default\"] = (RichText);\n\n/***/ }),\n\n/***/ \"./src/embeds.js\":\n/*!***********************!*\\\n !*** ./src/embeds.js ***!\n \\***********************/\n/*! exports provided: createScript, embeds */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createScript\", function() { return createScript; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"embeds\", function() { return embeds; });\nfunction createScript(_ref) {\n var property = _ref.property,\n src = _ref.src,\n id = _ref.id;\n\n if (!window) {\n return;\n }\n\n (function (src, id) {\n var js,\n fjs = document.getElementsByTagName('script')[0],\n t = window[property] || {};\n\n if (document.getElementById(id)) {\n return t;\n }\n\n js = document.createElement('script');\n js.id = id;\n js.src = src;\n fjs.parentNode.insertBefore(js, fjs);\n t._e = [];\n\n t.ready = function (f) {\n t._e.push(f);\n };\n\n return t;\n })(src, id);\n}\nvar embeds = {\n Twitter: {\n property: 'twttr',\n src: 'https://platform.twitter.com/widgets.js',\n id: 'twitter-wjs',\n load: function load() {\n if (window && window.twttr && window.twttr.widgets) {\n window.twttr.widgets.load();\n }\n }\n },\n Facebook: {\n property: 'FB',\n src: 'https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v3.3',\n id: 'fb-wjs',\n load: function load(ref) {\n if (window && window.FB) {\n window.FB.XFBML.parse(ref);\n }\n }\n },\n Instagram: {\n property: 'instgrm',\n src: 'https://www.instagram.com/embed.js',\n id: 'insta-wjs',\n load: function load() {\n if (window && window.instgrm) {\n window.instgrm.Embeds.process();\n }\n }\n }\n};\n\n/***/ }),\n\n/***/ \"./src/index.js\":\n/*!**********************!*\\\n !*** ./src/index.js ***!\n \\**********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar PrismicHelpers = __webpack_require__(/*! prismic-helpers */ \"./node_modules/prismic-helpers/dist/prismic-helpers.min.js\");\n\nvar PrismicRichText = __webpack_require__(/*! prismic-richtext */ \"./node_modules/prismic-richtext/dist/prismic-richtext.min.js\");\n\nvar Component = __webpack_require__(/*! ./Component */ \"./src/Component.js\");\n\nmodule.exports = {\n Date: PrismicHelpers.Date,\n Elements: PrismicRichText.Elements,\n Link: PrismicHelpers.Link,\n RichText: Component[\"default\"]\n};\n\n/***/ }),\n\n/***/ \"./src/richtext.js\":\n/*!*************************!*\\\n !*** ./src/richtext.js ***!\n \\*************************/\n/*! exports provided: asText, renderRichText */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asText\", function() { return asText; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"renderRichText\", function() { return renderRichText; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prismic_richtext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prismic-richtext */ \"./node_modules/prismic-richtext/dist/prismic-richtext.min.js\");\n/* harmony import */ var prismic_richtext__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prismic_richtext__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var prismic_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prismic-helpers */ \"./node_modules/prismic-helpers/dist/prismic-helpers.min.js\");\n/* harmony import */ var prismic_helpers__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prismic_helpers__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _embeds__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./embeds */ \"./src/embeds.js\");\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\n\nvar createScript = typeof window !== \"undefined\" ? __webpack_require__(/*! ./embeds */ \"./src/embeds.js\").createScript : function () {};\n\nfunction serialize(linkResolver, elements, type, element, content, children, index) {\n if (elements[type]) {\n return serializeElement(elements[type], type, element, content, children, index);\n }\n\n switch (type) {\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].heading1:\n return serializeStandardTag('h1', element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].heading2:\n return serializeStandardTag('h2', element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].heading3:\n return serializeStandardTag('h3', element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].heading4:\n return serializeStandardTag('h4', element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].heading5:\n return serializeStandardTag('h5', element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].heading6:\n return serializeStandardTag('h6', element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].paragraph:\n return serializeStandardTag('p', element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].preformatted:\n return serializeStandardTag('pre', element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].strong:\n return serializeStandardTag('strong', element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].em:\n return serializeStandardTag('em', element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].listItem:\n return serializeStandardTag('li', element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].oListItem:\n return serializeStandardTag('li', element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].list:\n return serializeStandardTag('ul', element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].oList:\n return serializeStandardTag('ol', element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].image:\n return serializeImage(linkResolver, element, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].embed:\n return serializeEmbed(element, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].hyperlink:\n return serializeHyperlink(linkResolver, element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].label:\n return serializeLabel(element, children, index);\n\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].span:\n return serializeSpan(content);\n\n default:\n return null;\n }\n}\n\nfunction propsWithUniqueKey() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var key = arguments.length > 1 ? arguments[1] : undefined;\n return Object.assign(props, {\n key: key\n });\n}\n\nfunction serializeElement(Element, type, props, content, children, index) {\n return Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(Element, _objectSpread({\n key: \"element-\".concat(type, \"-\").concat(index + 1)\n }, props, {\n children: children && children.length ? children : undefined\n }, type === 'image' ? {\n src: props.url,\n url: undefined\n } : null));\n}\n\nfunction serializeStandardTag(tag, element, children, key) {\n var props = element.label ? Object.assign({}, {\n className: element.label\n }) : {};\n return Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(tag, propsWithUniqueKey(props, key), children);\n}\n\nfunction serializeHyperlink(linkResolver, element, children, key) {\n var targetAttr = element.data.target ? {\n target: element.data.target\n } : {};\n var relAttr = element.data.target ? {\n rel: 'noopener'\n } : {};\n var props = Object.assign({\n href: prismic_helpers__WEBPACK_IMPORTED_MODULE_2__[\"Link\"].url(element.data, linkResolver)\n }, targetAttr, relAttr);\n return Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])('a', propsWithUniqueKey(props, key), children);\n}\n\nfunction serializeLabel(element, children, key) {\n var props = element.data ? Object.assign({}, {\n className: element.data.label\n }) : {};\n return Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])('span', propsWithUniqueKey(props, key), children);\n}\n\nfunction serializeSpan(content) {\n if (content) {\n return content.split(\"\\n\").reduce(function (acc, p) {\n if (acc.length === 0) {\n return [p];\n } else {\n var brIndex = (acc.length + 1) / 2 - 1;\n var br = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])('br', propsWithUniqueKey({}, brIndex));\n return acc.concat([br, p]);\n }\n }, []);\n } else {\n return null;\n }\n}\n\nfunction serializeImage(linkResolver, element, key) {\n var linkUrl = element.linkTo ? prismic_helpers__WEBPACK_IMPORTED_MODULE_2__[\"Link\"].url(element.linkTo, linkResolver) : null;\n var linkTarget = element.linkTo && element.linkTo.target ? {\n target: element.linkTo.target\n } : {};\n var relAttr = linkTarget.target ? {\n rel: 'noopener'\n } : {};\n var img = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])('img', {\n src: element.url,\n alt: element.alt || ''\n });\n return Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])('p', propsWithUniqueKey({\n className: [element.label || '', 'block-img'].join(' ')\n }, key), linkUrl ? Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])('a', Object.assign({\n href: linkUrl\n }, linkTarget, relAttr), img) : img);\n}\n\nfunction serializeEmbed(element, key) {\n if (_embeds__WEBPACK_IMPORTED_MODULE_3__[\"embeds\"][element.oembed.provider_name]) {\n createScript(_embeds__WEBPACK_IMPORTED_MODULE_3__[\"embeds\"][element.oembed.provider_name]);\n }\n\n var className = \"embed embed-\".concat(element.oembed.provider_name.toLowerCase());\n var props = Object.assign({\n \"data-oembed\": element.oembed.embed_url,\n \"data-oembed-type\": element.oembed.type,\n \"data-oembed-provider\": element.oembed.provider_name,\n ref: function ref(_ref) {\n if (_embeds__WEBPACK_IMPORTED_MODULE_3__[\"embeds\"][element.oembed.provider_name]) {\n _embeds__WEBPACK_IMPORTED_MODULE_3__[\"embeds\"][element.oembed.provider_name].load(_ref);\n }\n }\n }, element.label ? {\n className: \"\".concat(className, \" \").concat(element.label)\n } : {\n className: className\n });\n var embedHtml = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])('div', {\n dangerouslySetInnerHTML: {\n __html: element.oembed.html\n }\n });\n return Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])('div', propsWithUniqueKey(props, key), embedHtml);\n}\n\nvar asText = function asText(structuredText) {\n if (Object.prototype.toString.call(structuredText) !== '[object Array]') {\n console.warn(\"Rich text argument should be an Array. Received \".concat(_typeof(structuredText)));\n return null;\n }\n\n return prismic_richtext__WEBPACK_IMPORTED_MODULE_1___default.a.asText(structuredText);\n};\nvar renderRichText = function renderRichText(richText, linkResolver, htmlSerializer) {\n var Component = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : react__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"];\n var elements = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n var args = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n\n if (Object.prototype.toString.call(richText) !== '[object Array]') {\n console.warn(\"Rich text argument should be an Array. Received \".concat(_typeof(richText)));\n return null;\n }\n\n var serializedChildren = prismic_richtext__WEBPACK_IMPORTED_MODULE_1___default.a.serialize(richText, serialize.bind(null, linkResolver, elements), htmlSerializer);\n return Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(Component, args, serializedChildren);\n};\n\n/***/ }),\n\n/***/ 0:\n/*!****************************!*\\\n !*** multi ./src/index.js ***!\n \\****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! D:\\Libraries\\Desktop\\prismic\\sdk\\reactjs/src/index.js */\"./src/index.js\");\n\n\n/***/ }),\n\n/***/ \"react\":\n/*!************************!*\\\n !*** external \"react\" ***!\n \\************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_react__;\n\n/***/ })\n\n/******/ });\n});","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport enum EventType {\n INITIALIZE_START = \"msal:initializeStart\",\n INITIALIZE_END = \"msal:initializeEnd\",\n ACCOUNT_ADDED = \"msal:accountAdded\",\n ACCOUNT_REMOVED = \"msal:accountRemoved\",\n LOGIN_START = \"msal:loginStart\",\n LOGIN_SUCCESS = \"msal:loginSuccess\",\n LOGIN_FAILURE = \"msal:loginFailure\",\n ACQUIRE_TOKEN_START = \"msal:acquireTokenStart\",\n ACQUIRE_TOKEN_SUCCESS = \"msal:acquireTokenSuccess\",\n ACQUIRE_TOKEN_FAILURE = \"msal:acquireTokenFailure\",\n ACQUIRE_TOKEN_NETWORK_START = \"msal:acquireTokenFromNetworkStart\",\n SSO_SILENT_START = \"msal:ssoSilentStart\",\n SSO_SILENT_SUCCESS = \"msal:ssoSilentSuccess\",\n SSO_SILENT_FAILURE = \"msal:ssoSilentFailure\",\n ACQUIRE_TOKEN_BY_CODE_START = \"msal:acquireTokenByCodeStart\",\n ACQUIRE_TOKEN_BY_CODE_SUCCESS = \"msal:acquireTokenByCodeSuccess\",\n ACQUIRE_TOKEN_BY_CODE_FAILURE = \"msal:acquireTokenByCodeFailure\",\n HANDLE_REDIRECT_START = \"msal:handleRedirectStart\",\n HANDLE_REDIRECT_END = \"msal:handleRedirectEnd\",\n POPUP_OPENED = \"msal:popupOpened\",\n LOGOUT_START = \"msal:logoutStart\",\n LOGOUT_SUCCESS = \"msal:logoutSuccess\",\n LOGOUT_FAILURE = \"msal:logoutFailure\",\n LOGOUT_END = \"msal:logoutEnd\"\n}\n","'use strict';\n\nmodule.exports = require('./components/column/Column');","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n","'use strict';\n\nmodule.exports = require('./components/toast/Toast');\n","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar identity = function identity(i) {\n return i;\n};\n\nexport var PLACE_HOLDER = {\n '@@functional/placeholder': true\n};\n\nvar isPlaceHolder = function isPlaceHolder(val) {\n return val === PLACE_HOLDER;\n};\n\nvar curry0 = function curry0(fn) {\n return function _curried() {\n if (arguments.length === 0 || arguments.length === 1 && isPlaceHolder(arguments.length <= 0 ? undefined : arguments[0])) {\n return _curried;\n }\n\n return fn.apply(void 0, arguments);\n };\n};\n\nvar curryN = function curryN(n, fn) {\n if (n === 1) {\n return fn;\n }\n\n return curry0(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var argsLength = args.filter(function (arg) {\n return arg !== PLACE_HOLDER;\n }).length;\n\n if (argsLength >= n) {\n return fn.apply(void 0, args);\n }\n\n return curryN(n - argsLength, curry0(function () {\n for (var _len2 = arguments.length, restArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n restArgs[_key2] = arguments[_key2];\n }\n\n var newArgs = args.map(function (arg) {\n return isPlaceHolder(arg) ? restArgs.shift() : arg;\n });\n return fn.apply(void 0, _toConsumableArray(newArgs).concat(restArgs));\n }));\n });\n};\n\nexport var curry = function curry(fn) {\n return curryN(fn.length, fn);\n};\nexport var range = function range(begin, end) {\n var arr = [];\n\n for (var i = begin; i < end; ++i) {\n arr[i - begin] = i;\n }\n\n return arr;\n};\nexport var map = curry(function (fn, arr) {\n if (Array.isArray(arr)) {\n return arr.map(fn);\n }\n\n return Object.keys(arr).map(function (key) {\n return arr[key];\n }).map(fn);\n});\nexport var compose = function compose() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n if (!args.length) {\n return identity;\n }\n\n var fns = args.reverse(); // first function can receive multiply arguments\n\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\nexport var reverse = function reverse(arr) {\n if (Array.isArray(arr)) {\n return arr.reverse();\n } // can be string\n\n\n return arr.split('').reverse.join('');\n};\nexport var memoize = function memoize(fn) {\n var lastArgs = null;\n var lastResult = null;\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n if (lastArgs && args.every(function (val, i) {\n return val === lastArgs[i];\n })) {\n return lastResult;\n }\n\n lastArgs = args;\n lastResult = fn.apply(void 0, args);\n return lastResult;\n };\n};","/**\n * @fileOverview 一些公用的运算方法\n * @author xile611\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { curry } from './utils';\n/**\n * 获取数值的位数\n * 其中绝对值属于区间[0.1, 1), 得到的值为0\n * 绝对值属于区间[0.01, 0.1),得到的位数为 -1\n * 绝对值属于区间[0.001, 0.01),得到的位数为 -2\n *\n * @param {Number} value 数值\n * @return {Integer} 位数\n */\n\nfunction getDigitCount(value) {\n var result;\n\n if (value === 0) {\n result = 1;\n } else {\n result = Math.floor(new Decimal(value).abs().log(10).toNumber()) + 1;\n }\n\n return result;\n}\n/**\n * 按照固定的步长获取[start, end)这个区间的数据\n * 并且需要处理js计算精度的问题\n *\n * @param {Decimal} start 起点\n * @param {Decimal} end 终点,不包含该值\n * @param {Decimal} step 步长\n * @return {Array} 若干数值\n */\n\n\nfunction rangeStep(start, end, step) {\n var num = new Decimal(start);\n var i = 0;\n var result = []; // magic number to prevent infinite loop\n\n while (num.lt(end) && i < 100000) {\n result.push(num.toNumber());\n num = num.add(step);\n i++;\n }\n\n return result;\n}\n/**\n * 对数值进行线性插值\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} t [0, 1]内的某个值\n * @return {Number} 定义域内的某个值\n */\n\n\nvar interpolateNumber = curry(function (a, b, t) {\n var newA = +a;\n var newB = +b;\n return newA + t * (newB - newA);\n});\n/**\n * 线性插值的逆运算\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个范围内时,返回值属于[0, 1]\n */\n\nvar uninterpolateNumber = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return (x - a) / diff;\n});\n/**\n * 线性插值的逆运算,并且有截断的操作\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个区间内时,返回值属于[0, 1],\n * 当x不在 a ~ b这个区间时,会截断到 a ~ b 这个区间\n */\n\nvar uninterpolateTruncation = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return Math.max(0, Math.min(1, (x - a) / diff));\n});\nexport default {\n rangeStep: rangeStep,\n getDigitCount: getDigitCount,\n interpolateNumber: interpolateNumber,\n uninterpolateNumber: uninterpolateNumber,\n uninterpolateTruncation: uninterpolateTruncation\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * @fileOverview calculate tick values of scale\n * @author xile611, arcthur\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { compose, range, memoize, map, reverse } from './util/utils';\nimport Arithmetic from './util/arithmetic';\n/**\n * Calculate a interval of a minimum value and a maximum value\n *\n * @param {Number} min The minimum value\n * @param {Number} max The maximum value\n * @return {Array} An interval\n */\n\nfunction getValidInterval(_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n min = _ref2[0],\n max = _ref2[1];\n\n var validMin = min,\n validMax = max; // exchange\n\n if (min > max) {\n validMin = max;\n validMax = min;\n }\n\n return [validMin, validMax];\n}\n/**\n * Calculate the step which is easy to understand between ticks, like 10, 20, 25\n *\n * @param {Decimal} roughStep The rough step calculated by deviding the\n * difference by the tickCount\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Integer} correctionFactor A correction factor\n * @return {Decimal} The step which is easy to understand between two ticks\n */\n\n\nfunction getFormatStep(roughStep, allowDecimals, correctionFactor) {\n if (roughStep.lte(0)) {\n return new Decimal(0);\n }\n\n var digitCount = Arithmetic.getDigitCount(roughStep.toNumber()); // The ratio between the rough step and the smallest number which has a bigger\n // order of magnitudes than the rough step\n\n var digitCountValue = new Decimal(10).pow(digitCount);\n var stepRatio = roughStep.div(digitCountValue); // When an integer and a float multiplied, the accuracy of result may be wrong\n\n var stepRatioScale = digitCount !== 1 ? 0.05 : 0.1;\n var amendStepRatio = new Decimal(Math.ceil(stepRatio.div(stepRatioScale).toNumber())).add(correctionFactor).mul(stepRatioScale);\n var formatStep = amendStepRatio.mul(digitCountValue);\n return allowDecimals ? formatStep : new Decimal(Math.ceil(formatStep));\n}\n/**\n * calculate the ticks when the minimum value equals to the maximum value\n *\n * @param {Number} value The minimum valuue which is also the maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickOfSingleValue(value, tickCount, allowDecimals) {\n var step = 1; // calculate the middle value of ticks\n\n var middle = new Decimal(value);\n\n if (!middle.isint() && allowDecimals) {\n var absVal = Math.abs(value);\n\n if (absVal < 1) {\n // The step should be a float number when the difference is smaller than 1\n step = new Decimal(10).pow(Arithmetic.getDigitCount(value) - 1);\n middle = new Decimal(Math.floor(middle.div(step).toNumber())).mul(step);\n } else if (absVal > 1) {\n // Return the maximum integer which is smaller than 'value' when 'value' is greater than 1\n middle = new Decimal(Math.floor(value));\n }\n } else if (value === 0) {\n middle = new Decimal(Math.floor((tickCount - 1) / 2));\n } else if (!allowDecimals) {\n middle = new Decimal(Math.floor(value));\n }\n\n var middleIndex = Math.floor((tickCount - 1) / 2);\n var fn = compose(map(function (n) {\n return middle.add(new Decimal(n - middleIndex).mul(step)).toNumber();\n }), range);\n return fn(0, tickCount);\n}\n/**\n * Calculate the step\n *\n * @param {Number} min The minimum value of an interval\n * @param {Number} max The maximum value of an interval\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Number} correctionFactor A correction factor\n * @return {Object} The step, minimum value of ticks, maximum value of ticks\n */\n\n\nfunction calculateStep(min, max, tickCount, allowDecimals) {\n var correctionFactor = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n\n // dirty hack (for recharts' test)\n if (!Number.isFinite((max - min) / (tickCount - 1))) {\n return {\n step: new Decimal(0),\n tickMin: new Decimal(0),\n tickMax: new Decimal(0)\n };\n } // The step which is easy to understand between two ticks\n\n\n var step = getFormatStep(new Decimal(max).sub(min).div(tickCount - 1), allowDecimals, correctionFactor); // A medial value of ticks\n\n var middle; // When 0 is inside the interval, 0 should be a tick\n\n if (min <= 0 && max >= 0) {\n middle = new Decimal(0);\n } else {\n // calculate the middle value\n middle = new Decimal(min).add(max).div(2); // minus modulo value\n\n middle = middle.sub(new Decimal(middle).mod(step));\n }\n\n var belowCount = Math.ceil(middle.sub(min).div(step).toNumber());\n var upCount = Math.ceil(new Decimal(max).sub(middle).div(step).toNumber());\n var scaleCount = belowCount + upCount + 1;\n\n if (scaleCount > tickCount) {\n // When more ticks need to cover the interval, step should be bigger.\n return calculateStep(min, max, tickCount, allowDecimals, correctionFactor + 1);\n }\n\n if (scaleCount < tickCount) {\n // When less ticks can cover the interval, we should add some additional ticks\n upCount = max > 0 ? upCount + (tickCount - scaleCount) : upCount;\n belowCount = max > 0 ? belowCount : belowCount + (tickCount - scaleCount);\n }\n\n return {\n step: step,\n tickMin: middle.sub(new Decimal(belowCount).mul(step)),\n tickMax: middle.add(new Decimal(upCount).mul(step))\n };\n}\n/**\n * Calculate the ticks of an interval, the count of ticks will be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getNiceTickValuesFn(_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n min = _ref4[0],\n max = _ref4[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval = getValidInterval([min, max]),\n _getValidInterval2 = _slicedToArray(_getValidInterval, 2),\n cormin = _getValidInterval2[0],\n cormax = _getValidInterval2[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n var _values = cormax === Infinity ? [cormin].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return Infinity;\n }))) : [].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return -Infinity;\n })), [cormax]);\n\n return min > max ? reverse(_values) : _values;\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n } // Get the step between two ticks\n\n\n var _calculateStep = calculateStep(cormin, cormax, count, allowDecimals),\n step = _calculateStep.step,\n tickMin = _calculateStep.tickMin,\n tickMax = _calculateStep.tickMax;\n\n var values = Arithmetic.rangeStep(tickMin, tickMax.add(new Decimal(0.1).mul(step)), step);\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFn(_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n min = _ref6[0],\n max = _ref6[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval3 = getValidInterval([min, max]),\n _getValidInterval4 = _slicedToArray(_getValidInterval3, 2),\n cormin = _getValidInterval4[0],\n cormax = _getValidInterval4[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n }\n\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var fn = compose(map(function (n) {\n return new Decimal(cormin).add(new Decimal(n).mul(step)).toNumber();\n }), range);\n var values = fn(0, count).filter(function (entry) {\n return entry >= cormin && entry <= cormax;\n });\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed,\n * but the domain will be guaranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFixedDomainFn(_ref7, tickCount) {\n var _ref8 = _slicedToArray(_ref7, 2),\n min = _ref8[0],\n max = _ref8[1];\n\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n // More than two ticks should be return\n var _getValidInterval5 = getValidInterval([min, max]),\n _getValidInterval6 = _slicedToArray(_getValidInterval5, 2),\n cormin = _getValidInterval6[0],\n cormax = _getValidInterval6[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return [cormin];\n }\n\n var count = Math.max(tickCount, 2);\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var values = [].concat(_toConsumableArray(Arithmetic.rangeStep(new Decimal(cormin), new Decimal(cormax).sub(new Decimal(0.99).mul(step)), step)), [cormax]);\n return min > max ? reverse(values) : values;\n}\n\nexport var getNiceTickValues = memoize(getNiceTickValuesFn);\nexport var getTickValues = memoize(getTickValuesFn);\nexport var getTickValuesFixedDomain = memoize(getTickValuesFixedDomainFn);","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nfunction stackSeries(key) {\n const series = [];\n series.key = key;\n return series;\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var sz = Array.from(keys.apply(this, arguments), stackSeries),\n i, n = sz.length, j = -1,\n oz;\n\n for (const d of data) {\n for (i = 0, ++j; i < n; ++i) {\n (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;\n }\n }\n\n for (i = 0, oz = array(order(sz)); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","import _isEqual from \"lodash/isEqual\";\nimport _sortBy from \"lodash/sortBy\";\nimport _isNaN from \"lodash/isNaN\";\nimport _upperFirst from \"lodash/upperFirst\";\nimport _isString from \"lodash/isString\";\nimport _isArray from \"lodash/isArray\";\nimport _max from \"lodash/max\";\nimport _min from \"lodash/min\";\nimport _flatMap from \"lodash/flatMap\";\nimport _isFunction from \"lodash/isFunction\";\nimport _get from \"lodash/get\";\nimport _isNil from \"lodash/isNil\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { getNiceTickValues, getTickValuesFixedDomain } from 'recharts-scale';\nimport * as d3Scales from 'd3-scale';\nimport { stack as shapeStack, stackOrderNone, stackOffsetExpand, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle } from 'd3-shape';\nimport { isNumOrStr, uniqueId, isNumber, getPercentValue, mathSign, findEntryInArray } from './DataUtils';\nimport { Legend } from '../component/Legend';\nimport { findAllByType, findChildByType, getDisplayName } from './ReactUtils'; // TODO: Cause of circular dependency. Needs refactor.\n// import { RadiusAxisProps, AngleAxisProps } from '../polar/types';\n\nimport { filterProps } from './types';\nexport function getValueByDataKey(obj, dataKey, defaultValue) {\n if (_isNil(obj) || _isNil(dataKey)) {\n return defaultValue;\n }\n\n if (isNumOrStr(dataKey)) {\n return _get(obj, dataKey, defaultValue);\n }\n\n if (_isFunction(dataKey)) {\n return dataKey(obj);\n }\n\n return defaultValue;\n}\n/**\n * Get domain of data by key\n * @param {Array} data The data displayed in the chart\n * @param {String} key The unique key of a group of data\n * @param {String} type The type of axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain of data\n */\n\nexport function getDomainOfDataByKey(data, key, type, filterNil) {\n var flattenData = _flatMap(data, function (entry) {\n return getValueByDataKey(entry, key);\n });\n\n if (type === 'number') {\n var domain = flattenData.filter(function (entry) {\n return isNumber(entry) || parseFloat(entry);\n });\n return domain.length ? [_min(domain), _max(domain)] : [Infinity, -Infinity];\n }\n\n var validateData = filterNil ? flattenData.filter(function (entry) {\n return !_isNil(entry);\n }) : flattenData; // 支持Date类型的x轴\n\n return validateData.map(function (entry) {\n return isNumOrStr(entry) || entry instanceof Date ? entry : '';\n });\n}\nexport var calculateActiveTickIndex = function calculateActiveTickIndex(coordinate) {\n var _ticks$length;\n\n var ticks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var unsortedTicks = arguments.length > 2 ? arguments[2] : undefined;\n var axis = arguments.length > 3 ? arguments[3] : undefined;\n var index = -1;\n var len = (_ticks$length = ticks === null || ticks === void 0 ? void 0 : ticks.length) !== null && _ticks$length !== void 0 ? _ticks$length : 0;\n\n if (len > 1) {\n if (axis && axis.axisType === 'angleAxis' && Math.abs(Math.abs(axis.range[1] - axis.range[0]) - 360) <= 1e-6) {\n var range = axis.range; // ticks are distributed in a circle\n\n for (var i = 0; i < len; i++) {\n var before = i > 0 ? unsortedTicks[i - 1].coordinate : unsortedTicks[len - 1].coordinate;\n var cur = unsortedTicks[i].coordinate;\n var after = i >= len - 1 ? unsortedTicks[0].coordinate : unsortedTicks[i + 1].coordinate;\n var sameDirectionCoord = void 0;\n\n if (mathSign(cur - before) !== mathSign(after - cur)) {\n var diffInterval = [];\n\n if (mathSign(after - cur) === mathSign(range[1] - range[0])) {\n sameDirectionCoord = after;\n var curInRange = cur + range[1] - range[0];\n diffInterval[0] = Math.min(curInRange, (curInRange + before) / 2);\n diffInterval[1] = Math.max(curInRange, (curInRange + before) / 2);\n } else {\n sameDirectionCoord = before;\n var afterInRange = after + range[1] - range[0];\n diffInterval[0] = Math.min(cur, (afterInRange + cur) / 2);\n diffInterval[1] = Math.max(cur, (afterInRange + cur) / 2);\n }\n\n var sameInterval = [Math.min(cur, (sameDirectionCoord + cur) / 2), Math.max(cur, (sameDirectionCoord + cur) / 2)];\n\n if (coordinate > sameInterval[0] && coordinate <= sameInterval[1] || coordinate >= diffInterval[0] && coordinate <= diffInterval[1]) {\n index = unsortedTicks[i].index;\n break;\n }\n } else {\n var min = Math.min(before, after);\n var max = Math.max(before, after);\n\n if (coordinate > (min + cur) / 2 && coordinate <= (max + cur) / 2) {\n index = unsortedTicks[i].index;\n break;\n }\n }\n }\n } else {\n // ticks are distributed in a single direction\n for (var _i = 0; _i < len; _i++) {\n if (_i === 0 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i > 0 && _i < len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i === len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2) {\n index = ticks[_i].index;\n break;\n }\n }\n }\n } else {\n index = 0;\n }\n\n return index;\n};\n/**\n * Get the main color of each graphic item\n * @param {ReactElement} item A graphic item\n * @return {String} Color\n */\n\nexport var getMainColorOfGraphicItem = function getMainColorOfGraphicItem(item) {\n var _ref = item,\n displayName = _ref.type.displayName; // TODO: check if displayName is valid.\n\n var _item$props = item.props,\n stroke = _item$props.stroke,\n fill = _item$props.fill;\n var result;\n\n switch (displayName) {\n case 'Line':\n result = stroke;\n break;\n\n case 'Area':\n case 'Radar':\n result = stroke && stroke !== 'none' ? stroke : fill;\n break;\n\n default:\n result = fill;\n break;\n }\n\n return result;\n};\nexport var getLegendProps = function getLegendProps(_ref2) {\n var children = _ref2.children,\n formattedGraphicalItems = _ref2.formattedGraphicalItems,\n legendWidth = _ref2.legendWidth,\n legendContent = _ref2.legendContent;\n var legendItem = findChildByType(children, Legend.displayName);\n\n if (!legendItem) {\n return null;\n }\n\n var legendData;\n\n if (legendItem.props && legendItem.props.payload) {\n legendData = legendItem.props && legendItem.props.payload;\n } else if (legendContent === 'children') {\n legendData = (formattedGraphicalItems || []).reduce(function (result, _ref3) {\n var item = _ref3.item,\n props = _ref3.props;\n var data = props.sectors || props.data || [];\n return result.concat(data.map(function (entry) {\n return {\n type: legendItem.props.iconType || item.props.legendType,\n value: entry.name,\n color: entry.fill,\n payload: entry\n };\n }));\n }, []);\n } else {\n legendData = (formattedGraphicalItems || []).map(function (_ref4) {\n var item = _ref4.item;\n var _item$props2 = item.props,\n dataKey = _item$props2.dataKey,\n name = _item$props2.name,\n legendType = _item$props2.legendType,\n hide = _item$props2.hide;\n return {\n inactive: hide,\n dataKey: dataKey,\n type: legendItem.props.iconType || legendType || 'square',\n color: getMainColorOfGraphicItem(item),\n value: name || dataKey,\n payload: item.props\n };\n });\n }\n\n return _objectSpread(_objectSpread(_objectSpread({}, legendItem.props), Legend.getWithHeight(legendItem, legendWidth)), {}, {\n payload: legendData,\n item: legendItem\n });\n};\n/**\n * Calculate the size of all groups for stacked bar graph\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @return {Object} The size of all groups\n */\n\nexport var getBarSizeList = function getBarSizeList(_ref5) {\n var globalSize = _ref5.barSize,\n _ref5$stackGroups = _ref5.stackGroups,\n stackGroups = _ref5$stackGroups === void 0 ? {} : _ref5$stackGroups;\n\n if (!stackGroups) {\n return {};\n }\n\n var result = {};\n var numericAxisIds = Object.keys(stackGroups);\n\n for (var i = 0, len = numericAxisIds.length; i < len; i++) {\n var sgs = stackGroups[numericAxisIds[i]].stackGroups;\n var stackIds = Object.keys(sgs);\n\n for (var j = 0, sLen = stackIds.length; j < sLen; j++) {\n var _sgs$stackIds$j = sgs[stackIds[j]],\n items = _sgs$stackIds$j.items,\n cateAxisId = _sgs$stackIds$j.cateAxisId;\n var barItems = items.filter(function (item) {\n return getDisplayName(item.type).indexOf('Bar') >= 0;\n });\n\n if (barItems && barItems.length) {\n var selfSize = barItems[0].props.barSize;\n var cateId = barItems[0].props[cateAxisId];\n\n if (!result[cateId]) {\n result[cateId] = [];\n }\n\n result[cateId].push({\n item: barItems[0],\n stackList: barItems.slice(1),\n barSize: _isNil(selfSize) ? globalSize : selfSize\n });\n }\n }\n }\n\n return result;\n};\n/**\n * Calculate the size of each bar and the gap between two bars\n * @param {Number} bandSize The size of each category\n * @param {sizeList} sizeList The size of all groups\n * @param {maxBarSize} maxBarSize The maximum size of bar\n * @return {Number} The size of each bar and the gap between two bars\n */\n\nexport var getBarPosition = function getBarPosition(_ref6) {\n var barGap = _ref6.barGap,\n barCategoryGap = _ref6.barCategoryGap,\n bandSize = _ref6.bandSize,\n _ref6$sizeList = _ref6.sizeList,\n sizeList = _ref6$sizeList === void 0 ? [] : _ref6$sizeList,\n maxBarSize = _ref6.maxBarSize;\n var len = sizeList.length;\n if (len < 1) return null;\n var realBarGap = getPercentValue(barGap, bandSize, 0, true);\n var result; // whether or not is barSize setted by user\n\n if (sizeList[0].barSize === +sizeList[0].barSize) {\n var useFull = false;\n var fullBarSize = bandSize / len;\n var sum = sizeList.reduce(function (res, entry) {\n return res + entry.barSize || 0;\n }, 0);\n sum += (len - 1) * realBarGap;\n\n if (sum >= bandSize) {\n sum -= (len - 1) * realBarGap;\n realBarGap = 0;\n }\n\n if (sum >= bandSize && fullBarSize > 0) {\n useFull = true;\n fullBarSize *= 0.9;\n sum = len * fullBarSize;\n }\n\n var offset = (bandSize - sum) / 2 >> 0;\n var prev = {\n offset: offset - realBarGap,\n size: 0\n };\n result = sizeList.reduce(function (res, entry) {\n var newRes = [].concat(_toConsumableArray(res), [{\n item: entry.item,\n position: {\n offset: prev.offset + prev.size + realBarGap,\n size: useFull ? fullBarSize : entry.barSize\n }\n }]);\n prev = newRes[newRes.length - 1].position;\n\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: prev\n });\n });\n }\n\n return newRes;\n }, []);\n } else {\n var _offset = getPercentValue(barCategoryGap, bandSize, 0, true);\n\n if (bandSize - 2 * _offset - (len - 1) * realBarGap <= 0) {\n realBarGap = 0;\n }\n\n var originalSize = (bandSize - 2 * _offset - (len - 1) * realBarGap) / len;\n\n if (originalSize > 1) {\n originalSize >>= 0;\n }\n\n var size = maxBarSize === +maxBarSize ? Math.min(originalSize, maxBarSize) : originalSize;\n result = sizeList.reduce(function (res, entry, i) {\n var newRes = [].concat(_toConsumableArray(res), [{\n item: entry.item,\n position: {\n offset: _offset + (originalSize + realBarGap) * i + (originalSize - size) / 2,\n size: size\n }\n }]);\n\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: newRes[newRes.length - 1].position\n });\n });\n }\n\n return newRes;\n }, []);\n }\n\n return result;\n};\nexport var appendOffsetOfLegend = function appendOffsetOfLegend(offset, items, props, legendBox) {\n var children = props.children,\n width = props.width,\n margin = props.margin;\n var legendWidth = width - (margin.left || 0) - (margin.right || 0); // const legendHeight = height - (margin.top || 0) - (margin.bottom || 0);\n\n var legendProps = getLegendProps({\n children: children,\n legendWidth: legendWidth\n });\n var newOffset = offset;\n\n if (legendProps) {\n var box = legendBox || {};\n var align = legendProps.align,\n verticalAlign = legendProps.verticalAlign,\n layout = legendProps.layout;\n\n if ((layout === 'vertical' || layout === 'horizontal' && verticalAlign === 'center') && isNumber(offset[align])) {\n newOffset = _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, align, newOffset[align] + (box.width || 0)));\n }\n\n if ((layout === 'horizontal' || layout === 'vertical' && align === 'center') && isNumber(offset[verticalAlign])) {\n newOffset = _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, verticalAlign, newOffset[verticalAlign] + (box.height || 0)));\n }\n }\n\n return newOffset;\n};\n\nvar isErrorBarRelevantForAxis = function isErrorBarRelevantForAxis(layout, axisType, direction) {\n if (_isNil(axisType)) {\n return true;\n }\n\n if (layout === 'horizontal') {\n return axisType === 'yAxis';\n }\n\n if (layout === 'vertical') {\n return axisType === 'xAxis';\n }\n\n if (direction === 'x') {\n return axisType === 'xAxis';\n }\n\n if (direction === 'y') {\n return axisType === 'yAxis';\n }\n\n return true;\n};\n\nexport var getDomainOfErrorBars = function getDomainOfErrorBars(data, item, dataKey, layout, axisType) {\n var children = item.props.children;\n var errorBars = findAllByType(children, 'ErrorBar').filter(function (errorBarChild) {\n return isErrorBarRelevantForAxis(layout, axisType, errorBarChild.props.direction);\n });\n\n if (errorBars && errorBars.length) {\n var keys = errorBars.map(function (errorBarChild) {\n return errorBarChild.props.dataKey;\n });\n return data.reduce(function (result, entry) {\n var entryValue = getValueByDataKey(entry, dataKey, 0);\n var mainValue = _isArray(entryValue) ? [_min(entryValue), _max(entryValue)] : [entryValue, entryValue];\n var errorDomain = keys.reduce(function (prevErrorArr, k) {\n var errorValue = getValueByDataKey(entry, k, 0);\n var lowerValue = mainValue[0] - Math.abs(_isArray(errorValue) ? errorValue[0] : errorValue);\n var upperValue = mainValue[1] + Math.abs(_isArray(errorValue) ? errorValue[1] : errorValue);\n return [Math.min(lowerValue, prevErrorArr[0]), Math.max(upperValue, prevErrorArr[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(errorDomain[0], result[0]), Math.max(errorDomain[1], result[1])];\n }, [Infinity, -Infinity]);\n }\n\n return null;\n};\nexport var parseErrorBarsOfAxis = function parseErrorBarsOfAxis(data, items, dataKey, axisType, layout) {\n var domains = items.map(function (item) {\n return getDomainOfErrorBars(data, item, dataKey, layout, axisType);\n }).filter(function (entry) {\n return !_isNil(entry);\n });\n\n if (domains && domains.length) {\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n\n return null;\n};\n/**\n * Get domain of data by the configuration of item element\n * @param {Array} data The data displayed in the chart\n * @param {Array} items The instances of item\n * @param {String} type The type of axis, number - Number Axis, category - Category Axis\n * @param {LayoutType} layout The type of layout\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain\n */\n\nexport var getDomainOfItemsWithSameAxis = function getDomainOfItemsWithSameAxis(data, items, type, layout, filterNil) {\n var domains = items.map(function (item) {\n var dataKey = item.props.dataKey;\n\n if (type === 'number' && dataKey) {\n return getDomainOfErrorBars(data, item, dataKey, layout) || getDomainOfDataByKey(data, dataKey, type, filterNil);\n }\n\n return getDomainOfDataByKey(data, dataKey, type, filterNil);\n });\n\n if (type === 'number') {\n // Calculate the domain of number axis\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n\n var tag = {}; // Get the union set of category axis\n\n return domains.reduce(function (result, entry) {\n for (var i = 0, len = entry.length; i < len; i++) {\n if (!tag[entry[i]]) {\n tag[entry[i]] = true;\n result.push(entry[i]);\n }\n }\n\n return result;\n }, []);\n};\nexport var isCategoricalAxis = function isCategoricalAxis(layout, axisType) {\n return layout === 'horizontal' && axisType === 'xAxis' || layout === 'vertical' && axisType === 'yAxis' || layout === 'centric' && axisType === 'angleAxis' || layout === 'radial' && axisType === 'radiusAxis';\n};\n/**\n * Calculate the Coordinates of grid\n * @param {Array} ticks The ticks in axis\n * @param {Number} min The minimun value of axis\n * @param {Number} max The maximun value of axis\n * @return {Array} Coordinates\n */\n\nexport var getCoordinatesOfGrid = function getCoordinatesOfGrid(ticks, min, max) {\n var hasMin, hasMax;\n var values = ticks.map(function (entry) {\n if (entry.coordinate === min) {\n hasMin = true;\n }\n\n if (entry.coordinate === max) {\n hasMax = true;\n }\n\n return entry.coordinate;\n });\n\n if (!hasMin) {\n values.push(min);\n }\n\n if (!hasMax) {\n values.push(max);\n }\n\n return values;\n};\n/**\n * Get the ticks of an axis\n * @param {Object} axis The configuration of an axis\n * @param {Boolean} isGrid Whether or not are the ticks in grid\n * @param {Boolean} isAll Return the ticks of all the points or not\n * @return {Array} Ticks\n */\n\nexport var getTicksOfAxis = function getTicksOfAxis(axis, isGrid, isAll) {\n if (!axis) return null;\n var scale = axis.scale;\n var duplicateDomain = axis.duplicateDomain,\n type = axis.type,\n range = axis.range;\n var offsetForBand = axis.realScaleType === 'scaleBand' ? scale.bandwidth() / 2 : 2;\n var offset = (isGrid || isAll) && type === 'category' && scale.bandwidth ? scale.bandwidth() / offsetForBand : 0;\n offset = axis.axisType === 'angleAxis' ? mathSign(range[0] - range[1]) * 2 * offset : offset; // The ticks setted by user should only affect the ticks adjacent to axis line\n\n if (isGrid && (axis.ticks || axis.niceTicks)) {\n return (axis.ticks || axis.niceTicks).map(function (entry) {\n var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n return {\n coordinate: scale(scaleContent) + offset,\n value: entry,\n offset: offset\n };\n });\n } // When axis is a categorial axis, but the type of axis is number or the scale of axis is not \"auto\"\n\n\n if (axis.isCategorical && axis.categoricalDomain) {\n return axis.categoricalDomain.map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n index: index,\n offset: offset\n };\n });\n }\n\n if (scale.ticks && !isAll) {\n return scale.ticks(axis.tickCount).map(function (entry) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n offset: offset\n };\n });\n } // When axis has duplicated text, serial numbers are used to generate scale\n\n\n return scale.domain().map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index: index,\n offset: offset\n };\n });\n};\n/**\n * combine the handlers\n * @param {Function} defaultHandler Internal private handler\n * @param {Function} parentHandler Handler function specified in parent component\n * @param {Function} childHandler Handler function specified in child component\n * @return {Function} The combined handler\n */\n\nexport var combineEventHandlers = function combineEventHandlers(defaultHandler, parentHandler, childHandler) {\n var customizedHandler;\n\n if (_isFunction(childHandler)) {\n customizedHandler = childHandler;\n } else if (_isFunction(parentHandler)) {\n customizedHandler = parentHandler;\n }\n\n if (_isFunction(defaultHandler) || customizedHandler) {\n return function (arg1, arg2, arg3, arg4) {\n if (_isFunction(defaultHandler)) {\n defaultHandler(arg1, arg2, arg3, arg4);\n }\n\n if (_isFunction(customizedHandler)) {\n customizedHandler(arg1, arg2, arg3, arg4);\n }\n };\n }\n\n return null;\n};\n/**\n * Parse the scale function of axis\n * @param {Object} axis The option of axis\n * @param {String} chartType The displayName of chart\n * @param {Boolean} hasBar if it has a bar\n * @return {Function} The scale function\n */\n\nexport var parseScale = function parseScale(axis, chartType, hasBar) {\n var scale = axis.scale,\n type = axis.type,\n layout = axis.layout,\n axisType = axis.axisType;\n\n if (scale === 'auto') {\n if (layout === 'radial' && axisType === 'radiusAxis') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n\n if (layout === 'radial' && axisType === 'angleAxis') {\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n\n if (type === 'category' && chartType && (chartType.indexOf('LineChart') >= 0 || chartType.indexOf('AreaChart') >= 0 || chartType.indexOf('ComposedChart') >= 0 && !hasBar)) {\n return {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n }\n\n if (type === 'category') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n\n if (_isString(scale)) {\n var name = \"scale\".concat(_upperFirst(scale));\n return {\n scale: (d3Scales[name] || d3Scales.scalePoint)(),\n realScaleType: d3Scales[name] ? name : 'point'\n };\n }\n\n return _isFunction(scale) ? {\n scale: scale\n } : {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n};\nvar EPS = 1e-4;\nexport var checkDomainOfScale = function checkDomainOfScale(scale) {\n var domain = scale.domain();\n\n if (!domain || domain.length <= 2) {\n return;\n }\n\n var len = domain.length;\n var range = scale.range();\n var min = Math.min(range[0], range[1]) - EPS;\n var max = Math.max(range[0], range[1]) + EPS;\n var first = scale(domain[0]);\n var last = scale(domain[len - 1]);\n\n if (first < min || first > max || last < min || last > max) {\n scale.domain([domain[0], domain[len - 1]]);\n }\n};\nexport var findPositionOfBar = function findPositionOfBar(barPosition, child) {\n if (!barPosition) {\n return null;\n }\n\n for (var i = 0, len = barPosition.length; i < len; i++) {\n if (barPosition[i].item === child) {\n return barPosition[i].position;\n }\n }\n\n return null;\n};\nexport var truncateByDomain = function truncateByDomain(value, domain) {\n if (!domain || domain.length !== 2 || !isNumber(domain[0]) || !isNumber(domain[1])) {\n return value;\n }\n\n var min = Math.min(domain[0], domain[1]);\n var max = Math.max(domain[0], domain[1]);\n var result = [value[0], value[1]];\n\n if (!isNumber(value[0]) || value[0] < min) {\n result[0] = min;\n }\n\n if (!isNumber(value[1]) || value[1] > max) {\n result[1] = max;\n }\n\n if (result[0] > max) {\n result[0] = max;\n }\n\n if (result[1] < min) {\n result[1] = min;\n }\n\n return result;\n};\n/* eslint no-param-reassign: 0 */\n\nexport var offsetSign = function offsetSign(series) {\n var n = series.length;\n\n if (n <= 0) {\n return;\n }\n\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n var negative = 0;\n\n for (var i = 0; i < n; ++i) {\n var value = _isNaN(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n /* eslint-disable prefer-destructuring */\n\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = negative;\n series[i][j][1] = negative + value;\n negative = series[i][j][1];\n }\n /* eslint-enable prefer-destructuring */\n\n }\n }\n};\n/* eslint no-param-reassign: 0 */\n\nexport var offsetPositive = function offsetPositive(series) {\n var n = series.length;\n\n if (n <= 0) {\n return;\n }\n\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n\n for (var i = 0; i < n; ++i) {\n var value = _isNaN(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n /* eslint-disable prefer-destructuring */\n\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = 0;\n series[i][j][1] = 0;\n }\n /* eslint-enable prefer-destructuring */\n\n }\n }\n};\nvar STACK_OFFSET_MAP = {\n sign: offsetSign,\n expand: stackOffsetExpand,\n none: stackOffsetNone,\n silhouette: stackOffsetSilhouette,\n wiggle: stackOffsetWiggle,\n positive: offsetPositive\n};\nexport var getStackedData = function getStackedData(data, stackItems, offsetType) {\n var dataKeys = stackItems.map(function (item) {\n return item.props.dataKey;\n });\n var stack = shapeStack().keys(dataKeys).value(function (d, key) {\n return +getValueByDataKey(d, key, 0);\n }).order(stackOrderNone).offset(STACK_OFFSET_MAP[offsetType]);\n return stack(data);\n};\nexport var getStackGroupsByAxisId = function getStackGroupsByAxisId(data, _items, numericAxisId, cateAxisId, offsetType, reverseStackOrder) {\n if (!data) {\n return null;\n } // reversing items to affect render order (for layering)\n\n\n var items = reverseStackOrder ? _items.reverse() : _items;\n var stackGroups = items.reduce(function (result, item) {\n var _item$props3 = item.props,\n stackId = _item$props3.stackId,\n hide = _item$props3.hide;\n\n if (hide) {\n return result;\n }\n\n var axisId = item.props[numericAxisId];\n var parentGroup = result[axisId] || {\n hasStack: false,\n stackGroups: {}\n };\n\n if (isNumOrStr(stackId)) {\n var childGroup = parentGroup.stackGroups[stackId] || {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: []\n };\n childGroup.items.push(item);\n parentGroup.hasStack = true;\n parentGroup.stackGroups[stackId] = childGroup;\n } else {\n parentGroup.stackGroups[uniqueId('_stackId_')] = {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: [item]\n };\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, parentGroup));\n }, {});\n return Object.keys(stackGroups).reduce(function (result, axisId) {\n var group = stackGroups[axisId];\n\n if (group.hasStack) {\n group.stackGroups = Object.keys(group.stackGroups).reduce(function (res, stackId) {\n var g = group.stackGroups[stackId];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, stackId, {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: g.items,\n stackedData: getStackedData(data, g.items, offsetType)\n }));\n }, {});\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, group));\n }, {});\n};\n/**\n * get domain of ticks\n * @param {Array} ticks Ticks of axis\n * @param {String} type The type of axis\n * @return {Array} domain\n */\n\nexport var calculateDomainOfTicks = function calculateDomainOfTicks(ticks, type) {\n if (type === 'number') {\n return [_min(ticks), _max(ticks)];\n }\n\n return ticks;\n};\n/**\n * Configure the scale function of axis\n * @param {Object} scale The scale function\n * @param {Object} opts The configuration of axis\n * @return {Object} null\n */\n\nexport var getTicksOfScale = function getTicksOfScale(scale, opts) {\n var realScaleType = opts.realScaleType,\n type = opts.type,\n tickCount = opts.tickCount,\n originalDomain = opts.originalDomain,\n allowDecimals = opts.allowDecimals;\n var scaleType = realScaleType || opts.scale;\n\n if (scaleType !== 'auto' && scaleType !== 'linear') {\n return null;\n }\n\n if (tickCount && type === 'number' && originalDomain && (originalDomain[0] === 'auto' || originalDomain[1] === 'auto')) {\n // Calculate the ticks by the number of grid when the axis is a number axis\n var domain = scale.domain();\n\n if (!domain.length) {\n return null;\n }\n\n var tickValues = getNiceTickValues(domain, tickCount, allowDecimals);\n scale.domain(calculateDomainOfTicks(tickValues, type));\n return {\n niceTicks: tickValues\n };\n }\n\n if (tickCount && type === 'number') {\n var _domain = scale.domain();\n\n var _tickValues = getTickValuesFixedDomain(_domain, tickCount, allowDecimals);\n\n return {\n niceTicks: _tickValues\n };\n }\n\n return null;\n};\nexport var getCateCoordinateOfLine = function getCateCoordinateOfLine(_ref7) {\n var axis = _ref7.axis,\n ticks = _ref7.ticks,\n bandSize = _ref7.bandSize,\n entry = _ref7.entry,\n index = _ref7.index,\n dataKey = _ref7.dataKey;\n\n if (axis.type === 'category') {\n // find coordinate of category axis by the value of category\n if (!axis.allowDuplicatedCategory && axis.dataKey && !_isNil(entry[axis.dataKey])) {\n var matchedTick = findEntryInArray(ticks, 'value', entry[axis.dataKey]);\n\n if (matchedTick) {\n return matchedTick.coordinate + bandSize / 2;\n }\n }\n\n return ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;\n }\n\n var value = getValueByDataKey(entry, !_isNil(dataKey) ? dataKey : axis.dataKey);\n return !_isNil(value) ? axis.scale(value) : null;\n};\nexport var getCateCoordinateOfBar = function getCateCoordinateOfBar(_ref8) {\n var axis = _ref8.axis,\n ticks = _ref8.ticks,\n offset = _ref8.offset,\n bandSize = _ref8.bandSize,\n entry = _ref8.entry,\n index = _ref8.index;\n\n if (axis.type === 'category') {\n return ticks[index] ? ticks[index].coordinate + offset : null;\n }\n\n var value = getValueByDataKey(entry, axis.dataKey, axis.domain[index]);\n return !_isNil(value) ? axis.scale(value) - bandSize / 2 + offset : null;\n};\nexport var getBaseValueOfBar = function getBaseValueOfBar(_ref9) {\n var numericAxis = _ref9.numericAxis;\n var domain = numericAxis.scale.domain();\n\n if (numericAxis.type === 'number') {\n var min = Math.min(domain[0], domain[1]);\n var max = Math.max(domain[0], domain[1]);\n\n if (min <= 0 && max >= 0) {\n return 0;\n }\n\n if (max < 0) {\n return max;\n }\n\n return min;\n }\n\n return domain[0];\n};\nexport var getStackedDataOfItem = function getStackedDataOfItem(item, stackGroups) {\n var stackId = item.props.stackId;\n\n if (isNumOrStr(stackId)) {\n var group = stackGroups[stackId];\n\n if (group && group.items.length) {\n var itemIndex = -1;\n\n for (var i = 0, len = group.items.length; i < len; i++) {\n if (group.items[i] === item) {\n itemIndex = i;\n break;\n }\n }\n\n return itemIndex >= 0 ? group.stackedData[itemIndex] : null;\n }\n }\n\n return null;\n};\n\nvar getDomainOfSingle = function getDomainOfSingle(data) {\n return data.reduce(function (result, entry) {\n return [_min(entry.concat([result[0]]).filter(isNumber)), _max(entry.concat([result[1]]).filter(isNumber))];\n }, [Infinity, -Infinity]);\n};\n\nexport var getDomainOfStackGroups = function getDomainOfStackGroups(stackGroups, startIndex, endIndex) {\n return Object.keys(stackGroups).reduce(function (result, stackId) {\n var group = stackGroups[stackId];\n var stackedData = group.stackedData;\n var domain = stackedData.reduce(function (res, entry) {\n var s = getDomainOfSingle(entry.slice(startIndex, endIndex + 1));\n return [Math.min(res[0], s[0]), Math.max(res[1], s[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(domain[0], result[0]), Math.max(domain[1], result[1])];\n }, [Infinity, -Infinity]).map(function (result) {\n return result === Infinity || result === -Infinity ? 0 : result;\n });\n};\nexport var MIN_VALUE_REG = /^dataMin[\\s]*-[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var MAX_VALUE_REG = /^dataMax[\\s]*\\+[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var parseSpecifiedDomain = function parseSpecifiedDomain(specifiedDomain, dataDomain, allowDataOverflow) {\n if (_isFunction(specifiedDomain)) {\n return specifiedDomain(dataDomain, allowDataOverflow);\n }\n\n if (!_isArray(specifiedDomain)) {\n return dataDomain;\n }\n\n var domain = [];\n /* eslint-disable prefer-destructuring */\n\n if (isNumber(specifiedDomain[0])) {\n domain[0] = allowDataOverflow ? specifiedDomain[0] : Math.min(specifiedDomain[0], dataDomain[0]);\n } else if (MIN_VALUE_REG.test(specifiedDomain[0])) {\n var value = +MIN_VALUE_REG.exec(specifiedDomain[0])[1];\n domain[0] = dataDomain[0] - value;\n } else if (_isFunction(specifiedDomain[0])) {\n domain[0] = specifiedDomain[0](dataDomain[0]);\n } else {\n domain[0] = dataDomain[0];\n }\n\n if (isNumber(specifiedDomain[1])) {\n domain[1] = allowDataOverflow ? specifiedDomain[1] : Math.max(specifiedDomain[1], dataDomain[1]);\n } else if (MAX_VALUE_REG.test(specifiedDomain[1])) {\n var _value = +MAX_VALUE_REG.exec(specifiedDomain[1])[1];\n\n domain[1] = dataDomain[1] + _value;\n } else if (_isFunction(specifiedDomain[1])) {\n domain[1] = specifiedDomain[1](dataDomain[1]);\n } else {\n domain[1] = dataDomain[1];\n }\n /* eslint-enable prefer-destructuring */\n\n\n return domain;\n};\n/**\n * Calculate the size between two category\n * @param {Object} axis The options of axis\n * @param {Array} ticks The ticks of axis\n * @param {Boolean} isBar if items in axis are bars\n * @return {Number} Size\n */\n\nexport var getBandSizeOfAxis = function getBandSizeOfAxis(axis, ticks, isBar) {\n if (axis && axis.scale && axis.scale.bandwidth) {\n var bandWidth = axis.scale.bandwidth();\n\n if (!isBar || bandWidth > 0) {\n return bandWidth;\n }\n }\n\n if (axis && ticks && ticks.length >= 2) {\n var orderedTicks = _sortBy(ticks, function (o) {\n return o.coordinate;\n });\n\n var bandSize = Infinity;\n\n for (var i = 1, len = orderedTicks.length; i < len; i++) {\n var cur = orderedTicks[i];\n var prev = orderedTicks[i - 1];\n bandSize = Math.min((cur.coordinate || 0) - (prev.coordinate || 0), bandSize);\n }\n\n return bandSize === Infinity ? 0 : bandSize;\n }\n\n return isBar ? undefined : 0;\n};\n/**\n * parse the domain of a category axis when a domain is specified\n * @param {Array} specifiedDomain The domain specified by users\n * @param {Array} calculatedDomain The domain calculated by dateKey\n * @param {ReactElement} axisChild The axis element\n * @returns {Array} domains\n */\n\nexport var parseDomainOfCategoryAxis = function parseDomainOfCategoryAxis(specifiedDomain, calculatedDomain, axisChild) {\n if (!specifiedDomain || !specifiedDomain.length) {\n return calculatedDomain;\n }\n\n if (_isEqual(specifiedDomain, _get(axisChild, 'type.defaultProps.domain'))) {\n return calculatedDomain;\n }\n\n return specifiedDomain;\n};\nexport var getTooltipItem = function getTooltipItem(graphicalItem, payload) {\n var _graphicalItem$props = graphicalItem.props,\n dataKey = _graphicalItem$props.dataKey,\n name = _graphicalItem$props.name,\n unit = _graphicalItem$props.unit,\n formatter = _graphicalItem$props.formatter,\n tooltipType = _graphicalItem$props.tooltipType,\n chartType = _graphicalItem$props.chartType;\n return _objectSpread(_objectSpread({}, filterProps(graphicalItem)), {}, {\n dataKey: dataKey,\n unit: unit,\n formatter: formatter,\n name: name || dataKey,\n color: getMainColorOfGraphicItem(graphicalItem),\n value: getValueByDataKey(payload, dataKey),\n type: tooltipType,\n payload: payload,\n chartType: chartType\n });\n};","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","import _isObject from \"lodash/isObject\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { isValidElement } from 'react';\nvar SVGContainerPropKeys = ['viewBox', 'children'];\nvar SVGElementPropKeys = ['aria-activedescendant', 'aria-atomic', 'aria-autocomplete', 'aria-busy', 'aria-checked', 'aria-colcount', 'aria-colindex', 'aria-colspan', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-details', 'aria-disabled', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-level', 'aria-live', 'aria-modal', 'aria-multiline', 'aria-multiselectable', 'aria-orientation', 'aria-owns', 'aria-placeholder', 'aria-posinset', 'aria-pressed', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription', 'aria-rowcount', 'aria-rowindex', 'aria-rowspan', 'aria-selected', 'aria-setsize', 'aria-sort', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext', 'className', 'color', 'height', 'id', 'lang', 'max', 'media', 'method', 'min', 'name', 'style', 'target', 'type', 'width', 'role', 'tabIndex', 'accentHeight', 'accumulate', 'additive', 'alignmentBaseline', 'allowReorder', 'alphabetic', 'amplitude', 'arabicForm', 'ascent', 'attributeName', 'attributeType', 'autoReverse', 'azimuth', 'baseFrequency', 'baselineShift', 'baseProfile', 'bbox', 'begin', 'bias', 'by', 'calcMode', 'capHeight', 'clip', 'clipPath', 'clipPathUnits', 'clipRule', 'colorInterpolation', 'colorInterpolationFilters', 'colorProfile', 'colorRendering', 'contentScriptType', 'contentStyleType', 'cursor', 'cx', 'cy', 'd', 'decelerate', 'descent', 'diffuseConstant', 'direction', 'display', 'divisor', 'dominantBaseline', 'dur', 'dx', 'dy', 'edgeMode', 'elevation', 'enableBackground', 'end', 'exponent', 'externalResourcesRequired', 'fill', 'fillOpacity', 'fillRule', 'filter', 'filterRes', 'filterUnits', 'floodColor', 'floodOpacity', 'focusable', 'fontFamily', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontWeight', 'format', 'from', 'fx', 'fy', 'g1', 'g2', 'glyphName', 'glyphOrientationHorizontal', 'glyphOrientationVertical', 'glyphRef', 'gradientTransform', 'gradientUnits', 'hanging', 'horizAdvX', 'horizOriginX', 'href', 'ideographic', 'imageRendering', 'in2', 'in', 'intercept', 'k1', 'k2', 'k3', 'k4', 'k', 'kernelMatrix', 'kernelUnitLength', 'kerning', 'keyPoints', 'keySplines', 'keyTimes', 'lengthAdjust', 'letterSpacing', 'lightingColor', 'limitingConeAngle', 'local', 'markerEnd', 'markerHeight', 'markerMid', 'markerStart', 'markerUnits', 'markerWidth', 'mask', 'maskContentUnits', 'maskUnits', 'mathematical', 'mode', 'numOctaves', 'offset', 'opacity', 'operator', 'order', 'orient', 'orientation', 'origin', 'overflow', 'overlinePosition', 'overlineThickness', 'paintOrder', 'panose1', 'pathLength', 'patternContentUnits', 'patternTransform', 'patternUnits', 'pointerEvents', 'points', 'pointsAtX', 'pointsAtY', 'pointsAtZ', 'preserveAlpha', 'preserveAspectRatio', 'primitiveUnits', 'r', 'radius', 'refX', 'refY', 'renderingIntent', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart', 'result', 'rotate', 'rx', 'ry', 'seed', 'shapeRendering', 'slope', 'spacing', 'specularConstant', 'specularExponent', 'speed', 'spreadMethod', 'startOffset', 'stdDeviation', 'stemh', 'stemv', 'stitchTiles', 'stopColor', 'stopOpacity', 'strikethroughPosition', 'strikethroughThickness', 'string', 'stroke', 'strokeDasharray', 'strokeDashoffset', 'strokeLinecap', 'strokeLinejoin', 'strokeMiterlimit', 'strokeOpacity', 'strokeWidth', 'surfaceScale', 'systemLanguage', 'tableValues', 'targetX', 'targetY', 'textAnchor', 'textDecoration', 'textLength', 'textRendering', 'to', 'transform', 'u1', 'u2', 'underlinePosition', 'underlineThickness', 'unicode', 'unicodeBidi', 'unicodeRange', 'unitsPerEm', 'vAlphabetic', 'values', 'vectorEffect', 'version', 'vertAdvY', 'vertOriginX', 'vertOriginY', 'vHanging', 'vIdeographic', 'viewTarget', 'visibility', 'vMathematical', 'widths', 'wordSpacing', 'writingMode', 'x1', 'x2', 'x', 'xChannelSelector', 'xHeight', 'xlinkActuate', 'xlinkArcrole', 'xlinkHref', 'xlinkRole', 'xlinkShow', 'xlinkTitle', 'xlinkType', 'xmlBase', 'xmlLang', 'xmlns', 'xmlnsXlink', 'xmlSpace', 'y1', 'y2', 'y', 'yChannelSelector', 'z', 'zoomAndPan', 'ref', 'key', 'angle'];\nvar EventKeys = ['dangerouslySetInnerHTML', 'onCopy', 'onCopyCapture', 'onCut', 'onCutCapture', 'onPaste', 'onPasteCapture', 'onCompositionEnd', 'onCompositionEndCapture', 'onCompositionStart', 'onCompositionStartCapture', 'onCompositionUpdate', 'onCompositionUpdateCapture', 'onFocus', 'onFocusCapture', 'onBlur', 'onBlurCapture', 'onChange', 'onChangeCapture', 'onBeforeInput', 'onBeforeInputCapture', 'onInput', 'onInputCapture', 'onReset', 'onResetCapture', 'onSubmit', 'onSubmitCapture', 'onInvalid', 'onInvalidCapture', 'onLoad', 'onLoadCapture', 'onError', 'onErrorCapture', 'onKeyDown', 'onKeyDownCapture', 'onKeyPress', 'onKeyPressCapture', 'onKeyUp', 'onKeyUpCapture', 'onAbort', 'onAbortCapture', 'onCanPlay', 'onCanPlayCapture', 'onCanPlayThrough', 'onCanPlayThroughCapture', 'onDurationChange', 'onDurationChangeCapture', 'onEmptied', 'onEmptiedCapture', 'onEncrypted', 'onEncryptedCapture', 'onEnded', 'onEndedCapture', 'onLoadedData', 'onLoadedDataCapture', 'onLoadedMetadata', 'onLoadedMetadataCapture', 'onLoadStart', 'onLoadStartCapture', 'onPause', 'onPauseCapture', 'onPlay', 'onPlayCapture', 'onPlaying', 'onPlayingCapture', 'onProgress', 'onProgressCapture', 'onRateChange', 'onRateChangeCapture', 'onSeeked', 'onSeekedCapture', 'onSeeking', 'onSeekingCapture', 'onStalled', 'onStalledCapture', 'onSuspend', 'onSuspendCapture', 'onTimeUpdate', 'onTimeUpdateCapture', 'onVolumeChange', 'onVolumeChangeCapture', 'onWaiting', 'onWaitingCapture', 'onAuxClick', 'onAuxClickCapture', 'onClick', 'onClickCapture', 'onContextMenu', 'onContextMenuCapture', 'onDoubleClick', 'onDoubleClickCapture', 'onDrag', 'onDragCapture', 'onDragEnd', 'onDragEndCapture', 'onDragEnter', 'onDragEnterCapture', 'onDragExit', 'onDragExitCapture', 'onDragLeave', 'onDragLeaveCapture', 'onDragOver', 'onDragOverCapture', 'onDragStart', 'onDragStartCapture', 'onDrop', 'onDropCapture', 'onMouseDown', 'onMouseDownCapture', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseMoveCapture', 'onMouseOut', 'onMouseOutCapture', 'onMouseOver', 'onMouseOverCapture', 'onMouseUp', 'onMouseUpCapture', 'onSelect', 'onSelectCapture', 'onTouchCancel', 'onTouchCancelCapture', 'onTouchEnd', 'onTouchEndCapture', 'onTouchMove', 'onTouchMoveCapture', 'onTouchStart', 'onTouchStartCapture', 'onPointerDown', 'onPointerDownCapture', 'onPointerMove', 'onPointerMoveCapture', 'onPointerUp', 'onPointerUpCapture', 'onPointerCancel', 'onPointerCancelCapture', 'onPointerEnter', 'onPointerEnterCapture', 'onPointerLeave', 'onPointerLeaveCapture', 'onPointerOver', 'onPointerOverCapture', 'onPointerOut', 'onPointerOutCapture', 'onGotPointerCapture', 'onGotPointerCaptureCapture', 'onLostPointerCapture', 'onLostPointerCaptureCapture', 'onScroll', 'onScrollCapture', 'onWheel', 'onWheelCapture', 'onAnimationStart', 'onAnimationStartCapture', 'onAnimationEnd', 'onAnimationEndCapture', 'onAnimationIteration', 'onAnimationIterationCapture', 'onTransitionEnd', 'onTransitionEndCapture']; // Animation Types => TODO: Should be moved when react-smooth is typescriptified.\n\nexport var filterProps = function filterProps(props, includeEvents, isSvg) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n\n var inputProps = props;\n\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n\n if (!_isObject(inputProps)) {\n return null;\n }\n\n var out = {};\n Object.keys(inputProps).forEach(function (key) {\n // viewBox only exist in <svg />\n if (SVGElementPropKeys.includes(key) || isSvg && SVGContainerPropKeys.includes(key) || includeEvents && EventKeys.includes(key)) {\n out[key] = inputProps[key];\n }\n });\n return out;\n};\nexport var adaptEventHandlers = function adaptEventHandlers(props, newHandler) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n\n var inputProps = props;\n\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n\n if (!_isObject(inputProps)) {\n return null;\n }\n\n var out = {};\n Object.keys(inputProps).forEach(function (key) {\n if (EventKeys.includes(key)) {\n out[key] = newHandler || function (e) {\n return inputProps[key](inputProps, e);\n };\n }\n });\n return out;\n};\n\nvar getEventHandlerOfChild = function getEventHandlerOfChild(originalHandler, data, index) {\n return function (e) {\n originalHandler(data, index, e);\n return null;\n };\n};\n\nexport var adaptEventsOfChild = function adaptEventsOfChild(props, data, index) {\n if (!_isObject(props) || _typeof(props) !== 'object') {\n return null;\n }\n\n var out = null;\n Object.keys(props).forEach(function (key) {\n var item = props[key];\n\n if (EventKeys.includes(key) && typeof item === 'function') {\n if (!out) out = {};\n out[key] = getEventHandlerOfChild(item, data, index);\n }\n });\n return out;\n};","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { Constants } from \"../utils/Constants\";\n\n/**\n * AuthErrorMessage class containing string constants used by error codes and messages.\n */\nexport const AuthErrorMessage = {\n unexpectedError: {\n code: \"unexpected_error\",\n desc: \"Unexpected error in authentication.\"\n },\n postRequestFailed: {\n code: \"post_request_failed\",\n desc: \"Post request failed from the network, could be a 4xx/5xx or a network unavailability. Please check the exact error code for details.\"\n }\n};\n\n/**\n * General error class thrown by the MSAL.js library.\n */\nexport class AuthError extends Error {\n\n /**\n * Short string denoting error\n */\n errorCode: string;\n\n /**\n * Detailed description of error\n */\n errorMessage: string;\n\n /**\n * Describes the subclass of an error\n */\n subError: string;\n\n /**\n * CorrelationId associated with the error\n */\n correlationId: string;\n\n constructor(errorCode?: string, errorMessage?: string, suberror?: string) {\n const errorString = errorMessage ? `${errorCode}: ${errorMessage}` : errorCode;\n super(errorString);\n Object.setPrototypeOf(this, AuthError.prototype);\n\n this.errorCode = errorCode || Constants.EMPTY_STRING;\n this.errorMessage = errorMessage || Constants.EMPTY_STRING;\n this.subError = suberror || Constants.EMPTY_STRING;\n this.name = \"AuthError\";\n }\n\n setCorrelationId(correlationId: string): void {\n this.correlationId = correlationId;\n }\n\n /**\n * Creates an error that is thrown when something unexpected happens in the library.\n * @param errDesc\n */\n static createUnexpectedError(errDesc: string): AuthError {\n return new AuthError(AuthErrorMessage.unexpectedError.code, `${AuthErrorMessage.unexpectedError.desc}: ${errDesc}`);\n }\n\n /**\n * Creates an error for post request failures.\n * @param errDesc \n * @returns \n */\n static createPostRequestFailed(errDesc: string): AuthError {\n return new AuthError(AuthErrorMessage.postRequestFailed.code, `${AuthErrorMessage.postRequestFailed.desc}: ${errDesc}`);\n }\n}\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.classNames = classNames;\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction classNames() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args) {\n var classes = [];\n\n for (var i = 0; i < args.length; i++) {\n var className = args[i];\n if (!className) continue;\n\n var type = _typeof(className);\n\n if (type === 'string' || type === 'number') {\n classes.push(className);\n } else if (type === 'object') {\n var _classes = Array.isArray(className) ? className : Object.entries(className).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n\n return !!value ? key : null;\n });\n\n classes = _classes.length ? classes.concat(_classes.filter(function (c) {\n return !!c;\n })) : classes;\n }\n }\n\n return classes.join(' ');\n }\n\n return null;\n}","'use strict';\n\nmodule.exports = require('./components/inputtext/InputText');","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import _isString from \"lodash/isString\";\nimport _get from \"lodash/get\";\nimport _isNil from \"lodash/isNil\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { Children } from 'react';\nimport { isFragment } from 'react-is';\nimport { isNumber } from './DataUtils';\nimport { shallowEqual } from './ShallowEqual';\nvar REACT_BROWSER_EVENT_MAP = {\n click: 'onClick',\n mousedown: 'onMouseDown',\n mouseup: 'onMouseUp',\n mouseover: 'onMouseOver',\n mousemove: 'onMouseMove',\n mouseout: 'onMouseOut',\n mouseenter: 'onMouseEnter',\n mouseleave: 'onMouseLeave',\n touchcancel: 'onTouchCancel',\n touchend: 'onTouchEnd',\n touchmove: 'onTouchMove',\n touchstart: 'onTouchStart'\n};\nexport var SCALE_TYPES = ['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold'];\nexport var LEGEND_TYPES = ['plainline', 'line', 'square', 'rect', 'circle', 'cross', 'diamond', 'star', 'triangle', 'wye', 'none'];\nexport var TOOLTIP_TYPES = ['none'];\n/**\n * Get the display name of a component\n * @param {Object} Comp Specified Component\n * @return {String} Display name of Component\n */\n\nexport var getDisplayName = function getDisplayName(Comp) {\n if (typeof Comp === 'string') {\n return Comp;\n }\n\n if (!Comp) {\n return '';\n }\n\n return Comp.displayName || Comp.name || 'Component';\n}; // `toArray` gets called multiple times during the render\n// so we can memoize last invocation (since reference to `children` is the same)\n\nvar lastChildren = null;\nvar lastResult = null;\nexport var toArray = function toArray(children) {\n if (children === lastChildren && _isArray(lastResult)) {\n return lastResult;\n }\n\n var result = [];\n Children.forEach(children, function (child) {\n if (_isNil(child)) return;\n\n if (isFragment(child)) {\n result = result.concat(toArray(child.props.children));\n } else {\n result.push(child);\n }\n });\n lastResult = result;\n lastChildren = children;\n return result;\n};\n/*\n * Find and return all matched children by type. `type` can be a React element class or\n * string\n */\n\nexport var findAllByType = function findAllByType(children, type) {\n var result = [];\n var types = [];\n\n if (_isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n\n toArray(children).forEach(function (child) {\n var childType = _get(child, 'type.displayName') || _get(child, 'type.name');\n\n if (types.indexOf(childType) !== -1) {\n result.push(child);\n }\n });\n return result;\n};\n/*\n * Return the first matched child by type, return null otherwise.\n * `type` can be a React element class or string.\n */\n\nexport var findChildByType = function findChildByType(children, type) {\n var result = findAllByType(children, type);\n return result && result[0];\n};\n/*\n * Create a new array of children excluding the ones matched the type\n */\n\nexport var withoutType = function withoutType(children, type) {\n var newChildren = [];\n var types;\n\n if (_isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n\n toArray(children).forEach(function (child) {\n var displayName = _get(child, 'type.displayName');\n\n if (displayName && types.indexOf(displayName) !== -1) {\n return;\n }\n\n newChildren.push(child);\n });\n return newChildren;\n};\n/**\n * validate the width and height props of a chart element\n * @param {Object} el A chart element\n * @return {Boolean} true If the props width and height are number, and greater than 0\n */\n\nexport var validateWidthHeight = function validateWidthHeight(el) {\n if (!el || !el.props) {\n return false;\n }\n\n var _el$props = el.props,\n width = _el$props.width,\n height = _el$props.height;\n\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0) {\n return false;\n }\n\n return true;\n};\nvar SVG_TAGS = ['a', 'altGlyph', 'altGlyphDef', 'altGlyphItem', 'animate', 'animateColor', 'animateMotion', 'animateTransform', 'circle', 'clipPath', 'color-profile', 'cursor', 'defs', 'desc', 'ellipse', 'feBlend', 'feColormatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence', 'filter', 'font', 'font-face', 'font-face-format', 'font-face-name', 'font-face-url', 'foreignObject', 'g', 'glyph', 'glyphRef', 'hkern', 'image', 'line', 'lineGradient', 'marker', 'mask', 'metadata', 'missing-glyph', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'script', 'set', 'stop', 'style', 'svg', 'switch', 'symbol', 'text', 'textPath', 'title', 'tref', 'tspan', 'use', 'view', 'vkern'];\n\nvar isSvgElement = function isSvgElement(child) {\n return child && child.type && _isString(child.type) && SVG_TAGS.indexOf(child.type) >= 0;\n};\n/**\n * Filter all the svg elements of children\n * @param {Array} children The children of a react element\n * @return {Array} All the svg elements\n */\n\n\nexport var filterSvgElements = function filterSvgElements(children) {\n var svgElements = [];\n toArray(children).forEach(function (entry) {\n if (isSvgElement(entry)) {\n svgElements.push(entry);\n }\n });\n return svgElements;\n};\n/**\n * Wether props of children changed\n * @param {Object} nextChildren The latest children\n * @param {Object} prevChildren The prev children\n * @return {Boolean} equal or not\n */\n\nexport var isChildrenEqual = function isChildrenEqual(nextChildren, prevChildren) {\n if (nextChildren === prevChildren) {\n return true;\n }\n\n var count = Children.count(nextChildren);\n\n if (count !== Children.count(prevChildren)) {\n return false;\n }\n\n if (count === 0) {\n return true;\n }\n\n if (count === 1) {\n // eslint-disable-next-line no-use-before-define,@typescript-eslint/no-use-before-define\n return isSingleChildEqual(_isArray(nextChildren) ? nextChildren[0] : nextChildren, _isArray(prevChildren) ? prevChildren[0] : prevChildren);\n }\n\n for (var i = 0; i < count; i++) {\n var nextChild = nextChildren[i];\n var prevChild = prevChildren[i];\n\n if (_isArray(nextChild) || _isArray(prevChild)) {\n if (!isChildrenEqual(nextChild, prevChild)) {\n return false;\n } // eslint-disable-next-line no-use-before-define,@typescript-eslint/no-use-before-define\n\n } else if (!isSingleChildEqual(nextChild, prevChild)) {\n return false;\n }\n }\n\n return true;\n};\nexport var isSingleChildEqual = function isSingleChildEqual(nextChild, prevChild) {\n if (_isNil(nextChild) && _isNil(prevChild)) {\n return true;\n }\n\n if (!_isNil(nextChild) && !_isNil(prevChild)) {\n var _ref = nextChild.props || {},\n nextChildren = _ref.children,\n nextProps = _objectWithoutProperties(_ref, [\"children\"]);\n\n var _ref2 = prevChild.props || {},\n prevChildren = _ref2.children,\n prevProps = _objectWithoutProperties(_ref2, [\"children\"]);\n\n if (nextChildren && prevChildren) {\n // eslint-disable-next-line no-use-before-define\n return shallowEqual(nextProps, prevProps) && isChildrenEqual(nextChildren, prevChildren);\n }\n\n if (!nextChildren && !prevChildren) {\n return shallowEqual(nextProps, prevProps);\n }\n\n return false;\n }\n\n return false;\n};\nexport var renderByOrder = function renderByOrder(children, renderMap) {\n var elements = [];\n var record = {};\n toArray(children).forEach(function (child, index) {\n if (isSvgElement(child)) {\n elements.push(child);\n } else if (child) {\n var displayName = getDisplayName(child.type);\n\n var _ref3 = renderMap[displayName] || {},\n handler = _ref3.handler,\n once = _ref3.once;\n\n if (handler && (!once || !record[displayName])) {\n var results = handler(child, displayName, index);\n elements.push(results);\n record[displayName] = true;\n }\n }\n });\n return elements;\n};\nexport var getReactEventByType = function getReactEventByType(e) {\n var type = e && e.type;\n\n if (type && REACT_BROWSER_EVENT_MAP[type]) {\n return REACT_BROWSER_EVENT_MAP[type];\n }\n\n return null;\n};\nexport var parseChildIndex = function parseChildIndex(child, children) {\n return toArray(children).indexOf(child);\n};","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","'use strict';\n\nmodule.exports = require('./components/card/Card');","/*! decimal.js-light v2.5.1 https://github.com/MikeMcl/decimal.js-light/LICENCE */\r\n;(function (globalScope) {\r\n 'use strict';\r\n\r\n\r\n /*\r\n * decimal.js-light v2.5.1\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js-light\r\n * Copyright (c) 2020 Michael Mclaughlin <M8ch88l@gmail.com>\r\n * MIT Expat Licence\r\n */\r\n\r\n\r\n // ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\r\n\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 var MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n Decimal = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed during run-time using `Decimal.config`.\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 by default by `toInteger`, `toDecimalPlaces`, `toExponential`,\r\n // `toFixed`, `toPrecision` and `toSignificantDigits`.\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 exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -MAX_E\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 MAX_E\r\n\r\n // The natural logarithm of 10.\r\n // 115 digits\r\n LN10: '2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286'\r\n },\r\n\r\n\r\n // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n exponentOutOfRange = decimalError + 'Exponent out of range: ',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n ONE,\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n MAX_E = mathfloor(MAX_SAFE_INTEGER / LOG_BASE), // 1286742750677284\r\n\r\n // Decimal.prototype object\r\n P = {};\r\n\r\n\r\n // Decimal prototype methods\r\n\r\n\r\n /*\r\n * absoluteValue abs\r\n * comparedTo cmp\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy idiv\r\n * equals eq\r\n * exponent\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * isInteger isint\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 * 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 * squareRoot sqrt\r\n * times mul\r\n * toDecimalPlaces todp\r\n * toExponential\r\n * toFixed\r\n * toInteger toint\r\n * toNumber\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits tosd\r\n * toString\r\n * valueOf val\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\n P.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s) 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 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 *\r\n */\r\n P.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this;\r\n\r\n y = new x.constructor(y);\r\n\r\n // Signs differ?\r\n if (x.s !== y.s) return x.s || -y.s;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ x.s < 0 ? 1 : -1;\r\n\r\n xdL = x.d.length;\r\n ydL = y.d.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 (x.d[i] !== y.d[i]) return x.d[i] > y.d[i] ^ x.s < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ x.s < 0 ? 1 : -1;\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\n P.decimalPlaces = P.dp = function () {\r\n var x = this,\r\n w = x.d.length - 1,\r\n dp = (w - x.e) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = x.d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) dp--;\r\n\r\n return dp < 0 ? 0 : dp;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.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`, truncated to `precision` significant digits.\r\n *\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(divide(x, new Ctor(y), 0, 1), Ctor.precision);\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\n P.equals = P.eq = function (y) {\r\n return !this.cmp(y);\r\n };\r\n\r\n\r\n /*\r\n * Return the (base 10) exponent value of this Decimal (this.e is the base 10000000 exponent).\r\n *\r\n */\r\n P.exponent = function () {\r\n return getBase10Exponent(this);\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\n P.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\n P.greaterThanOrEqualTo = P.gte = 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 an integer, otherwise return false.\r\n *\r\n */\r\n P.isInteger = P.isint = function () {\r\n return this.e > this.d.length - 2;\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\n P.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\n P.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, otherwise return false.\r\n *\r\n */\r\n P.isZero = 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 less than `y`, otherwise return false.\r\n *\r\n */\r\n P.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\n P.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, truncated to\r\n * `precision` significant digits.\r\n *\r\n * If no base is specified, return log[10](x).\r\n *\r\n * log[base](x) = ln(x) / ln(base)\r\n *\r\n * The maximum error of the result is 1 ulp (unit in the last place).\r\n *\r\n * [base] {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\n P.logarithm = P.log = function (base) {\r\n var r,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n wpr = pr + 5;\r\n\r\n // Default base is 10.\r\n if (base === void 0) {\r\n base = new Ctor(10);\r\n } else {\r\n base = new Ctor(base);\r\n\r\n // log[-b](x) = NaN\r\n // log[0](x) = NaN\r\n // log[1](x) = NaN\r\n if (base.s < 1 || base.eq(ONE)) throw Error(decimalError + 'NaN');\r\n }\r\n\r\n // log[b](-x) = NaN\r\n // log[b](0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // log[b](1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n external = false;\r\n r = divide(ln(x, wpr), ln(base, wpr), wpr);\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.minus = P.sub = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? subtract(x, y) : add(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n y = new Ctor(y);\r\n\r\n // x % 0 = NaN\r\n if (!y.s) throw Error(decimalError + 'NaN');\r\n\r\n // Return x if x is 0.\r\n if (!x.s) return round(new Ctor(x), pr);\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n q = divide(x, y, 0, 1).times(y);\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, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.naturalExponential = P.exp = function () {\r\n return exp(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 * truncated to `precision` significant digits.\r\n *\r\n */\r\n P.naturalLogarithm = P.ln = function () {\r\n return ln(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\n P.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s || 0;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.plus = P.add = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? add(x, y) : subtract(x, (y.s = -y.s, 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\n P.precision = P.sd = function (z) {\r\n var e, sd, w,\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 e = getBase10Exponent(x) + 1;\r\n w = x.d.length - 1;\r\n sd = w * LOG_BASE + 1;\r\n w = x.d[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) sd--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = x.d[0]; w >= 10; w /= 10) sd++;\r\n }\r\n\r\n return z && e > sd ? e : sd;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var e, n, pr, r, s, t, wpr,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n // Negative or zero?\r\n if (x.s < 1) {\r\n if (!x.s) return new Ctor(0);\r\n\r\n // sqrt(-x) = NaN\r\n throw Error(decimalError + 'NaN');\r\n }\r\n\r\n e = getBase10Exponent(x);\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(x.d);\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 pr = Ctor.precision;\r\n s = wpr = pr + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, wpr + 2)).times(0.5);\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === (n = digitsToString(r.d)).slice(0, wpr)) {\r\n n = n.slice(wpr - 3, wpr + 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 (s == wpr && 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 round(t, pr + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n } else if (n != '9999') {\r\n break;\r\n }\r\n\r\n wpr += 4;\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.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 // Return 0 if either is 0.\r\n if (!x.s || !y.s) return new Ctor(0);\r\n\r\n y.s *= x.s;\r\n e = x.e + y.e;\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 = e;\r\n\r\n return external ? round(y, Ctor.precision) : y;\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\n P.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 round(x, dp + getBase10Exponent(x) + 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\n P.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 = toString(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 = round(new Ctor(x), dp + 1, rm);\r\n str = toString(x, true, dp + 1);\r\n }\r\n\r\n return 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\n P.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) return toString(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 y = round(new Ctor(x), dp + getBase10Exponent(x) + 1, rm);\r\n str = toString(y.abs(), false, dp + getBase10Exponent(y) + 1);\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 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\n P.toInteger = P.toint = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(new Ctor(x), getBase10Exponent(x) + 1, Ctor.rounding);\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this Decimal converted to a number primitive.\r\n *\r\n */\r\n P.toNumber = function () {\r\n return +this;\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`,\r\n * truncated to `precision` significant digits.\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 * The maximum error is 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\n P.toPower = P.pow = function (y) {\r\n var e, k, pr, r, sign, yIsInt,\r\n x = this,\r\n Ctor = x.constructor,\r\n guard = 12,\r\n yn = +(y = new Ctor(y));\r\n\r\n // pow(x, 0) = 1\r\n if (!y.s) return new Ctor(ONE);\r\n\r\n x = new Ctor(x);\r\n\r\n // pow(0, y > 0) = 0\r\n // pow(0, y < 0) = Infinity\r\n if (!x.s) {\r\n if (y.s < 1) throw Error(decimalError + 'Infinity');\r\n return x;\r\n }\r\n\r\n // pow(1, y) = 1\r\n if (x.eq(ONE)) return x;\r\n\r\n pr = Ctor.precision;\r\n\r\n // pow(x, 1) = x\r\n if (y.eq(ONE)) return round(x, pr);\r\n\r\n e = y.e;\r\n k = y.d.length - 1;\r\n yIsInt = e >= k;\r\n sign = x.s;\r\n\r\n if (!yIsInt) {\r\n\r\n // pow(x < 0, y non-integer) = NaN\r\n if (sign < 0) throw Error(decimalError + 'NaN');\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n } else if ((k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = new Ctor(ONE);\r\n\r\n // Max k of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n e = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (k % 2) {\r\n r = r.times(x);\r\n truncate(r.d, e);\r\n }\r\n\r\n k = mathfloor(k / 2);\r\n if (k === 0) break;\r\n\r\n x = x.times(x);\r\n truncate(x.d, e);\r\n }\r\n\r\n external = true;\r\n\r\n return y.s < 0 ? new Ctor(ONE).div(r) : round(r, pr);\r\n }\r\n\r\n // Result is negative if x is negative and the last digit of integer y is odd.\r\n sign = sign < 0 && y.d[Math.max(e, k)] & 1 ? -1 : 1;\r\n\r\n x.s = 1;\r\n external = false;\r\n r = y.times(ln(x, pr + guard));\r\n external = true;\r\n r = exp(r);\r\n r.s = sign;\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 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\n P.toPrecision = function (sd, rm) {\r\n var e, str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n e = getBase10Exponent(x);\r\n str = toString(x, e <= Ctor.toExpNeg || 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 = round(new Ctor(x), sd, rm);\r\n e = getBase10Exponent(x);\r\n str = toString(x, sd <= e || e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return 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 */\r\n P.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 round(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\n P.toString = P.valueOf = P.val = P.toJSON = function () {\r\n var x = this,\r\n e = getBase10Exponent(x),\r\n Ctor = x.constructor;\r\n\r\n return toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\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 * add P.minus, P.plus\r\n * checkInt32 P.todp, P.toExponential, P.toFixed, P.toPrecision, P.tosd\r\n * digitsToString P.log, P.sqrt, P.pow, toString, exp, ln\r\n * divide P.div, P.idiv, P.log, P.mod, P.sqrt, exp, ln\r\n * exp P.exp, P.pow\r\n * getBase10Exponent P.exponent, P.sd, P.toint, P.sqrt, P.todp, P.toFixed, P.toPrecision,\r\n * P.toString, divide, round, toString, exp, ln\r\n * getLn10 P.log, ln\r\n * getZeroString digitsToString, toString\r\n * ln P.log, P.ln, P.pow, exp\r\n * parseDecimal Decimal\r\n * round P.abs, P.idiv, P.log, P.minus, P.mod, P.neg, P.plus, P.toint, P.sqrt,\r\n * P.times, P.todp, P.toExponential, P.toFixed, P.pow, P.toPrecision, P.tosd,\r\n * divide, getLn10, exp, ln\r\n * subtract P.minus, P.plus\r\n * toString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf\r\n * truncate P.pow\r\n *\r\n * Throws: P.log, P.mod, P.sd, P.sqrt, P.pow, checkInt32, divide, round,\r\n * getLn10, exp, ln, parseDecimal, Decimal, config\r\n */\r\n\r\n\r\n function add(x, y) {\r\n var carry, d, e, i, k, len, xd, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // If either is zero...\r\n if (!x.s || !y.s) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!y.s) y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n k = x.e;\r\n e = y.e;\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 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 = e;\r\n\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function 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 function 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\n var divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k) {\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) {\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, dp) {\r\n var cmp, e, i, k, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, 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 0?\r\n if (!x.s) return new Ctor(x);\r\n if (!y.s) throw Error(decimalError + 'Division by zero');\r\n\r\n e = x.e - y.e;\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 for (i = 0; yd[i] == (xd[i] || 0); ) ++i;\r\n if (yd[i] > (xd[i] || 0)) --e;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n } else if (dp) {\r\n sd = pr + (getBase10Exponent(x) - getBase10Exponent(y)) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) return new Ctor(0);\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / LOG_BASE + 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 // 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);\r\n xd = multiplyInteger(xd, k);\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);\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);\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);\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);\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\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n\r\n q.e = e;\r\n\r\n return round(q, dp ? pr + getBase10Exponent(q) + 1 : pr);\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x` truncated to `sd`\r\n * significant 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 * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n */\r\n function exp(x, sd) {\r\n var denominator, guard, pow, sum, t, wpr,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n if (getBase10Exponent(x) > 16) throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n\r\n // exp(0) = 1\r\n if (!x.s) return new Ctor(ONE);\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 (x.abs().gte(0.1)) {\r\n x = x.times(t); // x = x / 2^5\r\n k += 5;\r\n }\r\n\r\n // Estimate the precision increase 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(ONE);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = round(pow.times(x), wpr);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n while (k--) sum = round(sum.times(sum), wpr);\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n }\r\n }\r\n\r\n\r\n // Calculate the base 10 exponent from the base 1e7 exponent.\r\n function getBase10Exponent(x) {\r\n var e = x.e * LOG_BASE,\r\n w = x.d[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for (; w >= 10; w /= 10) e++;\r\n return e;\r\n }\r\n\r\n\r\n function getLn10(Ctor, sd, pr) {\r\n\r\n if (sd > Ctor.LN10.sd()) {\r\n\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(decimalError + 'LN10 precision limit exceeded');\r\n }\r\n\r\n return round(new Ctor(Ctor.LN10), sd);\r\n }\r\n\r\n\r\n function 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 natural logarithm of `x` truncated to `sd` significant\r\n * digits.\r\n *\r\n * ln(n) is non-terminating (n != 1)\r\n *\r\n */\r\n function ln(y, sd) {\r\n var c, c0, denominator, e, numerator, sum, t, wpr, 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 pr = Ctor.precision;\r\n\r\n // ln(-x) = NaN\r\n // ln(0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // ln(1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\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 if (x.eq(10)) {\r\n if (sd == null) external = true;\r\n return getLn10(Ctor, wpr);\r\n }\r\n\r\n wpr += guard;\r\n Ctor.precision = wpr;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n e = getBase10Exponent(x);\r\n\r\n if (Math.abs(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 = getBase10Exponent(x);\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 = ln(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(x, pr)) : x;\r\n }\r\n\r\n // x is reduced to a value near 1.\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(ONE), x.plus(ONE), wpr);\r\n x2 = round(x.times(x), wpr);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = round(numerator.times(x2), wpr);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr));\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.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\n function 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 e = e - i - 1;\r\n x.e = mathfloor(e / LOG_BASE);\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 && (x.e > MAX_E || x.e < -MAX_E)) throw Error(exponentOutOfRange + e);\r\n } else {\r\n\r\n // Zero.\r\n x.s = 0;\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 * Round `x` to `sd` significant digits, using rounding mode `rm` if present (truncate otherwise).\r\n */\r\n function round(x, sd, rm) {\r\n var i, j, k, n, rd, doRound, w, xdi,\r\n xd = x.d;\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 which contains the rounding digit, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // n: 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 (n = 1, k = xd[0]; k >= 10; k /= 10) n++;\r\n i = sd - n;\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 } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) return x;\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (n = 1; k >= 10; k /= 10) n++;\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 - n.\r\n j = i - LOG_BASE + n;\r\n }\r\n\r\n if (rm !== void 0) {\r\n k = mathpow(10, n - j - 1);\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / k % 10 | 0;\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n doRound = sd < 0 || xd[xdi + 1] !== void 0 || w % k;\r\n\r\n // The expression `w % mathpow(10, n - j - 1)` returns all the digits of w to the right of the\r\n // digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression will give\r\n // 714.\r\n\r\n doRound = rm < 4\r\n ? (rd || doRound) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || doRound || 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, n - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n }\r\n\r\n if (sd < 1 || !xd[0]) {\r\n if (doRound) {\r\n k = getBase10Exponent(x);\r\n xd.length = 1;\r\n\r\n // Convert sd to decimal places.\r\n sd = sd - k - 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 = mathfloor(-sd / LOG_BASE) || 0;\r\n } else {\r\n xd.length = 1;\r\n\r\n // Zero.\r\n xd[0] = x.e = x.s = 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, n - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (doRound) {\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 if ((xd[0] += k) == BASE) {\r\n xd[0] = 1;\r\n ++x.e;\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 if (external && (x.e > MAX_E || x.e < -MAX_E)) {\r\n throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function subtract(x, y) {\r\n var d, e, i, j, k, len, xd, xe, xLTy, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // Return y negated if x is zero.\r\n // Return x if y is zero and x is non-zero.\r\n if (!x.s || !y.s) {\r\n if (y.s) y.s = -y.s;\r\n else y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are non-zero numbers with the same sign.\r\n\r\n e = y.e;\r\n xe = x.e;\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If 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 zeros\r\n // needing to be prepended, but this can be avoided while still ensuring correct rounding by\r\n // 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 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(0);\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n //return external && xd.length >= pr / LOG_BASE ? round(y, pr) : y;\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function toString(x, isExp, sd) {\r\n var k,\r\n e = getBase10Exponent(x),\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 + (e < 0 ? 'e' : 'e+') + 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 x.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Does not strip trailing zeros.\r\n function 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 * clone\r\n * config/set\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\n function 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 * value {number|string|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(value) {\r\n var x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(value);\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 (value instanceof Decimal) {\r\n x.s = value.s;\r\n x.e = value.e;\r\n x.d = (value = value.d) ? value.slice() : value;\r\n return;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n\r\n // Reject Infinity/NaN.\r\n if (value * 0 !== 0) {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n if (value > 0) {\r\n x.s = 1;\r\n } else if (value < 0) {\r\n value = -value;\r\n x.s = -1;\r\n } else {\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (value === ~~value && value < 1e7) {\r\n x.e = 0;\r\n x.d = [value];\r\n return;\r\n }\r\n\r\n return parseDecimal(x, value.toString());\r\n } else if (typeof value !== 'string') {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n // Minus sign?\r\n if (value.charCodeAt(0) === 45) {\r\n value = value.slice(1);\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n if (isDecimal.test(value)) parseDecimal(x, value);\r\n else throw Error(invalidArgument + value);\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\r\n Decimal.clone = clone;\r\n Decimal.config = Decimal.set = config;\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'LN10'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\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 * 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 *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\n function config(obj) {\r\n if (!obj || typeof obj !== 'object') {\r\n throw Error(decimalError + 'Object expected');\r\n }\r\n var i, p, v,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -1 / 0, 0,\r\n 'toExpPos', 0, 1 / 0\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if ((v = obj[p = ps[i]]) !== 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 ((v = obj[p = 'LN10']) !== void 0) {\r\n if (v == Math.LN10) this[p] = new this(v);\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n\r\n // Create and configure initial Decimal constructor.\r\n Decimal = clone(Decimal);\r\n\r\n Decimal['default'] = Decimal.Decimal = Decimal;\r\n\r\n // Internal constant.\r\n ONE = new Decimal(1);\r\n\r\n\r\n // Export.\r\n\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () {\r\n return Decimal;\r\n });\r\n\r\n // Node and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = Decimal;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalScope) {\r\n globalScope = typeof self != 'undefined' && self && self.self == self\r\n ? self : Function('return this')();\r\n }\r\n\r\n globalScope.Decimal = Decimal;\r\n }\r\n})(this);\r\n","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","'use strict';\n\nmodule.exports = require('./components/fileupload/FileUpload');","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\n\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","'use strict';\n\nmodule.exports = require('./components/datatable/DataTable');","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any <Redirect>s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the <Router> is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n this._pendingLocation = location;\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this.unlisten) {\n // Any pre-mount location changes have been captured at\n // this point, so unregister the listener.\n this.unlisten();\n }\n if (!this.props.staticContext) {\n this.unlisten = this.props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n }\n });\n }\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n <RouterContext.Provider\n value={{\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }}\n >\n <HistoryContext.Provider\n children={this.props.children || null}\n value={this.props.history}\n />\n </RouterContext.Provider>\n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change <Router history>\"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a <Router> that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return <Router history={this.history} children={this.props.children} />;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<MemoryRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Redirect> outside a <Router>\");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n <Lifecycle\n onMount={() => {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n </RouterContext.Consumer>\n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `<Route${path ? ` path=\"${path}\"` : \"\"}>, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Route> outside a <Router>\");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // <Switch> already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return (\n <RouterContext.Provider value={props}>\n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n </RouterContext.Provider>\n );\n }}\n </RouterContext.Consumer>\n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use <Route component> and <Route children> in the same route; <Route component> will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use <Route render> and <Route children> in the same route; <Route render> will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n '<Route> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n '<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with <StaticRouter>\", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" <Router>, so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return <Router {...rest} history={history} staticContext={context} />;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<StaticRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first <Route> that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Switch> outside a <Router>\");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two <Route>s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n </RouterContext.Consumer>\n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n '<Switch> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n '<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a <Router>`\n );\n return (\n <Component\n {...remainingProps}\n {...context}\n ref={wrappedComponentRef}\n />\n );\n }}\n </RouterContext.Consumer>\n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(RouterContext).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","'use strict';\n\nmodule.exports = require('./components/toolbar/Toolbar');","import _isNil from \"lodash/isNil\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { getPercentValue } from './DataUtils';\nimport { parseScale, checkDomainOfScale, getTicksOfScale } from './ChartUtils';\nexport var RADIAN = Math.PI / 180;\nexport var degreeToRadian = function degreeToRadian(angle) {\n return angle * Math.PI / 180;\n};\nexport var radianToDegree = function radianToDegree(angleInRadian) {\n return angleInRadian * 180 / Math.PI;\n};\nexport var polarToCartesian = function polarToCartesian(cx, cy, radius, angle) {\n return {\n x: cx + Math.cos(-RADIAN * angle) * radius,\n y: cy + Math.sin(-RADIAN * angle) * radius\n };\n};\nexport var getMaxRadius = function getMaxRadius(width, height) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n return Math.min(Math.abs(width - (offset.left || 0) - (offset.right || 0)), Math.abs(height - (offset.top || 0) - (offset.bottom || 0))) / 2;\n};\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {Object} axisType The type of axes, radius-axis or angle-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\n\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height;\n var startAngle = props.startAngle,\n endAngle = props.endAngle;\n var cx = getPercentValue(props.cx, width, width / 2);\n var cy = getPercentValue(props.cy, height, height / 2);\n var maxRadius = getMaxRadius(width, height, offset);\n var innerRadius = getPercentValue(props.innerRadius, maxRadius, 0);\n var outerRadius = getPercentValue(props.outerRadius, maxRadius, maxRadius * 0.8);\n var ids = Object.keys(axisMap);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var domain = axis.domain,\n reversed = axis.reversed;\n var range;\n\n if (_isNil(axis.range)) {\n if (axisType === 'angleAxis') {\n range = [startAngle, endAngle];\n } else if (axisType === 'radiusAxis') {\n range = [innerRadius, outerRadius];\n }\n\n if (reversed) {\n range = [range[1], range[0]];\n }\n } else {\n range = axis.range;\n var _range = range;\n\n var _range2 = _slicedToArray(_range, 2);\n\n startAngle = _range2[0];\n endAngle = _range2[1];\n }\n\n var _parseScale = parseScale(axis, chartName),\n realScaleType = _parseScale.realScaleType,\n scale = _parseScale.scale;\n\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n range: range,\n radius: outerRadius,\n realScaleType: realScaleType,\n scale: scale,\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var distanceBetweenPoints = function distanceBetweenPoints(point, anotherPoint) {\n var x1 = point.x,\n y1 = point.y;\n var x2 = anotherPoint.x,\n y2 = anotherPoint.y;\n return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));\n};\nexport var getAngleOfPoint = function getAngleOfPoint(_ref, _ref2) {\n var x = _ref.x,\n y = _ref.y;\n var cx = _ref2.cx,\n cy = _ref2.cy;\n var radius = distanceBetweenPoints({\n x: x,\n y: y\n }, {\n x: cx,\n y: cy\n });\n\n if (radius <= 0) {\n return {\n radius: radius\n };\n }\n\n var cos = (x - cx) / radius;\n var angleInRadian = Math.acos(cos);\n\n if (y > cy) {\n angleInRadian = 2 * Math.PI - angleInRadian;\n }\n\n return {\n radius: radius,\n angle: radianToDegree(angleInRadian),\n angleInRadian: angleInRadian\n };\n};\nexport var formatAngleOfSector = function formatAngleOfSector(_ref3) {\n var startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return {\n startAngle: startAngle - min * 360,\n endAngle: endAngle - min * 360\n };\n};\n\nvar reverseFormatAngleOfSetor = function reverseFormatAngleOfSetor(angle, _ref4) {\n var startAngle = _ref4.startAngle,\n endAngle = _ref4.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return angle + min * 360;\n};\n\nexport var inRangeOfSector = function inRangeOfSector(_ref5, sector) {\n var x = _ref5.x,\n y = _ref5.y;\n\n var _getAngleOfPoint = getAngleOfPoint({\n x: x,\n y: y\n }, sector),\n radius = _getAngleOfPoint.radius,\n angle = _getAngleOfPoint.angle;\n\n var innerRadius = sector.innerRadius,\n outerRadius = sector.outerRadius;\n\n if (radius < innerRadius || radius > outerRadius) {\n return false;\n }\n\n if (radius === 0) {\n return true;\n }\n\n var _formatAngleOfSector = formatAngleOfSector(sector),\n startAngle = _formatAngleOfSector.startAngle,\n endAngle = _formatAngleOfSector.endAngle;\n\n var formatAngle = angle;\n var inRange;\n\n if (startAngle <= endAngle) {\n while (formatAngle > endAngle) {\n formatAngle -= 360;\n }\n\n while (formatAngle < startAngle) {\n formatAngle += 360;\n }\n\n inRange = formatAngle >= startAngle && formatAngle <= endAngle;\n } else {\n while (formatAngle > startAngle) {\n formatAngle -= 360;\n }\n\n while (formatAngle < endAngle) {\n formatAngle += 360;\n }\n\n inRange = formatAngle >= endAngle && formatAngle <= startAngle;\n }\n\n if (inRange) {\n return _objectSpread(_objectSpread({}, sector), {}, {\n radius: radius,\n angle: reverseFormatAngleOfSetor(formatAngle, sector)\n });\n }\n\n return null;\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * @fileOverview Layer\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nexport var Layer = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var children = props.children,\n className = props.className,\n others = _objectWithoutProperties(props, [\"children\", \"className\"]);\n\n var layerClass = classNames('recharts-layer', className);\n return /*#__PURE__*/React.createElement(\"g\", _extends({\n className: layerClass\n }, filterProps(others, true), {\n ref: ref\n }), children);\n});","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AuthError } from \"@azure/msal-common\";\n\n/**\n * BrowserAuthErrorMessage class containing string constants used by error codes and messages.\n */\nexport const BrowserConfigurationAuthErrorMessage = {\n redirectUriNotSet: {\n code: \"redirect_uri_empty\",\n desc: \"A redirect URI is required for all calls, and none has been set.\"\n },\n postLogoutUriNotSet: {\n code: \"post_logout_uri_empty\",\n desc: \"A post logout redirect has not been set.\"\n },\n storageNotSupportedError: {\n code: \"storage_not_supported\",\n desc: \"Given storage configuration option was not supported.\"\n },\n noRedirectCallbacksSet: {\n code: \"no_redirect_callbacks\",\n desc: \"No redirect callbacks have been set. Please call setRedirectCallbacks() with the appropriate function arguments before continuing. \" +\n \"More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics.\"\n },\n invalidCallbackObject: {\n code: \"invalid_callback_object\",\n desc: \"The object passed for the callback was invalid. \" +\n \"More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics.\"\n },\n stubPcaInstanceCalled: {\n code: \"stubbed_public_client_application_called\",\n desc: \"Stub instance of Public Client Application was called. If using msal-react, please ensure context is not used without a provider. For more visit: aka.ms/msaljs/browser-errors\"\n },\n inMemRedirectUnavailable: {\n code: \"in_mem_redirect_unavailable\",\n desc: \"Redirect cannot be supported. In-memory storage was selected and storeAuthStateInCookie=false, which would cause the library to be unable to handle the incoming hash. If you would like to use the redirect API, please use session/localStorage or set storeAuthStateInCookie=true.\"\n },\n entropyNotProvided: {\n code: \"entropy_not_provided\",\n desc: \"The available browser crypto interface requires entropy set via system.cryptoOptions.entropy configuration option.\"\n }\n};\n\n/**\n * Browser library error class thrown by the MSAL.js library for SPAs\n */\nexport class BrowserConfigurationAuthError extends AuthError {\n\n constructor(errorCode: string, errorMessage?: string) {\n super(errorCode, errorMessage);\n this.name = \"BrowserConfigurationAuthError\";\n\n Object.setPrototypeOf(this, BrowserConfigurationAuthError.prototype);\n }\n\n /**\n * Creates an error thrown when the redirect uri is empty (not set by caller)\n */\n static createRedirectUriEmptyError(): BrowserConfigurationAuthError {\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.redirectUriNotSet.code,\n BrowserConfigurationAuthErrorMessage.redirectUriNotSet.desc);\n }\n\n /**\n * Creates an error thrown when the post-logout redirect uri is empty (not set by caller)\n */\n static createPostLogoutRedirectUriEmptyError(): BrowserConfigurationAuthError {\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.postLogoutUriNotSet.code,\n BrowserConfigurationAuthErrorMessage.postLogoutUriNotSet.desc);\n }\n\n /**\n * Creates error thrown when given storage location is not supported.\n * @param givenStorageLocation \n */\n static createStorageNotSupportedError(givenStorageLocation: string): BrowserConfigurationAuthError {\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.storageNotSupportedError.code, `${BrowserConfigurationAuthErrorMessage.storageNotSupportedError.desc} Given Location: ${givenStorageLocation}`);\n }\n\n /**\n * Creates error thrown when redirect callbacks are not set before calling loginRedirect() or acquireTokenRedirect().\n */\n static createRedirectCallbacksNotSetError(): BrowserConfigurationAuthError {\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.noRedirectCallbacksSet.code, \n BrowserConfigurationAuthErrorMessage.noRedirectCallbacksSet.desc);\n }\n\n /**\n * Creates error thrown when the stub instance of PublicClientApplication is called.\n */\n static createStubPcaInstanceCalledError(): BrowserConfigurationAuthError {\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.stubPcaInstanceCalled.code,\n BrowserConfigurationAuthErrorMessage.stubPcaInstanceCalled.desc);\n }\n\n /*\n * Create an error thrown when in-memory storage is used and storeAuthStateInCookie=false.\n */\n static createInMemoryRedirectUnavailableError(): BrowserConfigurationAuthError {\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.inMemRedirectUnavailable.code, BrowserConfigurationAuthErrorMessage.inMemRedirectUnavailable.desc);\n }\n \n /**\n * Creates an error thrown when a crypto interface that requires entropy is initialized without entropy\n */\n static createEntropyNotProvided(): BrowserConfigurationAuthError {\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.entropyNotProvided.code, BrowserConfigurationAuthErrorMessage.entropyNotProvided.desc);\n }\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar DomHandler = /*#__PURE__*/function () {\n function DomHandler() {\n _classCallCheck(this, DomHandler);\n }\n\n _createClass(DomHandler, null, [{\n key: \"innerWidth\",\n value: function innerWidth(el) {\n if (el) {\n var width = el.offsetWidth;\n var style = getComputedStyle(el);\n width += parseFloat(style.paddingLeft) + parseFloat(style.paddingRight);\n return width;\n }\n\n return 0;\n }\n }, {\n key: \"width\",\n value: function width(el) {\n if (el) {\n var width = el.offsetWidth;\n var style = getComputedStyle(el);\n width -= parseFloat(style.paddingLeft) + parseFloat(style.paddingRight);\n return width;\n }\n\n return 0;\n }\n }, {\n key: \"getWindowScrollTop\",\n value: function getWindowScrollTop() {\n var doc = document.documentElement;\n return (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n }\n }, {\n key: \"getWindowScrollLeft\",\n value: function getWindowScrollLeft() {\n var doc = document.documentElement;\n return (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n }\n }, {\n key: \"getOuterWidth\",\n value: function getOuterWidth(el, margin) {\n if (el) {\n var width = el.offsetWidth;\n\n if (margin) {\n var style = getComputedStyle(el);\n width += parseFloat(style.marginLeft) + parseFloat(style.marginRight);\n }\n\n return width;\n }\n\n return 0;\n }\n }, {\n key: \"getOuterHeight\",\n value: function getOuterHeight(el, margin) {\n if (el) {\n var height = el.offsetHeight;\n\n if (margin) {\n var style = getComputedStyle(el);\n height += parseFloat(style.marginTop) + parseFloat(style.marginBottom);\n }\n\n return height;\n }\n\n return 0;\n }\n }, {\n key: \"getClientHeight\",\n value: function getClientHeight(el, margin) {\n if (el) {\n var height = el.clientHeight;\n\n if (margin) {\n var style = getComputedStyle(el);\n height += parseFloat(style.marginTop) + parseFloat(style.marginBottom);\n }\n\n return height;\n }\n\n return 0;\n }\n }, {\n key: \"getViewport\",\n value: function getViewport() {\n var win = window,\n d = document,\n e = d.documentElement,\n g = d.getElementsByTagName('body')[0],\n w = win.innerWidth || e.clientWidth || g.clientWidth,\n h = win.innerHeight || e.clientHeight || g.clientHeight;\n return {\n width: w,\n height: h\n };\n }\n }, {\n key: \"getOffset\",\n value: function getOffset(el) {\n if (el) {\n var rect = el.getBoundingClientRect();\n return {\n top: rect.top + (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0),\n left: rect.left + (window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0)\n };\n }\n\n return {\n top: 'auto',\n left: 'auto'\n };\n }\n }, {\n key: \"generateZIndex\",\n value: function generateZIndex() {\n this.zindex = this.zindex || 999;\n return ++this.zindex;\n }\n }, {\n key: \"getCurrentZIndex\",\n value: function getCurrentZIndex() {\n return this.zindex;\n }\n }, {\n key: \"index\",\n value: function index(element) {\n if (element) {\n var children = element.parentNode.childNodes;\n var num = 0;\n\n for (var i = 0; i < children.length; i++) {\n if (children[i] === element) return num;\n if (children[i].nodeType === 1) num++;\n }\n }\n\n return -1;\n }\n }, {\n key: \"addMultipleClasses\",\n value: function addMultipleClasses(element, className) {\n if (element) {\n if (element.classList) {\n var styles = className.split(' ');\n\n for (var i = 0; i < styles.length; i++) {\n element.classList.add(styles[i]);\n }\n } else {\n var _styles = className.split(' ');\n\n for (var _i = 0; _i < _styles.length; _i++) {\n element.className += ' ' + _styles[_i];\n }\n }\n }\n }\n }, {\n key: \"addClass\",\n value: function addClass(element, className) {\n if (element) {\n if (element.classList) element.classList.add(className);else element.className += ' ' + className;\n }\n }\n }, {\n key: \"removeClass\",\n value: function removeClass(element, className) {\n if (element) {\n if (element.classList) element.classList.remove(className);else element.className = element.className.replace(new RegExp('(^|\\\\b)' + className.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n }\n }\n }, {\n key: \"hasClass\",\n value: function hasClass(element, className) {\n if (element) {\n if (element.classList) return element.classList.contains(className);else return new RegExp('(^| )' + className + '( |$)', 'gi').test(element.className);\n }\n }\n }, {\n key: \"find\",\n value: function find(element, selector) {\n return element ? Array.from(element.querySelectorAll(selector)) : [];\n }\n }, {\n key: \"findSingle\",\n value: function findSingle(element, selector) {\n if (element) {\n return element.querySelector(selector);\n }\n\n return null;\n }\n }, {\n key: \"getHeight\",\n value: function getHeight(el) {\n if (el) {\n var height = el.offsetHeight;\n var style = getComputedStyle(el);\n height -= parseFloat(style.paddingTop) + parseFloat(style.paddingBottom) + parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);\n return height;\n }\n\n return 0;\n }\n }, {\n key: \"getWidth\",\n value: function getWidth(el) {\n if (el) {\n var width = el.offsetWidth;\n var style = getComputedStyle(el);\n width -= parseFloat(style.paddingLeft) + parseFloat(style.paddingRight) + parseFloat(style.borderLeftWidth) + parseFloat(style.borderRightWidth);\n return width;\n }\n\n return 0;\n }\n }, {\n key: \"absolutePosition\",\n value: function absolutePosition(element, target) {\n if (element) {\n var elementDimensions = element.offsetParent ? {\n width: element.offsetWidth,\n height: element.offsetHeight\n } : this.getHiddenElementDimensions(element);\n var elementOuterHeight = elementDimensions.height;\n var elementOuterWidth = elementDimensions.width;\n var targetOuterHeight = target.offsetHeight;\n var targetOuterWidth = target.offsetWidth;\n var targetOffset = target.getBoundingClientRect();\n var windowScrollTop = this.getWindowScrollTop();\n var windowScrollLeft = this.getWindowScrollLeft();\n var viewport = this.getViewport();\n var top, left;\n\n if (targetOffset.top + targetOuterHeight + elementOuterHeight > viewport.height) {\n top = targetOffset.top + windowScrollTop - elementOuterHeight;\n\n if (top < 0) {\n top = windowScrollTop;\n }\n\n element.style.transformOrigin = 'bottom';\n } else {\n top = targetOuterHeight + targetOffset.top + windowScrollTop;\n element.style.transformOrigin = 'top';\n }\n\n if (targetOffset.left + targetOuterWidth + elementOuterWidth > viewport.width) left = Math.max(0, targetOffset.left + windowScrollLeft + targetOuterWidth - elementOuterWidth);else left = targetOffset.left + windowScrollLeft;\n element.style.top = top + 'px';\n element.style.left = left + 'px';\n }\n }\n }, {\n key: \"relativePosition\",\n value: function relativePosition(element, target) {\n if (element) {\n var elementDimensions = element.offsetParent ? {\n width: element.offsetWidth,\n height: element.offsetHeight\n } : this.getHiddenElementDimensions(element);\n var targetHeight = target.offsetHeight;\n var targetOffset = target.getBoundingClientRect();\n var viewport = this.getViewport();\n var top, left;\n\n if (targetOffset.top + targetHeight + elementDimensions.height > viewport.height) {\n top = -1 * elementDimensions.height;\n\n if (targetOffset.top + top < 0) {\n top = -1 * targetOffset.top;\n }\n\n element.style.transformOrigin = 'bottom';\n } else {\n top = targetHeight;\n element.style.transformOrigin = 'top';\n }\n\n if (elementDimensions.width > viewport.width) {\n // element wider then viewport and cannot fit on screen (align at left side of viewport)\n left = targetOffset.left * -1;\n } else if (targetOffset.left + elementDimensions.width > viewport.width) {\n // element wider then viewport but can be fit on screen (align at right side of viewport)\n left = (targetOffset.left + elementDimensions.width - viewport.width) * -1;\n } else {\n // element fits on screen (align with target)\n left = 0;\n }\n\n element.style.top = top + 'px';\n element.style.left = left + 'px';\n }\n }\n }, {\n key: \"flipfitCollision\",\n value: function flipfitCollision(element, target) {\n var _this = this;\n\n var my = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'left top';\n var at = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'left bottom';\n var callback = arguments.length > 4 ? arguments[4] : undefined;\n var targetOffset = target.getBoundingClientRect();\n var viewport = this.getViewport();\n var myArr = my.split(' ');\n var atArr = at.split(' ');\n\n var getPositionValue = function getPositionValue(arr, isOffset) {\n return isOffset ? +arr.substring(arr.search(/(\\+|-)/g)) || 0 : arr.substring(0, arr.search(/(\\+|-)/g)) || arr;\n };\n\n var position = {\n my: {\n x: getPositionValue(myArr[0]),\n y: getPositionValue(myArr[1] || myArr[0]),\n offsetX: getPositionValue(myArr[0], true),\n offsetY: getPositionValue(myArr[1] || myArr[0], true)\n },\n at: {\n x: getPositionValue(atArr[0]),\n y: getPositionValue(atArr[1] || atArr[0]),\n offsetX: getPositionValue(atArr[0], true),\n offsetY: getPositionValue(atArr[1] || atArr[0], true)\n }\n };\n var myOffset = {\n left: function left() {\n var totalOffset = position.my.offsetX + position.at.offsetX;\n return totalOffset + targetOffset.left + (position.my.x === 'left' ? 0 : -1 * (position.my.x === 'center' ? _this.getOuterWidth(element) / 2 : _this.getOuterWidth(element)));\n },\n top: function top() {\n var totalOffset = position.my.offsetY + position.at.offsetY;\n return totalOffset + targetOffset.top + (position.my.y === 'top' ? 0 : -1 * (position.my.y === 'center' ? _this.getOuterHeight(element) / 2 : _this.getOuterHeight(element)));\n }\n };\n var alignWithAt = {\n count: {\n x: 0,\n y: 0\n },\n left: function left() {\n var left = myOffset.left();\n var scrollLeft = DomHandler.getWindowScrollLeft();\n element.style.left = left + scrollLeft + 'px';\n\n if (this.count.x === 2) {\n element.style.left = scrollLeft + 'px';\n this.count.x = 0;\n } else if (left < 0) {\n this.count.x++;\n position.my.x = 'left';\n position.at.x = 'right';\n position.my.offsetX *= -1;\n position.at.offsetX *= -1;\n this.right();\n }\n },\n right: function right() {\n var left = myOffset.left() + DomHandler.getOuterWidth(target);\n var scrollLeft = DomHandler.getWindowScrollLeft();\n element.style.left = left + scrollLeft + 'px';\n\n if (this.count.x === 2) {\n element.style.left = viewport.width - DomHandler.getOuterWidth(element) + scrollLeft + 'px';\n this.count.x = 0;\n } else if (left + DomHandler.getOuterWidth(element) > viewport.width) {\n this.count.x++;\n position.my.x = 'right';\n position.at.x = 'left';\n position.my.offsetX *= -1;\n position.at.offsetX *= -1;\n this.left();\n }\n },\n top: function top() {\n var top = myOffset.top();\n var scrollTop = DomHandler.getWindowScrollTop();\n element.style.top = top + scrollTop + 'px';\n\n if (this.count.y === 2) {\n element.style.left = scrollTop + 'px';\n this.count.y = 0;\n } else if (top < 0) {\n this.count.y++;\n position.my.y = 'top';\n position.at.y = 'bottom';\n position.my.offsetY *= -1;\n position.at.offsetY *= -1;\n this.bottom();\n }\n },\n bottom: function bottom() {\n var top = myOffset.top() + DomHandler.getOuterHeight(target);\n var scrollTop = DomHandler.getWindowScrollTop();\n element.style.top = top + scrollTop + 'px';\n\n if (this.count.y === 2) {\n element.style.left = viewport.height - DomHandler.getOuterHeight(element) + scrollTop + 'px';\n this.count.y = 0;\n } else if (top + DomHandler.getOuterHeight(target) > viewport.height) {\n this.count.y++;\n position.my.y = 'bottom';\n position.at.y = 'top';\n position.my.offsetY *= -1;\n position.at.offsetY *= -1;\n this.top();\n }\n },\n center: function center(axis) {\n if (axis === 'y') {\n var top = myOffset.top() + DomHandler.getOuterHeight(target) / 2;\n element.style.top = top + DomHandler.getWindowScrollTop() + 'px';\n\n if (top < 0) {\n this.bottom();\n } else if (top + DomHandler.getOuterHeight(target) > viewport.height) {\n this.top();\n }\n } else {\n var left = myOffset.left() + DomHandler.getOuterWidth(target) / 2;\n element.style.left = left + DomHandler.getWindowScrollLeft() + 'px';\n\n if (left < 0) {\n this.left();\n } else if (left + DomHandler.getOuterWidth(element) > viewport.width) {\n this.right();\n }\n }\n }\n };\n alignWithAt[position.at.x]('x');\n alignWithAt[position.at.y]('y');\n\n if (this.isFunction(callback)) {\n callback(position);\n }\n }\n }, {\n key: \"findCollisionPosition\",\n value: function findCollisionPosition(position) {\n if (position) {\n var isAxisY = position === 'top' || position === 'bottom';\n var myXPosition = position === 'left' ? 'right' : 'left';\n var myYPosition = position === 'top' ? 'bottom' : 'top';\n\n if (isAxisY) {\n return {\n axis: 'y',\n my: \"center \".concat(myYPosition),\n at: \"center \".concat(position)\n };\n }\n\n return {\n axis: 'x',\n my: \"\".concat(myXPosition, \" center\"),\n at: \"\".concat(position, \" center\")\n };\n }\n }\n }, {\n key: \"getParents\",\n value: function getParents(element) {\n var parents = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return element['parentNode'] === null ? parents : this.getParents(element.parentNode, parents.concat([element.parentNode]));\n }\n }, {\n key: \"getScrollableParents\",\n value: function getScrollableParents(element) {\n var scrollableParents = [];\n\n if (element) {\n var parents = this.getParents(element);\n var overflowRegex = /(auto|scroll)/;\n\n var overflowCheck = function overflowCheck(node) {\n var styleDeclaration = window['getComputedStyle'](node, null);\n return overflowRegex.test(styleDeclaration.getPropertyValue('overflow')) || overflowRegex.test(styleDeclaration.getPropertyValue('overflowX')) || overflowRegex.test(styleDeclaration.getPropertyValue('overflowY'));\n };\n\n var _iterator = _createForOfIteratorHelper(parents),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var parent = _step.value;\n var scrollSelectors = parent.nodeType === 1 && parent.dataset['scrollselectors'];\n\n if (scrollSelectors) {\n var selectors = scrollSelectors.split(',');\n\n var _iterator2 = _createForOfIteratorHelper(selectors),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var selector = _step2.value;\n var el = this.findSingle(parent, selector);\n\n if (el && overflowCheck(el)) {\n scrollableParents.push(el);\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n return scrollableParents;\n }\n }, {\n key: \"getHiddenElementOuterHeight\",\n value: function getHiddenElementOuterHeight(element) {\n if (element) {\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n var elementHeight = element.offsetHeight;\n element.style.display = 'none';\n element.style.visibility = 'visible';\n return elementHeight;\n }\n\n return 0;\n }\n }, {\n key: \"getHiddenElementOuterWidth\",\n value: function getHiddenElementOuterWidth(element) {\n if (element) {\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n var elementWidth = element.offsetWidth;\n element.style.display = 'none';\n element.style.visibility = 'visible';\n return elementWidth;\n }\n\n return 0;\n }\n }, {\n key: \"getHiddenElementDimensions\",\n value: function getHiddenElementDimensions(element) {\n var dimensions = {};\n\n if (element) {\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n dimensions.width = element.offsetWidth;\n dimensions.height = element.offsetHeight;\n element.style.display = 'none';\n element.style.visibility = 'visible';\n }\n\n return dimensions;\n }\n }, {\n key: \"fadeIn\",\n value: function fadeIn(element, duration) {\n if (element) {\n element.style.opacity = 0;\n var last = +new Date();\n var opacity = 0;\n\n var tick = function tick() {\n opacity = +element.style.opacity + (new Date().getTime() - last) / duration;\n element.style.opacity = opacity;\n last = +new Date();\n\n if (+opacity < 1) {\n window.requestAnimationFrame && requestAnimationFrame(tick) || setTimeout(tick, 16);\n }\n };\n\n tick();\n }\n }\n }, {\n key: \"fadeOut\",\n value: function fadeOut(element, ms) {\n if (element) {\n var opacity = 1,\n interval = 50,\n duration = ms,\n gap = interval / duration;\n var fading = setInterval(function () {\n opacity -= gap;\n\n if (opacity <= 0) {\n opacity = 0;\n clearInterval(fading);\n }\n\n element.style.opacity = opacity;\n }, interval);\n }\n }\n }, {\n key: \"getUserAgent\",\n value: function getUserAgent() {\n return navigator.userAgent;\n }\n }, {\n key: \"isIOS\",\n value: function isIOS() {\n return /iPad|iPhone|iPod/.test(navigator.userAgent) && !window['MSStream'];\n }\n }, {\n key: \"isAndroid\",\n value: function isAndroid() {\n return /(android)/i.test(navigator.userAgent);\n }\n }, {\n key: \"isFunction\",\n value: function isFunction(obj) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n }\n }, {\n key: \"appendChild\",\n value: function appendChild(element, target) {\n if (this.isElement(target)) target.appendChild(element);else if (target.el && target.el.nativeElement) target.el.nativeElement.appendChild(element);else throw new Error('Cannot append ' + target + ' to ' + element);\n }\n }, {\n key: \"removeChild\",\n value: function removeChild(element, target) {\n if (this.isElement(target)) target.removeChild(element);else if (target.el && target.el.nativeElement) target.el.nativeElement.removeChild(element);else throw new Error('Cannot remove ' + element + ' from ' + target);\n }\n }, {\n key: \"isElement\",\n value: function isElement(obj) {\n return (typeof HTMLElement === \"undefined\" ? \"undefined\" : _typeof(HTMLElement)) === \"object\" ? obj instanceof HTMLElement : obj && _typeof(obj) === \"object\" && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === \"string\";\n }\n }, {\n key: \"scrollInView\",\n value: function scrollInView(container, item) {\n var borderTopValue = getComputedStyle(container).getPropertyValue('borderTopWidth');\n var borderTop = borderTopValue ? parseFloat(borderTopValue) : 0;\n var paddingTopValue = getComputedStyle(container).getPropertyValue('paddingTop');\n var paddingTop = paddingTopValue ? parseFloat(paddingTopValue) : 0;\n var containerRect = container.getBoundingClientRect();\n var itemRect = item.getBoundingClientRect();\n var offset = itemRect.top + document.body.scrollTop - (containerRect.top + document.body.scrollTop) - borderTop - paddingTop;\n var scroll = container.scrollTop;\n var elementHeight = container.clientHeight;\n var itemHeight = this.getOuterHeight(item);\n\n if (offset < 0) {\n container.scrollTop = scroll + offset;\n } else if (offset + itemHeight > elementHeight) {\n container.scrollTop = scroll + offset - elementHeight + itemHeight;\n }\n }\n }, {\n key: \"clearSelection\",\n value: function clearSelection() {\n if (window.getSelection) {\n if (window.getSelection().empty) {\n window.getSelection().empty();\n } else if (window.getSelection().removeAllRanges && window.getSelection().rangeCount > 0 && window.getSelection().getRangeAt(0).getClientRects().length > 0) {\n window.getSelection().removeAllRanges();\n }\n } else if (document['selection'] && document['selection'].empty) {\n try {\n document['selection'].empty();\n } catch (error) {//ignore IE bug\n }\n }\n }\n }, {\n key: \"calculateScrollbarWidth\",\n value: function calculateScrollbarWidth(el) {\n if (el) {\n var style = getComputedStyle(el);\n return el.offsetWidth - el.clientWidth - parseFloat(style.borderLeftWidth) - parseFloat(style.borderRightWidth);\n } else {\n if (this.calculatedScrollbarWidth != null) return this.calculatedScrollbarWidth;\n var scrollDiv = document.createElement(\"div\");\n scrollDiv.className = \"p-scrollbar-measure\";\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n this.calculatedScrollbarWidth = scrollbarWidth;\n return scrollbarWidth;\n }\n }\n }, {\n key: \"getBrowser\",\n value: function getBrowser() {\n if (!this.browser) {\n var matched = this.resolveUserAgent();\n this.browser = {};\n\n if (matched.browser) {\n this.browser[matched.browser] = true;\n this.browser['version'] = matched.version;\n }\n\n if (this.browser['chrome']) {\n this.browser['webkit'] = true;\n } else if (this.browser['webkit']) {\n this.browser['safari'] = true;\n }\n }\n\n return this.browser;\n }\n }, {\n key: \"resolveUserAgent\",\n value: function resolveUserAgent() {\n var ua = navigator.userAgent.toLowerCase();\n var match = /(chrome)[ ]([\\w.]+)/.exec(ua) || /(webkit)[ ]([\\w.]+)/.exec(ua) || /(opera)(?:.*version|)[ ]([\\w.]+)/.exec(ua) || /(msie) ([\\w.]+)/.exec(ua) || ua.indexOf(\"compatible\") < 0 && /(mozilla)(?:.*? rv:([\\w.]+)|)/.exec(ua) || [];\n return {\n browser: match[1] || \"\",\n version: match[2] || \"0\"\n };\n }\n }, {\n key: \"isVisible\",\n value: function isVisible(element) {\n return element && element.offsetParent != null;\n }\n }, {\n key: \"getFocusableElements\",\n value: function getFocusableElements(element) {\n var focusableElements = DomHandler.find(element, \"button:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden]),\\n [href][clientHeight][clientWidth]:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden]),\\n input:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden]), select:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden]),\\n textarea:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden]), [tabIndex]:not([tabIndex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden]),\\n [contenteditable]:not([tabIndex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden])\");\n var visibleFocusableElements = [];\n\n var _iterator3 = _createForOfIteratorHelper(focusableElements),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var focusableElement = _step3.value;\n if (getComputedStyle(focusableElement).display !== \"none\" && getComputedStyle(focusableElement).visibility !== \"hidden\") visibleFocusableElements.push(focusableElement);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n return visibleFocusableElements;\n }\n }]);\n\n return DomHandler;\n}();\n\nexports.default = DomHandler;","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Ripple = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _DomHandler = _interopRequireDefault(require(\"../utils/DomHandler\"));\n\nvar _PrimeReact = _interopRequireDefault(require(\"../utils/PrimeReact\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar Ripple = /*#__PURE__*/function (_Component) {\n _inherits(Ripple, _Component);\n\n var _super = _createSuper(Ripple);\n\n function Ripple(props) {\n var _this;\n\n _classCallCheck(this, Ripple);\n\n _this = _super.call(this, props);\n _this.onMouseDown = _this.onMouseDown.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(Ripple, [{\n key: \"getTarget\",\n value: function getTarget() {\n return this.ink && this.ink.parentElement;\n }\n }, {\n key: \"bindEvents\",\n value: function bindEvents() {\n if (this.target) {\n this.target.addEventListener('mousedown', this.onMouseDown);\n }\n }\n }, {\n key: \"unbindEvents\",\n value: function unbindEvents() {\n if (this.target) {\n this.target.removeEventListener('mousedown', this.onMouseDown);\n }\n }\n }, {\n key: \"onMouseDown\",\n value: function onMouseDown(event) {\n if (!this.ink || getComputedStyle(this.ink, null).display === 'none') {\n return;\n }\n\n _DomHandler.default.removeClass(this.ink, 'p-ink-active');\n\n if (!_DomHandler.default.getHeight(this.ink) && !_DomHandler.default.getWidth(this.ink)) {\n var d = Math.max(_DomHandler.default.getOuterWidth(this.target), _DomHandler.default.getOuterHeight(this.target));\n this.ink.style.height = d + 'px';\n this.ink.style.width = d + 'px';\n }\n\n var offset = _DomHandler.default.getOffset(this.target);\n\n var x = event.pageX - offset.left + document.body.scrollTop - _DomHandler.default.getWidth(this.ink) / 2;\n var y = event.pageY - offset.top + document.body.scrollLeft - _DomHandler.default.getHeight(this.ink) / 2;\n this.ink.style.top = y + 'px';\n this.ink.style.left = x + 'px';\n\n _DomHandler.default.addClass(this.ink, 'p-ink-active');\n }\n }, {\n key: \"onAnimationEnd\",\n value: function onAnimationEnd(event) {\n _DomHandler.default.removeClass(event.currentTarget, 'p-ink-active');\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.ink) {\n this.target = this.getTarget();\n this.bindEvents();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (this.ink && !this.target) {\n this.target = this.getTarget();\n this.bindEvents();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.ink) {\n this.target = null;\n this.unbindEvents();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n return _PrimeReact.default.ripple && /*#__PURE__*/_react.default.createElement(\"span\", {\n ref: function ref(el) {\n return _this2.ink = el;\n },\n className: \"p-ink\",\n onAnimationEnd: this.onAnimationEnd\n });\n }\n }]);\n\n return Ripple;\n}(_react.Component);\n\nexports.Ripple = Ripple;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar ObjectUtils = /*#__PURE__*/function () {\n function ObjectUtils() {\n _classCallCheck(this, ObjectUtils);\n }\n\n _createClass(ObjectUtils, null, [{\n key: \"equals\",\n value: function equals(obj1, obj2, field) {\n if (field && obj1 && _typeof(obj1) === 'object' && obj2 && _typeof(obj2) === 'object') return this.resolveFieldData(obj1, field) === this.resolveFieldData(obj2, field);else return this.deepEquals(obj1, obj2);\n }\n }, {\n key: \"deepEquals\",\n value: function deepEquals(a, b) {\n if (a === b) return true;\n\n if (a && b && _typeof(a) == 'object' && _typeof(b) == 'object') {\n var arrA = Array.isArray(a),\n arrB = Array.isArray(b),\n i,\n length,\n key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length !== b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!this.deepEquals(a[i], b[i])) return false;\n }\n\n return true;\n }\n\n if (arrA !== arrB) return false;\n var dateA = a instanceof Date,\n dateB = b instanceof Date;\n if (dateA !== dateB) return false;\n if (dateA && dateB) return a.getTime() === b.getTime();\n var regexpA = a instanceof RegExp,\n regexpB = b instanceof RegExp;\n if (regexpA !== regexpB) return false;\n if (regexpA && regexpB) return a.toString() === b.toString();\n var keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n }\n\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (!this.deepEquals(a[key], b[key])) return false;\n }\n\n return true;\n }\n /*eslint no-self-compare: \"off\"*/\n\n\n return a !== a && b !== b;\n }\n }, {\n key: \"resolveFieldData\",\n value: function resolveFieldData(data, field) {\n if (this.isFunction(field)) {\n return field(data);\n } else {\n if (data && field) {\n if (field.indexOf('.') === -1) {\n return data[field];\n } else {\n var fields = field.split('.');\n var value = data;\n\n for (var i = 0, len = fields.length; i < len; ++i) {\n if (value == null) {\n return null;\n }\n\n value = value[fields[i]];\n }\n\n return value;\n }\n } else {\n return null;\n }\n }\n }\n }, {\n key: \"isFunction\",\n value: function isFunction(obj) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n }\n }, {\n key: \"findDiffKeys\",\n value: function findDiffKeys(obj1, obj2) {\n if (!obj1 || !obj2) {\n return {};\n }\n\n return Object.keys(obj1).filter(function (key) {\n return !obj2.hasOwnProperty(key);\n }).reduce(function (result, current) {\n result[current] = obj1[current];\n return result;\n }, {});\n }\n }, {\n key: \"reorderArray\",\n value: function reorderArray(value, from, to) {\n var target;\n\n if (value && from !== to) {\n if (to >= value.length) {\n target = to - value.length;\n\n while (target-- + 1) {\n value.push(undefined);\n }\n }\n\n value.splice(to, 0, value.splice(from, 1)[0]);\n }\n }\n }, {\n key: \"findIndexInList\",\n value: function findIndexInList(value, list) {\n var index = -1;\n\n if (list) {\n for (var i = 0; i < list.length; i++) {\n if (list[i] === value) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n }\n }, {\n key: \"getJSXElement\",\n value: function getJSXElement(obj) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n\n return this.isFunction(obj) ? obj.apply(void 0, params) : obj;\n }\n }, {\n key: \"removeAccents\",\n value: function removeAccents(str) {\n if (str && str.search(/[\\xC0-\\xFF]/g) > -1) {\n str = str.replace(/[\\xC0-\\xC5]/g, \"A\").replace(/[\\xC6]/g, \"AE\").replace(/[\\xC7]/g, \"C\").replace(/[\\xC8-\\xCB]/g, \"E\").replace(/[\\xCC-\\xCF]/g, \"I\").replace(/[\\xD0]/g, \"D\").replace(/[\\xD1]/g, \"N\").replace(/[\\xD2-\\xD6\\xD8]/g, \"O\").replace(/[\\xD9-\\xDC]/g, \"U\").replace(/[\\xDD]/g, \"Y\").replace(/[\\xDE]/g, \"P\").replace(/[\\xE0-\\xE5]/g, \"a\").replace(/[\\xE6]/g, \"ae\").replace(/[\\xE7]/g, \"c\").replace(/[\\xE8-\\xEB]/g, \"e\").replace(/[\\xEC-\\xEF]/g, \"i\").replace(/[\\xF1]/g, \"n\").replace(/[\\xF2-\\xF6\\xF8]/g, \"o\").replace(/[\\xF9-\\xFC]/g, \"u\").replace(/[\\xFE]/g, \"p\").replace(/[\\xFD\\xFF]/g, \"y\");\n }\n\n return str;\n }\n }]);\n\n return ObjectUtils;\n}();\n\nexports.default = ObjectUtils;","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","export default function warn(s) {\n console.warn('[react-ga]', s);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar _excluded = [\"to\", \"target\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport warn from '../utils/console/warn';\nvar NEWTAB = '_blank';\nvar MIDDLECLICK = 1;\n\nvar OutboundLink = /*#__PURE__*/function (_Component) {\n _inherits(OutboundLink, _Component);\n\n var _super = _createSuper(OutboundLink);\n\n function OutboundLink() {\n var _this;\n\n _classCallCheck(this, OutboundLink);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"handleClick\", function (event) {\n var _this$props = _this.props,\n target = _this$props.target,\n eventLabel = _this$props.eventLabel,\n to = _this$props.to,\n onClick = _this$props.onClick,\n trackerNames = _this$props.trackerNames;\n var eventMeta = {\n label: eventLabel\n };\n var sameTarget = target !== NEWTAB;\n var normalClick = !(event.ctrlKey || event.shiftKey || event.metaKey || event.button === MIDDLECLICK);\n\n if (sameTarget && normalClick) {\n event.preventDefault();\n OutboundLink.trackLink(eventMeta, function () {\n window.location.href = to;\n }, trackerNames);\n } else {\n OutboundLink.trackLink(eventMeta, function () {}, trackerNames);\n }\n\n if (onClick) {\n onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(OutboundLink, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n href = _this$props2.to,\n target = _this$props2.target,\n oldProps = _objectWithoutProperties(_this$props2, _excluded);\n\n var props = _objectSpread(_objectSpread({}, oldProps), {}, {\n target: target,\n href: href,\n onClick: this.handleClick\n });\n\n if (target === NEWTAB) {\n props.rel = \"\".concat(props.rel ? props.rel : '', \" noopener noreferrer\").trim();\n }\n\n delete props.eventLabel;\n delete props.trackerNames;\n return /*#__PURE__*/React.createElement('a', props);\n }\n }]);\n\n return OutboundLink;\n}(Component);\n\n_defineProperty(OutboundLink, \"trackLink\", function () {\n warn('ga tracking not enabled');\n});\n\nexport { OutboundLink as default };\nOutboundLink.propTypes = {\n eventLabel: PropTypes.string.isRequired,\n target: PropTypes.string,\n to: PropTypes.string,\n onClick: PropTypes.func,\n trackerNames: PropTypes.arrayOf(PropTypes.string)\n};\nOutboundLink.defaultProps = {\n target: null,\n to: null,\n onClick: null,\n trackerNames: null\n};","import warn from './console/warn';\nimport mightBeEmail from './mightBeEmail';\nvar redacted = 'REDACTED (Potential Email Address)';\nexport default function redactEmail(string) {\n if (mightBeEmail(string)) {\n warn('This arg looks like an email address, redacting.');\n return redacted;\n }\n\n return string;\n}","// See if s could be an email address. We don't want to send personal data like email.\n// https://support.google.com/analytics/answer/2795983?hl=en\nexport default function mightBeEmail(s) {\n // There's no point trying to validate rfc822 fully, just look for ...@...\n return typeof s === 'string' && s.indexOf('@') !== -1;\n}","// GA strings need to have leading/trailing whitespace trimmed, and not all\n// browsers have String.prototoype.trim().\nexport default function trim(s) {\n return s && s.toString().replace(/^\\s+|\\s+$/g, '');\n}","/**\n * To Title Case 2.1 - http://individed.com/code/to-title-case/\n * Copyright 2008-2013 David Gouch. Licensed under the MIT License.\n * https://github.com/gouch/to-title-case\n */\nimport trim from './trim';\nvar smallWords = /^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\\.?|via)$/i; // test\n\nexport default function toTitleCase(string) {\n return trim(string).replace(/[A-Za-z0-9\\u00C0-\\u00FF]+[^\\s-]*/g, function (match, index, title) {\n if (index > 0 && index + match.length !== title.length && match.search(smallWords) > -1 && title.charAt(index - 2) !== ':' && (title.charAt(index + match.length) !== '-' || title.charAt(index - 1) === '-') && title.charAt(index - 1).search(/[^\\s-]/) < 0) {\n return match.toLowerCase();\n }\n\n if (match.substr(1).search(/[A-Z]|\\../) > -1) {\n return match;\n }\n\n return match.charAt(0).toUpperCase() + match.substr(1);\n });\n}","var isLoaded = false;\nexport default function (options) {\n if (isLoaded) return;\n isLoaded = true;\n var gaAddress = 'https://www.google-analytics.com/analytics.js';\n\n if (options && options.gaAddress) {\n gaAddress = options.gaAddress;\n } else if (options && options.debug) {\n gaAddress = 'https://www.google-analytics.com/analytics_debug.js';\n }\n\n var onerror = options && options.onerror; // https://developers.google.com/analytics/devguides/collection/analyticsjs/\n\n /* eslint-disable */\n\n (function (i, s, o, g, r, a, m) {\n i['GoogleAnalyticsObject'] = r;\n i[r] = i[r] || function () {\n (i[r].q = i[r].q || []).push(arguments);\n }, i[r].l = 1 * new Date();\n a = s.createElement(o), m = s.getElementsByTagName(o)[0];\n a.async = 1;\n a.src = g;\n a.onerror = onerror;\n m.parentNode.insertBefore(a, m);\n })(window, document, 'script', gaAddress, 'ga');\n /* eslint-enable */\n\n}","export default function log(s) {\n console.info('[react-ga]', s);\n}","export var gaCalls = [];\nexport default {\n calls: gaCalls,\n ga: function ga() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n gaCalls.push([].concat(args));\n },\n resetCalls: function resetCalls() {\n gaCalls.length = 0;\n }\n};","var _excluded = [\"category\", \"action\", \"label\", \"value\", \"nonInteraction\", \"transport\"];\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * React Google Analytics Module\n *\n * @package react-ga\n * @author Adam Lofting <adam@mozillafoundation.org>\n * Atul Varma <atul@mozillafoundation.org>\n */\n\n/**\n * Utilities\n */\nimport format from './utils/format';\nimport removeLeadingSlash from './utils/removeLeadingSlash';\nimport trim from './utils/trim';\nimport loadGA from './utils/loadGA';\nimport warn from './utils/console/warn';\nimport log from './utils/console/log';\nimport TestModeAPI from './utils/testModeAPI';\n\nvar _isNotBrowser = typeof window === 'undefined' || typeof document === 'undefined';\n\nvar _debug = false;\nvar _titleCase = true;\nvar _testMode = false;\nvar _alwaysSendToDefaultTracker = true;\nvar _redactEmail = true;\n\nvar internalGa = function internalGa() {\n var _window;\n\n if (_testMode) return TestModeAPI.ga.apply(TestModeAPI, arguments);\n if (_isNotBrowser) return false;\n if (!window.ga) return warn('ReactGA.initialize must be called first or GoogleAnalytics should be loaded manually');\n return (_window = window).ga.apply(_window, arguments);\n};\n\nfunction _format(s) {\n return format(s, _titleCase, _redactEmail);\n}\n\nfunction _gaCommand(trackerNames) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var command = args[0];\n\n if (typeof internalGa === 'function') {\n if (typeof command !== 'string') {\n warn('ga command must be a string');\n return;\n }\n\n if (_alwaysSendToDefaultTracker || !Array.isArray(trackerNames)) internalGa.apply(void 0, args);\n\n if (Array.isArray(trackerNames)) {\n trackerNames.forEach(function (name) {\n internalGa.apply(void 0, _toConsumableArray([\"\".concat(name, \".\").concat(command)].concat(args.slice(1))));\n });\n }\n }\n}\n\nfunction _initialize(gaTrackingID, options) {\n if (!gaTrackingID) {\n warn('gaTrackingID is required in initialize()');\n return;\n }\n\n if (options) {\n if (options.debug && options.debug === true) {\n _debug = true;\n }\n\n if (options.titleCase === false) {\n _titleCase = false;\n }\n\n if (options.redactEmail === false) {\n _redactEmail = false;\n }\n\n if (options.useExistingGa) {\n return;\n }\n }\n\n if (options && options.gaOptions) {\n internalGa('create', gaTrackingID, options.gaOptions);\n } else {\n internalGa('create', gaTrackingID, 'auto');\n }\n}\n\nexport function addTrackers(configsOrTrackingId, options) {\n if (Array.isArray(configsOrTrackingId)) {\n configsOrTrackingId.forEach(function (config) {\n if (_typeof(config) !== 'object') {\n warn('All configs must be an object');\n return;\n }\n\n _initialize(config.trackingId, config);\n });\n } else {\n _initialize(configsOrTrackingId, options);\n }\n\n return true;\n}\nexport function initialize(configsOrTrackingId, options) {\n if (options && options.testMode === true) {\n _testMode = true;\n } else {\n if (_isNotBrowser) {\n return;\n }\n\n if (!options || options.standardImplementation !== true) loadGA(options);\n }\n\n _alwaysSendToDefaultTracker = options && typeof options.alwaysSendToDefaultTracker === 'boolean' ? options.alwaysSendToDefaultTracker : true;\n addTrackers(configsOrTrackingId, options);\n}\n/**\n * ga:\n * Returns the original GA object.\n */\n\nexport function ga() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (args.length > 0) {\n internalGa.apply(void 0, args);\n\n if (_debug) {\n log(\"called ga('arguments');\");\n log(\"with arguments: \".concat(JSON.stringify(args)));\n }\n }\n\n return window.ga;\n}\n/**\n * set:\n * GA tracker set method\n * @param {Object} fieldsObject - a field/value pair or a group of field/value pairs on the tracker\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function set(fieldsObject, trackerNames) {\n if (!fieldsObject) {\n warn('`fieldsObject` is required in .set()');\n return;\n }\n\n if (_typeof(fieldsObject) !== 'object') {\n warn('Expected `fieldsObject` arg to be an Object');\n return;\n }\n\n if (Object.keys(fieldsObject).length === 0) {\n warn('empty `fieldsObject` given to .set()');\n }\n\n _gaCommand(trackerNames, 'set', fieldsObject);\n\n if (_debug) {\n log(\"called ga('set', fieldsObject);\");\n log(\"with fieldsObject: \".concat(JSON.stringify(fieldsObject)));\n }\n}\n/**\n * send:\n * Clone of the low level `ga.send` method\n * WARNING: No validations will be applied to this\n * @param {Object} fieldObject - field object for tracking different analytics\n * @param {Array} trackerNames - trackers to send the command to\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function send(fieldObject, trackerNames) {\n _gaCommand(trackerNames, 'send', fieldObject);\n\n if (_debug) {\n log(\"called ga('send', fieldObject);\");\n log(\"with fieldObject: \".concat(JSON.stringify(fieldObject)));\n log(\"with trackers: \".concat(JSON.stringify(trackerNames)));\n }\n}\n/**\n * pageview:\n * Basic GA pageview tracking\n * @param {String} path - the current page page e.g. '/about'\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n * @param {String} title - (optional) the page title e. g. 'My Website'\n */\n\nexport function pageview(rawPath, trackerNames, title) {\n if (!rawPath) {\n warn('path is required in .pageview()');\n return;\n }\n\n var path = trim(rawPath);\n\n if (path === '') {\n warn('path cannot be an empty string in .pageview()');\n return;\n }\n\n var extraFields = {};\n\n if (title) {\n extraFields.title = title;\n }\n\n if (typeof ga === 'function') {\n _gaCommand(trackerNames, 'send', _objectSpread({\n hitType: 'pageview',\n page: path\n }, extraFields));\n\n if (_debug) {\n log(\"called ga('send', 'pageview', path);\");\n var extraLog = '';\n\n if (title) {\n extraLog = \" and title: \".concat(title);\n }\n\n log(\"with path: \".concat(path).concat(extraLog));\n }\n }\n}\n/**\n * modalview:\n * a proxy to basic GA pageview tracking to consistently track\n * modal views that are an equivalent UX to a traditional pageview\n * @param {String} modalName e.g. 'add-or-edit-club'\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function modalview(rawModalName, trackerNames) {\n if (!rawModalName) {\n warn('modalName is required in .modalview(modalName)');\n return;\n }\n\n var modalName = removeLeadingSlash(trim(rawModalName));\n\n if (modalName === '') {\n warn('modalName cannot be an empty string or a single / in .modalview()');\n return;\n }\n\n if (typeof ga === 'function') {\n var path = \"/modal/\".concat(modalName);\n\n _gaCommand(trackerNames, 'send', 'pageview', path);\n\n if (_debug) {\n log(\"called ga('send', 'pageview', path);\");\n log(\"with path: \".concat(path));\n }\n }\n}\n/**\n * timing:\n * GA timing\n * @param args.category {String} required\n * @param args.variable {String} required\n * @param args.value {Int} required\n * @param args.label {String} required\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function timing() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n category = _ref.category,\n variable = _ref.variable,\n value = _ref.value,\n label = _ref.label;\n\n var trackerNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n if (typeof ga === 'function') {\n if (!category || !variable || typeof value !== 'number') {\n warn('args.category, args.variable ' + 'AND args.value are required in timing() ' + 'AND args.value has to be a number');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'timing',\n timingCategory: _format(category),\n timingVar: _format(variable),\n timingValue: value\n };\n\n if (label) {\n fieldObject.timingLabel = _format(label);\n }\n\n send(fieldObject, trackerNames);\n }\n}\n/**\n * event:\n * GA event tracking\n * @param args.category {String} required\n * @param args.action {String} required\n * @param args.label {String} optional\n * @param args.value {Int} optional\n * @param args.nonInteraction {boolean} optional\n * @param args.transport {string} optional\n * @param {{action: string, category: string}} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function event() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n category = _ref2.category,\n action = _ref2.action,\n label = _ref2.label,\n value = _ref2.value,\n nonInteraction = _ref2.nonInteraction,\n transport = _ref2.transport,\n args = _objectWithoutProperties(_ref2, _excluded);\n\n var trackerNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n if (typeof ga === 'function') {\n // Simple Validation\n if (!category || !action) {\n warn('args.category AND args.action are required in event()');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'event',\n eventCategory: _format(category),\n eventAction: _format(action)\n }; // Optional Fields\n\n if (label) {\n fieldObject.eventLabel = _format(label);\n }\n\n if (typeof value !== 'undefined') {\n if (typeof value !== 'number') {\n warn('Expected `args.value` arg to be a Number.');\n } else {\n fieldObject.eventValue = value;\n }\n }\n\n if (typeof nonInteraction !== 'undefined') {\n if (typeof nonInteraction !== 'boolean') {\n warn('`args.nonInteraction` must be a boolean.');\n } else {\n fieldObject.nonInteraction = nonInteraction;\n }\n }\n\n if (typeof transport !== 'undefined') {\n if (typeof transport !== 'string') {\n warn('`args.transport` must be a string.');\n } else {\n if (['beacon', 'xhr', 'image'].indexOf(transport) === -1) {\n warn('`args.transport` must be either one of these values: `beacon`, `xhr` or `image`');\n }\n\n fieldObject.transport = transport;\n }\n }\n\n Object.keys(args).filter(function (key) {\n return key.substr(0, 'dimension'.length) === 'dimension';\n }).forEach(function (key) {\n fieldObject[key] = args[key];\n });\n Object.keys(args).filter(function (key) {\n return key.substr(0, 'metric'.length) === 'metric';\n }).forEach(function (key) {\n fieldObject[key] = args[key];\n }); // Send to GA\n\n send(fieldObject, trackerNames);\n }\n}\n/**\n * exception:\n * GA exception tracking\n * @param args.description {String} optional\n * @param args.fatal {boolean} optional\n * @param {Array} trackerNames - (optional) a list of extra trackers to run the command on\n */\n\nexport function exception(_ref3, trackerNames) {\n var description = _ref3.description,\n fatal = _ref3.fatal;\n\n if (typeof ga === 'function') {\n // Required Fields\n var fieldObject = {\n hitType: 'exception'\n }; // Optional Fields\n\n if (description) {\n fieldObject.exDescription = _format(description);\n }\n\n if (typeof fatal !== 'undefined') {\n if (typeof fatal !== 'boolean') {\n warn('`args.fatal` must be a boolean.');\n } else {\n fieldObject.exFatal = fatal;\n }\n } // Send to GA\n\n\n send(fieldObject, trackerNames);\n }\n}\nexport var plugin = {\n /**\n * require:\n * GA requires a plugin\n * @param name {String} e.g. 'ecommerce' or 'myplugin'\n * @param options {Object} optional e.g {path: '/log', debug: true}\n * @param trackerName {String} optional e.g 'trackerName'\n */\n require: function require(rawName, options, trackerName) {\n if (typeof ga === 'function') {\n // Required Fields\n if (!rawName) {\n warn('`name` is required in .require()');\n return;\n }\n\n var name = trim(rawName);\n\n if (name === '') {\n warn('`name` cannot be an empty string in .require()');\n return;\n }\n\n var requireString = trackerName ? \"\".concat(trackerName, \".require\") : 'require'; // Optional Fields\n\n if (options) {\n if (_typeof(options) !== 'object') {\n warn('Expected `options` arg to be an Object');\n return;\n }\n\n if (Object.keys(options).length === 0) {\n warn('Empty `options` given to .require()');\n }\n\n ga(requireString, name, options);\n\n if (_debug) {\n log(\"called ga('require', '\".concat(name, \"', \").concat(JSON.stringify(options)));\n }\n } else {\n ga(requireString, name);\n\n if (_debug) {\n log(\"called ga('require', '\".concat(name, \"');\"));\n }\n }\n }\n },\n\n /**\n * execute:\n * GA execute action for plugin\n * Takes variable number of arguments\n * @param pluginName {String} e.g. 'ecommerce' or 'myplugin'\n * @param action {String} e.g. 'addItem' or 'myCustomAction'\n * @param actionType {String} optional e.g. 'detail'\n * @param payload {Object} optional e.g { id: '1x5e', name : 'My product to track' }\n */\n execute: function execute(pluginName, action) {\n var payload;\n var actionType;\n\n for (var _len3 = arguments.length, args = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n args[_key3 - 2] = arguments[_key3];\n }\n\n if (args.length === 1) {\n payload = args[0];\n } else {\n actionType = args[0];\n payload = args[1];\n }\n\n if (typeof ga === 'function') {\n if (typeof pluginName !== 'string') {\n warn('Expected `pluginName` arg to be a String.');\n } else if (typeof action !== 'string') {\n warn('Expected `action` arg to be a String.');\n } else {\n var command = \"\".concat(pluginName, \":\").concat(action);\n payload = payload || null;\n\n if (actionType && payload) {\n ga(command, actionType, payload);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n log(\"actionType: \\\"\".concat(actionType, \"\\\" with payload: \").concat(JSON.stringify(payload)));\n }\n } else if (payload) {\n ga(command, payload);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n log(\"with payload: \".concat(JSON.stringify(payload)));\n }\n } else {\n ga(command);\n\n if (_debug) {\n log(\"called ga('\".concat(command, \"');\"));\n }\n }\n }\n }\n }\n};\n/**\n * outboundLink:\n * GA outboundLink tracking\n * @param args.label {String} e.g. url, or 'Create an Account'\n * @param {function} hitCallback - Called after processing a hit.\n */\n\nexport function outboundLink(args, hitCallback, trackerNames) {\n if (typeof hitCallback !== 'function') {\n warn('hitCallback function is required');\n return;\n }\n\n if (typeof ga === 'function') {\n // Simple Validation\n if (!args || !args.label) {\n warn('args.label is required in outboundLink()');\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: 'event',\n eventCategory: 'Outbound',\n eventAction: 'Click',\n eventLabel: _format(args.label)\n };\n var safetyCallbackCalled = false;\n\n var safetyCallback = function safetyCallback() {\n // This prevents a delayed response from GA\n // causing hitCallback from being fired twice\n safetyCallbackCalled = true;\n hitCallback();\n }; // Using a timeout to ensure the execution of critical application code\n // in the case when the GA server might be down\n // or an ad blocker prevents sending the data\n // register safety net timeout:\n\n\n var t = setTimeout(safetyCallback, 250);\n\n var clearableCallbackForGA = function clearableCallbackForGA() {\n clearTimeout(t);\n\n if (!safetyCallbackCalled) {\n hitCallback();\n }\n };\n\n fieldObject.hitCallback = clearableCallbackForGA; // Send to GA\n\n send(fieldObject, trackerNames);\n } else {\n // if ga is not defined, return the callback so the application\n // continues to work as expected\n setTimeout(hitCallback, 0);\n }\n}\nexport var testModeAPI = TestModeAPI;\nexport default {\n initialize: initialize,\n ga: ga,\n set: set,\n send: send,\n pageview: pageview,\n modalview: modalview,\n timing: timing,\n event: event,\n exception: exception,\n plugin: plugin,\n outboundLink: outboundLink,\n testModeAPI: TestModeAPI\n};","import redactEmail from './redactEmail';\nimport toTitleCase from './toTitleCase';\nexport default function format() {\n var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var titleCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var redactingEmail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n var _str = s || '';\n\n if (titleCase) {\n _str = toTitleCase(s);\n }\n\n if (redactingEmail) {\n _str = redactEmail(_str);\n }\n\n return _str;\n}","export default function removeLeadingSlash(string) {\n if (string.substring(0, 1) === '/') {\n return string.substring(1);\n }\n\n return string;\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport UnboundOutboundLink from './components/OutboundLink';\nimport * as Defaults from './core';\nvar initialize = Defaults.initialize;\nexport { initialize };\nvar addTrackers = Defaults.addTrackers;\nexport { addTrackers };\nvar ga = Defaults.ga;\nexport { ga };\nvar set = Defaults.set;\nexport { set };\nvar send = Defaults.send;\nexport { send };\nvar pageview = Defaults.pageview;\nexport { pageview };\nvar modalview = Defaults.modalview;\nexport { modalview };\nvar timing = Defaults.timing;\nexport { timing };\nvar event = Defaults.event;\nexport { event };\nvar exception = Defaults.exception;\nexport { exception };\nvar plugin = Defaults.plugin;\nexport { plugin };\nvar outboundLink = Defaults.outboundLink;\nexport { outboundLink };\nvar testModeAPI = Defaults.testModeAPI;\nexport { testModeAPI };\nUnboundOutboundLink.origTrackLink = UnboundOutboundLink.trackLink;\nUnboundOutboundLink.trackLink = Defaults.outboundLink;\nexport var OutboundLink = UnboundOutboundLink;\nexport default _objectSpread(_objectSpread({}, Defaults), {}, {\n OutboundLink: OutboundLink\n});","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","const createCapacitorPlatforms = (win) => {\n const defaultPlatformMap = new Map();\n defaultPlatformMap.set('web', { name: 'web' });\n const capPlatforms = win.CapacitorPlatforms || {\n currentPlatform: { name: 'web' },\n platforms: defaultPlatformMap,\n };\n const addPlatform = (name, platform) => {\n capPlatforms.platforms.set(name, platform);\n };\n const setPlatform = (name) => {\n if (capPlatforms.platforms.has(name)) {\n capPlatforms.currentPlatform = capPlatforms.platforms.get(name);\n }\n };\n capPlatforms.addPlatform = addPlatform;\n capPlatforms.setPlatform = setPlatform;\n return capPlatforms;\n};\nconst initPlatforms = (win) => (win.CapacitorPlatforms = createCapacitorPlatforms(win));\n/**\n * @deprecated Set `CapacitorCustomPlatform` on the window object prior to runtime executing in the web app instead\n */\nexport const CapacitorPlatforms = /*#__PURE__*/ initPlatforms((typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {}));\n/**\n * @deprecated Set `CapacitorCustomPlatform` on the window object prior to runtime executing in the web app instead\n */\nexport const addPlatform = CapacitorPlatforms.addPlatform;\n/**\n * @deprecated Set `CapacitorCustomPlatform` on the window object prior to runtime executing in the web app instead\n */\nexport const setPlatform = CapacitorPlatforms.setPlatform;\n//# sourceMappingURL=platforms.js.map","export var ExceptionCode;\n(function (ExceptionCode) {\n /**\n * API is not implemented.\n *\n * This usually means the API can't be used because it is not implemented for\n * the current platform.\n */\n ExceptionCode[\"Unimplemented\"] = \"UNIMPLEMENTED\";\n /**\n * API is not available.\n *\n * This means the API can't be used right now because:\n * - it is currently missing a prerequisite, such as network connectivity\n * - it requires a particular platform or browser version\n */\n ExceptionCode[\"Unavailable\"] = \"UNAVAILABLE\";\n})(ExceptionCode || (ExceptionCode = {}));\nexport class CapacitorException extends Error {\n constructor(message, code) {\n super(message);\n this.message = message;\n this.code = code;\n }\n}\nexport const getPlatformId = (win) => {\n var _a, _b;\n if (win === null || win === void 0 ? void 0 : win.androidBridge) {\n return 'android';\n }\n else if ((_b = (_a = win === null || win === void 0 ? void 0 : win.webkit) === null || _a === void 0 ? void 0 : _a.messageHandlers) === null || _b === void 0 ? void 0 : _b.bridge) {\n return 'ios';\n }\n else {\n return 'web';\n }\n};\n//# sourceMappingURL=util.js.map","import { legacyRegisterWebPlugin } from './legacy/legacy-web-plugin-merge';\nimport { initCapacitorGlobal } from './runtime';\nexport const Capacitor = /*#__PURE__*/ initCapacitorGlobal(typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {});\nexport const registerPlugin = Capacitor.registerPlugin;\n/**\n * @deprecated Provided for backwards compatibility for Capacitor v2 plugins.\n * Capacitor v3 plugins should import the plugin directly. This \"Plugins\"\n * export is deprecated in v3, and will be removed in v4.\n */\nexport const Plugins = Capacitor.Plugins;\n/**\n * Provided for backwards compatibility. Use the registerPlugin() API\n * instead, and provide the web plugin as the \"web\" implmenetation.\n * For example\n *\n * export const Example = registerPlugin('Example', {\n * web: () => import('./web').then(m => new m.Example())\n * })\n *\n * @deprecated Deprecated in v3, will be removed from v4.\n */\nexport const registerWebPlugin = (plugin) => legacyRegisterWebPlugin(Capacitor, plugin);\n//# sourceMappingURL=global.js.map","import { CapacitorException, getPlatformId, ExceptionCode } from './util';\nexport const createCapacitor = (win) => {\n var _a, _b, _c, _d, _e;\n const capCustomPlatform = win.CapacitorCustomPlatform || null;\n const cap = win.Capacitor || {};\n const Plugins = (cap.Plugins = cap.Plugins || {});\n /**\n * @deprecated Use `capCustomPlatform` instead, default functions like registerPlugin will function with the new object.\n */\n const capPlatforms = win.CapacitorPlatforms;\n const defaultGetPlatform = () => {\n return capCustomPlatform !== null\n ? capCustomPlatform.name\n : getPlatformId(win);\n };\n const getPlatform = ((_a = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _a === void 0 ? void 0 : _a.getPlatform) || defaultGetPlatform;\n const defaultIsNativePlatform = () => getPlatform() !== 'web';\n const isNativePlatform = ((_b = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _b === void 0 ? void 0 : _b.isNativePlatform) || defaultIsNativePlatform;\n const defaultIsPluginAvailable = (pluginName) => {\n const plugin = registeredPlugins.get(pluginName);\n if (plugin === null || plugin === void 0 ? void 0 : plugin.platforms.has(getPlatform())) {\n // JS implementation available for the current platform.\n return true;\n }\n if (getPluginHeader(pluginName)) {\n // Native implementation available.\n return true;\n }\n return false;\n };\n const isPluginAvailable = ((_c = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _c === void 0 ? void 0 : _c.isPluginAvailable) ||\n defaultIsPluginAvailable;\n const defaultGetPluginHeader = (pluginName) => { var _a; return (_a = cap.PluginHeaders) === null || _a === void 0 ? void 0 : _a.find(h => h.name === pluginName); };\n const getPluginHeader = ((_d = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _d === void 0 ? void 0 : _d.getPluginHeader) || defaultGetPluginHeader;\n const handleError = (err) => win.console.error(err);\n const pluginMethodNoop = (_target, prop, pluginName) => {\n return Promise.reject(`${pluginName} does not have an implementation of \"${prop}\".`);\n };\n const registeredPlugins = new Map();\n const defaultRegisterPlugin = (pluginName, jsImplementations = {}) => {\n const registeredPlugin = registeredPlugins.get(pluginName);\n if (registeredPlugin) {\n console.warn(`Capacitor plugin \"${pluginName}\" already registered. Cannot register plugins twice.`);\n return registeredPlugin.proxy;\n }\n const platform = getPlatform();\n const pluginHeader = getPluginHeader(pluginName);\n let jsImplementation;\n const loadPluginImplementation = async () => {\n if (!jsImplementation && platform in jsImplementations) {\n jsImplementation =\n typeof jsImplementations[platform] === 'function'\n ? (jsImplementation = await jsImplementations[platform]())\n : (jsImplementation = jsImplementations[platform]);\n }\n else if (capCustomPlatform !== null &&\n !jsImplementation &&\n 'web' in jsImplementations) {\n jsImplementation =\n typeof jsImplementations['web'] === 'function'\n ? (jsImplementation = await jsImplementations['web']())\n : (jsImplementation = jsImplementations['web']);\n }\n return jsImplementation;\n };\n const createPluginMethod = (impl, prop) => {\n var _a, _b;\n if (pluginHeader) {\n const methodHeader = pluginHeader === null || pluginHeader === void 0 ? void 0 : pluginHeader.methods.find(m => prop === m.name);\n if (methodHeader) {\n if (methodHeader.rtype === 'promise') {\n return (options) => cap.nativePromise(pluginName, prop.toString(), options);\n }\n else {\n return (options, callback) => cap.nativeCallback(pluginName, prop.toString(), options, callback);\n }\n }\n else if (impl) {\n return (_a = impl[prop]) === null || _a === void 0 ? void 0 : _a.bind(impl);\n }\n }\n else if (impl) {\n return (_b = impl[prop]) === null || _b === void 0 ? void 0 : _b.bind(impl);\n }\n else {\n throw new CapacitorException(`\"${pluginName}\" plugin is not implemented on ${platform}`, ExceptionCode.Unimplemented);\n }\n };\n const createPluginMethodWrapper = (prop) => {\n let remove;\n const wrapper = (...args) => {\n const p = loadPluginImplementation().then(impl => {\n const fn = createPluginMethod(impl, prop);\n if (fn) {\n const p = fn(...args);\n remove = p === null || p === void 0 ? void 0 : p.remove;\n return p;\n }\n else {\n throw new CapacitorException(`\"${pluginName}.${prop}()\" is not implemented on ${platform}`, ExceptionCode.Unimplemented);\n }\n });\n if (prop === 'addListener') {\n p.remove = async () => remove();\n }\n return p;\n };\n // Some flair ✨\n wrapper.toString = () => `${prop.toString()}() { [capacitor code] }`;\n Object.defineProperty(wrapper, 'name', {\n value: prop,\n writable: false,\n configurable: false,\n });\n return wrapper;\n };\n const addListener = createPluginMethodWrapper('addListener');\n const removeListener = createPluginMethodWrapper('removeListener');\n const addListenerNative = (eventName, callback) => {\n const call = addListener({ eventName }, callback);\n const remove = async () => {\n const callbackId = await call;\n removeListener({\n eventName,\n callbackId,\n }, callback);\n };\n const p = new Promise(resolve => call.then(() => resolve({ remove })));\n p.remove = async () => {\n console.warn(`Using addListener() without 'await' is deprecated.`);\n await remove();\n };\n return p;\n };\n const proxy = new Proxy({}, {\n get(_, prop) {\n switch (prop) {\n // https://github.com/facebook/react/issues/20030\n case '$$typeof':\n return undefined;\n case 'toJSON':\n return () => ({});\n case 'addListener':\n return pluginHeader ? addListenerNative : addListener;\n case 'removeListener':\n return removeListener;\n default:\n return createPluginMethodWrapper(prop);\n }\n },\n });\n Plugins[pluginName] = proxy;\n registeredPlugins.set(pluginName, {\n name: pluginName,\n proxy,\n platforms: new Set([\n ...Object.keys(jsImplementations),\n ...(pluginHeader ? [platform] : []),\n ]),\n });\n return proxy;\n };\n const registerPlugin = ((_e = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _e === void 0 ? void 0 : _e.registerPlugin) || defaultRegisterPlugin;\n // Add in convertFileSrc for web, it will already be available in native context\n if (!cap.convertFileSrc) {\n cap.convertFileSrc = filePath => filePath;\n }\n cap.getPlatform = getPlatform;\n cap.handleError = handleError;\n cap.isNativePlatform = isNativePlatform;\n cap.isPluginAvailable = isPluginAvailable;\n cap.pluginMethodNoop = pluginMethodNoop;\n cap.registerPlugin = registerPlugin;\n cap.Exception = CapacitorException;\n cap.DEBUG = !!cap.DEBUG;\n cap.isLoggingEnabled = !!cap.isLoggingEnabled;\n // Deprecated props\n cap.platform = cap.getPlatform();\n cap.isNative = cap.isNativePlatform();\n return cap;\n};\nexport const initCapacitorGlobal = (win) => (win.Capacitor = createCapacitor(win));\n//# sourceMappingURL=runtime.js.map","import { Capacitor } from './global';\nimport { ExceptionCode } from './util';\n/**\n * Base class web plugins should extend.\n */\nexport class WebPlugin {\n constructor(config) {\n this.listeners = {};\n this.windowListeners = {};\n if (config) {\n // TODO: add link to upgrade guide\n console.warn(`Capacitor WebPlugin \"${config.name}\" config object was deprecated in v3 and will be removed in v4.`);\n this.config = config;\n }\n }\n addListener(eventName, listenerFunc) {\n const listeners = this.listeners[eventName];\n if (!listeners) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push(listenerFunc);\n // If we haven't added a window listener for this event and it requires one,\n // go ahead and add it\n const windowListener = this.windowListeners[eventName];\n if (windowListener && !windowListener.registered) {\n this.addWindowListener(windowListener);\n }\n const remove = async () => this.removeListener(eventName, listenerFunc);\n const p = Promise.resolve({ remove });\n Object.defineProperty(p, 'remove', {\n value: async () => {\n console.warn(`Using addListener() without 'await' is deprecated.`);\n await remove();\n },\n });\n return p;\n }\n async removeAllListeners() {\n this.listeners = {};\n for (const listener in this.windowListeners) {\n this.removeWindowListener(this.windowListeners[listener]);\n }\n this.windowListeners = {};\n }\n notifyListeners(eventName, data) {\n const listeners = this.listeners[eventName];\n if (listeners) {\n listeners.forEach(listener => listener(data));\n }\n }\n hasListeners(eventName) {\n return !!this.listeners[eventName].length;\n }\n registerWindowListener(windowEventName, pluginEventName) {\n this.windowListeners[pluginEventName] = {\n registered: false,\n windowEventName,\n pluginEventName,\n handler: event => {\n this.notifyListeners(pluginEventName, event);\n },\n };\n }\n unimplemented(msg = 'not implemented') {\n return new Capacitor.Exception(msg, ExceptionCode.Unimplemented);\n }\n unavailable(msg = 'not available') {\n return new Capacitor.Exception(msg, ExceptionCode.Unavailable);\n }\n async removeListener(eventName, listenerFunc) {\n const listeners = this.listeners[eventName];\n if (!listeners) {\n return;\n }\n const index = listeners.indexOf(listenerFunc);\n this.listeners[eventName].splice(index, 1);\n // If there are no more listeners for this type of event,\n // remove the window listener\n if (!this.listeners[eventName].length) {\n this.removeWindowListener(this.windowListeners[eventName]);\n }\n }\n addWindowListener(handle) {\n window.addEventListener(handle.windowEventName, handle.handler);\n handle.registered = true;\n }\n removeWindowListener(handle) {\n if (!handle) {\n return;\n }\n window.removeEventListener(handle.windowEventName, handle.handler);\n handle.registered = false;\n }\n}\n//# sourceMappingURL=web-plugin.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Column = void 0;\n\nvar _react = require(\"react\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar Column = /*#__PURE__*/function (_Component) {\n _inherits(Column, _Component);\n\n var _super = _createSuper(Column);\n\n function Column() {\n _classCallCheck(this, Column);\n\n return _super.apply(this, arguments);\n }\n\n return Column;\n}(_react.Component);\n\nexports.Column = Column;\n\n_defineProperty(Column, \"defaultProps\", {\n columnKey: null,\n field: null,\n sortField: null,\n filterField: null,\n header: null,\n body: null,\n loadingBody: null,\n footer: null,\n sortable: false,\n sortFunction: null,\n filter: false,\n filterMatchMode: 'startsWith',\n filterPlaceholder: null,\n filterType: 'text',\n filterMaxLength: null,\n filterElement: null,\n filterFunction: null,\n filterHeaderStyle: null,\n filterHeaderClassName: null,\n style: null,\n className: null,\n headerStyle: null,\n headerClassName: null,\n bodyStyle: null,\n bodyClassName: null,\n footerStyle: null,\n footerClassName: null,\n expander: false,\n frozen: false,\n selectionMode: null,\n colSpan: null,\n rowSpan: null,\n editor: null,\n editorValidator: null,\n editorValidatorEvent: 'click',\n onEditorInit: null,\n onEditorSubmit: null,\n onEditorCancel: null,\n excludeGlobalFilter: false,\n rowReorder: false,\n rowReorderIcon: 'pi pi-bars',\n rowEditor: false,\n exportable: true,\n reorderable: true\n});\n\n_defineProperty(Column, \"propTypes\", {\n columnKey: _propTypes.default.string,\n field: _propTypes.default.string,\n sortField: _propTypes.default.string,\n filterField: _propTypes.default.string,\n header: _propTypes.default.any,\n body: _propTypes.default.any,\n loadingBody: _propTypes.default.func,\n footer: _propTypes.default.any,\n sortable: _propTypes.default.any,\n sortFunction: _propTypes.default.func,\n filter: _propTypes.default.bool,\n filterMatchMode: _propTypes.default.string,\n filterPlaceholder: _propTypes.default.string,\n filterType: _propTypes.default.string,\n filterMaxLength: _propTypes.default.number,\n filterElement: _propTypes.default.object,\n filterFunction: _propTypes.default.func,\n filterHeaderStyle: _propTypes.default.object,\n filterHeaderClassName: _propTypes.default.string,\n style: _propTypes.default.object,\n className: _propTypes.default.string,\n headerStyle: _propTypes.default.object,\n headerClassName: _propTypes.default.string,\n bodyStyle: _propTypes.default.object,\n bodyClassName: _propTypes.default.string,\n footerStyle: _propTypes.default.object,\n footerClassName: _propTypes.default.string,\n expander: _propTypes.default.bool,\n frozen: _propTypes.default.bool,\n selectionMode: _propTypes.default.string,\n colSpan: _propTypes.default.number,\n rowSpan: _propTypes.default.number,\n editor: _propTypes.default.func,\n editorValidator: _propTypes.default.func,\n onEditorInit: _propTypes.default.func,\n onEditorSubmit: _propTypes.default.func,\n onEditorCancel: _propTypes.default.func,\n editorValidatorEvent: _propTypes.default.string,\n excludeGlobalFilter: _propTypes.default.bool,\n rowReorder: _propTypes.default.bool,\n rowReorderIcon: _propTypes.default.string,\n rowEditor: _propTypes.default.bool,\n exportable: _propTypes.default.bool,\n reorderable: _propTypes.default.bool\n});","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import superPropBase from \"./superPropBase\";\nexport default function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ClientAuthError } from \"../error/ClientAuthError\";\nimport { StringUtils } from \"../utils/StringUtils\";\nimport { ICrypto } from \"../crypto/ICrypto\";\nimport { Separators, Constants } from \"../utils/Constants\";\n\n/**\n * Client info object which consists of two IDs. Need to add more info here.\n */\nexport type ClientInfo = {\n uid: string,\n utid: string\n};\n\n/**\n * Function to build a client info object from server clientInfo string\n * @param rawClientInfo\n * @param crypto\n */\nexport function buildClientInfo(rawClientInfo: string, crypto: ICrypto): ClientInfo {\n if (StringUtils.isEmpty(rawClientInfo)) {\n throw ClientAuthError.createClientInfoEmptyError();\n }\n\n try {\n const decodedClientInfo: string = crypto.base64Decode(rawClientInfo);\n return JSON.parse(decodedClientInfo) as ClientInfo;\n } catch (e) {\n throw ClientAuthError.createClientInfoDecodingError((e as ClientAuthError).message);\n }\n}\n\n/**\n * Function to build a client info object from cached homeAccountId string\n * @param homeAccountId \n */\nexport function buildClientInfoFromHomeAccountId(homeAccountId: string): ClientInfo {\n if (StringUtils.isEmpty(homeAccountId)) {\n throw ClientAuthError.createClientInfoDecodingError(\"Home account ID was empty.\");\n }\n const clientInfoParts: string[] = homeAccountId.split(Separators.CLIENT_INFO_SEPARATOR, 2);\n return {\n uid: clientInfoParts[0],\n utid: clientInfoParts.length < 2 ? Constants.EMPTY_STRING : clientInfoParts[1]\n };\n}\n","import EventEmitter from 'eventemitter3';\nvar eventCenter = new EventEmitter();\n\nif (eventCenter.setMaxListeners) {\n eventCenter.setMaxListeners(10);\n}\n\nexport { eventCenter };\nexport var SYNC_EVENT = 'recharts.syncMouseEvents'; // eslint-disable-next-line no-redeclare","export var ifOverflowMatches = function ifOverflowMatches(props, value) {\n var alwaysShow = props.alwaysShow;\n var ifOverflow = props.ifOverflow;\n\n if (alwaysShow) {\n ifOverflow = 'extendDomain';\n }\n\n return ifOverflow === value;\n};","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DataTable = void 0;\n\nvar _ClassNames = require(\"../utils/ClassNames\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _Paginator = require(\"../paginator/Paginator\");\n\nvar _DomHandler = _interopRequireDefault(require(\"../utils/DomHandler\"));\n\nvar _ObjectUtils = _interopRequireDefault(require(\"../utils/ObjectUtils\"));\n\nvar _FilterUtils = _interopRequireDefault(require(\"../utils/FilterUtils\"));\n\nvar _ScrollableView = require(\"./ScrollableView\");\n\nvar _TableBody = require(\"./TableBody\");\n\nvar _TableFooter = require(\"./TableFooter\");\n\nvar _TableHeader = require(\"./TableHeader\");\n\nvar _TableLoadingBody = require(\"./TableLoadingBody\");\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar DataTable = /*#__PURE__*/function (_Component) {\n _inherits(DataTable, _Component);\n\n var _super = _createSuper(DataTable);\n\n function DataTable(props) {\n var _this;\n\n _classCallCheck(this, DataTable);\n\n _this = _super.call(this, props);\n _this.state = {};\n\n if (!_this.props.onPage) {\n _this.state.first = props.first;\n _this.state.rows = props.rows;\n }\n\n if (!_this.props.onSort) {\n _this.state.sortField = props.sortField;\n _this.state.sortOrder = props.sortOrder;\n _this.state.multiSortMeta = props.multiSortMeta;\n }\n\n if (!_this.props.onFilter) {\n _this.state.filters = props.filters;\n }\n\n if (_this.isStateful()) {\n _this.restoreState(_this.state);\n }\n\n _this.onPageChange = _this.onPageChange.bind(_assertThisInitialized(_this));\n _this.onSort = _this.onSort.bind(_assertThisInitialized(_this));\n _this.onFilter = _this.onFilter.bind(_assertThisInitialized(_this));\n _this.onColumnResizeStart = _this.onColumnResizeStart.bind(_assertThisInitialized(_this));\n _this.onHeaderCheckboxClick = _this.onHeaderCheckboxClick.bind(_assertThisInitialized(_this));\n _this.onColumnDragStart = _this.onColumnDragStart.bind(_assertThisInitialized(_this));\n _this.onColumnDragOver = _this.onColumnDragOver.bind(_assertThisInitialized(_this));\n _this.onColumnDragLeave = _this.onColumnDragLeave.bind(_assertThisInitialized(_this));\n _this.onColumnDrop = _this.onColumnDrop.bind(_assertThisInitialized(_this));\n _this.onVirtualScroll = _this.onVirtualScroll.bind(_assertThisInitialized(_this));\n _this.frozenSelectionMode = null;\n return _this;\n }\n\n _createClass(DataTable, [{\n key: \"getFirst\",\n value: function getFirst() {\n return this.props.onPage ? this.props.first : this.state.first;\n }\n }, {\n key: \"getRows\",\n value: function getRows() {\n return this.props.onPage ? this.props.rows : this.state.rows;\n }\n }, {\n key: \"getSortField\",\n value: function getSortField() {\n return this.props.onSort ? this.props.sortField : this.state.sortField;\n }\n }, {\n key: \"getSortOrder\",\n value: function getSortOrder() {\n return this.props.onSort ? this.props.sortOrder : this.state.sortOrder;\n }\n }, {\n key: \"getMultiSortMeta\",\n value: function getMultiSortMeta() {\n return this.props.onSort ? this.props.multiSortMeta : this.state.multiSortMeta;\n }\n }, {\n key: \"getFilters\",\n value: function getFilters() {\n return this.props.onFilter ? this.props.filters : this.state.filters;\n }\n }, {\n key: \"getStorage\",\n value: function getStorage() {\n switch (this.props.stateStorage) {\n case 'local':\n return window.localStorage;\n\n case 'session':\n return window.sessionStorage;\n\n case 'custom':\n return null;\n\n default:\n throw new Error(this.props.stateStorage + ' is not a valid value for the state storage, supported values are \"local\", \"session\" and \"custom\".');\n }\n }\n }, {\n key: \"isCustomStateStorage\",\n value: function isCustomStateStorage() {\n return this.props.stateStorage === 'custom';\n }\n }, {\n key: \"isStateful\",\n value: function isStateful() {\n return this.props.stateKey != null || this.isCustomStateStorage();\n }\n }, {\n key: \"saveState\",\n value: function saveState() {\n var state = {};\n\n if (this.props.paginator) {\n state.first = this.getFirst();\n state.rows = this.getRows();\n }\n\n var sortField = this.getSortField();\n\n if (sortField) {\n state.sortField = sortField;\n state.sortOrder = this.getSortOrder();\n }\n\n var multiSortMeta = this.getMultiSortMeta();\n\n if (multiSortMeta) {\n state.multiSortMeta = multiSortMeta;\n }\n\n if (this.hasFilter()) {\n state.filters = this.getFilters();\n }\n\n if (this.props.resizableColumns) {\n this.saveColumnWidths(state);\n }\n\n if (this.props.reorderableColumns) {\n state.columnOrder = this.state.columnOrder;\n }\n\n if (this.props.expandedRows) {\n state.expandedRows = this.props.expandedRows;\n }\n\n if (this.props.selection && this.props.onSelectionChange) {\n state.selection = this.props.selection;\n }\n\n if (this.isCustomStateStorage()) {\n if (this.props.customSaveState) {\n this.props.customSaveState(state);\n }\n } else {\n var storage = this.getStorage();\n\n if (Object.keys(state).length) {\n storage.setItem(this.props.stateKey, JSON.stringify(state));\n }\n }\n\n if (this.props.onStateSave) {\n this.props.onStateSave(state);\n }\n }\n }, {\n key: \"clearState\",\n value: function clearState() {\n var storage = this.getStorage();\n\n if (storage && this.props.stateKey) {\n storage.removeItem(this.props.stateKey);\n }\n }\n }, {\n key: \"restoreState\",\n value: function restoreState(state) {\n var restoredState = {};\n\n if (this.isCustomStateStorage()) {\n if (this.props.customRestoreState) {\n restoredState = this.props.customRestoreState();\n }\n } else {\n var storage = this.getStorage();\n var stateString = storage.getItem(this.props.stateKey);\n\n if (stateString) {\n restoredState = JSON.parse(stateString);\n }\n }\n\n if (restoredState && Object.keys(restoredState).length) {\n if (this.props.paginator) {\n if (this.props.onPage) {\n this.props.onPage({\n first: restoredState.first,\n rows: restoredState.rows\n });\n } else {\n state.first = restoredState.first;\n state.rows = restoredState.rows;\n }\n }\n\n if (restoredState.sortField) {\n if (this.props.onSort) {\n this.props.onSort({\n sortField: restoredState.sortField,\n sortOrder: restoredState.sortOrder\n });\n } else {\n state.sortField = restoredState.sortField;\n state.sortOrder = restoredState.sortOrder;\n }\n }\n\n if (restoredState.multiSortMeta) {\n if (this.props.onSort) {\n this.props.onSort({\n multiSortMeta: restoredState.multiSortMeta\n });\n } else {\n state.multiSortMeta = restoredState.multiSortMeta;\n }\n }\n\n if (restoredState.filters) {\n if (this.props.onFilter) {\n this.props.onFilter({\n filters: restoredState.filters\n });\n } else {\n state.filters = restoredState.filters;\n }\n }\n\n if (this.props.resizableColumns) {\n this.columnWidthsState = restoredState.columnWidths;\n this.tableWidthState = restoredState.tableWidth;\n }\n\n if (this.props.reorderableColumns) {\n state.columnOrder = restoredState.columnOrder;\n }\n\n if (restoredState.expandedRows && this.props.onRowToggle) {\n this.props.onRowToggle({\n data: restoredState.expandedRows\n });\n }\n\n if (restoredState.selection && this.props.onSelectionChange) {\n this.props.onSelectionChange({\n value: restoredState.selection\n });\n }\n\n if (this.props.onStateRestore) {\n this.props.onStateRestore(restoredState);\n }\n }\n }\n }, {\n key: \"saveColumnWidths\",\n value: function saveColumnWidths(state) {\n var widths = [];\n\n var headers = _DomHandler.default.find(this.container, '.p-datatable-thead > tr > th');\n\n headers.map(function (header) {\n return widths.push(_DomHandler.default.getOuterWidth(header));\n });\n state.columnWidths = widths.join(',');\n\n if (this.props.columnResizeMode === 'expand') {\n state.tableWidth = this.props.scrollable ? _DomHandler.default.findSingle(this.container, '.p-datatable-scrollable-header-table').style.width : _DomHandler.default.getOuterWidth(this.table) + 'px';\n }\n }\n }, {\n key: \"restoreColumnWidths\",\n value: function restoreColumnWidths() {\n if (this.columnWidthsState) {\n var widths = this.columnWidthsState.split(',');\n\n if (this.props.columnResizeMode === 'expand' && this.tableWidthState) {\n if (this.props.scrollable) {\n this.setScrollableItemsWidthOnExpandResize(null, this.tableWidthState, 0);\n } else {\n this.table.style.width = this.tableWidthState;\n this.container.style.width = this.tableWidthState;\n }\n }\n\n if (this.props.scrollable) {\n var headerCols = _DomHandler.default.find(this.container, '.p-datatable-scrollable-header-table > colgroup > col');\n\n var bodyCols = _DomHandler.default.find(this.container, '.p-datatable-scrollable-body-table > colgroup > col');\n\n headerCols.map(function (col, index) {\n return col.style.width = widths[index] + 'px';\n });\n bodyCols.map(function (col, index) {\n return col.style.width = widths[index] + 'px';\n });\n } else {\n var headers = _DomHandler.default.find(this.table, '.p-datatable-thead > tr > th');\n\n headers.map(function (header, index) {\n return header.style.width = widths[index] + 'px';\n });\n }\n }\n }\n }, {\n key: \"onPageChange\",\n value: function onPageChange(event) {\n if (this.props.onPage) this.props.onPage(event);else this.setState({\n first: event.first,\n rows: event.rows\n });\n\n if (this.props.onValueChange) {\n this.props.onValueChange();\n }\n }\n }, {\n key: \"createPaginator\",\n value: function createPaginator(position, totalRecords, data) {\n var className = 'p-paginator-' + position;\n return /*#__PURE__*/_react.default.createElement(_Paginator.Paginator, {\n first: this.getFirst(),\n rows: this.getRows(),\n pageLinkSize: this.props.pageLinkSize,\n className: className,\n onPageChange: this.onPageChange,\n template: this.props.paginatorTemplate,\n totalRecords: totalRecords,\n rowsPerPageOptions: this.props.rowsPerPageOptions,\n currentPageReportTemplate: this.props.currentPageReportTemplate,\n leftContent: this.props.paginatorLeft,\n rightContent: this.props.paginatorRight,\n alwaysShow: this.props.alwaysShowPaginator,\n dropdownAppendTo: this.props.paginatorDropdownAppendTo\n });\n }\n }, {\n key: \"onSort\",\n value: function onSort(event) {\n var sortField = event.sortField;\n var sortOrder = this.props.defaultSortOrder;\n var multiSortMeta;\n var eventMeta;\n this.columnSortable = event.sortable;\n this.columnSortFunction = event.sortFunction;\n this.columnField = event.sortField;\n\n if (this.props.sortMode === 'multiple') {\n var metaKey = event.originalEvent.metaKey || event.originalEvent.ctrlKey;\n multiSortMeta = this.getMultiSortMeta();\n\n if (multiSortMeta && multiSortMeta instanceof Array) {\n var sortMeta = multiSortMeta.find(function (sortMeta) {\n return sortMeta.field === sortField;\n });\n sortOrder = sortMeta ? this.getCalculatedSortOrder(sortMeta.order) : sortOrder;\n }\n\n var newMetaData = {\n field: sortField,\n order: sortOrder\n };\n\n if (sortOrder) {\n if (!multiSortMeta || !metaKey) {\n multiSortMeta = [];\n }\n\n this.addSortMeta(newMetaData, multiSortMeta);\n } else if (this.props.removableSort && multiSortMeta) {\n this.removeSortMeta(newMetaData, multiSortMeta);\n }\n\n eventMeta = {\n multiSortMeta: multiSortMeta\n };\n } else {\n sortOrder = this.getSortField() === sortField ? this.getCalculatedSortOrder(this.getSortOrder()) : sortOrder;\n\n if (this.props.removableSort) {\n sortField = sortOrder ? sortField : null;\n }\n\n eventMeta = {\n sortField: sortField,\n sortOrder: sortOrder\n };\n }\n\n if (this.props.onSort) {\n this.props.onSort(eventMeta);\n } else {\n eventMeta.first = 0;\n this.setState(eventMeta);\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(this.processData({\n sortField: sortField,\n sortOrder: sortOrder,\n multiSortMeta: multiSortMeta\n }));\n }\n }\n }, {\n key: \"getCalculatedSortOrder\",\n value: function getCalculatedSortOrder(currentOrder) {\n return this.props.removableSort ? currentOrder ? currentOrder < 0 ? 0 : -1 : 1 : currentOrder * -1;\n }\n }, {\n key: \"addSortMeta\",\n value: function addSortMeta(meta, multiSortMeta) {\n var index = -1;\n\n for (var i = 0; i < multiSortMeta.length; i++) {\n if (multiSortMeta[i].field === meta.field) {\n index = i;\n break;\n }\n }\n\n if (index >= 0) multiSortMeta[index] = meta;else multiSortMeta.push(meta);\n }\n }, {\n key: \"removeSortMeta\",\n value: function removeSortMeta(meta, multiSortMeta) {\n var index = -1;\n\n for (var i = 0; i < multiSortMeta.length; i++) {\n if (multiSortMeta[i].field === meta.field) {\n index = i;\n break;\n }\n }\n\n if (index >= 0) {\n multiSortMeta.splice(index, 1);\n }\n\n multiSortMeta = multiSortMeta.length > 0 ? multiSortMeta : null;\n }\n }, {\n key: \"sortSingle\",\n value: function sortSingle(data, sortField, sortOrder) {\n var value = _toConsumableArray(data);\n\n if (this.columnSortable && this.columnSortFunction) {\n value = this.columnSortFunction({\n field: this.getSortField(),\n order: this.getSortOrder()\n });\n } else {\n value.sort(function (data1, data2) {\n var value1 = _ObjectUtils.default.resolveFieldData(data1, sortField);\n\n var value2 = _ObjectUtils.default.resolveFieldData(data2, sortField);\n\n var result = null;\n if (value1 == null && value2 != null) result = -1;else if (value1 != null && value2 == null) result = 1;else if (value1 == null && value2 == null) result = 0;else if (typeof value1 === 'string' && typeof value2 === 'string') result = value1.localeCompare(value2, undefined, {\n numeric: true\n });else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n return sortOrder * result;\n });\n }\n\n return value;\n }\n }, {\n key: \"sortMultiple\",\n value: function sortMultiple(data, multiSortMeta) {\n var _this2 = this;\n\n var value = _toConsumableArray(data);\n\n if (this.columnSortable && this.columnSortFunction) {\n var meta = multiSortMeta.find(function (meta) {\n return meta.field === _this2.columnField;\n });\n var field = this.columnField;\n var order = meta ? meta.order : this.defaultSortOrder;\n value = this.columnSortFunction({\n field: field,\n order: order\n });\n } else {\n value.sort(function (data1, data2) {\n return _this2.multisortField(data1, data2, multiSortMeta, 0);\n });\n }\n\n return value;\n }\n }, {\n key: \"multisortField\",\n value: function multisortField(data1, data2, multiSortMeta, index) {\n var value1 = _ObjectUtils.default.resolveFieldData(data1, multiSortMeta[index].field);\n\n var value2 = _ObjectUtils.default.resolveFieldData(data2, multiSortMeta[index].field);\n\n var result = null;\n\n if (typeof value1 === 'string' || value1 instanceof String) {\n if (value1.localeCompare && value1 !== value2) {\n return multiSortMeta[index].order * value1.localeCompare(value2, undefined, {\n numeric: true\n });\n }\n } else {\n result = value1 < value2 ? -1 : 1;\n }\n\n if (value1 === value2) {\n return multiSortMeta.length - 1 > index ? this.multisortField(data1, data2, multiSortMeta, index + 1) : 0;\n }\n\n return multiSortMeta[index].order * result;\n }\n }, {\n key: \"filter\",\n value: function filter(value, field, mode) {\n this.onFilter({\n value: value,\n field: field,\n matchMode: mode\n });\n }\n }, {\n key: \"onFilter\",\n value: function onFilter(event) {\n var currentFilters = this.getFilters();\n var newFilters = currentFilters ? _objectSpread({}, currentFilters) : {};\n if (!this.isFilterBlank(event.value)) newFilters[event.field] = {\n value: event.value,\n matchMode: event.matchMode\n };else if (newFilters[event.field]) delete newFilters[event.field];\n\n if (this.props.onFilter) {\n this.props.onFilter({\n filters: newFilters\n });\n } else {\n this.setState({\n first: 0,\n filters: newFilters\n });\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(this.processData({\n filters: newFilters\n }));\n }\n }\n }, {\n key: \"hasFilter\",\n value: function hasFilter() {\n var filters = this.getFilters() || this.props.globalFilter;\n return filters && Object.keys(filters).length > 0;\n }\n }, {\n key: \"isFilterBlank\",\n value: function isFilterBlank(filter) {\n if (filter !== null && filter !== undefined) {\n if (typeof filter === 'string' && filter.trim().length === 0 || filter instanceof Array && filter.length === 0) return true;else return false;\n }\n\n return true;\n }\n }, {\n key: \"hasFooter\",\n value: function hasFooter() {\n if (this.props.children) {\n if (this.props.footerColumnGroup) {\n return true;\n } else {\n return this.hasChildrenFooter(this.props.children);\n }\n } else {\n return false;\n }\n }\n }, {\n key: \"hasChildrenFooter\",\n value: function hasChildrenFooter(children) {\n var hasFooter = false;\n\n if (children) {\n if (children instanceof Array) {\n for (var i = 0; i < children.length; i++) {\n hasFooter = hasFooter || this.hasChildrenFooter(children[i]);\n }\n } else {\n return children.props && children.props.footer !== null;\n }\n }\n\n return hasFooter;\n }\n }, {\n key: \"onColumnResizeStart\",\n value: function onColumnResizeStart(event) {\n var containerLeft = _DomHandler.default.getOffset(this.container).left;\n\n this.resizeColumn = event.columnEl;\n this.resizeColumnProps = event.columnProps;\n this.columnResizing = true;\n this.lastResizerHelperX = event.originalEvent.pageX - containerLeft + this.container.scrollLeft;\n this.bindColumnResizeEvents();\n }\n }, {\n key: \"onColumnResize\",\n value: function onColumnResize(event) {\n var containerLeft = _DomHandler.default.getOffset(this.container).left;\n\n _DomHandler.default.addClass(this.container, 'p-unselectable-text');\n\n this.resizerHelper.style.height = this.container.offsetHeight + 'px';\n this.resizerHelper.style.top = 0 + 'px';\n this.resizerHelper.style.left = event.pageX - containerLeft + this.container.scrollLeft + 'px';\n this.resizerHelper.style.display = 'block';\n }\n }, {\n key: \"onColumnResizeEnd\",\n value: function onColumnResizeEnd(event) {\n var delta = this.resizerHelper.offsetLeft - this.lastResizerHelperX;\n var columnWidth = this.resizeColumn.offsetWidth;\n var newColumnWidth = columnWidth + delta;\n var minWidth = this.resizeColumn.style.minWidth || 15;\n\n if (columnWidth + delta > parseInt(minWidth, 10)) {\n if (this.props.columnResizeMode === 'fit') {\n var nextColumn = this.resizeColumn.nextElementSibling;\n var nextColumnWidth = nextColumn.offsetWidth - delta;\n\n if (newColumnWidth > 15 && nextColumnWidth > 15) {\n if (this.props.scrollable) {\n var scrollableView = this.findParentScrollableView(this.resizeColumn);\n\n var scrollableBodyTable = _DomHandler.default.findSingle(scrollableView, 'table.p-datatable-scrollable-body-table');\n\n var scrollableHeaderTable = _DomHandler.default.findSingle(scrollableView, 'table.p-datatable-scrollable-header-table');\n\n var scrollableFooterTable = _DomHandler.default.findSingle(scrollableView, 'table.p-datatable-scrollable-footer-table');\n\n var resizeColumnIndex = _DomHandler.default.index(this.resizeColumn);\n\n this.resizeColGroup(scrollableHeaderTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n this.resizeColGroup(scrollableBodyTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n this.resizeColGroup(scrollableFooterTable, resizeColumnIndex, newColumnWidth, nextColumnWidth);\n } else {\n this.resizeColumn.style.width = newColumnWidth + 'px';\n\n if (nextColumn) {\n nextColumn.style.width = nextColumnWidth + 'px';\n }\n }\n }\n } else if (this.props.columnResizeMode === 'expand') {\n if (this.props.scrollable) {\n this.setScrollableItemsWidthOnExpandResize(this.resizeColumn, newColumnWidth, delta);\n } else {\n this.table.style.width = this.table.offsetWidth + delta + 'px';\n this.resizeColumn.style.width = newColumnWidth + 'px';\n }\n }\n\n if (this.props.onColumnResizeEnd) {\n this.props.onColumnResizeEnd({\n element: this.resizeColumn,\n column: this.resizeColumnProps,\n delta: delta\n });\n }\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n\n this.resizerHelper.style.display = 'none';\n this.resizeColumn = null;\n this.resizeColumnProps = null;\n\n _DomHandler.default.removeClass(this.container, 'p-unselectable-text');\n\n this.unbindColumnResizeEvents();\n }\n }, {\n key: \"setScrollableItemsWidthOnExpandResize\",\n value: function setScrollableItemsWidthOnExpandResize(column, newColumnWidth, delta) {\n var scrollableView = column ? this.findParentScrollableView(column) : this.container;\n\n var scrollableBody = _DomHandler.default.findSingle(scrollableView, '.p-datatable-scrollable-body');\n\n var scrollableHeader = _DomHandler.default.findSingle(scrollableView, '.p-datatable-scrollable-header');\n\n var scrollableFooter = _DomHandler.default.findSingle(scrollableView, '.p-datatable-scrollable-footer');\n\n var scrollableBodyTable = _DomHandler.default.findSingle(scrollableBody, 'table.p-datatable-scrollable-body-table');\n\n var scrollableHeaderTable = _DomHandler.default.findSingle(scrollableHeader, 'table.p-datatable-scrollable-header-table');\n\n var scrollableFooterTable = _DomHandler.default.findSingle(scrollableFooter, 'table.p-datatable-scrollable-footer-table');\n\n var scrollableBodyTableWidth = column ? scrollableBodyTable.offsetWidth + delta : newColumnWidth;\n var scrollableHeaderTableWidth = column ? scrollableHeaderTable.offsetWidth + delta : newColumnWidth;\n var isContainerInViewport = this.container.offsetWidth >= scrollableBodyTableWidth;\n\n var setWidth = function setWidth(container, table, width, isContainerInViewport) {\n if (container && table) {\n container.style.width = isContainerInViewport ? width + _DomHandler.default.calculateScrollbarWidth(scrollableBody) + 'px' : 'auto';\n table.style.width = width + 'px';\n }\n };\n\n setWidth(scrollableBody, scrollableBodyTable, scrollableBodyTableWidth, isContainerInViewport);\n setWidth(scrollableHeader, scrollableHeaderTable, scrollableHeaderTableWidth, isContainerInViewport);\n setWidth(scrollableFooter, scrollableFooterTable, scrollableHeaderTableWidth, isContainerInViewport);\n\n if (column) {\n var resizeColumnIndex = _DomHandler.default.index(column);\n\n this.resizeColGroup(scrollableHeaderTable, resizeColumnIndex, newColumnWidth, null);\n this.resizeColGroup(scrollableBodyTable, resizeColumnIndex, newColumnWidth, null);\n this.resizeColGroup(scrollableFooterTable, resizeColumnIndex, newColumnWidth, null);\n }\n }\n }, {\n key: \"findParentScrollableView\",\n value: function findParentScrollableView(column) {\n if (column) {\n var parent = column.parentElement;\n\n while (parent && !_DomHandler.default.hasClass(parent, 'p-datatable-scrollable-view')) {\n parent = parent.parentElement;\n }\n\n return parent;\n } else {\n return null;\n }\n }\n }, {\n key: \"resizeColGroup\",\n value: function resizeColGroup(table, resizeColumnIndex, newColumnWidth, nextColumnWidth) {\n if (table) {\n var colGroup = table.children[0].nodeName === 'COLGROUP' ? table.children[0] : null;\n\n if (colGroup) {\n var col = colGroup.children[resizeColumnIndex];\n var nextCol = col.nextElementSibling;\n col.style.width = newColumnWidth + 'px';\n\n if (nextCol && nextColumnWidth) {\n nextCol.style.width = nextColumnWidth + 'px';\n }\n } else {\n throw new Error(\"Scrollable tables require a colgroup to support resizable columns\");\n }\n }\n }\n }, {\n key: \"bindColumnResizeEvents\",\n value: function bindColumnResizeEvents() {\n var _this3 = this;\n\n this.documentColumnResizeListener = document.addEventListener('mousemove', function (event) {\n if (_this3.columnResizing) {\n _this3.onColumnResize(event);\n }\n });\n this.documentColumnResizeEndListener = document.addEventListener('mouseup', function (event) {\n if (_this3.columnResizing) {\n _this3.columnResizing = false;\n\n _this3.onColumnResizeEnd(event);\n }\n });\n }\n }, {\n key: \"unbindColumnResizeEvents\",\n value: function unbindColumnResizeEvents() {\n document.removeEventListener('document', this.documentColumnResizeListener);\n document.removeEventListener('document', this.documentColumnResizeEndListener);\n }\n }, {\n key: \"findParentHeader\",\n value: function findParentHeader(element) {\n if (element.nodeName === 'TH') {\n return element;\n } else {\n var parent = element.parentElement;\n\n while (parent.nodeName !== 'TH') {\n parent = parent.parentElement;\n if (!parent) break;\n }\n\n return parent;\n }\n }\n }, {\n key: \"onColumnDragStart\",\n value: function onColumnDragStart(event) {\n if (this.columnResizing) {\n event.preventDefault();\n return;\n }\n\n this.iconWidth = _DomHandler.default.getHiddenElementOuterWidth(this.reorderIndicatorUp);\n this.iconHeight = _DomHandler.default.getHiddenElementOuterHeight(this.reorderIndicatorUp);\n this.draggedColumn = this.findParentHeader(event.target);\n event.dataTransfer.setData('text', 'b'); // Firefox requires this to make dragging possible\n }\n }, {\n key: \"onColumnDragOver\",\n value: function onColumnDragOver(event) {\n var dropHeader = this.findParentHeader(event.target);\n\n if (this.props.reorderableColumns && this.draggedColumn && dropHeader) {\n event.preventDefault();\n\n var containerOffset = _DomHandler.default.getOffset(this.container);\n\n var dropHeaderOffset = _DomHandler.default.getOffset(dropHeader);\n\n if (this.draggedColumn !== dropHeader) {\n var targetLeft = dropHeaderOffset.left - containerOffset.left; //let targetTop = containerOffset.top - dropHeaderOffset.top;\n\n var columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;\n this.reorderIndicatorUp.style.top = dropHeaderOffset.top - containerOffset.top - (this.iconHeight - 1) + 'px';\n this.reorderIndicatorDown.style.top = dropHeaderOffset.top - containerOffset.top + dropHeader.offsetHeight + 'px';\n\n if (event.pageX > columnCenter) {\n this.reorderIndicatorUp.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.iconWidth / 2) + 'px';\n this.reorderIndicatorDown.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.iconWidth / 2) + 'px';\n this.dropPosition = 1;\n } else {\n this.reorderIndicatorUp.style.left = targetLeft - Math.ceil(this.iconWidth / 2) + 'px';\n this.reorderIndicatorDown.style.left = targetLeft - Math.ceil(this.iconWidth / 2) + 'px';\n this.dropPosition = -1;\n }\n\n this.reorderIndicatorUp.style.display = 'block';\n this.reorderIndicatorDown.style.display = 'block';\n }\n }\n }\n }, {\n key: \"onColumnDragLeave\",\n value: function onColumnDragLeave(event) {\n if (this.props.reorderableColumns && this.draggedColumn) {\n event.preventDefault();\n this.reorderIndicatorUp.style.display = 'none';\n this.reorderIndicatorDown.style.display = 'none';\n }\n }\n }, {\n key: \"onColumnDrop\",\n value: function onColumnDrop(event) {\n event.preventDefault();\n\n if (this.draggedColumn) {\n var dragIndex = _DomHandler.default.index(this.draggedColumn);\n\n var dropIndex = _DomHandler.default.index(this.findParentHeader(event.target));\n\n var allowDrop = dragIndex !== dropIndex;\n\n if (allowDrop && (dropIndex - dragIndex === 1 && this.dropPosition === -1 || dragIndex - dropIndex === 1 && this.dropPosition === 1)) {\n allowDrop = false;\n }\n\n if (allowDrop) {\n var columns = this.state.columnOrder ? this.getColumns() : _react.default.Children.toArray(this.props.children);\n\n _ObjectUtils.default.reorderArray(columns, dragIndex, dropIndex);\n\n var columnOrder = [];\n\n var _iterator = _createForOfIteratorHelper(columns),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var column = _step.value;\n columnOrder.push(column.props.columnKey || column.props.field);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n this.setState({\n columnOrder: columnOrder\n });\n\n if (this.props.onColReorder) {\n this.props.onColReorder({\n originalEvent: event,\n dragIndex: dragIndex,\n dropIndex: dropIndex,\n columns: columns\n });\n }\n }\n\n this.reorderIndicatorUp.style.display = 'none';\n this.reorderIndicatorDown.style.display = 'none';\n this.draggedColumn.draggable = false;\n this.draggedColumn = null;\n this.dropPosition = null;\n }\n }\n }, {\n key: \"onVirtualScroll\",\n value: function onVirtualScroll(event) {\n var _this4 = this;\n\n if (this.virtualScrollTimer) {\n clearTimeout(this.virtualScrollTimer);\n }\n\n this.virtualScrollTimer = setTimeout(function () {\n if (_this4.props.onVirtualScroll) {\n _this4.props.onVirtualScroll({\n first: (event.page - 1) * _this4.props.rows,\n rows: _this4.props.virtualScroll ? _this4.props.rows * 2 : _this4.props.rows\n });\n }\n }, this.props.virtualScrollDelay);\n }\n }, {\n key: \"exportCSV\",\n value: function exportCSV() {\n var _this5 = this;\n\n var data = this.processData();\n var csv = \"\\uFEFF\";\n\n var columns = _react.default.Children.toArray(this.props.children); //headers\n\n\n for (var i = 0; i < columns.length; i++) {\n if (columns[i].props.field) {\n csv += '\"' + (columns[i].props.header || columns[i].props.field) + '\"';\n\n if (i < columns.length - 1) {\n csv += this.props.csvSeparator;\n }\n }\n } //body\n\n\n data.forEach(function (record, i) {\n csv += '\\n';\n\n for (var _i = 0; _i < columns.length; _i++) {\n var column = columns[_i],\n field = column.props.field;\n\n if (column.props.exportable && field) {\n var cellData = _ObjectUtils.default.resolveFieldData(record, field);\n\n if (cellData != null) {\n if (_this5.props.exportFunction) {\n cellData = _this5.props.exportFunction({\n data: cellData,\n field: field\n });\n } else cellData = String(cellData).replace(/\"/g, '\"\"');\n } else cellData = '';\n\n csv += '\"' + cellData + '\"';\n\n if (_i < columns.length - 1) {\n csv += _this5.props.csvSeparator;\n }\n }\n }\n });\n var blob = new Blob([csv], {\n type: 'text/csv;charset=utf-8;'\n });\n\n if (window.navigator.msSaveOrOpenBlob) {\n navigator.msSaveOrOpenBlob(blob, this.props.exportFilename + '.csv');\n } else {\n var link = document.createElement(\"a\");\n link.style.display = 'none';\n document.body.appendChild(link);\n\n if (link.download !== undefined) {\n link.setAttribute('href', URL.createObjectURL(blob));\n link.setAttribute('download', this.props.exportFilename + '.csv');\n link.click();\n } else {\n csv = 'data:text/csv;charset=utf-8,' + csv;\n window.open(encodeURI(csv));\n }\n\n document.body.removeChild(link);\n }\n }\n }, {\n key: \"closeEditingCell\",\n value: function closeEditingCell() {\n if (this.props.editMode !== \"row\") {\n document.body.click();\n }\n }\n }, {\n key: \"onHeaderCheckboxClick\",\n value: function onHeaderCheckboxClick(event) {\n var selection;\n\n if (!event.checked) {\n var visibleData = this.hasFilter() ? this.processData() : this.props.value;\n selection = _toConsumableArray(visibleData);\n } else {\n selection = [];\n }\n\n if (this.props.onSelectionChange) {\n var originalEvent = event.originalEvent,\n rest = _objectWithoutProperties(event, [\"originalEvent\"]);\n\n this.props.onSelectionChange(_objectSpread({\n originalEvent: originalEvent,\n value: selection\n }, rest));\n }\n }\n }, {\n key: \"filterLocal\",\n value: function filterLocal(value, localFilters) {\n var filteredValue = [];\n var filters = localFilters || this.getFilters();\n\n var columns = _react.default.Children.toArray(this.props.children);\n\n for (var i = 0; i < value.length; i++) {\n var localMatch = true;\n var globalMatch = false;\n\n for (var j = 0; j < columns.length; j++) {\n var col = columns[j];\n var columnField = col.props.filterField || col.props.field;\n var filterMeta = filters ? filters[columnField] : null; //local\n\n if (filterMeta) {\n var filterValue = filterMeta.value;\n\n var dataFieldValue = _ObjectUtils.default.resolveFieldData(value[i], columnField);\n\n var filterMatchMode = filterMeta.matchMode || col.props.filterMatchMode;\n var filterConstraint = filterMatchMode === 'custom' ? col.props.filterFunction : _FilterUtils.default[filterMatchMode];\n\n if (!filterConstraint(dataFieldValue, filterValue, this.props.filterLocale)) {\n localMatch = false;\n }\n\n if (!localMatch) {\n break;\n }\n }\n\n if (!col.props.excludeGlobalFilter && this.props.globalFilter && !globalMatch) {\n globalMatch = _FilterUtils.default['contains'](_ObjectUtils.default.resolveFieldData(value[i], columnField), this.props.globalFilter, this.props.filterLocale);\n }\n }\n\n var matches = localMatch;\n\n if (this.props.globalFilter) {\n matches = localMatch && globalMatch;\n }\n\n if (matches) {\n filteredValue.push(value[i]);\n }\n }\n\n if (filteredValue.length === value.length) {\n filteredValue = value;\n }\n\n return filteredValue;\n }\n }, {\n key: \"processData\",\n value: function processData(localState) {\n var data = this.props.value;\n\n if (!this.props.lazy) {\n if (data && data.length) {\n var sortField = localState && localState.sortField || this.getSortField();\n var sortOrder = localState && localState.sortOrder || this.getSortOrder();\n var multiSortMeta = localState && localState.multiSortMeta || this.getMultiSortMeta();\n\n if (sortField || multiSortMeta && multiSortMeta.length) {\n if (this.props.sortMode === 'single') data = this.sortSingle(data, sortField, sortOrder);else if (this.props.sortMode === 'multiple') data = this.sortMultiple(data, multiSortMeta);\n }\n\n var localFilters = localState && localState.filters || this.getFilters();\n\n if (localFilters || this.props.globalFilter) {\n data = this.filterLocal(data, localFilters);\n }\n }\n }\n\n return data;\n }\n }, {\n key: \"isAllSelected\",\n value: function isAllSelected() {\n var visibleData = this.hasFilter() ? this.processData() : this.props.value;\n return this.props.selection && visibleData && visibleData.length && this.props.selection.length === visibleData.length;\n }\n }, {\n key: \"getFrozenColumns\",\n value: function getFrozenColumns(columns) {\n var frozenColumns = null;\n\n var _iterator2 = _createForOfIteratorHelper(columns),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var col = _step2.value;\n\n if (col.props.frozen) {\n frozenColumns = frozenColumns || [];\n frozenColumns.push(col);\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return frozenColumns;\n }\n }, {\n key: \"getScrollableColumns\",\n value: function getScrollableColumns(columns) {\n var scrollableColumns = null;\n\n var _iterator3 = _createForOfIteratorHelper(columns),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var col = _step3.value;\n\n if (!col.props.frozen) {\n scrollableColumns = scrollableColumns || [];\n scrollableColumns.push(col);\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n return scrollableColumns;\n }\n }, {\n key: \"getFrozenSelectionModeInColumn\",\n value: function getFrozenSelectionModeInColumn(columns) {\n if (Array.isArray(columns)) {\n var _iterator4 = _createForOfIteratorHelper(columns),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var col = _step4.value;\n if (col.props.selectionMode) return col.props.selectionMode;\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n }\n\n return null;\n }\n }, {\n key: \"createTableHeader\",\n value: function createTableHeader(value, columns, columnGroup) {\n return /*#__PURE__*/_react.default.createElement(_TableHeader.TableHeader, {\n value: value,\n onSort: this.onSort,\n sortField: this.getSortField(),\n sortOrder: this.getSortOrder(),\n multiSortMeta: this.getMultiSortMeta(),\n columnGroup: columnGroup,\n resizableColumns: this.props.resizableColumns,\n onColumnResizeStart: this.onColumnResizeStart,\n onFilter: this.onFilter,\n onHeaderCheckboxClick: this.onHeaderCheckboxClick,\n headerCheckboxSelected: this.isAllSelected(),\n reorderableColumns: this.props.reorderableColumns,\n onColumnDragStart: this.onColumnDragStart,\n filters: this.getFilters(),\n onColumnDragOver: this.onColumnDragOver,\n onColumnDragLeave: this.onColumnDragLeave,\n onColumnDrop: this.onColumnDrop,\n tabIndex: this.props.tabIndex\n }, columns);\n }\n }, {\n key: \"createTableBody\",\n value: function createTableBody(value, columns, frozen) {\n return /*#__PURE__*/_react.default.createElement(_TableBody.TableBody, {\n value: value,\n first: this.getFirst(),\n rows: this.getRows(),\n lazy: this.props.lazy,\n paginator: this.props.paginator,\n dataKey: this.props.dataKey,\n compareSelectionBy: this.props.compareSelectionBy,\n selectionMode: this.props.selectionMode,\n selection: this.props.selection,\n metaKeySelection: this.props.metaKeySelection,\n frozen: frozen,\n frozenSelectionMode: this.frozenSelectionMode,\n onSelectionChange: this.props.onSelectionChange,\n onRowClick: this.props.onRowClick,\n onRowDoubleClick: this.props.onRowDoubleClick,\n onRowSelect: this.props.onRowSelect,\n onRowUnselect: this.props.onRowUnselect,\n contextMenuSelection: this.props.contextMenuSelection,\n onContextMenuSelectionChange: this.props.onContextMenuSelectionChange,\n onContextMenu: this.props.onContextMenu,\n expandedRows: this.props.expandedRows,\n onRowToggle: this.props.onRowToggle,\n rowExpansionTemplate: this.props.rowExpansionTemplate,\n onRowExpand: this.props.onRowExpand,\n onRowCollapse: this.props.onRowCollapse,\n emptyMessage: this.props.emptyMessage,\n virtualScroll: this.props.virtualScroll,\n virtualRowHeight: this.props.virtualRowHeight,\n loading: this.props.loading,\n groupField: this.props.groupField,\n rowGroupMode: this.props.rowGroupMode,\n rowGroupHeaderTemplate: this.props.rowGroupHeaderTemplate,\n rowGroupFooterTemplate: this.props.rowGroupFooterTemplate,\n sortField: this.getSortField(),\n rowClassName: this.props.rowClassName,\n onRowReorder: this.props.onRowReorder,\n editMode: this.props.editMode,\n rowEditorValidator: this.props.rowEditorValidator,\n onRowEditInit: this.props.onRowEditInit,\n onRowEditSave: this.props.onRowEditSave,\n onRowEditCancel: this.props.onRowEditCancel,\n expandableRowGroups: this.props.expandableRowGroups,\n showRowReorderElement: this.props.showRowReorderElement,\n showSelectionElement: this.props.showSelectionElement\n }, columns);\n }\n }, {\n key: \"createTableLoadingBody\",\n value: function createTableLoadingBody(columns) {\n if (this.props.virtualScroll) {\n return /*#__PURE__*/_react.default.createElement(_TableLoadingBody.TableLoadingBody, {\n columns: columns,\n rows: this.getRows()\n });\n } else {\n return null;\n }\n }\n }, {\n key: \"createTableFooter\",\n value: function createTableFooter(columns, columnGroup) {\n if (this.hasFooter()) return /*#__PURE__*/_react.default.createElement(_TableFooter.TableFooter, {\n columnGroup: columnGroup\n }, columns);else return null;\n }\n }, {\n key: \"createScrollableView\",\n value: function createScrollableView(value, columns, frozen, headerColumnGroup, footerColumnGroup, totalRecords) {\n return /*#__PURE__*/_react.default.createElement(_ScrollableView.ScrollableView, {\n columns: columns,\n header: this.createTableHeader(value, columns, headerColumnGroup),\n body: this.createTableBody(value, columns, frozen),\n loadingBody: this.createTableLoadingBody(columns),\n frozenBody: this.props.frozenValue ? this.createTableBody(this.props.frozenValue, columns, true) : null,\n footer: this.createTableFooter(columns, footerColumnGroup),\n tableStyle: this.props.tableStyle,\n tableClassName: this.props.tableClassName,\n scrollHeight: this.props.scrollHeight,\n frozen: frozen,\n frozenWidth: this.props.frozenWidth,\n virtualScroll: this.props.virtualScroll,\n virtualRowHeight: this.props.virtualRowHeight,\n rows: this.props.rows,\n totalRecords: totalRecords,\n onVirtualScroll: this.onVirtualScroll,\n loading: this.props.loading\n });\n }\n }, {\n key: \"getColumns\",\n value: function getColumns() {\n var columns = _react.default.Children.toArray(this.props.children);\n\n if (columns && columns.length) {\n if (this.props.reorderableColumns && this.state.columnOrder) {\n var orderedColumns = [];\n\n var _iterator5 = _createForOfIteratorHelper(this.state.columnOrder),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var columnKey = _step5.value;\n var column = this.findColumnByKey(columns, columnKey);\n\n if (column) {\n orderedColumns.push(column);\n }\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n return [].concat(orderedColumns, _toConsumableArray(columns.filter(function (item) {\n return orderedColumns.indexOf(item) < 0;\n })));\n } else {\n return columns;\n }\n }\n\n return null;\n }\n }, {\n key: \"findColumnByKey\",\n value: function findColumnByKey(columns, key) {\n if (columns && columns.length) {\n for (var i = 0; i < columns.length; i++) {\n var child = columns[i];\n\n if (child.props.columnKey === key || child.props.field === key) {\n return child;\n }\n }\n }\n\n return null;\n }\n }, {\n key: \"getTotalRecords\",\n value: function getTotalRecords(data) {\n return this.props.lazy ? this.props.totalRecords : data ? data.length : 0;\n }\n }, {\n key: \"reset\",\n value: function reset() {\n var state = {};\n\n if (!this.props.onPage) {\n state.first = this.props.first;\n state.rows = this.props.rows;\n }\n\n if (!this.props.onSort) {\n state.sortField = this.props.sortField;\n state.sortOrder = this.props.sortOrder;\n state.multiSortMeta = this.props.multiSortMeta;\n }\n\n if (!this.props.onFilter) {\n state.filters = this.props.filters;\n }\n\n this.resetColumnOrder();\n\n if (Object.keys(state).length) {\n this.setState(state);\n }\n }\n }, {\n key: \"resetColumnOrder\",\n value: function resetColumnOrder() {\n var columns = _react.default.Children.toArray(this.props.children);\n\n var columnOrder = [];\n\n var _iterator6 = _createForOfIteratorHelper(columns),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var column = _step6.value;\n columnOrder.push(column.props.columnKey || column.props.field);\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n\n this.setState({\n columnOrder: columnOrder\n });\n }\n }, {\n key: \"renderLoader\",\n value: function renderLoader() {\n var iconClassName = (0, _ClassNames.classNames)('p-datatable-loading-icon pi-spin', this.props.loadingIcon);\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"p-datatable-loading-overlay p-component-overlay\"\n }, /*#__PURE__*/_react.default.createElement(\"i\", {\n className: iconClassName\n }));\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.isStateful() && this.props.resizableColumns) {\n this.restoreColumnWidths();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (this.isStateful()) {\n this.saveState();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this6 = this;\n\n var value = this.processData();\n var columns = this.getColumns();\n var totalRecords = this.getTotalRecords(value);\n var className = (0, _ClassNames.classNames)('p-datatable p-component', {\n 'p-datatable-resizable': this.props.resizableColumns,\n 'p-datatable-resizable-fit': this.props.resizableColumns && this.props.columnResizeMode === 'fit',\n 'p-datatable-scrollable': this.props.scrollable,\n 'p-datatable-virtual-scrollable': this.props.virtualScroll,\n 'p-datatable-auto-layout': this.props.autoLayout,\n 'p-datatable-hoverable-rows': this.props.rowHover || this.props.selectionMode\n }, this.props.className);\n var paginatorTop = this.props.paginator && this.props.paginatorPosition !== 'bottom' && this.createPaginator('top', totalRecords);\n var paginatorBottom = this.props.paginator && this.props.paginatorPosition !== 'top' && this.createPaginator('bottom', totalRecords);\n\n var headerFacet = this.props.header && /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"p-datatable-header\"\n }, this.props.header);\n\n var footerFacet = this.props.footer && /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"p-datatable-footer\"\n }, this.props.footer);\n\n var resizeHelper = this.props.resizableColumns && /*#__PURE__*/_react.default.createElement(\"div\", {\n ref: function ref(el) {\n _this6.resizerHelper = el;\n },\n className: \"p-column-resizer-helper p-highlight\",\n style: {\n display: 'none'\n }\n });\n\n var tableContent = null;\n\n var resizeIndicatorUp = this.props.reorderableColumns && /*#__PURE__*/_react.default.createElement(\"span\", {\n ref: function ref(el) {\n _this6.reorderIndicatorUp = el;\n },\n className: \"pi pi-arrow-down p-datatable-reorder-indicator-up\",\n style: {\n position: 'absolute',\n display: 'none'\n }\n });\n\n var resizeIndicatorDown = this.props.reorderableColumns && /*#__PURE__*/_react.default.createElement(\"span\", {\n ref: function ref(el) {\n _this6.reorderIndicatorDown = el;\n },\n className: \"pi pi-arrow-up p-datatable-reorder-indicator-down\",\n style: {\n position: 'absolute',\n display: 'none'\n }\n });\n\n var loader;\n\n if (this.props.loading) {\n loader = this.renderLoader();\n }\n\n if (Array.isArray(columns)) {\n if (this.props.scrollable) {\n this.frozenSelectionMode = this.frozenSelectionMode || this.getFrozenSelectionModeInColumn(columns);\n var frozenColumns = this.getFrozenColumns(columns);\n var scrollableColumns = frozenColumns ? this.getScrollableColumns(columns) : columns;\n var frozenView, scrollableView;\n\n if (frozenColumns) {\n frozenView = this.createScrollableView(value, frozenColumns, true, this.props.frozenHeaderColumnGroup, this.props.frozenFooterColumnGroup, totalRecords);\n }\n\n scrollableView = this.createScrollableView(value, scrollableColumns, false, this.props.headerColumnGroup, this.props.footerColumnGroup, totalRecords);\n tableContent = /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"p-datatable-scrollable-wrapper\"\n }, frozenView, scrollableView);\n } else {\n var tableHeader = this.createTableHeader(value, columns, this.props.headerColumnGroup);\n var tableBody = this.createTableBody(value, columns, false);\n var tableFooter = this.createTableFooter(columns, this.props.footerColumnGroup);\n tableContent = /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"p-datatable-wrapper\"\n }, /*#__PURE__*/_react.default.createElement(\"table\", {\n style: this.props.tableStyle,\n role: \"grid\",\n className: this.props.tableClassName,\n ref: function ref(el) {\n _this6.table = el;\n }\n }, tableHeader, tableFooter, tableBody));\n }\n }\n\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n id: this.props.id,\n className: className,\n style: this.props.style,\n ref: function ref(el) {\n _this6.container = el;\n },\n \"data-scrollselectors\": \".p-datatable-scrollable-body, .p-datatable-unfrozen-view .p-datatable-scrollable-body\"\n }, loader, headerFacet, paginatorTop, tableContent, paginatorBottom, footerFacet, resizeHelper, resizeIndicatorUp, resizeIndicatorDown);\n }\n }]);\n\n return DataTable;\n}(_react.Component);\n\nexports.DataTable = DataTable;\n\n_defineProperty(DataTable, \"defaultProps\", {\n id: null,\n value: null,\n header: null,\n footer: null,\n style: null,\n className: null,\n tableStyle: null,\n tableClassName: null,\n paginator: false,\n paginatorPosition: 'bottom',\n alwaysShowPaginator: true,\n paginatorTemplate: 'FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown',\n paginatorLeft: null,\n paginatorRight: null,\n paginatorDropdownAppendTo: null,\n pageLinkSize: 5,\n rowsPerPageOptions: null,\n currentPageReportTemplate: '({currentPage} of {totalPages})',\n first: 0,\n rows: null,\n totalRecords: null,\n lazy: false,\n sortField: null,\n sortOrder: null,\n multiSortMeta: null,\n sortMode: 'single',\n defaultSortOrder: 1,\n removableSort: false,\n emptyMessage: null,\n selectionMode: null,\n selection: null,\n onSelectionChange: null,\n contextMenuSelection: null,\n onContextMenuSelectionChange: null,\n compareSelectionBy: 'deepEquals',\n dataKey: null,\n metaKeySelection: true,\n headerColumnGroup: null,\n footerColumnGroup: null,\n frozenHeaderColumnGroup: null,\n frozenFooterColumnGroup: null,\n rowExpansionTemplate: null,\n expandedRows: null,\n onRowToggle: null,\n resizableColumns: false,\n columnResizeMode: 'fit',\n reorderableColumns: false,\n filters: null,\n globalFilter: null,\n filterLocale: undefined,\n scrollable: false,\n scrollHeight: null,\n virtualScroll: false,\n virtualScrollDelay: 150,\n virtualRowHeight: 28,\n frozenWidth: null,\n frozenValue: null,\n csvSeparator: ',',\n exportFilename: 'download',\n rowGroupMode: null,\n autoLayout: false,\n rowClassName: null,\n rowGroupHeaderTemplate: null,\n rowGroupFooterTemplate: null,\n loading: false,\n loadingIcon: 'pi pi-spinner',\n tabIndex: '0',\n stateKey: null,\n stateStorage: 'session',\n editMode: 'cell',\n expandableRowGroups: false,\n rowHover: false,\n showSelectionElement: null,\n showRowReorderElement: null,\n onColumnResizeEnd: null,\n onSort: null,\n onPage: null,\n onFilter: null,\n onVirtualScroll: null,\n onRowClick: null,\n onRowDoubleClick: null,\n onRowSelect: null,\n onRowUnselect: null,\n onRowExpand: null,\n onRowCollapse: null,\n onContextMenu: null,\n onColReorder: null,\n onRowReorder: null,\n onValueChange: null,\n rowEditorValidator: null,\n onRowEditInit: null,\n onRowEditSave: null,\n onRowEditCancel: null,\n exportFunction: null,\n customSaveState: null,\n customRestoreState: null,\n onStateSave: null,\n onStateRestore: null\n});\n\n_defineProperty(DataTable, \"propTypes\", {\n id: _propTypes.default.string,\n value: _propTypes.default.array,\n header: _propTypes.default.any,\n footer: _propTypes.default.any,\n style: _propTypes.default.object,\n className: _propTypes.default.string,\n tableStyle: _propTypes.default.any,\n tableClassName: _propTypes.default.string,\n paginator: _propTypes.default.bool,\n paginatorPosition: _propTypes.default.string,\n alwaysShowPaginator: _propTypes.default.bool,\n paginatorTemplate: _propTypes.default.string,\n paginatorLeft: _propTypes.default.any,\n paginatorRight: _propTypes.default.any,\n paginatorDropdownAppendTo: _propTypes.default.any,\n pageLinkSize: _propTypes.default.number,\n rowsPerPageOptions: _propTypes.default.array,\n currentPageReportTemplate: _propTypes.default.string,\n first: _propTypes.default.number,\n rows: _propTypes.default.number,\n totalRecords: _propTypes.default.number,\n lazy: _propTypes.default.bool,\n sortField: _propTypes.default.string,\n sortOrder: _propTypes.default.number,\n multiSortMeta: _propTypes.default.array,\n sortMode: _propTypes.default.string,\n defaultSortOrder: _propTypes.default.number,\n removableSort: _propTypes.default.bool,\n emptyMessage: _propTypes.default.any,\n selectionMode: _propTypes.default.string,\n selection: _propTypes.default.any,\n onSelectionChange: _propTypes.default.func,\n compareSelectionBy: _propTypes.default.string,\n dataKey: _propTypes.default.string,\n metaKeySelection: _propTypes.default.bool,\n headerColumnGroup: _propTypes.default.any,\n footerColumnGroup: _propTypes.default.any,\n frozenHeaderColumnGroup: _propTypes.default.any,\n frozenFooterColumnGroup: _propTypes.default.any,\n rowExpansionTemplate: _propTypes.default.func,\n expandedRows: _propTypes.default.oneOfType([_propTypes.default.array, _propTypes.default.object]),\n onRowToggle: _propTypes.default.func,\n resizableColumns: _propTypes.default.bool,\n columnResizeMode: _propTypes.default.string,\n reorderableColumns: _propTypes.default.bool,\n filters: _propTypes.default.object,\n globalFilter: _propTypes.default.any,\n filterLocale: _propTypes.default.string,\n scrollable: _propTypes.default.bool,\n scrollHeight: _propTypes.default.string,\n virtualScroll: _propTypes.default.bool,\n virtualScrollDelay: _propTypes.default.number,\n virtualRowHeight: _propTypes.default.number,\n frozenWidth: _propTypes.default.string,\n frozenValue: _propTypes.default.array,\n csvSeparator: _propTypes.default.string,\n exportFilename: _propTypes.default.string,\n rowGroupMode: _propTypes.default.string,\n autoLayout: _propTypes.default.bool,\n rowClassName: _propTypes.default.func,\n rowGroupHeaderTemplate: _propTypes.default.func,\n rowGroupFooterTemplate: _propTypes.default.func,\n loading: _propTypes.default.bool,\n loadingIcon: _propTypes.default.string,\n tabIndex: _propTypes.default.string,\n stateKey: _propTypes.default.string,\n stateStorage: _propTypes.default.string,\n editMode: _propTypes.default.string,\n expandableRowGroups: _propTypes.default.bool,\n rowHover: _propTypes.default.bool,\n showSelectionElement: _propTypes.default.func,\n showRowReorderElement: _propTypes.default.func,\n onColumnResizeEnd: _propTypes.default.func,\n onSort: _propTypes.default.func,\n onPage: _propTypes.default.func,\n onFilter: _propTypes.default.func,\n onVirtualScroll: _propTypes.default.func,\n onRowClick: _propTypes.default.func,\n onRowDoubleClick: _propTypes.default.func,\n onRowSelect: _propTypes.default.func,\n onRowUnselect: _propTypes.default.func,\n onRowExpand: _propTypes.default.func,\n onRowCollapse: _propTypes.default.func,\n onContextMenu: _propTypes.default.func,\n onColReorder: _propTypes.default.func,\n onRowReorder: _propTypes.default.func,\n onValueChange: _propTypes.default.func,\n rowEditorValidator: _propTypes.default.func,\n onRowEditInit: _propTypes.default.func,\n onRowEditSave: _propTypes.default.func,\n onRowEditCancel: _propTypes.default.func,\n exportFunction: _propTypes.default.func,\n customSaveState: _propTypes.default.func,\n customRestoreState: _propTypes.default.func,\n onStateSave: _propTypes.default.func,\n onStateRestore: _propTypes.default.func\n});","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? prefix + \": \" + provided : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.tip = tip;\nexports.Tooltip = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _ClassNames = require(\"../utils/ClassNames\");\n\nvar _DomHandler = _interopRequireDefault(require(\"../utils/DomHandler\"));\n\nvar _ConnectedOverlayScrollHandler = _interopRequireDefault(require(\"../utils/ConnectedOverlayScrollHandler\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction tip(props) {\n var appendTo = props.appendTo || document.body;\n var tooltipWrapper = document.createDocumentFragment();\n\n _DomHandler.default.appendChild(tooltipWrapper, appendTo);\n\n props = _objectSpread(_objectSpread({}, props), props.options);\n\n var tooltipEl = /*#__PURE__*/_react.default.createElement(Tooltip, props);\n\n _reactDom.default.render(tooltipEl, tooltipWrapper);\n\n return {\n destroy: function destroy() {\n _reactDom.default.unmountComponentAtNode(tooltipWrapper);\n },\n updateContent: function updateContent(content) {\n _reactDom.default.render( /*#__PURE__*/_react.default.cloneElement(tooltipEl, {\n content: content\n }), tooltipWrapper);\n }\n };\n}\n\nvar Tooltip = /*#__PURE__*/function (_Component) {\n _inherits(Tooltip, _Component);\n\n var _super = _createSuper(Tooltip);\n\n function Tooltip(props) {\n var _this;\n\n _classCallCheck(this, Tooltip);\n\n _this = _super.call(this, props);\n _this.state = {\n visible: false,\n position: _this.props.position\n };\n _this.appendTo = _this.props.appendTo || document.body;\n _this.show = _this.show.bind(_assertThisInitialized(_this));\n _this.hide = _this.hide.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(Tooltip, [{\n key: \"getEvents\",\n value: function getEvents() {\n var _this$props = this.props,\n showEvent = _this$props.showEvent,\n hideEvent = _this$props.hideEvent;\n\n if (this.props.mouseTrack) {\n showEvent = 'mousemove';\n hideEvent = 'mouseleave';\n } else if (this.props.event === 'focus') {\n showEvent = 'focus';\n hideEvent = 'blur';\n }\n\n return {\n showEvent: showEvent,\n hideEvent: hideEvent\n };\n }\n }, {\n key: \"updateText\",\n value: function updateText(target, callback) {\n if (this.tooltipTextEl) {\n var content = this.props.content;\n\n if (target && target.hasAttribute('data-pr-tooltip')) {\n content = target.getAttribute('data-pr-tooltip');\n }\n\n if (content) {\n this.tooltipTextEl.innerHTML = ''; // remove children\n\n this.tooltipTextEl.appendChild(document.createTextNode(content));\n callback();\n } else if (this.props.children) {\n _reactDom.default.unmountComponentAtNode(this.tooltipTextEl);\n\n _reactDom.default.render(this.props.children, this.tooltipTextEl, callback);\n }\n }\n }\n }, {\n key: \"show\",\n value: function show(e) {\n var _this2 = this;\n\n this.currentTarget = e.currentTarget;\n\n var updateTooltipState = function updateTooltipState() {\n _this2.updateText(_this2.currentTarget, function () {\n if (_this2.props.autoZIndex && !_this2.containerEl.style.zIndex) {\n _this2.containerEl.style.zIndex = String(_this2.props.baseZIndex + _DomHandler.default.generateZIndex());\n }\n\n _this2.containerEl.style.left = '';\n _this2.containerEl.style.top = '';\n\n _this2.align(_this2.currentTarget, {\n x: e.pageX,\n y: e.pageY\n });\n });\n };\n\n if (this.state.visible) {\n this.applyDelay('updateDelay', updateTooltipState);\n } else {\n this.sendCallback(this.props.onBeforeShow, {\n originalEvent: e,\n target: this.currentTarget\n });\n this.applyDelay('showDelay', function () {\n _this2.setState({\n visible: true\n }, function () {\n updateTooltipState();\n\n _this2.sendCallback(_this2.props.onShow, {\n originalEvent: e,\n target: _this2.currentTarget\n });\n });\n\n _this2.bindDocumentResizeListener();\n\n _this2.bindScrollListener();\n });\n }\n }\n }, {\n key: \"hide\",\n value: function hide(e) {\n var _this3 = this;\n\n this.clearTimeouts();\n\n if (this.state.visible) {\n this.sendCallback(this.props.onBeforeHide, {\n originalEvent: e,\n target: this.currentTarget\n });\n this.applyDelay('hideDelay', function () {\n _DomHandler.default.removeClass(_this3.containerEl, 'p-tooltip-active');\n\n _this3.setState({\n visible: false,\n position: _this3.props.position\n }, function () {\n if (_this3.tooltipTextEl) {\n _reactDom.default.unmountComponentAtNode(_this3.tooltipTextEl);\n }\n\n _this3.unbindDocumentResizeListener();\n\n _this3.unbindScrollListener();\n\n _this3.currentTarget = null;\n _this3.scrollHandler = null;\n\n _this3.sendCallback(_this3.props.onHide, {\n originalEvent: e,\n target: _this3.currentTarget\n });\n });\n });\n }\n }\n }, {\n key: \"align\",\n value: function align(target, coordinate) {\n var _this4 = this;\n\n var left = 0,\n top = 0;\n\n if (this.props.mouseTrack && coordinate) {\n var container = {\n width: _DomHandler.default.getOuterWidth(this.containerEl),\n height: _DomHandler.default.getOuterHeight(this.containerEl)\n };\n left = coordinate.x;\n top = coordinate.y;\n\n switch (this.state.position) {\n case 'left':\n left -= container.width + this.props.mouseTrackLeft;\n top -= container.height / 2 - this.props.mouseTrackTop;\n break;\n\n case 'right':\n left += this.props.mouseTrackLeft;\n top -= container.height / 2 - this.props.mouseTrackTop;\n break;\n\n case 'top':\n left -= container.width / 2 - this.props.mouseTrackLeft;\n top -= container.height + this.props.mouseTrackTop;\n break;\n\n case 'bottom':\n left -= container.width / 2 - this.props.mouseTrackLeft;\n top += this.props.mouseTrackTop;\n break;\n\n default:\n break;\n }\n\n this.containerEl.style.left = left + 'px';\n this.containerEl.style.top = top + 'px';\n\n _DomHandler.default.addClass(this.containerEl, 'p-tooltip-active');\n } else {\n var pos = _DomHandler.default.findCollisionPosition(this.state.position);\n\n var my = this.props.my || pos.my;\n var at = this.props.at || pos.at;\n\n _DomHandler.default.flipfitCollision(this.containerEl, target, my, at, function (currentPosition) {\n var _currentPosition$at = currentPosition.at,\n x = _currentPosition$at.x,\n y = _currentPosition$at.y;\n var position = _this4.props.at ? x !== 'center' ? x : y : currentPosition.at[\"\".concat(pos.axis)];\n\n _this4.setState({\n position: position\n }, function () {\n return _DomHandler.default.addClass(_this4.containerEl, 'p-tooltip-active');\n });\n });\n }\n }\n }, {\n key: \"bindDocumentResizeListener\",\n value: function bindDocumentResizeListener() {\n var _this5 = this;\n\n this.documentResizeListener = function (e) {\n _this5.hide(e);\n };\n\n window.addEventListener('resize', this.documentResizeListener);\n }\n }, {\n key: \"unbindDocumentResizeListener\",\n value: function unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n }, {\n key: \"bindScrollListener\",\n value: function bindScrollListener() {\n var _this6 = this;\n\n if (!this.scrollHandler) {\n this.scrollHandler = new _ConnectedOverlayScrollHandler.default(this.currentTarget, function (e) {\n if (_this6.state.visible) {\n _this6.hide(e);\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n }, {\n key: \"unbindScrollListener\",\n value: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n }, {\n key: \"bindTargetEvent\",\n value: function bindTargetEvent(target) {\n if (target) {\n var _this$getEvents = this.getEvents(),\n showEvent = _this$getEvents.showEvent,\n hideEvent = _this$getEvents.hideEvent;\n\n target.addEventListener(showEvent, this.show);\n target.addEventListener(hideEvent, this.hide);\n }\n }\n }, {\n key: \"unbindTargetEvent\",\n value: function unbindTargetEvent(target) {\n if (target) {\n var _this$getEvents2 = this.getEvents(),\n showEvent = _this$getEvents2.showEvent,\n hideEvent = _this$getEvents2.hideEvent;\n\n target.removeEventListener(showEvent, this.show);\n target.removeEventListener(hideEvent, this.hide);\n }\n }\n }, {\n key: \"applyDelay\",\n value: function applyDelay(delayProp, callback) {\n this.clearTimeouts();\n var delay = this.props[delayProp];\n\n if (!!delay) {\n this[\"\".concat(delayProp, \"Timeout\")] = setTimeout(function () {\n return callback();\n }, delay);\n } else {\n callback();\n }\n }\n }, {\n key: \"sendCallback\",\n value: function sendCallback(callback) {\n if (callback) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n\n callback.apply(void 0, params);\n }\n }\n }, {\n key: \"clearTimeouts\",\n value: function clearTimeouts() {\n clearTimeout(this.showDelayTimeout);\n clearTimeout(this.updateDelayTimeout);\n clearTimeout(this.hideDelayTimeout);\n }\n }, {\n key: \"loadTargetEvents\",\n value: function loadTargetEvents() {\n var _this7 = this;\n\n if (_DomHandler.default.isElement(this.props.target)) {\n this.bindTargetEvent(this.props.target);\n } else {\n var setEvent = function setEvent(target) {\n var element = _DomHandler.default.find(document, target);\n\n element.forEach(function (el) {\n _this7.bindTargetEvent(el);\n });\n };\n\n if (this.props.target instanceof Array) {\n this.props.target.forEach(function (target) {\n setEvent(target);\n });\n } else {\n setEvent(this.props.target);\n }\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.target) {\n this.loadTargetEvents();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var _this8 = this;\n\n if (prevProps.target !== this.props.target) {\n this.loadTargetEvents();\n }\n\n if (this.state.visible && prevProps.content !== this.props.content) {\n this.applyDelay('updateDelay', function () {\n _this8.updateText(_this8.currentTarget, function () {\n _this8.align(_this8.currentTarget);\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearTimeouts();\n this.unbindDocumentResizeListener();\n this.unbindTargetEvent();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n }\n }, {\n key: \"renderElement\",\n value: function renderElement() {\n var _this9 = this;\n\n var tooltipClass = (0, _ClassNames.classNames)('p-tooltip p-component', _defineProperty({}, \"p-tooltip-\".concat(this.state.position), true), this.props.className);\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n ref: function ref(el) {\n return _this9.containerEl = el;\n },\n className: tooltipClass,\n style: this.props.style\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"p-tooltip-arrow\"\n }), /*#__PURE__*/_react.default.createElement(\"div\", {\n ref: function ref(el) {\n return _this9.tooltipTextEl = el;\n },\n className: \"p-tooltip-text\"\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n if (this.state.visible) {\n var element = this.renderElement();\n return /*#__PURE__*/_reactDom.default.createPortal(element, this.appendTo);\n }\n\n return null;\n }\n }]);\n\n return Tooltip;\n}(_react.Component);\n\nexports.Tooltip = Tooltip;\n\n_defineProperty(Tooltip, \"defaultProps\", {\n target: null,\n content: null,\n className: null,\n style: null,\n appendTo: null,\n position: 'right',\n my: null,\n at: null,\n event: null,\n showEvent: 'mouseenter',\n hideEvent: 'mouseleave',\n autoZIndex: true,\n baseZIndex: 0,\n mouseTrack: false,\n mouseTrackTop: 5,\n mouseTrackLeft: 5,\n showDelay: 0,\n updateDelay: 0,\n hideDelay: 0,\n onBeforeShow: null,\n onBeforeHide: null,\n onShow: null,\n onHide: null\n});\n\n_defineProperty(Tooltip, \"propTypes\", {\n target: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.string, _propTypes.default.array]),\n content: _propTypes.default.string,\n className: _propTypes.default.string,\n style: _propTypes.default.object,\n appendTo: _propTypes.default.object,\n position: _propTypes.default.string,\n my: _propTypes.default.string,\n at: _propTypes.default.string,\n event: _propTypes.default.string,\n showEvent: _propTypes.default.string,\n hideEvent: _propTypes.default.string,\n autoZIndex: _propTypes.default.bool,\n baseZIndex: _propTypes.default.number,\n mouseTrack: _propTypes.default.bool,\n mouseTrackTop: _propTypes.default.number,\n mouseTrackLeft: _propTypes.default.number,\n onBeforeShow: _propTypes.default.func,\n onBeforeHide: _propTypes.default.func,\n onShow: _propTypes.default.func,\n onHide: _propTypes.default.func\n});","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","'use strict';\n\nmodule.exports = require('./components/checkbox/Checkbox');","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { Global } from './Global';\nvar stringCache = {\n widthCache: {},\n cacheCount: 0\n};\nvar MAX_CACHE_NUM = 2000;\nvar SPAN_STYLE = {\n position: 'absolute',\n top: '-20000px',\n left: 0,\n padding: 0,\n margin: 0,\n border: 'none',\n whiteSpace: 'pre'\n};\nvar STYLE_LIST = ['minWidth', 'maxWidth', 'width', 'minHeight', 'maxHeight', 'height', 'top', 'left', 'fontSize', 'lineHeight', 'padding', 'margin', 'paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom'];\nvar MEASUREMENT_SPAN_ID = 'recharts_measurement_span';\n\nfunction autoCompleteStyle(name, value) {\n if (STYLE_LIST.indexOf(name) >= 0 && value === +value) {\n return \"\".concat(value, \"px\");\n }\n\n return value;\n}\n\nfunction camelToMiddleLine(text) {\n var strs = text.split('');\n var formatStrs = strs.reduce(function (result, entry) {\n if (entry === entry.toUpperCase()) {\n return [].concat(_toConsumableArray(result), ['-', entry.toLowerCase()]);\n }\n\n return [].concat(_toConsumableArray(result), [entry]);\n }, []);\n return formatStrs.join('');\n}\n\nexport var getStyleString = function getStyleString(style) {\n return Object.keys(style).reduce(function (result, s) {\n return \"\".concat(result).concat(camelToMiddleLine(s), \":\").concat(autoCompleteStyle(s, style[s]), \";\");\n }, '');\n};\nexport var getStringSize = function getStringSize(text) {\n var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (text === undefined || text === null || Global.isSsr) {\n return {\n width: 0,\n height: 0\n };\n }\n\n var str = \"\".concat(text);\n var styleString = getStyleString(style);\n var cacheKey = \"\".concat(str, \"-\").concat(styleString);\n\n if (stringCache.widthCache[cacheKey]) {\n return stringCache.widthCache[cacheKey];\n }\n\n try {\n var measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);\n\n if (!measurementSpan) {\n measurementSpan = document.createElement('span');\n measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);\n measurementSpan.setAttribute('aria-hidden', 'true');\n document.body.appendChild(measurementSpan);\n } // Need to use CSS Object Model (CSSOM) to be able to comply with Content Security Policy (CSP)\n // https://en.wikipedia.org/wiki/Content_Security_Policy\n\n\n var measurementSpanStyle = _objectSpread(_objectSpread({}, SPAN_STYLE), style);\n\n Object.keys(measurementSpanStyle).map(function (styleKey) {\n measurementSpan.style[styleKey] = measurementSpanStyle[styleKey];\n return styleKey;\n });\n measurementSpan.textContent = str;\n var rect = measurementSpan.getBoundingClientRect();\n var result = {\n width: rect.width,\n height: rect.height\n };\n stringCache.widthCache[cacheKey] = result;\n\n if (++stringCache.cacheCount > MAX_CACHE_NUM) {\n stringCache.cacheCount = 0;\n stringCache.widthCache = {};\n }\n\n return result;\n } catch (e) {\n return {\n width: 0,\n height: 0\n };\n }\n};\nexport var getOffset = function getOffset(el) {\n var html = el.ownerDocument.documentElement;\n var box = {\n top: 0,\n left: 0\n }; // If we don't have gBCR, just use 0,0 rather than error\n // BlackBerry 5, iOS 3 (original iPhone)\n\n if (typeof el.getBoundingClientRect !== 'undefined') {\n box = el.getBoundingClientRect();\n }\n\n return {\n top: box.top + window.pageYOffset - html.clientTop,\n left: box.left + window.pageXOffset - html.clientLeft\n };\n};\n/**\n * Calculate coordinate of cursor in chart\n * @param {Object} event Event object\n * @param {Object} offset The offset of main part in the svg element\n * @return {Object} {chartX, chartY}\n */\n\nexport var calculateChartCoordinate = function calculateChartCoordinate(event, offset) {\n return {\n chartX: Math.round(event.pageX - offset.left),\n chartY: Math.round(event.pageY - offset.top)\n };\n};","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Authority types supported by MSAL.\n */\nexport enum AuthorityType {\n Default,\n Adfs,\n Dsts\n}\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","'use strict';\n\nmodule.exports = require('./components/radiobutton/RadioButton');","import _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React, { cloneElement, isValidElement, createElement } from 'react';\nimport classNames from 'classnames';\nimport { Text } from './Text';\nimport { findAllByType } from '../util/ReactUtils';\nimport { isNumOrStr, isNumber, isPercent, getPercentValue, uniqueId, mathSign } from '../util/DataUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nimport { filterProps } from '../util/types';\n\nvar getLabel = function getLabel(props) {\n var value = props.value,\n formatter = props.formatter;\n var label = _isNil(props.children) ? value : props.children;\n\n if (_isFunction(formatter)) {\n return formatter(label);\n }\n\n return label;\n};\n\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n};\n\nvar renderRadialLabel = function renderRadialLabel(labelProps, label, attrs) {\n var position = labelProps.position,\n viewBox = labelProps.viewBox,\n offset = labelProps.offset,\n className = labelProps.className;\n var _ref = viewBox,\n cx = _ref.cx,\n cy = _ref.cy,\n innerRadius = _ref.innerRadius,\n outerRadius = _ref.outerRadius,\n startAngle = _ref.startAngle,\n endAngle = _ref.endAngle,\n clockWise = _ref.clockWise;\n var radius = (innerRadius + outerRadius) / 2;\n var deltaAngle = getDeltaAngle(startAngle, endAngle);\n var sign = deltaAngle >= 0 ? 1 : -1;\n var labelAngle, direction;\n\n if (position === 'insideStart') {\n labelAngle = startAngle + sign * offset;\n direction = clockWise;\n } else if (position === 'insideEnd') {\n labelAngle = endAngle - sign * offset;\n direction = !clockWise;\n } else if (position === 'end') {\n labelAngle = endAngle + sign * offset;\n direction = clockWise;\n }\n\n direction = deltaAngle <= 0 ? direction : !direction;\n var startPoint = polarToCartesian(cx, cy, radius, labelAngle);\n var endPoint = polarToCartesian(cx, cy, radius, labelAngle + (direction ? 1 : -1) * 359);\n var path = \"M\".concat(startPoint.x, \",\").concat(startPoint.y, \"\\n A\").concat(radius, \",\").concat(radius, \",0,1,\").concat(direction ? 0 : 1, \",\\n \").concat(endPoint.x, \",\").concat(endPoint.y);\n var id = _isNil(labelProps.id) ? uniqueId('recharts-radial-line-') : labelProps.id;\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, attrs, {\n dominantBaseline: \"central\",\n className: classNames('recharts-radial-bar-label', className)\n }), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: id,\n d: path\n })), /*#__PURE__*/React.createElement(\"textPath\", {\n xlinkHref: \"#\".concat(id)\n }, label));\n};\n\nvar getAttrsOfPolarLabel = function getAttrsOfPolarLabel(props) {\n var viewBox = props.viewBox,\n offset = props.offset,\n position = props.position;\n var _ref2 = viewBox,\n cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var midAngle = (startAngle + endAngle) / 2;\n\n if (position === 'outside') {\n var _polarToCartesian = polarToCartesian(cx, cy, outerRadius + offset, midAngle),\n _x = _polarToCartesian.x,\n _y = _polarToCartesian.y;\n\n return {\n x: _x,\n y: _y,\n textAnchor: _x >= cx ? 'start' : 'end',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'center') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'centerTop') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n\n if (position === 'centerBottom') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n\n var r = (innerRadius + outerRadius) / 2;\n\n var _polarToCartesian2 = polarToCartesian(cx, cy, r, midAngle),\n x = _polarToCartesian2.x,\n y = _polarToCartesian2.y;\n\n return {\n x: x,\n y: y,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n};\n\nvar getAttrsOfCartesianLabel = function getAttrsOfCartesianLabel(props) {\n var viewBox = props.viewBox,\n parentViewBox = props.parentViewBox,\n offset = props.offset,\n position = props.position;\n var _ref3 = viewBox,\n x = _ref3.x,\n y = _ref3.y,\n width = _ref3.width,\n height = _ref3.height; // Define vertical offsets and position inverts based on the value being positive or negative\n\n var verticalSign = height >= 0 ? 1 : -1;\n var verticalOffset = verticalSign * offset;\n var verticalEnd = verticalSign > 0 ? 'end' : 'start';\n var verticalStart = verticalSign > 0 ? 'start' : 'end'; // Define horizontal offsets and position inverts based on the value being positive or negative\n\n var horizontalSign = width >= 0 ? 1 : -1;\n var horizontalOffset = horizontalSign * offset;\n var horizontalEnd = horizontalSign > 0 ? 'end' : 'start';\n var horizontalStart = horizontalSign > 0 ? 'start' : 'end';\n\n if (position === 'top') {\n var attrs = {\n x: x + width / 2,\n y: y - verticalSign * offset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n };\n return _objectSpread(_objectSpread({}, attrs), parentViewBox ? {\n height: Math.max(y - parentViewBox.y, 0),\n width: width\n } : {});\n }\n\n if (position === 'bottom') {\n var _attrs = {\n x: x + width / 2,\n y: y + height + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n };\n return _objectSpread(_objectSpread({}, _attrs), parentViewBox ? {\n height: Math.max(parentViewBox.y + parentViewBox.height - (y + height), 0),\n width: width\n } : {});\n }\n\n if (position === 'left') {\n var _attrs2 = {\n x: x - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs2), parentViewBox ? {\n width: Math.max(_attrs2.x - parentViewBox.x, 0),\n height: height\n } : {});\n }\n\n if (position === 'right') {\n var _attrs3 = {\n x: x + width + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs3), parentViewBox ? {\n width: Math.max(parentViewBox.x + parentViewBox.width - _attrs3.x, 0),\n height: height\n } : {});\n }\n\n var sizeAttrs = parentViewBox ? {\n width: width,\n height: height\n } : {};\n\n if (position === 'insideLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n\n if (position === 'insideRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n\n if (position === 'insideTop') {\n return _objectSpread({\n x: x + width / 2,\n y: y + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n\n if (position === 'insideBottom') {\n return _objectSpread({\n x: x + width / 2,\n y: y + height - verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n\n if (position === 'insideTopLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n\n if (position === 'insideTopRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n\n if (position === 'insideBottomLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n\n if (position === 'insideBottomRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n\n if (_isObject(position) && (isNumber(position.x) || isPercent(position.x)) && (isNumber(position.y) || isPercent(position.y))) {\n return _objectSpread({\n x: x + getPercentValue(position.x, width),\n y: y + getPercentValue(position.y, height),\n textAnchor: 'end',\n verticalAnchor: 'end'\n }, sizeAttrs);\n }\n\n return _objectSpread({\n x: x + width / 2,\n y: y + height / 2,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n }, sizeAttrs);\n};\n\nvar isPolar = function isPolar(viewBox) {\n return isNumber(viewBox.cx);\n};\n\nexport function Label(props) {\n var viewBox = props.viewBox,\n position = props.position,\n value = props.value,\n children = props.children,\n content = props.content,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n textBreakAll = props.textBreakAll;\n\n if (!viewBox || _isNil(value) && _isNil(children) && ! /*#__PURE__*/isValidElement(content) && !_isFunction(content)) {\n return null;\n }\n\n if ( /*#__PURE__*/isValidElement(content)) {\n return /*#__PURE__*/cloneElement(content, props);\n }\n\n var label;\n\n if (_isFunction(content)) {\n label = /*#__PURE__*/createElement(content, props);\n\n if ( /*#__PURE__*/isValidElement(label)) {\n return label;\n }\n } else {\n label = getLabel(props);\n }\n\n var isPolarLabel = isPolar(viewBox);\n var attrs = filterProps(props, true);\n\n if (isPolarLabel && (position === 'insideStart' || position === 'insideEnd' || position === 'end')) {\n return renderRadialLabel(props, label, attrs);\n }\n\n var positionAttrs = isPolarLabel ? getAttrsOfPolarLabel(props) : getAttrsOfCartesianLabel(props);\n return /*#__PURE__*/React.createElement(Text, _extends({\n className: classNames('recharts-label', className)\n }, attrs, positionAttrs, {\n breakAll: textBreakAll\n }), label);\n}\nLabel.displayName = 'Label';\nLabel.defaultProps = {\n offset: 5\n};\n\nvar parseViewBox = function parseViewBox(props) {\n var cx = props.cx,\n cy = props.cy,\n angle = props.angle,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n r = props.r,\n radius = props.radius,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n x = props.x,\n y = props.y,\n top = props.top,\n left = props.left,\n width = props.width,\n height = props.height,\n clockWise = props.clockWise,\n labelViewBox = props.labelViewBox;\n\n if (labelViewBox) {\n return labelViewBox;\n }\n\n if (isNumber(width) && isNumber(height)) {\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n }\n\n if (isNumber(top) && isNumber(left)) {\n return {\n x: top,\n y: left,\n width: width,\n height: height\n };\n }\n }\n\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: 0,\n height: 0\n };\n }\n\n if (isNumber(cx) && isNumber(cy)) {\n return {\n cx: cx,\n cy: cy,\n startAngle: startAngle || angle || 0,\n endAngle: endAngle || angle || 0,\n innerRadius: innerRadius || 0,\n outerRadius: outerRadius || radius || r || 0,\n clockWise: clockWise\n };\n }\n\n if (props.viewBox) {\n return props.viewBox;\n }\n\n return {};\n};\n\nvar parseLabel = function parseLabel(label, viewBox) {\n if (!label) {\n return null;\n }\n\n if (label === true) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox\n });\n }\n\n if (isNumOrStr(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox,\n value: label\n });\n }\n\n if ( /*#__PURE__*/isValidElement(label)) {\n if (label.type === Label) {\n return /*#__PURE__*/cloneElement(label, {\n key: 'label-implicit',\n viewBox: viewBox\n });\n }\n\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n\n if (_isFunction(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n\n if (_isObject(label)) {\n return /*#__PURE__*/React.createElement(Label, _extends({\n viewBox: viewBox\n }, label, {\n key: \"label-implicit\"\n }));\n }\n\n return null;\n};\n\nvar renderCallByParent = function renderCallByParent(parentProps, viewBox) {\n var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {\n return null;\n }\n\n var children = parentProps.children;\n var parentViewBox = parseViewBox(parentProps);\n var explicitChildren = findAllByType(children, Label.displayName).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n viewBox: viewBox || parentViewBox,\n key: \"label-\".concat(index)\n });\n });\n\n if (!checkPropsLabel) {\n return explicitChildren;\n }\n\n var implicitLabel = parseLabel(parentProps.label, viewBox || parentViewBox);\n return [implicitLabel].concat(_toConsumableArray(explicitChildren));\n};\n\nLabel.parseViewBox = parseViewBox;\nLabel.renderCallByParent = renderCallByParent;","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var parseIsSsrByDefault = function parseIsSsrByDefault() {\n return !(typeof window !== 'undefined' && window.document && window.document.createElement && window.setTimeout);\n};\n\nexport var Global = {\n isSsr: parseIsSsrByDefault(),\n get: function get(key) {\n return Global[key];\n },\n set: function set(key, value) {\n if (typeof key === 'string') {\n Global[key] = value;\n } else {\n var keys = Object.keys(key);\n\n if (keys && keys.length) {\n keys.forEach(function (k) {\n Global[k] = key[k];\n });\n }\n }\n }\n};","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","/* eslint no-console: 0 */\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","import _every from \"lodash/every\";\nimport _mapValues from \"lodash/mapValues\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { getTicksOfScale, parseScale, checkDomainOfScale, getBandSizeOfAxis } from './ChartUtils';\nimport { findChildByType } from './ReactUtils';\nimport { getPercentValue } from './DataUtils';\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {String} axisType The type of axes, x-axis or y-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\n\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height,\n layout = props.layout,\n children = props.children;\n var ids = Object.keys(axisMap);\n var steps = {\n left: offset.left,\n leftMirror: offset.left,\n right: width - offset.right,\n rightMirror: width - offset.right,\n top: offset.top,\n topMirror: offset.top,\n bottom: height - offset.bottom,\n bottomMirror: height - offset.bottom\n };\n var hasBar = !!findChildByType(children, 'Bar');\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var orientation = axis.orientation,\n domain = axis.domain,\n _axis$padding = axis.padding,\n padding = _axis$padding === void 0 ? {} : _axis$padding,\n mirror = axis.mirror,\n reversed = axis.reversed;\n var offsetKey = \"\".concat(orientation).concat(mirror ? 'Mirror' : '');\n var calculatedPadding, range, x, y, needSpace;\n\n if (axis.type === 'number' && (axis.padding === 'gap' || axis.padding === 'no-gap')) {\n var diff = domain[1] - domain[0];\n var smallestDistanceBetweenValues = Infinity;\n var sortedValues = axis.categoricalDomain.sort();\n sortedValues.forEach(function (value, index) {\n if (index > 0) {\n smallestDistanceBetweenValues = Math.min((value || 0) - (sortedValues[index - 1] || 0), smallestDistanceBetweenValues);\n }\n });\n var smallestDistanceInPercent = smallestDistanceBetweenValues / diff;\n var rangeWidth = axis.layout === 'vertical' ? offset.height : offset.width;\n\n if (axis.padding === 'gap') {\n calculatedPadding = smallestDistanceInPercent * rangeWidth / 2;\n }\n\n if (axis.padding === 'no-gap') {\n var gap = getPercentValue(props.barCategoryGap, smallestDistanceInPercent * rangeWidth);\n var halfBand = smallestDistanceInPercent * rangeWidth / 2;\n calculatedPadding = halfBand - gap - (halfBand - gap) / rangeWidth * gap;\n }\n }\n\n if (axisType === 'xAxis') {\n range = [offset.left + (padding.left || 0) + (calculatedPadding || 0), offset.left + offset.width - (padding.right || 0) - (calculatedPadding || 0)];\n } else if (axisType === 'yAxis') {\n range = layout === 'horizontal' ? [offset.top + offset.height - (padding.bottom || 0), offset.top + (padding.top || 0)] : [offset.top + (padding.top || 0) + (calculatedPadding || 0), offset.top + offset.height - (padding.bottom || 0) - (calculatedPadding || 0)];\n } else {\n range = axis.range;\n }\n\n if (reversed) {\n range = [range[1], range[0]];\n }\n\n var _parseScale = parseScale(axis, chartName, hasBar),\n scale = _parseScale.scale,\n realScaleType = _parseScale.realScaleType;\n\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n\n if (axisType === 'xAxis') {\n needSpace = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;\n x = offset.left;\n y = steps[offsetKey] - needSpace * axis.height;\n } else if (axisType === 'yAxis') {\n needSpace = orientation === 'left' && !mirror || orientation === 'right' && mirror;\n x = steps[offsetKey] - needSpace * axis.width;\n y = offset.top;\n }\n\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n realScaleType: realScaleType,\n x: x,\n y: y,\n scale: scale,\n width: axisType === 'xAxis' ? offset.width : axis.width,\n height: axisType === 'yAxis' ? offset.height : axis.height\n });\n\n finalAxis.bandSize = getBandSizeOfAxis(finalAxis, ticks);\n\n if (!axis.hide && axisType === 'xAxis') {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.height;\n } else if (!axis.hide) {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.width;\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var rectWithPoints = function rectWithPoints(_ref, _ref2) {\n var x1 = _ref.x,\n y1 = _ref.y;\n var x2 = _ref2.x,\n y2 = _ref2.y;\n return {\n x: Math.min(x1, x2),\n y: Math.min(y1, y2),\n width: Math.abs(x2 - x1),\n height: Math.abs(y2 - y1)\n };\n};\n/**\n * Compute the x, y, width, and height of a box from two reference points.\n * @param {Object} coords x1, x2, y1, and y2\n * @return {Object} object\n */\n\nexport var rectWithCoords = function rectWithCoords(_ref3) {\n var x1 = _ref3.x1,\n y1 = _ref3.y1,\n x2 = _ref3.x2,\n y2 = _ref3.y2;\n return rectWithPoints({\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n });\n};\nexport var ScaleHelper = /*#__PURE__*/function () {\n function ScaleHelper(scale) {\n _classCallCheck(this, ScaleHelper);\n\n this.scale = void 0;\n this.scale = scale;\n }\n\n _createClass(ScaleHelper, [{\n key: \"domain\",\n get: function get() {\n return this.scale.domain;\n }\n }, {\n key: \"range\",\n get: function get() {\n return this.scale.range;\n }\n }, {\n key: \"rangeMin\",\n get: function get() {\n return this.range()[0];\n }\n }, {\n key: \"rangeMax\",\n get: function get() {\n return this.range()[1];\n }\n }, {\n key: \"bandwidth\",\n get: function get() {\n return this.scale.bandwidth;\n }\n }, {\n key: \"apply\",\n value: function apply(value) {\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref4.bandAware,\n position = _ref4.position;\n\n if (value === undefined) {\n return undefined;\n }\n\n if (position) {\n switch (position) {\n case 'start':\n {\n return this.scale(value);\n }\n\n case 'middle':\n {\n var offset = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + offset;\n }\n\n case 'end':\n {\n var _offset = this.bandwidth ? this.bandwidth() : 0;\n\n return this.scale(value) + _offset;\n }\n\n default:\n {\n return this.scale(value);\n }\n }\n }\n\n if (bandAware) {\n var _offset2 = this.bandwidth ? this.bandwidth() / 2 : 0;\n\n return this.scale(value) + _offset2;\n }\n\n return this.scale(value);\n }\n }, {\n key: \"isInRange\",\n value: function isInRange(value) {\n var range = this.range();\n var first = range[0];\n var last = range[range.length - 1];\n return first <= last ? value >= first && value <= last : value >= last && value <= first;\n }\n }], [{\n key: \"create\",\n value: function create(obj) {\n return new ScaleHelper(obj);\n }\n }]);\n\n return ScaleHelper;\n}();\nScaleHelper.EPS = 1e-4;\nexport var createLabeledScales = function createLabeledScales(options) {\n var scales = Object.keys(options).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, ScaleHelper.create(options[key])));\n }, {});\n return _objectSpread(_objectSpread({}, scales), {}, {\n apply: function apply(coord) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref5.bandAware,\n position = _ref5.position;\n\n return _mapValues(coord, function (value, label) {\n return scales[label].apply(value, {\n bandAware: bandAware,\n position: position\n });\n });\n },\n isInRange: function isInRange(coord) {\n return _every(coord, function (value, label) {\n return scales[label].isInRange(value);\n });\n }\n });\n};","'use strict';\n\nmodule.exports = require('./components/multiselect/MultiSelect');","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a <Router> that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return <Router history={this.history} children={this.props.children} />;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<BrowserRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a <Router> that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return <Router history={this.history} children={this.props.children} />;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<HashRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return <a {...props} />;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware <a>.\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Link> outside a <Router>\");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n </RouterContext.Consumer>\n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A <Link> wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\", // TODO: deprecate\n activeStyle, // TODO: deprecate\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <NavLink> outside a <Router>\");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n let className =\n typeof classNameProp === \"function\"\n ? classNameProp(isActive)\n : classNameProp;\n\n let style =\n typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = { ...style, ...activeStyle };\n }\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return <Link {...props} />;\n }}\n </RouterContext.Consumer>\n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\",\n \"false\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n };\n}\n\nexport default NavLink;\n","/** @license\n *\n * jsPDF - PDF Document creation from JavaScript\n * Version 2.5.1 Built on 2022-01-28T15:37:57.791Z\n * CommitID 00000000\n *\n * Copyright (c) 2010-2021 James Hall <james@parall.ax>, https://github.com/MrRio/jsPDF\n * 2015-2021 yWorks GmbH, http://www.yworks.com\n * 2015-2021 Lukas Holländer <lukas.hollaender@yworks.com>, https://github.com/HackbrettXXX\n * 2016-2018 Aras Abbasi <aras.abbasi@gmail.com>\n * 2010 Aaron Spike, https://github.com/acspike\n * 2012 Willow Systems Corporation, https://github.com/willowsystems\n * 2012 Pablo Hess, https://github.com/pablohess\n * 2012 Florian Jenett, https://github.com/fjenett\n * 2013 Warren Weckesser, https://github.com/warrenweckesser\n * 2013 Youssef Beddad, https://github.com/lifof\n * 2013 Lee Driscoll, https://github.com/lsdriscoll\n * 2013 Stefan Slonevskiy, https://github.com/stefslon\n * 2013 Jeremy Morel, https://github.com/jmorel\n * 2013 Christoph Hartmann, https://github.com/chris-rock\n * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria\n * 2014 James Makes, https://github.com/dollaruw\n * 2014 Diego Casorran, https://github.com/diegocr\n * 2014 Steven Spungin, https://github.com/Flamenco\n * 2014 Kenneth Glassey, https://github.com/Gavvers\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n *\n * Contributor(s):\n * siefkenj, ahwolf, rickygu, Midnith, saintclair, eaparango,\n * kim3er, mfo, alnorth, Flamenco\n */\n\nimport t from\"@babel/runtime/helpers/typeof\";import{zlibSync as e,unzlibSync as r}from\"fflate\";var n=function(){return\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this}();function i(){n.console&&\"function\"==typeof n.console.log&&n.console.log.apply(n.console,arguments)}var a={log:i,warn:function(t){n.console&&(\"function\"==typeof n.console.warn?n.console.warn.apply(n.console,arguments):i.call(null,arguments))},error:function(t){n.console&&(\"function\"==typeof n.console.error?n.console.error.apply(n.console,arguments):i(t))}};function o(t,e,r){var n=new XMLHttpRequest;n.open(\"GET\",t),n.responseType=\"blob\",n.onload=function(){l(n.response,e,r)},n.onerror=function(){a.error(\"could not download file\")},n.send()}function s(t){var e=new XMLHttpRequest;e.open(\"HEAD\",t,!1);try{e.send()}catch(t){}return e.status>=200&&e.status<=299}function c(t){try{t.dispatchEvent(new MouseEvent(\"click\"))}catch(r){var e=document.createEvent(\"MouseEvents\");e.initMouseEvent(\"click\",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),t.dispatchEvent(e)}}var u,h,l=n.saveAs||(\"object\"!==(\"undefined\"==typeof window?\"undefined\":t(window))||window!==n?function(){}:\"undefined\"!=typeof HTMLAnchorElement&&\"download\"in HTMLAnchorElement.prototype?function(t,e,r){var i=n.URL||n.webkitURL,a=document.createElement(\"a\");e=e||t.name||\"download\",a.download=e,a.rel=\"noopener\",\"string\"==typeof t?(a.href=t,a.origin!==location.origin?s(a.href)?o(t,e,r):c(a,a.target=\"_blank\"):c(a)):(a.href=i.createObjectURL(t),setTimeout((function(){i.revokeObjectURL(a.href)}),4e4),setTimeout((function(){c(a)}),0))}:\"msSaveOrOpenBlob\"in navigator?function(e,r,n){if(r=r||e.name||\"download\",\"string\"==typeof e)if(s(e))o(e,r,n);else{var i=document.createElement(\"a\");i.href=e,i.target=\"_blank\",setTimeout((function(){c(i)}))}else navigator.msSaveOrOpenBlob(function(e,r){return void 0===r?r={autoBom:!1}:\"object\"!==t(r)&&(a.warn(\"Deprecated: Expected third argument to be a object\"),r={autoBom:!r}),r.autoBom&&/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(e.type)?new Blob([String.fromCharCode(65279),e],{type:e.type}):e}(e,n),r)}:function(e,r,i,a){if((a=a||open(\"\",\"_blank\"))&&(a.document.title=a.document.body.innerText=\"downloading...\"),\"string\"==typeof e)return o(e,r,i);var s=\"application/octet-stream\"===e.type,c=/constructor/i.test(n.HTMLElement)||n.safari,u=/CriOS\\/[\\d]+/.test(navigator.userAgent);if((u||s&&c)&&\"object\"===(\"undefined\"==typeof FileReader?\"undefined\":t(FileReader))){var h=new FileReader;h.onloadend=function(){var t=h.result;t=u?t:t.replace(/^data:[^;]*;/,\"data:attachment/file;\"),a?a.location.href=t:location=t,a=null},h.readAsDataURL(e)}else{var l=n.URL||n.webkitURL,f=l.createObjectURL(e);a?a.location=f:location.href=f,a=null,setTimeout((function(){l.revokeObjectURL(f)}),4e4)}});\n/**\n * A class to parse color values\n * @author Stoyan Stefanov <sstoo@gmail.com>\n * {@link http://www.phpied.com/rgb-color-parser-in-javascript/}\n * @license Use it if you like it\n */function f(t){var e;t=t||\"\",this.ok=!1,\"#\"==t.charAt(0)&&(t=t.substr(1,6));t={aliceblue:\"f0f8ff\",antiquewhite:\"faebd7\",aqua:\"00ffff\",aquamarine:\"7fffd4\",azure:\"f0ffff\",beige:\"f5f5dc\",bisque:\"ffe4c4\",black:\"000000\",blanchedalmond:\"ffebcd\",blue:\"0000ff\",blueviolet:\"8a2be2\",brown:\"a52a2a\",burlywood:\"deb887\",cadetblue:\"5f9ea0\",chartreuse:\"7fff00\",chocolate:\"d2691e\",coral:\"ff7f50\",cornflowerblue:\"6495ed\",cornsilk:\"fff8dc\",crimson:\"dc143c\",cyan:\"00ffff\",darkblue:\"00008b\",darkcyan:\"008b8b\",darkgoldenrod:\"b8860b\",darkgray:\"a9a9a9\",darkgreen:\"006400\",darkkhaki:\"bdb76b\",darkmagenta:\"8b008b\",darkolivegreen:\"556b2f\",darkorange:\"ff8c00\",darkorchid:\"9932cc\",darkred:\"8b0000\",darksalmon:\"e9967a\",darkseagreen:\"8fbc8f\",darkslateblue:\"483d8b\",darkslategray:\"2f4f4f\",darkturquoise:\"00ced1\",darkviolet:\"9400d3\",deeppink:\"ff1493\",deepskyblue:\"00bfff\",dimgray:\"696969\",dodgerblue:\"1e90ff\",feldspar:\"d19275\",firebrick:\"b22222\",floralwhite:\"fffaf0\",forestgreen:\"228b22\",fuchsia:\"ff00ff\",gainsboro:\"dcdcdc\",ghostwhite:\"f8f8ff\",gold:\"ffd700\",goldenrod:\"daa520\",gray:\"808080\",green:\"008000\",greenyellow:\"adff2f\",honeydew:\"f0fff0\",hotpink:\"ff69b4\",indianred:\"cd5c5c\",indigo:\"4b0082\",ivory:\"fffff0\",khaki:\"f0e68c\",lavender:\"e6e6fa\",lavenderblush:\"fff0f5\",lawngreen:\"7cfc00\",lemonchiffon:\"fffacd\",lightblue:\"add8e6\",lightcoral:\"f08080\",lightcyan:\"e0ffff\",lightgoldenrodyellow:\"fafad2\",lightgrey:\"d3d3d3\",lightgreen:\"90ee90\",lightpink:\"ffb6c1\",lightsalmon:\"ffa07a\",lightseagreen:\"20b2aa\",lightskyblue:\"87cefa\",lightslateblue:\"8470ff\",lightslategray:\"778899\",lightsteelblue:\"b0c4de\",lightyellow:\"ffffe0\",lime:\"00ff00\",limegreen:\"32cd32\",linen:\"faf0e6\",magenta:\"ff00ff\",maroon:\"800000\",mediumaquamarine:\"66cdaa\",mediumblue:\"0000cd\",mediumorchid:\"ba55d3\",mediumpurple:\"9370d8\",mediumseagreen:\"3cb371\",mediumslateblue:\"7b68ee\",mediumspringgreen:\"00fa9a\",mediumturquoise:\"48d1cc\",mediumvioletred:\"c71585\",midnightblue:\"191970\",mintcream:\"f5fffa\",mistyrose:\"ffe4e1\",moccasin:\"ffe4b5\",navajowhite:\"ffdead\",navy:\"000080\",oldlace:\"fdf5e6\",olive:\"808000\",olivedrab:\"6b8e23\",orange:\"ffa500\",orangered:\"ff4500\",orchid:\"da70d6\",palegoldenrod:\"eee8aa\",palegreen:\"98fb98\",paleturquoise:\"afeeee\",palevioletred:\"d87093\",papayawhip:\"ffefd5\",peachpuff:\"ffdab9\",peru:\"cd853f\",pink:\"ffc0cb\",plum:\"dda0dd\",powderblue:\"b0e0e6\",purple:\"800080\",red:\"ff0000\",rosybrown:\"bc8f8f\",royalblue:\"4169e1\",saddlebrown:\"8b4513\",salmon:\"fa8072\",sandybrown:\"f4a460\",seagreen:\"2e8b57\",seashell:\"fff5ee\",sienna:\"a0522d\",silver:\"c0c0c0\",skyblue:\"87ceeb\",slateblue:\"6a5acd\",slategray:\"708090\",snow:\"fffafa\",springgreen:\"00ff7f\",steelblue:\"4682b4\",tan:\"d2b48c\",teal:\"008080\",thistle:\"d8bfd8\",tomato:\"ff6347\",turquoise:\"40e0d0\",violet:\"ee82ee\",violetred:\"d02090\",wheat:\"f5deb3\",white:\"ffffff\",whitesmoke:\"f5f5f5\",yellow:\"ffff00\",yellowgreen:\"9acd32\"}[t=(t=t.replace(/ /g,\"\")).toLowerCase()]||t;for(var r=[{re:/^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,example:[\"rgb(123, 234, 45)\",\"rgb(255,234,245)\"],process:function(t){return[parseInt(t[1]),parseInt(t[2]),parseInt(t[3])]}},{re:/^(\\w{2})(\\w{2})(\\w{2})$/,example:[\"#00ff00\",\"336699\"],process:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/^(\\w{1})(\\w{1})(\\w{1})$/,example:[\"#fb0\",\"f0f\"],process:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}}],n=0;n<r.length;n++){var i=r[n].re,a=r[n].process,o=i.exec(t);o&&(e=a(o),this.r=e[0],this.g=e[1],this.b=e[2],this.ok=!0)}this.r=this.r<0||isNaN(this.r)?0:this.r>255?255:this.r,this.g=this.g<0||isNaN(this.g)?0:this.g>255?255:this.g,this.b=this.b<0||isNaN(this.b)?0:this.b>255?255:this.b,this.toRGB=function(){return\"rgb(\"+this.r+\", \"+this.g+\", \"+this.b+\")\"},this.toHex=function(){var t=this.r.toString(16),e=this.g.toString(16),r=this.b.toString(16);return 1==t.length&&(t=\"0\"+t),1==e.length&&(e=\"0\"+e),1==r.length&&(r=\"0\"+r),\"#\"+t+e+r}}\n/**\n * @license\n * Joseph Myers does not specify a particular license for his work.\n *\n * Author: Joseph Myers\n * Accessed from: http://www.myersdaily.org/joseph/javascript/md5.js\n *\n * Modified by: Owen Leong\n */\nfunction d(t,e){var r=t[0],n=t[1],i=t[2],a=t[3];r=g(r,n,i,a,e[0],7,-680876936),a=g(a,r,n,i,e[1],12,-389564586),i=g(i,a,r,n,e[2],17,606105819),n=g(n,i,a,r,e[3],22,-1044525330),r=g(r,n,i,a,e[4],7,-176418897),a=g(a,r,n,i,e[5],12,1200080426),i=g(i,a,r,n,e[6],17,-1473231341),n=g(n,i,a,r,e[7],22,-45705983),r=g(r,n,i,a,e[8],7,1770035416),a=g(a,r,n,i,e[9],12,-1958414417),i=g(i,a,r,n,e[10],17,-42063),n=g(n,i,a,r,e[11],22,-1990404162),r=g(r,n,i,a,e[12],7,1804603682),a=g(a,r,n,i,e[13],12,-40341101),i=g(i,a,r,n,e[14],17,-1502002290),r=m(r,n=g(n,i,a,r,e[15],22,1236535329),i,a,e[1],5,-165796510),a=m(a,r,n,i,e[6],9,-1069501632),i=m(i,a,r,n,e[11],14,643717713),n=m(n,i,a,r,e[0],20,-373897302),r=m(r,n,i,a,e[5],5,-701558691),a=m(a,r,n,i,e[10],9,38016083),i=m(i,a,r,n,e[15],14,-660478335),n=m(n,i,a,r,e[4],20,-405537848),r=m(r,n,i,a,e[9],5,568446438),a=m(a,r,n,i,e[14],9,-1019803690),i=m(i,a,r,n,e[3],14,-187363961),n=m(n,i,a,r,e[8],20,1163531501),r=m(r,n,i,a,e[13],5,-1444681467),a=m(a,r,n,i,e[2],9,-51403784),i=m(i,a,r,n,e[7],14,1735328473),r=v(r,n=m(n,i,a,r,e[12],20,-1926607734),i,a,e[5],4,-378558),a=v(a,r,n,i,e[8],11,-2022574463),i=v(i,a,r,n,e[11],16,1839030562),n=v(n,i,a,r,e[14],23,-35309556),r=v(r,n,i,a,e[1],4,-1530992060),a=v(a,r,n,i,e[4],11,1272893353),i=v(i,a,r,n,e[7],16,-155497632),n=v(n,i,a,r,e[10],23,-1094730640),r=v(r,n,i,a,e[13],4,681279174),a=v(a,r,n,i,e[0],11,-358537222),i=v(i,a,r,n,e[3],16,-722521979),n=v(n,i,a,r,e[6],23,76029189),r=v(r,n,i,a,e[9],4,-640364487),a=v(a,r,n,i,e[12],11,-421815835),i=v(i,a,r,n,e[15],16,530742520),r=b(r,n=v(n,i,a,r,e[2],23,-995338651),i,a,e[0],6,-198630844),a=b(a,r,n,i,e[7],10,1126891415),i=b(i,a,r,n,e[14],15,-1416354905),n=b(n,i,a,r,e[5],21,-57434055),r=b(r,n,i,a,e[12],6,1700485571),a=b(a,r,n,i,e[3],10,-1894986606),i=b(i,a,r,n,e[10],15,-1051523),n=b(n,i,a,r,e[1],21,-2054922799),r=b(r,n,i,a,e[8],6,1873313359),a=b(a,r,n,i,e[15],10,-30611744),i=b(i,a,r,n,e[6],15,-1560198380),n=b(n,i,a,r,e[13],21,1309151649),r=b(r,n,i,a,e[4],6,-145523070),a=b(a,r,n,i,e[11],10,-1120210379),i=b(i,a,r,n,e[2],15,718787259),n=b(n,i,a,r,e[9],21,-343485551),t[0]=_(r,t[0]),t[1]=_(n,t[1]),t[2]=_(i,t[2]),t[3]=_(a,t[3])}function p(t,e,r,n,i,a){return e=_(_(e,t),_(n,a)),_(e<<i|e>>>32-i,r)}function g(t,e,r,n,i,a,o){return p(e&r|~e&n,t,e,i,a,o)}function m(t,e,r,n,i,a,o){return p(e&n|r&~n,t,e,i,a,o)}function v(t,e,r,n,i,a,o){return p(e^r^n,t,e,i,a,o)}function b(t,e,r,n,i,a,o){return p(r^(e|~n),t,e,i,a,o)}function y(t){var e,r=t.length,n=[1732584193,-271733879,-1732584194,271733878];for(e=64;e<=t.length;e+=64)d(n,w(t.substring(e-64,e)));t=t.substring(e-64);var i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(e=0;e<t.length;e++)i[e>>2]|=t.charCodeAt(e)<<(e%4<<3);if(i[e>>2]|=128<<(e%4<<3),e>55)for(d(n,i),e=0;e<16;e++)i[e]=0;return i[14]=8*r,d(n,i),n}function w(t){var e,r=[];for(e=0;e<64;e+=4)r[e>>2]=t.charCodeAt(e)+(t.charCodeAt(e+1)<<8)+(t.charCodeAt(e+2)<<16)+(t.charCodeAt(e+3)<<24);return r}u=n.atob.bind(n),h=n.btoa.bind(n);var N=\"0123456789abcdef\".split(\"\");function L(t){for(var e=\"\",r=0;r<4;r++)e+=N[t>>8*r+4&15]+N[t>>8*r&15];return e}function A(t){return String.fromCharCode((255&t)>>0,(65280&t)>>8,(16711680&t)>>16,(4278190080&t)>>24)}function x(t){return y(t).map(A).join(\"\")}var S=\"5d41402abc4b2a76b9719d911017c592\"!=function(t){for(var e=0;e<t.length;e++)t[e]=L(t[e]);return t.join(\"\")}(y(\"hello\"));function _(t,e){if(S){var r=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(r>>16)<<16|65535&r}return t+e&4294967295}\n/**\n * @license\n * FPDF is released under a permissive license: there is no usage restriction.\n * You may embed it freely in your application (commercial or not), with or\n * without modifications.\n *\n * Reference: http://www.fpdf.org/en/script/script37.php\n */function P(t,e){var r,n,i,a;if(t!==r){for(var o=(i=t,a=1+(256/t.length>>0),new Array(a+1).join(i)),s=[],c=0;c<256;c++)s[c]=c;var u=0;for(c=0;c<256;c++){var h=s[c];u=(u+h+o.charCodeAt(c))%256,s[c]=s[u],s[u]=h}r=t,n=s}else s=n;var l=e.length,f=0,d=0,p=\"\";for(c=0;c<l;c++)d=(d+(h=s[f=(f+1)%256]))%256,s[f]=s[d],s[d]=h,o=s[(s[f]+s[d])%256],p+=String.fromCharCode(e.charCodeAt(c)^o);return p}\n/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n * Author: Owen Leong (@owenl131)\n * Date: 15 Oct 2020\n * References:\n * https://www.cs.cmu.edu/~dst/Adobe/Gallery/anon21jul01-pdf-encryption.txt\n * https://github.com/foliojs/pdfkit/blob/master/lib/security.js\n * http://www.fpdf.org/en/script/script37.php\n */var k={print:4,modify:8,copy:16,\"annot-forms\":32};function I(t,e,r,n){this.v=1,this.r=2;var i=192;t.forEach((function(t){if(void 0!==k.perm)throw new Error(\"Invalid permission: \"+t);i+=k[t]})),this.padding=\"(¿N^NuŠAd\\0NVÿú\u0001\\b..\\0¶Ðh>€/\\f©þdSiz\";var a=(e+this.padding).substr(0,32),o=(r+this.padding).substr(0,32);this.O=this.processOwnerPassword(a,o),this.P=-(1+(255^i)),this.encryptionKey=x(a+this.O+this.lsbFirstWord(this.P)+this.hexToBytes(n)).substr(0,5),this.U=P(this.encryptionKey,this.padding)}function F(t){if(/[^\\u0000-\\u00ff]/.test(t))throw new Error(\"Invalid PDF Name Object: \"+t+\", Only accept ASCII characters.\");for(var e=\"\",r=t.length,n=0;n<r;n++){var i=t.charCodeAt(n);if(i<33||35===i||37===i||40===i||41===i||47===i||60===i||62===i||91===i||93===i||123===i||125===i||i>126)e+=\"#\"+(\"0\"+i.toString(16)).slice(-2);else e+=t[n]}return e}function C(e){if(\"object\"!==t(e))throw new Error(\"Invalid Context passed to initialize PubSub (jsPDF-module)\");var r={};this.subscribe=function(t,e,n){if(n=n||!1,\"string\"!=typeof t||\"function\"!=typeof e||\"boolean\"!=typeof n)throw new Error(\"Invalid arguments passed to PubSub.subscribe (jsPDF-module)\");r.hasOwnProperty(t)||(r[t]={});var i=Math.random().toString(35);return r[t][i]=[e,!!n],i},this.unsubscribe=function(t){for(var e in r)if(r[e][t])return delete r[e][t],0===Object.keys(r[e]).length&&delete r[e],!0;return!1},this.publish=function(t){if(r.hasOwnProperty(t)){var i=Array.prototype.slice.call(arguments,1),o=[];for(var s in r[t]){var c=r[t][s];try{c[0].apply(e,i)}catch(t){n.console&&a.error(\"jsPDF PubSub Error\",t.message,t)}c[1]&&o.push(s)}o.length&&o.forEach(this.unsubscribe)}},this.getTopics=function(){return r}}function j(t){if(!(this instanceof j))return new j(t);var e=\"opacity,stroke-opacity\".split(\",\");for(var r in t)t.hasOwnProperty(r)&&e.indexOf(r)>=0&&(this[r]=t[r]);this.id=\"\",this.objectNumber=-1}function O(t,e){this.gState=t,this.matrix=e,this.id=\"\",this.objectNumber=-1}function B(t,e,r,n,i){if(!(this instanceof B))return new B(t,e,r,n,i);this.type=\"axial\"===t?2:3,this.coords=e,this.colors=r,O.call(this,n,i)}function M(t,e,r,n,i){if(!(this instanceof M))return new M(t,e,r,n,i);this.boundingBox=t,this.xStep=e,this.yStep=r,this.stream=\"\",this.cloneIndex=0,O.call(this,n,i)}function E(e){var r,i=\"string\"==typeof arguments[0]?arguments[0]:\"p\",o=arguments[1],s=arguments[2],c=arguments[3],u=[],d=1,p=16,g=\"S\",m=null;\"object\"===t(e=e||{})&&(i=e.orientation,o=e.unit||o,s=e.format||s,c=e.compress||e.compressPdf||c,null!==(m=e.encryption||null)&&(m.userPassword=m.userPassword||\"\",m.ownerPassword=m.ownerPassword||\"\",m.userPermissions=m.userPermissions||[]),d=\"number\"==typeof e.userUnit?Math.abs(e.userUnit):1,void 0!==e.precision&&(r=e.precision),void 0!==e.floatPrecision&&(p=e.floatPrecision),g=e.defaultPathOperation||\"S\"),u=e.filters||(!0===c?[\"FlateEncode\"]:u),o=o||\"mm\",i=(\"\"+(i||\"P\")).toLowerCase();var v=e.putOnlyUsedFonts||!1,b={},y={internal:{},__private__:{}};y.__private__.PubSub=C;var w=\"1.3\",N=y.__private__.getPdfVersion=function(){return w};y.__private__.setPdfVersion=function(t){w=t};var L={a0:[2383.94,3370.39],a1:[1683.78,2383.94],a2:[1190.55,1683.78],a3:[841.89,1190.55],a4:[595.28,841.89],a5:[419.53,595.28],a6:[297.64,419.53],a7:[209.76,297.64],a8:[147.4,209.76],a9:[104.88,147.4],a10:[73.7,104.88],b0:[2834.65,4008.19],b1:[2004.09,2834.65],b2:[1417.32,2004.09],b3:[1000.63,1417.32],b4:[708.66,1000.63],b5:[498.9,708.66],b6:[354.33,498.9],b7:[249.45,354.33],b8:[175.75,249.45],b9:[124.72,175.75],b10:[87.87,124.72],c0:[2599.37,3676.54],c1:[1836.85,2599.37],c2:[1298.27,1836.85],c3:[918.43,1298.27],c4:[649.13,918.43],c5:[459.21,649.13],c6:[323.15,459.21],c7:[229.61,323.15],c8:[161.57,229.61],c9:[113.39,161.57],c10:[79.37,113.39],dl:[311.81,623.62],letter:[612,792],\"government-letter\":[576,756],legal:[612,1008],\"junior-legal\":[576,360],ledger:[1224,792],tabloid:[792,1224],\"credit-card\":[153,243]};y.__private__.getPageFormats=function(){return L};var A=y.__private__.getPageFormat=function(t){return L[t]};s=s||\"a4\";var x={COMPAT:\"compat\",ADVANCED:\"advanced\"},S=x.COMPAT;function _(){this.saveGraphicsState(),lt(new Vt(_t,0,0,-_t,0,Rr()*_t).toString()+\" cm\"),this.setFontSize(this.getFontSize()/_t),g=\"n\",S=x.ADVANCED}function P(){this.restoreGraphicsState(),g=\"S\",S=x.COMPAT}var k=y.__private__.combineFontStyleAndFontWeight=function(t,e){if(\"bold\"==t&&\"normal\"==e||\"bold\"==t&&400==e||\"normal\"==t&&\"italic\"==e||\"bold\"==t&&\"italic\"==e)throw new Error(\"Invalid Combination of fontweight and fontstyle\");return e&&(t=400==e||\"normal\"===e?\"italic\"===t?\"italic\":\"normal\":700!=e&&\"bold\"!==e||\"normal\"!==t?(700==e?\"bold\":e)+\"\"+t:\"bold\"),t};y.advancedAPI=function(t){var e=S===x.COMPAT;return e&&_.call(this),\"function\"!=typeof t||(t(this),e&&P.call(this)),this},y.compatAPI=function(t){var e=S===x.ADVANCED;return e&&P.call(this),\"function\"!=typeof t||(t(this),e&&_.call(this)),this},y.isAdvancedAPI=function(){return S===x.ADVANCED};var O,q=function(t){if(S!==x.ADVANCED)throw new Error(t+\" is only available in 'advanced' API mode. You need to call advancedAPI() first.\")},D=y.roundToPrecision=y.__private__.roundToPrecision=function(t,e){var n=r||e;if(isNaN(t)||isNaN(n))throw new Error(\"Invalid argument passed to jsPDF.roundToPrecision\");return t.toFixed(n).replace(/0+$/,\"\")};O=y.hpf=y.__private__.hpf=\"number\"==typeof p?function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.hpf\");return D(t,p)}:\"smart\"===p?function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.hpf\");return D(t,t>-1&&t<1?16:5)}:function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.hpf\");return D(t,16)};var R=y.f2=y.__private__.f2=function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.f2\");return D(t,2)},T=y.__private__.f3=function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.f3\");return D(t,3)},U=y.scale=y.__private__.scale=function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.scale\");return S===x.COMPAT?t*_t:S===x.ADVANCED?t:void 0},z=function(t){return S===x.COMPAT?Rr()-t:S===x.ADVANCED?t:void 0},H=function(t){return U(z(t))};y.__private__.setPrecision=y.setPrecision=function(t){\"number\"==typeof parseInt(t,10)&&(r=parseInt(t,10))};var W,V=\"00000000000000000000000000000000\",G=y.__private__.getFileId=function(){return V},Y=y.__private__.setFileId=function(t){return V=void 0!==t&&/^[a-fA-F0-9]{32}$/.test(t)?t.toUpperCase():V.split(\"\").map((function(){return\"ABCDEF0123456789\".charAt(Math.floor(16*Math.random()))})).join(\"\"),null!==m&&(Ye=new I(m.userPermissions,m.userPassword,m.ownerPassword,V)),V};y.setFileId=function(t){return Y(t),this},y.getFileId=function(){return G()};var J=y.__private__.convertDateToPDFDate=function(t){var e=t.getTimezoneOffset(),r=e<0?\"+\":\"-\",n=Math.floor(Math.abs(e/60)),i=Math.abs(e%60),a=[r,Q(n),\"'\",Q(i),\"'\"].join(\"\");return[\"D:\",t.getFullYear(),Q(t.getMonth()+1),Q(t.getDate()),Q(t.getHours()),Q(t.getMinutes()),Q(t.getSeconds()),a].join(\"\")},X=y.__private__.convertPDFDateToDate=function(t){var e=parseInt(t.substr(2,4),10),r=parseInt(t.substr(6,2),10)-1,n=parseInt(t.substr(8,2),10),i=parseInt(t.substr(10,2),10),a=parseInt(t.substr(12,2),10),o=parseInt(t.substr(14,2),10);return new Date(e,r,n,i,a,o,0)},K=y.__private__.setCreationDate=function(t){var e;if(void 0===t&&(t=new Date),t instanceof Date)e=J(t);else{if(!/^D:(20[0-2][0-9]|203[0-7]|19[7-9][0-9])(0[0-9]|1[0-2])([0-2][0-9]|3[0-1])(0[0-9]|1[0-9]|2[0-3])(0[0-9]|[1-5][0-9])(0[0-9]|[1-5][0-9])(\\+0[0-9]|\\+1[0-4]|-0[0-9]|-1[0-1])'(0[0-9]|[1-5][0-9])'?$/.test(t))throw new Error(\"Invalid argument passed to jsPDF.setCreationDate\");e=t}return W=e},Z=y.__private__.getCreationDate=function(t){var e=W;return\"jsDate\"===t&&(e=X(W)),e};y.setCreationDate=function(t){return K(t),this},y.getCreationDate=function(t){return Z(t)};var $,Q=y.__private__.padd2=function(t){return(\"0\"+parseInt(t)).slice(-2)},tt=y.__private__.padd2Hex=function(t){return(\"00\"+(t=t.toString())).substr(t.length)},et=0,rt=[],nt=[],it=0,at=[],ot=[],st=!1,ct=nt,ut=function(){et=0,it=0,nt=[],rt=[],at=[],Qt=Kt(),te=Kt()};y.__private__.setCustomOutputDestination=function(t){st=!0,ct=t};var ht=function(t){st||(ct=t)};y.__private__.resetCustomOutputDestination=function(){st=!1,ct=nt};var lt=y.__private__.out=function(t){return t=t.toString(),it+=t.length+1,ct.push(t),ct},ft=y.__private__.write=function(t){return lt(1===arguments.length?t.toString():Array.prototype.join.call(arguments,\" \"))},dt=y.__private__.getArrayBuffer=function(t){for(var e=t.length,r=new ArrayBuffer(e),n=new Uint8Array(r);e--;)n[e]=t.charCodeAt(e);return r},pt=[[\"Helvetica\",\"helvetica\",\"normal\",\"WinAnsiEncoding\"],[\"Helvetica-Bold\",\"helvetica\",\"bold\",\"WinAnsiEncoding\"],[\"Helvetica-Oblique\",\"helvetica\",\"italic\",\"WinAnsiEncoding\"],[\"Helvetica-BoldOblique\",\"helvetica\",\"bolditalic\",\"WinAnsiEncoding\"],[\"Courier\",\"courier\",\"normal\",\"WinAnsiEncoding\"],[\"Courier-Bold\",\"courier\",\"bold\",\"WinAnsiEncoding\"],[\"Courier-Oblique\",\"courier\",\"italic\",\"WinAnsiEncoding\"],[\"Courier-BoldOblique\",\"courier\",\"bolditalic\",\"WinAnsiEncoding\"],[\"Times-Roman\",\"times\",\"normal\",\"WinAnsiEncoding\"],[\"Times-Bold\",\"times\",\"bold\",\"WinAnsiEncoding\"],[\"Times-Italic\",\"times\",\"italic\",\"WinAnsiEncoding\"],[\"Times-BoldItalic\",\"times\",\"bolditalic\",\"WinAnsiEncoding\"],[\"ZapfDingbats\",\"zapfdingbats\",\"normal\",null],[\"Symbol\",\"symbol\",\"normal\",null]];y.__private__.getStandardFonts=function(){return pt};var gt=e.fontSize||16;y.__private__.setFontSize=y.setFontSize=function(t){return gt=S===x.ADVANCED?t/_t:t,this};var mt,vt=y.__private__.getFontSize=y.getFontSize=function(){return S===x.COMPAT?gt:gt*_t},bt=e.R2L||!1;y.__private__.setR2L=y.setR2L=function(t){return bt=t,this},y.__private__.getR2L=y.getR2L=function(){return bt};var yt,wt=y.__private__.setZoomMode=function(t){var e=[void 0,null,\"fullwidth\",\"fullheight\",\"fullpage\",\"original\"];if(/^(?:\\d+\\.\\d*|\\d*\\.\\d+|\\d+)%$/.test(t))mt=t;else if(isNaN(t)){if(-1===e.indexOf(t))throw new Error('zoom must be Integer (e.g. 2), a percentage Value (e.g. 300%) or fullwidth, fullheight, fullpage, original. \"'+t+'\" is not recognized.');mt=t}else mt=parseInt(t,10)};y.__private__.getZoomMode=function(){return mt};var Nt,Lt=y.__private__.setPageMode=function(t){if(-1==[void 0,null,\"UseNone\",\"UseOutlines\",\"UseThumbs\",\"FullScreen\"].indexOf(t))throw new Error('Page mode must be one of UseNone, UseOutlines, UseThumbs, or FullScreen. \"'+t+'\" is not recognized.');yt=t};y.__private__.getPageMode=function(){return yt};var At=y.__private__.setLayoutMode=function(t){if(-1==[void 0,null,\"continuous\",\"single\",\"twoleft\",\"tworight\",\"two\"].indexOf(t))throw new Error('Layout mode must be one of continuous, single, twoleft, tworight. \"'+t+'\" is not recognized.');Nt=t};y.__private__.getLayoutMode=function(){return Nt},y.__private__.setDisplayMode=y.setDisplayMode=function(t,e,r){return wt(t),At(e),Lt(r),this};var xt={title:\"\",subject:\"\",author:\"\",keywords:\"\",creator:\"\"};y.__private__.getDocumentProperty=function(t){if(-1===Object.keys(xt).indexOf(t))throw new Error(\"Invalid argument passed to jsPDF.getDocumentProperty\");return xt[t]},y.__private__.getDocumentProperties=function(){return xt},y.__private__.setDocumentProperties=y.setProperties=y.setDocumentProperties=function(t){for(var e in xt)xt.hasOwnProperty(e)&&t[e]&&(xt[e]=t[e]);return this},y.__private__.setDocumentProperty=function(t,e){if(-1===Object.keys(xt).indexOf(t))throw new Error(\"Invalid arguments passed to jsPDF.setDocumentProperty\");return xt[t]=e};var St,_t,Pt,kt,It,Ft={},Ct={},jt=[],Ot={},Bt={},Mt={},Et={},qt=null,Dt=0,Rt=[],Tt=new C(y),Ut=e.hotfixes||[],zt={},Ht={},Wt=[],Vt=function t(e,r,n,i,a,o){if(!(this instanceof t))return new t(e,r,n,i,a,o);isNaN(e)&&(e=1),isNaN(r)&&(r=0),isNaN(n)&&(n=0),isNaN(i)&&(i=1),isNaN(a)&&(a=0),isNaN(o)&&(o=0),this._matrix=[e,r,n,i,a,o]};Object.defineProperty(Vt.prototype,\"sx\",{get:function(){return this._matrix[0]},set:function(t){this._matrix[0]=t}}),Object.defineProperty(Vt.prototype,\"shy\",{get:function(){return this._matrix[1]},set:function(t){this._matrix[1]=t}}),Object.defineProperty(Vt.prototype,\"shx\",{get:function(){return this._matrix[2]},set:function(t){this._matrix[2]=t}}),Object.defineProperty(Vt.prototype,\"sy\",{get:function(){return this._matrix[3]},set:function(t){this._matrix[3]=t}}),Object.defineProperty(Vt.prototype,\"tx\",{get:function(){return this._matrix[4]},set:function(t){this._matrix[4]=t}}),Object.defineProperty(Vt.prototype,\"ty\",{get:function(){return this._matrix[5]},set:function(t){this._matrix[5]=t}}),Object.defineProperty(Vt.prototype,\"a\",{get:function(){return this._matrix[0]},set:function(t){this._matrix[0]=t}}),Object.defineProperty(Vt.prototype,\"b\",{get:function(){return this._matrix[1]},set:function(t){this._matrix[1]=t}}),Object.defineProperty(Vt.prototype,\"c\",{get:function(){return this._matrix[2]},set:function(t){this._matrix[2]=t}}),Object.defineProperty(Vt.prototype,\"d\",{get:function(){return this._matrix[3]},set:function(t){this._matrix[3]=t}}),Object.defineProperty(Vt.prototype,\"e\",{get:function(){return this._matrix[4]},set:function(t){this._matrix[4]=t}}),Object.defineProperty(Vt.prototype,\"f\",{get:function(){return this._matrix[5]},set:function(t){this._matrix[5]=t}}),Object.defineProperty(Vt.prototype,\"rotation\",{get:function(){return Math.atan2(this.shx,this.sx)}}),Object.defineProperty(Vt.prototype,\"scaleX\",{get:function(){return this.decompose().scale.sx}}),Object.defineProperty(Vt.prototype,\"scaleY\",{get:function(){return this.decompose().scale.sy}}),Object.defineProperty(Vt.prototype,\"isIdentity\",{get:function(){return 1===this.sx&&(0===this.shy&&(0===this.shx&&(1===this.sy&&(0===this.tx&&0===this.ty))))}}),Vt.prototype.join=function(t){return[this.sx,this.shy,this.shx,this.sy,this.tx,this.ty].map(O).join(t)},Vt.prototype.multiply=function(t){var e=t.sx*this.sx+t.shy*this.shx,r=t.sx*this.shy+t.shy*this.sy,n=t.shx*this.sx+t.sy*this.shx,i=t.shx*this.shy+t.sy*this.sy,a=t.tx*this.sx+t.ty*this.shx+this.tx,o=t.tx*this.shy+t.ty*this.sy+this.ty;return new Vt(e,r,n,i,a,o)},Vt.prototype.decompose=function(){var t=this.sx,e=this.shy,r=this.shx,n=this.sy,i=this.tx,a=this.ty,o=Math.sqrt(t*t+e*e),s=(t/=o)*r+(e/=o)*n;r-=t*s,n-=e*s;var c=Math.sqrt(r*r+n*n);return s/=c,t*(n/=c)<e*(r/=c)&&(t=-t,e=-e,s=-s,o=-o),{scale:new Vt(o,0,0,c,0,0),translate:new Vt(1,0,0,1,i,a),rotate:new Vt(t,e,-e,t,0,0),skew:new Vt(1,0,s,1,0,0)}},Vt.prototype.toString=function(t){return this.join(\" \")},Vt.prototype.inversed=function(){var t=this.sx,e=this.shy,r=this.shx,n=this.sy,i=this.tx,a=this.ty,o=1/(t*n-e*r),s=n*o,c=-e*o,u=-r*o,h=t*o;return new Vt(s,c,u,h,-s*i-u*a,-c*i-h*a)},Vt.prototype.applyToPoint=function(t){var e=t.x*this.sx+t.y*this.shx+this.tx,r=t.x*this.shy+t.y*this.sy+this.ty;return new Cr(e,r)},Vt.prototype.applyToRectangle=function(t){var e=this.applyToPoint(t),r=this.applyToPoint(new Cr(t.x+t.w,t.y+t.h));return new jr(e.x,e.y,r.x-e.x,r.y-e.y)},Vt.prototype.clone=function(){var t=this.sx,e=this.shy,r=this.shx,n=this.sy,i=this.tx,a=this.ty;return new Vt(t,e,r,n,i,a)},y.Matrix=Vt;var Gt=y.matrixMult=function(t,e){return e.multiply(t)},Yt=new Vt(1,0,0,1,0,0);y.unitMatrix=y.identityMatrix=Yt;var Jt=function(t,e){if(!Bt[t]){var r=(e instanceof B?\"Sh\":\"P\")+(Object.keys(Ot).length+1).toString(10);e.id=r,Bt[t]=r,Ot[r]=e,Tt.publish(\"addPattern\",e)}};y.ShadingPattern=B,y.TilingPattern=M,y.addShadingPattern=function(t,e){return q(\"addShadingPattern()\"),Jt(t,e),this},y.beginTilingPattern=function(t){q(\"beginTilingPattern()\"),Br(t.boundingBox[0],t.boundingBox[1],t.boundingBox[2]-t.boundingBox[0],t.boundingBox[3]-t.boundingBox[1],t.matrix)},y.endTilingPattern=function(t,e){q(\"endTilingPattern()\"),e.stream=ot[$].join(\"\\n\"),Jt(t,e),Tt.publish(\"endTilingPattern\",e),Wt.pop().restore()};var Xt=y.__private__.newObject=function(){var t=Kt();return Zt(t,!0),t},Kt=y.__private__.newObjectDeferred=function(){return et++,rt[et]=function(){return it},et},Zt=function(t,e){return e=\"boolean\"==typeof e&&e,rt[t]=it,e&<(t+\" 0 obj\"),t},$t=y.__private__.newAdditionalObject=function(){var t={objId:Kt(),content:\"\"};return at.push(t),t},Qt=Kt(),te=Kt(),ee=y.__private__.decodeColorString=function(t){var e=t.split(\" \");if(2!==e.length||\"g\"!==e[1]&&\"G\"!==e[1]){if(5===e.length&&(\"k\"===e[4]||\"K\"===e[4])){e=[(1-e[0])*(1-e[3]),(1-e[1])*(1-e[3]),(1-e[2])*(1-e[3]),\"r\"]}}else{var r=parseFloat(e[0]);e=[r,r,r,\"r\"]}for(var n=\"#\",i=0;i<3;i++)n+=(\"0\"+Math.floor(255*parseFloat(e[i])).toString(16)).slice(-2);return n},re=y.__private__.encodeColorString=function(e){var r;\"string\"==typeof e&&(e={ch1:e});var n=e.ch1,i=e.ch2,a=e.ch3,o=e.ch4,s=\"draw\"===e.pdfColorType?[\"G\",\"RG\",\"K\"]:[\"g\",\"rg\",\"k\"];if(\"string\"==typeof n&&\"#\"!==n.charAt(0)){var c=new f(n);if(c.ok)n=c.toHex();else if(!/^\\d*\\.?\\d*$/.test(n))throw new Error('Invalid color \"'+n+'\" passed to jsPDF.encodeColorString.')}if(\"string\"==typeof n&&/^#[0-9A-Fa-f]{3}$/.test(n)&&(n=\"#\"+n[1]+n[1]+n[2]+n[2]+n[3]+n[3]),\"string\"==typeof n&&/^#[0-9A-Fa-f]{6}$/.test(n)){var u=parseInt(n.substr(1),16);n=u>>16&255,i=u>>8&255,a=255&u}if(void 0===i||void 0===o&&n===i&&i===a)if(\"string\"==typeof n)r=n+\" \"+s[0];else switch(e.precision){case 2:r=R(n/255)+\" \"+s[0];break;case 3:default:r=T(n/255)+\" \"+s[0]}else if(void 0===o||\"object\"===t(o)){if(o&&!isNaN(o.a)&&0===o.a)return r=[\"1.\",\"1.\",\"1.\",s[1]].join(\" \");if(\"string\"==typeof n)r=[n,i,a,s[1]].join(\" \");else switch(e.precision){case 2:r=[R(n/255),R(i/255),R(a/255),s[1]].join(\" \");break;default:case 3:r=[T(n/255),T(i/255),T(a/255),s[1]].join(\" \")}}else if(\"string\"==typeof n)r=[n,i,a,o,s[2]].join(\" \");else switch(e.precision){case 2:r=[R(n),R(i),R(a),R(o),s[2]].join(\" \");break;case 3:default:r=[T(n),T(i),T(a),T(o),s[2]].join(\" \")}return r},ne=y.__private__.getFilters=function(){return u},ie=y.__private__.putStream=function(t){var e=(t=t||{}).data||\"\",r=t.filters||ne(),n=t.alreadyAppliedFilters||[],i=t.addLength1||!1,a=e.length,o=t.objectId,s=function(t){return t};if(null!==m&&void 0===o)throw new Error(\"ObjectId must be passed to putStream for file encryption\");null!==m&&(s=Ye.encryptor(o,0));var c={};!0===r&&(r=[\"FlateEncode\"]);var u=t.additionalKeyValues||[],h=(c=void 0!==E.API.processDataByFilters?E.API.processDataByFilters(e,r):{data:e,reverseChain:[]}).reverseChain+(Array.isArray(n)?n.join(\" \"):n.toString());if(0!==c.data.length&&(u.push({key:\"Length\",value:c.data.length}),!0===i&&u.push({key:\"Length1\",value:a})),0!=h.length)if(h.split(\"/\").length-1==1)u.push({key:\"Filter\",value:h});else{u.push({key:\"Filter\",value:\"[\"+h+\"]\"});for(var l=0;l<u.length;l+=1)if(\"DecodeParms\"===u[l].key){for(var f=[],d=0;d<c.reverseChain.split(\"/\").length-1;d+=1)f.push(\"null\");f.push(u[l].value),u[l].value=\"[\"+f.join(\" \")+\"]\"}}lt(\"<<\");for(var p=0;p<u.length;p++)lt(\"/\"+u[p].key+\" \"+u[p].value);lt(\">>\"),0!==c.data.length&&(lt(\"stream\"),lt(s(c.data)),lt(\"endstream\"))},ae=y.__private__.putPage=function(t){var e=t.number,r=t.data,n=t.objId,i=t.contentsObjId;Zt(n,!0),lt(\"<</Type /Page\"),lt(\"/Parent \"+t.rootDictionaryObjId+\" 0 R\"),lt(\"/Resources \"+t.resourceDictionaryObjId+\" 0 R\"),lt(\"/MediaBox [\"+parseFloat(O(t.mediaBox.bottomLeftX))+\" \"+parseFloat(O(t.mediaBox.bottomLeftY))+\" \"+O(t.mediaBox.topRightX)+\" \"+O(t.mediaBox.topRightY)+\"]\"),null!==t.cropBox&<(\"/CropBox [\"+O(t.cropBox.bottomLeftX)+\" \"+O(t.cropBox.bottomLeftY)+\" \"+O(t.cropBox.topRightX)+\" \"+O(t.cropBox.topRightY)+\"]\"),null!==t.bleedBox&<(\"/BleedBox [\"+O(t.bleedBox.bottomLeftX)+\" \"+O(t.bleedBox.bottomLeftY)+\" \"+O(t.bleedBox.topRightX)+\" \"+O(t.bleedBox.topRightY)+\"]\"),null!==t.trimBox&<(\"/TrimBox [\"+O(t.trimBox.bottomLeftX)+\" \"+O(t.trimBox.bottomLeftY)+\" \"+O(t.trimBox.topRightX)+\" \"+O(t.trimBox.topRightY)+\"]\"),null!==t.artBox&<(\"/ArtBox [\"+O(t.artBox.bottomLeftX)+\" \"+O(t.artBox.bottomLeftY)+\" \"+O(t.artBox.topRightX)+\" \"+O(t.artBox.topRightY)+\"]\"),\"number\"==typeof t.userUnit&&1!==t.userUnit&<(\"/UserUnit \"+t.userUnit),Tt.publish(\"putPage\",{objId:n,pageContext:Rt[e],pageNumber:e,page:r}),lt(\"/Contents \"+i+\" 0 R\"),lt(\">>\"),lt(\"endobj\");var a=r.join(\"\\n\");return S===x.ADVANCED&&(a+=\"\\nQ\"),Zt(i,!0),ie({data:a,filters:ne(),objectId:i}),lt(\"endobj\"),n},oe=y.__private__.putPages=function(){var t,e,r=[];for(t=1;t<=Dt;t++)Rt[t].objId=Kt(),Rt[t].contentsObjId=Kt();for(t=1;t<=Dt;t++)r.push(ae({number:t,data:ot[t],objId:Rt[t].objId,contentsObjId:Rt[t].contentsObjId,mediaBox:Rt[t].mediaBox,cropBox:Rt[t].cropBox,bleedBox:Rt[t].bleedBox,trimBox:Rt[t].trimBox,artBox:Rt[t].artBox,userUnit:Rt[t].userUnit,rootDictionaryObjId:Qt,resourceDictionaryObjId:te}));Zt(Qt,!0),lt(\"<</Type /Pages\");var n=\"/Kids [\";for(e=0;e<Dt;e++)n+=r[e]+\" 0 R \";lt(n+\"]\"),lt(\"/Count \"+Dt),lt(\">>\"),lt(\"endobj\"),Tt.publish(\"postPutPages\")},se=function(t){Tt.publish(\"putFont\",{font:t,out:lt,newObject:Xt,putStream:ie}),!0!==t.isAlreadyPutted&&(t.objectNumber=Xt(),lt(\"<<\"),lt(\"/Type /Font\"),lt(\"/BaseFont /\"+F(t.postScriptName)),lt(\"/Subtype /Type1\"),\"string\"==typeof t.encoding&<(\"/Encoding /\"+t.encoding),lt(\"/FirstChar 32\"),lt(\"/LastChar 255\"),lt(\">>\"),lt(\"endobj\"))},ce=function(){for(var t in Ft)Ft.hasOwnProperty(t)&&(!1===v||!0===v&&b.hasOwnProperty(t))&&se(Ft[t])},ue=function(t){t.objectNumber=Xt();var e=[];e.push({key:\"Type\",value:\"/XObject\"}),e.push({key:\"Subtype\",value:\"/Form\"}),e.push({key:\"BBox\",value:\"[\"+[O(t.x),O(t.y),O(t.x+t.width),O(t.y+t.height)].join(\" \")+\"]\"}),e.push({key:\"Matrix\",value:\"[\"+t.matrix.toString()+\"]\"});var r=t.pages[1].join(\"\\n\");ie({data:r,additionalKeyValues:e,objectId:t.objectNumber}),lt(\"endobj\")},he=function(){for(var t in zt)zt.hasOwnProperty(t)&&ue(zt[t])},le=function(t,e){var r,n=[],i=1/(e-1);for(r=0;r<1;r+=i)n.push(r);if(n.push(1),0!=t[0].offset){var a={offset:0,color:t[0].color};t.unshift(a)}if(1!=t[t.length-1].offset){var o={offset:1,color:t[t.length-1].color};t.push(o)}for(var s=\"\",c=0,u=0;u<n.length;u++){for(r=n[u];r>t[c+1].offset;)c++;var h=t[c].offset,l=(r-h)/(t[c+1].offset-h),f=t[c].color,d=t[c+1].color;s+=tt(Math.round((1-l)*f[0]+l*d[0]).toString(16))+tt(Math.round((1-l)*f[1]+l*d[1]).toString(16))+tt(Math.round((1-l)*f[2]+l*d[2]).toString(16))}return s.trim()},fe=function(t,e){e||(e=21);var r=Xt(),n=le(t.colors,e),i=[];i.push({key:\"FunctionType\",value:\"0\"}),i.push({key:\"Domain\",value:\"[0.0 1.0]\"}),i.push({key:\"Size\",value:\"[\"+e+\"]\"}),i.push({key:\"BitsPerSample\",value:\"8\"}),i.push({key:\"Range\",value:\"[0.0 1.0 0.0 1.0 0.0 1.0]\"}),i.push({key:\"Decode\",value:\"[0.0 1.0 0.0 1.0 0.0 1.0]\"}),ie({data:n,additionalKeyValues:i,alreadyAppliedFilters:[\"/ASCIIHexDecode\"],objectId:r}),lt(\"endobj\"),t.objectNumber=Xt(),lt(\"<< /ShadingType \"+t.type),lt(\"/ColorSpace /DeviceRGB\");var a=\"/Coords [\"+O(parseFloat(t.coords[0]))+\" \"+O(parseFloat(t.coords[1]))+\" \";2===t.type?a+=O(parseFloat(t.coords[2]))+\" \"+O(parseFloat(t.coords[3])):a+=O(parseFloat(t.coords[2]))+\" \"+O(parseFloat(t.coords[3]))+\" \"+O(parseFloat(t.coords[4]))+\" \"+O(parseFloat(t.coords[5])),lt(a+=\"]\"),t.matrix&<(\"/Matrix [\"+t.matrix.toString()+\"]\"),lt(\"/Function \"+r+\" 0 R\"),lt(\"/Extend [true true]\"),lt(\">>\"),lt(\"endobj\")},de=function(t,e){var r=Kt(),n=Xt();e.push({resourcesOid:r,objectOid:n}),t.objectNumber=n;var i=[];i.push({key:\"Type\",value:\"/Pattern\"}),i.push({key:\"PatternType\",value:\"1\"}),i.push({key:\"PaintType\",value:\"1\"}),i.push({key:\"TilingType\",value:\"1\"}),i.push({key:\"BBox\",value:\"[\"+t.boundingBox.map(O).join(\" \")+\"]\"}),i.push({key:\"XStep\",value:O(t.xStep)}),i.push({key:\"YStep\",value:O(t.yStep)}),i.push({key:\"Resources\",value:r+\" 0 R\"}),t.matrix&&i.push({key:\"Matrix\",value:\"[\"+t.matrix.toString()+\"]\"}),ie({data:t.stream,additionalKeyValues:i,objectId:t.objectNumber}),lt(\"endobj\")},pe=function(t){var e;for(e in Ot)Ot.hasOwnProperty(e)&&(Ot[e]instanceof B?fe(Ot[e]):Ot[e]instanceof M&&de(Ot[e],t))},ge=function(t){for(var e in t.objectNumber=Xt(),lt(\"<<\"),t)switch(e){case\"opacity\":lt(\"/ca \"+R(t[e]));break;case\"stroke-opacity\":lt(\"/CA \"+R(t[e]))}lt(\">>\"),lt(\"endobj\")},me=function(){var t;for(t in Mt)Mt.hasOwnProperty(t)&&ge(Mt[t])},ve=function(){for(var t in lt(\"/XObject <<\"),zt)zt.hasOwnProperty(t)&&zt[t].objectNumber>=0&<(\"/\"+t+\" \"+zt[t].objectNumber+\" 0 R\");Tt.publish(\"putXobjectDict\"),lt(\">>\")},be=function(){Ye.oid=Xt(),lt(\"<<\"),lt(\"/Filter /Standard\"),lt(\"/V \"+Ye.v),lt(\"/R \"+Ye.r),lt(\"/U <\"+Ye.toHexString(Ye.U)+\">\"),lt(\"/O <\"+Ye.toHexString(Ye.O)+\">\"),lt(\"/P \"+Ye.P),lt(\">>\"),lt(\"endobj\")},ye=function(){for(var t in lt(\"/Font <<\"),Ft)Ft.hasOwnProperty(t)&&(!1===v||!0===v&&b.hasOwnProperty(t))&<(\"/\"+t+\" \"+Ft[t].objectNumber+\" 0 R\");lt(\">>\")},we=function(){if(Object.keys(Ot).length>0){for(var t in lt(\"/Shading <<\"),Ot)Ot.hasOwnProperty(t)&&Ot[t]instanceof B&&Ot[t].objectNumber>=0&<(\"/\"+t+\" \"+Ot[t].objectNumber+\" 0 R\");Tt.publish(\"putShadingPatternDict\"),lt(\">>\")}},Ne=function(t){if(Object.keys(Ot).length>0){for(var e in lt(\"/Pattern <<\"),Ot)Ot.hasOwnProperty(e)&&Ot[e]instanceof y.TilingPattern&&Ot[e].objectNumber>=0&&Ot[e].objectNumber<t&<(\"/\"+e+\" \"+Ot[e].objectNumber+\" 0 R\");Tt.publish(\"putTilingPatternDict\"),lt(\">>\")}},Le=function(){if(Object.keys(Mt).length>0){var t;for(t in lt(\"/ExtGState <<\"),Mt)Mt.hasOwnProperty(t)&&Mt[t].objectNumber>=0&<(\"/\"+t+\" \"+Mt[t].objectNumber+\" 0 R\");Tt.publish(\"putGStateDict\"),lt(\">>\")}},Ae=function(t){Zt(t.resourcesOid,!0),lt(\"<<\"),lt(\"/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]\"),ye(),we(),Ne(t.objectOid),Le(),ve(),lt(\">>\"),lt(\"endobj\")},xe=function(){var t=[];ce(),me(),he(),pe(t),Tt.publish(\"putResources\"),t.forEach(Ae),Ae({resourcesOid:te,objectOid:Number.MAX_SAFE_INTEGER}),Tt.publish(\"postPutResources\")},Se=function(){Tt.publish(\"putAdditionalObjects\");for(var t=0;t<at.length;t++){var e=at[t];Zt(e.objId,!0),lt(e.content),lt(\"endobj\")}Tt.publish(\"postPutAdditionalObjects\")},_e=function(t){Ct[t.fontName]=Ct[t.fontName]||{},Ct[t.fontName][t.fontStyle]=t.id},Pe=function(t,e,r,n,i){var a={id:\"F\"+(Object.keys(Ft).length+1).toString(10),postScriptName:t,fontName:e,fontStyle:r,encoding:n,isStandardFont:i||!1,metadata:{}};return Tt.publish(\"addFont\",{font:a,instance:this}),Ft[a.id]=a,_e(a),a.id},ke=function(t){for(var e=0,r=pt.length;e<r;e++){var n=Pe.call(this,t[e][0],t[e][1],t[e][2],pt[e][3],!0);!1===v&&(b[n]=!0);var i=t[e][0].split(\"-\");_e({id:n,fontName:i[0],fontStyle:i[1]||\"\"})}Tt.publish(\"addFonts\",{fonts:Ft,dictionary:Ct})},Ie=function(t){return t.foo=function(){try{return t.apply(this,arguments)}catch(t){var e=t.stack||\"\";~e.indexOf(\" at \")&&(e=e.split(\" at \")[1]);var r=\"Error in function \"+e.split(\"\\n\")[0].split(\"<\")[0]+\": \"+t.message;if(!n.console)throw new Error(r);n.console.error(r,t),n.alert&&alert(r)}},t.foo.bar=t,t.foo},Fe=function(t,e){var r,n,i,a,o,s,c,u,h;if(i=(e=e||{}).sourceEncoding||\"Unicode\",o=e.outputEncoding,(e.autoencode||o)&&Ft[St].metadata&&Ft[St].metadata[i]&&Ft[St].metadata[i].encoding&&(a=Ft[St].metadata[i].encoding,!o&&Ft[St].encoding&&(o=Ft[St].encoding),!o&&a.codePages&&(o=a.codePages[0]),\"string\"==typeof o&&(o=a[o]),o)){for(c=!1,s=[],r=0,n=t.length;r<n;r++)(u=o[t.charCodeAt(r)])?s.push(String.fromCharCode(u)):s.push(t[r]),s[r].charCodeAt(0)>>8&&(c=!0);t=s.join(\"\")}for(r=t.length;void 0===c&&0!==r;)t.charCodeAt(r-1)>>8&&(c=!0),r--;if(!c)return t;for(s=e.noBOM?[]:[254,255],r=0,n=t.length;r<n;r++){if((h=(u=t.charCodeAt(r))>>8)>>8)throw new Error(\"Character at position \"+r+\" of string '\"+t+\"' exceeds 16bits. Cannot be encoded into UCS-2 BE\");s.push(h),s.push(u-(h<<8))}return String.fromCharCode.apply(void 0,s)},Ce=y.__private__.pdfEscape=y.pdfEscape=function(t,e){return Fe(t,e).replace(/\\\\/g,\"\\\\\\\\\").replace(/\\(/g,\"\\\\(\").replace(/\\)/g,\"\\\\)\")},je=y.__private__.beginPage=function(t){ot[++Dt]=[],Rt[Dt]={objId:0,contentsObjId:0,userUnit:Number(d),artBox:null,bleedBox:null,cropBox:null,trimBox:null,mediaBox:{bottomLeftX:0,bottomLeftY:0,topRightX:Number(t[0]),topRightY:Number(t[1])}},Me(Dt),ht(ot[$])},Oe=function(t,e){var r,n,o;switch(i=e||i,\"string\"==typeof t&&(r=A(t.toLowerCase()),Array.isArray(r)&&(n=r[0],o=r[1])),Array.isArray(t)&&(n=t[0]*_t,o=t[1]*_t),isNaN(n)&&(n=s[0],o=s[1]),(n>14400||o>14400)&&(a.warn(\"A page in a PDF can not be wider or taller than 14400 userUnit. jsPDF limits the width/height to 14400\"),n=Math.min(14400,n),o=Math.min(14400,o)),s=[n,o],i.substr(0,1)){case\"l\":o>n&&(s=[o,n]);break;case\"p\":n>o&&(s=[o,n])}je(s),pr(fr),lt(Lr),0!==kr&<(kr+\" J\"),0!==Ir&<(Ir+\" j\"),Tt.publish(\"addPage\",{pageNumber:Dt})},Be=function(t){t>0&&t<=Dt&&(ot.splice(t,1),Rt.splice(t,1),Dt--,$>Dt&&($=Dt),this.setPage($))},Me=function(t){t>0&&t<=Dt&&($=t)},Ee=y.__private__.getNumberOfPages=y.getNumberOfPages=function(){return ot.length-1},qe=function(t,e,r){var n,i=void 0;return r=r||{},t=void 0!==t?t:Ft[St].fontName,e=void 0!==e?e:Ft[St].fontStyle,n=t.toLowerCase(),void 0!==Ct[n]&&void 0!==Ct[n][e]?i=Ct[n][e]:void 0!==Ct[t]&&void 0!==Ct[t][e]?i=Ct[t][e]:!1===r.disableWarning&&a.warn(\"Unable to look up font label for font '\"+t+\"', '\"+e+\"'. Refer to getFontList() for available fonts.\"),i||r.noFallback||null==(i=Ct.times[e])&&(i=Ct.times.normal),i},De=y.__private__.putInfo=function(){var t=Xt(),e=function(t){return t};for(var r in null!==m&&(e=Ye.encryptor(t,0)),lt(\"<<\"),lt(\"/Producer (\"+Ce(e(\"jsPDF \"+E.version))+\")\"),xt)xt.hasOwnProperty(r)&&xt[r]&<(\"/\"+r.substr(0,1).toUpperCase()+r.substr(1)+\" (\"+Ce(e(xt[r]))+\")\");lt(\"/CreationDate (\"+Ce(e(W))+\")\"),lt(\">>\"),lt(\"endobj\")},Re=y.__private__.putCatalog=function(t){var e=(t=t||{}).rootDictionaryObjId||Qt;switch(Xt(),lt(\"<<\"),lt(\"/Type /Catalog\"),lt(\"/Pages \"+e+\" 0 R\"),mt||(mt=\"fullwidth\"),mt){case\"fullwidth\":lt(\"/OpenAction [3 0 R /FitH null]\");break;case\"fullheight\":lt(\"/OpenAction [3 0 R /FitV null]\");break;case\"fullpage\":lt(\"/OpenAction [3 0 R /Fit]\");break;case\"original\":lt(\"/OpenAction [3 0 R /XYZ null null 1]\");break;default:var r=\"\"+mt;\"%\"===r.substr(r.length-1)&&(mt=parseInt(mt)/100),\"number\"==typeof mt&<(\"/OpenAction [3 0 R /XYZ null null \"+R(mt)+\"]\")}switch(Nt||(Nt=\"continuous\"),Nt){case\"continuous\":lt(\"/PageLayout /OneColumn\");break;case\"single\":lt(\"/PageLayout /SinglePage\");break;case\"two\":case\"twoleft\":lt(\"/PageLayout /TwoColumnLeft\");break;case\"tworight\":lt(\"/PageLayout /TwoColumnRight\")}yt&<(\"/PageMode /\"+yt),Tt.publish(\"putCatalog\"),lt(\">>\"),lt(\"endobj\")},Te=y.__private__.putTrailer=function(){lt(\"trailer\"),lt(\"<<\"),lt(\"/Size \"+(et+1)),lt(\"/Root \"+et+\" 0 R\"),lt(\"/Info \"+(et-1)+\" 0 R\"),null!==m&<(\"/Encrypt \"+Ye.oid+\" 0 R\"),lt(\"/ID [ <\"+V+\"> <\"+V+\"> ]\"),lt(\">>\")},Ue=y.__private__.putHeader=function(){lt(\"%PDF-\"+w),lt(\"%ºß¬à\")},ze=y.__private__.putXRef=function(){var t=\"0000000000\";lt(\"xref\"),lt(\"0 \"+(et+1)),lt(\"0000000000 65535 f \");for(var e=1;e<=et;e++){\"function\"==typeof rt[e]?lt((t+rt[e]()).slice(-10)+\" 00000 n \"):void 0!==rt[e]?lt((t+rt[e]).slice(-10)+\" 00000 n \"):lt(\"0000000000 00000 n \")}},He=y.__private__.buildDocument=function(){ut(),ht(nt),Tt.publish(\"buildDocument\"),Ue(),oe(),Se(),xe(),null!==m&&be(),De(),Re();var t=it;return ze(),Te(),lt(\"startxref\"),lt(\"\"+t),lt(\"%%EOF\"),ht(ot[$]),nt.join(\"\\n\")},We=y.__private__.getBlob=function(t){return new Blob([dt(t)],{type:\"application/pdf\"})},Ve=y.output=y.__private__.output=Ie((function(t,e){switch(\"string\"==typeof(e=e||{})?e={filename:e}:e.filename=e.filename||\"generated.pdf\",t){case void 0:return He();case\"save\":y.save(e.filename);break;case\"arraybuffer\":return dt(He());case\"blob\":return We(He());case\"bloburi\":case\"bloburl\":if(void 0!==n.URL&&\"function\"==typeof n.URL.createObjectURL)return n.URL&&n.URL.createObjectURL(We(He()))||void 0;a.warn(\"bloburl is not supported by your system, because URL.createObjectURL is not supported by your browser.\");break;case\"datauristring\":case\"dataurlstring\":var r=\"\",i=He();try{r=h(i)}catch(t){r=h(unescape(encodeURIComponent(i)))}return\"data:application/pdf;filename=\"+e.filename+\";base64,\"+r;case\"pdfobjectnewwindow\":if(\"[object Window]\"===Object.prototype.toString.call(n)){var o=\"https://cdnjs.cloudflare.com/ajax/libs/pdfobject/2.1.1/pdfobject.min.js\",s=' integrity=\"sha512-4ze/a9/4jqu+tX9dfOqJYSvyYd5M6qum/3HpCLr+/Jqf0whc37VUbkpNGHR7/8pSnCFw47T1fmIpwBV7UySh3g==\" crossorigin=\"anonymous\"';e.pdfObjectUrl&&(o=e.pdfObjectUrl,s=\"\");var c='<html><style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;} </style><body><script src=\"'+o+'\"'+s+'><\\/script><script >PDFObject.embed(\"'+this.output(\"dataurlstring\")+'\", '+JSON.stringify(e)+\");<\\/script></body></html>\",u=n.open();return null!==u&&u.document.write(c),u}throw new Error(\"The option pdfobjectnewwindow just works in a browser-environment.\");case\"pdfjsnewwindow\":if(\"[object Window]\"===Object.prototype.toString.call(n)){var l='<html><style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;} </style><body><iframe id=\"pdfViewer\" src=\"'+(e.pdfJsUrl||\"examples/PDF.js/web/viewer.html\")+\"?file=&downloadName=\"+e.filename+'\" width=\"500px\" height=\"400px\" /></body></html>',f=n.open();if(null!==f){f.document.write(l);var d=this;f.document.documentElement.querySelector(\"#pdfViewer\").onload=function(){f.document.title=e.filename,f.document.documentElement.querySelector(\"#pdfViewer\").contentWindow.PDFViewerApplication.open(d.output(\"bloburl\"))}}return f}throw new Error(\"The option pdfjsnewwindow just works in a browser-environment.\");case\"dataurlnewwindow\":if(\"[object Window]\"!==Object.prototype.toString.call(n))throw new Error(\"The option dataurlnewwindow just works in a browser-environment.\");var p='<html><style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;} </style><body><iframe src=\"'+this.output(\"datauristring\",e)+'\"></iframe></body></html>',g=n.open();if(null!==g&&(g.document.write(p),g.document.title=e.filename),g||\"undefined\"==typeof safari)return g;break;case\"datauri\":case\"dataurl\":return n.document.location.href=this.output(\"datauristring\",e);default:return null}})),Ge=function(t){return!0===Array.isArray(Ut)&&Ut.indexOf(t)>-1};switch(o){case\"pt\":_t=1;break;case\"mm\":_t=72/25.4;break;case\"cm\":_t=72/2.54;break;case\"in\":_t=72;break;case\"px\":_t=1==Ge(\"px_scaling\")?.75:96/72;break;case\"pc\":case\"em\":_t=12;break;case\"ex\":_t=6;break;default:if(\"number\"!=typeof o)throw new Error(\"Invalid unit: \"+o);_t=o}var Ye=null;K(),Y();var Je=function(t){return null!==m?Ye.encryptor(t,0):function(t){return t}},Xe=y.__private__.getPageInfo=y.getPageInfo=function(t){if(isNaN(t)||t%1!=0)throw new Error(\"Invalid argument passed to jsPDF.getPageInfo\");return{objId:Rt[t].objId,pageNumber:t,pageContext:Rt[t]}},Ke=y.__private__.getPageInfoByObjId=function(t){if(isNaN(t)||t%1!=0)throw new Error(\"Invalid argument passed to jsPDF.getPageInfoByObjId\");for(var e in Rt)if(Rt[e].objId===t)break;return Xe(e)},Ze=y.__private__.getCurrentPageInfo=y.getCurrentPageInfo=function(){return{objId:Rt[$].objId,pageNumber:$,pageContext:Rt[$]}};y.addPage=function(){return Oe.apply(this,arguments),this},y.setPage=function(){return Me.apply(this,arguments),ht.call(this,ot[$]),this},y.insertPage=function(t){return this.addPage(),this.movePage($,t),this},y.movePage=function(t,e){var r,n;if(t>e){r=ot[t],n=Rt[t];for(var i=t;i>e;i--)ot[i]=ot[i-1],Rt[i]=Rt[i-1];ot[e]=r,Rt[e]=n,this.setPage(e)}else if(t<e){r=ot[t],n=Rt[t];for(var a=t;a<e;a++)ot[a]=ot[a+1],Rt[a]=Rt[a+1];ot[e]=r,Rt[e]=n,this.setPage(e)}return this},y.deletePage=function(){return Be.apply(this,arguments),this},y.__private__.text=y.text=function(e,r,n,i,a){var o,s,c,u,h,l,f,d,p,g=(i=i||{}).scope||this;if(\"number\"==typeof e&&\"number\"==typeof r&&(\"string\"==typeof n||Array.isArray(n))){var m=n;n=r,r=e,e=m}if(arguments[3]instanceof Vt==!1?(c=arguments[4],u=arguments[5],\"object\"===t(f=arguments[3])&&null!==f||(\"string\"==typeof c&&(u=c,c=null),\"string\"==typeof f&&(u=f,f=null),\"number\"==typeof f&&(c=f,f=null),i={flags:f,angle:c,align:u})):(q(\"The transform parameter of text() with a Matrix value\"),p=a),isNaN(r)||isNaN(n)||null==e)throw new Error(\"Invalid arguments passed to jsPDF.text\");if(0===e.length)return g;var v=\"\",y=!1,w=\"number\"==typeof i.lineHeightFactor?i.lineHeightFactor:lr,N=g.internal.scaleFactor;function L(t){return t=t.split(\"\\t\").join(Array(i.TabLen||9).join(\" \")),Ce(t,f)}function A(t){for(var e,r=t.concat(),n=[],i=r.length;i--;)\"string\"==typeof(e=r.shift())?n.push(e):Array.isArray(t)&&(1===e.length||void 0===e[1]&&void 0===e[2])?n.push(e[0]):n.push([e[0],e[1],e[2]]);return n}function _(t,e){var r;if(\"string\"==typeof t)r=e(t)[0];else if(Array.isArray(t)){for(var n,i,a=t.concat(),o=[],s=a.length;s--;)\"string\"==typeof(n=a.shift())?o.push(e(n)[0]):Array.isArray(n)&&\"string\"==typeof n[0]&&(i=e(n[0],n[1],n[2]),o.push([i[0],i[1],i[2]]));r=o}return r}var P=!1,k=!0;if(\"string\"==typeof e)P=!0;else if(Array.isArray(e)){var I=e.concat();s=[];for(var F,C=I.length;C--;)(\"string\"!=typeof(F=I.shift())||Array.isArray(F)&&\"string\"!=typeof F[0])&&(k=!1);P=k}if(!1===P)throw new Error('Type of text must be string or Array. \"'+e+'\" is not recognized.');\"string\"==typeof e&&(e=e.match(/[\\r?\\n]/)?e.split(/\\r\\n|\\r|\\n/g):[e]);var j=gt/g.internal.scaleFactor,B=j*(w-1);switch(i.baseline){case\"bottom\":n-=B;break;case\"top\":n+=j-B;break;case\"hanging\":n+=j-2*B;break;case\"middle\":n+=j/2-B}if((l=i.maxWidth||0)>0&&(\"string\"==typeof e?e=g.splitTextToSize(e,l):\"[object Array]\"===Object.prototype.toString.call(e)&&(e=e.reduce((function(t,e){return t.concat(g.splitTextToSize(e,l))}),[]))),o={text:e,x:r,y:n,options:i,mutex:{pdfEscape:Ce,activeFontKey:St,fonts:Ft,activeFontSize:gt}},Tt.publish(\"preProcessText\",o),e=o.text,c=(i=o.options).angle,p instanceof Vt==!1&&c&&\"number\"==typeof c){c*=Math.PI/180,0===i.rotationDirection&&(c=-c),S===x.ADVANCED&&(c=-c);var M=Math.cos(c),E=Math.sin(c);p=new Vt(M,E,-E,M,0,0)}else c&&c instanceof Vt&&(p=c);S!==x.ADVANCED||p||(p=Yt),void 0!==(h=i.charSpace||_r)&&(v+=O(U(h))+\" Tc\\n\",this.setCharSpace(this.getCharSpace()||0)),void 0!==(d=i.horizontalScale)&&(v+=O(100*d)+\" Tz\\n\");i.lang;var D=-1,R=void 0!==i.renderingMode?i.renderingMode:i.stroke,T=g.internal.getCurrentPageInfo().pageContext;switch(R){case 0:case!1:case\"fill\":D=0;break;case 1:case!0:case\"stroke\":D=1;break;case 2:case\"fillThenStroke\":D=2;break;case 3:case\"invisible\":D=3;break;case 4:case\"fillAndAddForClipping\":D=4;break;case 5:case\"strokeAndAddPathForClipping\":D=5;break;case 6:case\"fillThenStrokeAndAddToPathForClipping\":D=6;break;case 7:case\"addToPathForClipping\":D=7}var z=void 0!==T.usedRenderingMode?T.usedRenderingMode:-1;-1!==D?v+=D+\" Tr\\n\":-1!==z&&(v+=\"0 Tr\\n\"),-1!==D&&(T.usedRenderingMode=D),u=i.align||\"left\";var H,W=gt*w,V=g.internal.pageSize.getWidth(),G=Ft[St];h=i.charSpace||_r,l=i.maxWidth||0,f=Object.assign({autoencode:!0,noBOM:!0},i.flags);var Y=[];if(\"[object Array]\"===Object.prototype.toString.call(e)){var J;s=A(e),\"left\"!==u&&(H=s.map((function(t){return g.getStringUnitWidth(t,{font:G,charSpace:h,fontSize:gt,doKerning:!1})*gt/N})));var X,K=0;if(\"right\"===u){r-=H[0],e=[],C=s.length;for(var Z=0;Z<C;Z++)0===Z?(X=br(r),J=yr(n)):(X=U(K-H[Z]),J=-W),e.push([s[Z],X,J]),K=H[Z]}else if(\"center\"===u){r-=H[0]/2,e=[],C=s.length;for(var $=0;$<C;$++)0===$?(X=br(r),J=yr(n)):(X=U((K-H[$])/2),J=-W),e.push([s[$],X,J]),K=H[$]}else if(\"left\"===u){e=[],C=s.length;for(var Q=0;Q<C;Q++)e.push(s[Q])}else{if(\"justify\"!==u)throw new Error('Unrecognized alignment option, use \"left\", \"center\", \"right\" or \"justify\".');e=[],C=s.length,l=0!==l?l:V;for(var tt=0;tt<C;tt++)J=0===tt?yr(n):-W,X=0===tt?br(r):0,tt<C-1?Y.push(O(U((l-H[tt])/(s[tt].split(\" \").length-1)))):Y.push(0),e.push([s[tt],X,J])}}var et=\"boolean\"==typeof i.R2L?i.R2L:bt;!0===et&&(e=_(e,(function(t,e,r){return[t.split(\"\").reverse().join(\"\"),e,r]}))),o={text:e,x:r,y:n,options:i,mutex:{pdfEscape:Ce,activeFontKey:St,fonts:Ft,activeFontSize:gt}},Tt.publish(\"postProcessText\",o),e=o.text,y=o.mutex.isHex||!1;var rt=Ft[St].encoding;\"WinAnsiEncoding\"!==rt&&\"StandardEncoding\"!==rt||(e=_(e,(function(t,e,r){return[L(t),e,r]}))),s=A(e),e=[];for(var nt,it,at,ot=0,st=1,ct=Array.isArray(s[0])?st:ot,ut=\"\",ht=function(t,e,r){var n=\"\";return r instanceof Vt?(r=\"number\"==typeof i.angle?Gt(r,new Vt(1,0,0,1,t,e)):Gt(new Vt(1,0,0,1,t,e),r),S===x.ADVANCED&&(r=Gt(new Vt(1,0,0,-1,0,0),r)),n=r.join(\" \")+\" Tm\\n\"):n=O(t)+\" \"+O(e)+\" Td\\n\",n},ft=0;ft<s.length;ft++){switch(ut=\"\",ct){case st:at=(y?\"<\":\"(\")+s[ft][0]+(y?\">\":\")\"),nt=parseFloat(s[ft][1]),it=parseFloat(s[ft][2]);break;case ot:at=(y?\"<\":\"(\")+s[ft]+(y?\">\":\")\"),nt=br(r),it=yr(n)}void 0!==Y&&void 0!==Y[ft]&&(ut=Y[ft]+\" Tw\\n\"),0===ft?e.push(ut+ht(nt,it,p)+at):ct===ot?e.push(ut+at):ct===st&&e.push(ut+ht(nt,it,p)+at)}e=ct===ot?e.join(\" Tj\\nT* \"):e.join(\" Tj\\n\"),e+=\" Tj\\n\";var dt=\"BT\\n/\";return dt+=St+\" \"+gt+\" Tf\\n\",dt+=O(gt*w)+\" TL\\n\",dt+=xr+\"\\n\",dt+=v,dt+=e,lt(dt+=\"ET\"),b[St]=!0,g};var $e=y.__private__.clip=y.clip=function(t){return lt(\"evenodd\"===t?\"W*\":\"W\"),this};y.clipEvenOdd=function(){return $e(\"evenodd\")},y.__private__.discardPath=y.discardPath=function(){return lt(\"n\"),this};var Qe=y.__private__.isValidStyle=function(t){var e=!1;return-1!==[void 0,null,\"S\",\"D\",\"F\",\"DF\",\"FD\",\"f\",\"f*\",\"B\",\"B*\",\"n\"].indexOf(t)&&(e=!0),e};y.__private__.setDefaultPathOperation=y.setDefaultPathOperation=function(t){return Qe(t)&&(g=t),this};var tr=y.__private__.getStyle=y.getStyle=function(t){var e=g;switch(t){case\"D\":case\"S\":e=\"S\";break;case\"F\":e=\"f\";break;case\"FD\":case\"DF\":e=\"B\";break;case\"f\":case\"f*\":case\"B\":case\"B*\":e=t}return e},er=y.close=function(){return lt(\"h\"),this};y.stroke=function(){return lt(\"S\"),this},y.fill=function(t){return rr(\"f\",t),this},y.fillEvenOdd=function(t){return rr(\"f*\",t),this},y.fillStroke=function(t){return rr(\"B\",t),this},y.fillStrokeEvenOdd=function(t){return rr(\"B*\",t),this};var rr=function(e,r){\"object\"===t(r)?ar(r,e):lt(e)},nr=function(t){null===t||S===x.ADVANCED&&void 0===t||(t=tr(t),lt(t))};function ir(t,e,r,n,i){var a=new M(e||this.boundingBox,r||this.xStep,n||this.yStep,this.gState,i||this.matrix);a.stream=this.stream;var o=t+\"$$\"+this.cloneIndex+++\"$$\";return Jt(o,a),a}var ar=function(t,e){var r=Bt[t.key],n=Ot[r];if(n instanceof B)lt(\"q\"),lt(or(e)),n.gState&&y.setGState(n.gState),lt(t.matrix.toString()+\" cm\"),lt(\"/\"+r+\" sh\"),lt(\"Q\");else if(n instanceof M){var i=new Vt(1,0,0,-1,0,Rr());t.matrix&&(i=i.multiply(t.matrix||Yt),r=ir.call(n,t.key,t.boundingBox,t.xStep,t.yStep,i).id),lt(\"q\"),lt(\"/Pattern cs\"),lt(\"/\"+r+\" scn\"),n.gState&&y.setGState(n.gState),lt(e),lt(\"Q\")}},or=function(t){switch(t){case\"f\":case\"F\":return\"W n\";case\"f*\":return\"W* n\";case\"B\":return\"W S\";case\"B*\":return\"W* S\";case\"S\":return\"W S\";case\"n\":return\"W n\"}},sr=y.moveTo=function(t,e){return lt(O(U(t))+\" \"+O(H(e))+\" m\"),this},cr=y.lineTo=function(t,e){return lt(O(U(t))+\" \"+O(H(e))+\" l\"),this},ur=y.curveTo=function(t,e,r,n,i,a){return lt([O(U(t)),O(H(e)),O(U(r)),O(H(n)),O(U(i)),O(H(a)),\"c\"].join(\" \")),this};y.__private__.line=y.line=function(t,e,r,n,i){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n)||!Qe(i))throw new Error(\"Invalid arguments passed to jsPDF.line\");return S===x.COMPAT?this.lines([[r-t,n-e]],t,e,[1,1],i||\"S\"):this.lines([[r-t,n-e]],t,e,[1,1]).stroke()},y.__private__.lines=y.lines=function(t,e,r,n,i,a){var o,s,c,u,h,l,f,d,p,g,m,v;if(\"number\"==typeof t&&(v=r,r=e,e=t,t=v),n=n||[1,1],a=a||!1,isNaN(e)||isNaN(r)||!Array.isArray(t)||!Array.isArray(n)||!Qe(i)||\"boolean\"!=typeof a)throw new Error(\"Invalid arguments passed to jsPDF.lines\");for(sr(e,r),o=n[0],s=n[1],u=t.length,g=e,m=r,c=0;c<u;c++)2===(h=t[c]).length?(g=h[0]*o+g,m=h[1]*s+m,cr(g,m)):(l=h[0]*o+g,f=h[1]*s+m,d=h[2]*o+g,p=h[3]*s+m,g=h[4]*o+g,m=h[5]*s+m,ur(l,f,d,p,g,m));return a&&er(),nr(i),this},y.path=function(t){for(var e=0;e<t.length;e++){var r=t[e],n=r.c;switch(r.op){case\"m\":sr(n[0],n[1]);break;case\"l\":cr(n[0],n[1]);break;case\"c\":ur.apply(this,n);break;case\"h\":er()}}return this},y.__private__.rect=y.rect=function(t,e,r,n,i){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n)||!Qe(i))throw new Error(\"Invalid arguments passed to jsPDF.rect\");return S===x.COMPAT&&(n=-n),lt([O(U(t)),O(H(e)),O(U(r)),O(U(n)),\"re\"].join(\" \")),nr(i),this},y.__private__.triangle=y.triangle=function(t,e,r,n,i,a,o){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n)||isNaN(i)||isNaN(a)||!Qe(o))throw new Error(\"Invalid arguments passed to jsPDF.triangle\");return this.lines([[r-t,n-e],[i-r,a-n],[t-i,e-a]],t,e,[1,1],o,!0),this},y.__private__.roundedRect=y.roundedRect=function(t,e,r,n,i,a,o){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n)||isNaN(i)||isNaN(a)||!Qe(o))throw new Error(\"Invalid arguments passed to jsPDF.roundedRect\");var s=4/3*(Math.SQRT2-1);return i=Math.min(i,.5*r),a=Math.min(a,.5*n),this.lines([[r-2*i,0],[i*s,0,i,a-a*s,i,a],[0,n-2*a],[0,a*s,-i*s,a,-i,a],[2*i-r,0],[-i*s,0,-i,-a*s,-i,-a],[0,2*a-n],[0,-a*s,i*s,-a,i,-a]],t+i,e,[1,1],o,!0),this},y.__private__.ellipse=y.ellipse=function(t,e,r,n,i){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n)||!Qe(i))throw new Error(\"Invalid arguments passed to jsPDF.ellipse\");var a=4/3*(Math.SQRT2-1)*r,o=4/3*(Math.SQRT2-1)*n;return sr(t+r,e),ur(t+r,e-o,t+a,e-n,t,e-n),ur(t-a,e-n,t-r,e-o,t-r,e),ur(t-r,e+o,t-a,e+n,t,e+n),ur(t+a,e+n,t+r,e+o,t+r,e),nr(i),this},y.__private__.circle=y.circle=function(t,e,r,n){if(isNaN(t)||isNaN(e)||isNaN(r)||!Qe(n))throw new Error(\"Invalid arguments passed to jsPDF.circle\");return this.ellipse(t,e,r,r,n)},y.setFont=function(t,e,r){return r&&(e=k(e,r)),St=qe(t,e,{disableWarning:!1}),this};var hr=y.__private__.getFont=y.getFont=function(){return Ft[qe.apply(y,arguments)]};y.__private__.getFontList=y.getFontList=function(){var t,e,r={};for(t in Ct)if(Ct.hasOwnProperty(t))for(e in r[t]=[],Ct[t])Ct[t].hasOwnProperty(e)&&r[t].push(e);return r},y.addFont=function(t,e,r,n,i){var a=[\"StandardEncoding\",\"MacRomanEncoding\",\"Identity-H\",\"WinAnsiEncoding\"];return arguments[3]&&-1!==a.indexOf(arguments[3])?i=arguments[3]:arguments[3]&&-1==a.indexOf(arguments[3])&&(r=k(r,n)),i=i||\"Identity-H\",Pe.call(this,t,e,r,i)};var lr,fr=e.lineWidth||.200025,dr=y.__private__.getLineWidth=y.getLineWidth=function(){return fr},pr=y.__private__.setLineWidth=y.setLineWidth=function(t){return fr=t,lt(O(U(t))+\" w\"),this};y.__private__.setLineDash=E.API.setLineDash=E.API.setLineDashPattern=function(t,e){if(t=t||[],e=e||0,isNaN(e)||!Array.isArray(t))throw new Error(\"Invalid arguments passed to jsPDF.setLineDash\");return t=t.map((function(t){return O(U(t))})).join(\" \"),e=O(U(e)),lt(\"[\"+t+\"] \"+e+\" d\"),this};var gr=y.__private__.getLineHeight=y.getLineHeight=function(){return gt*lr};y.__private__.getLineHeight=y.getLineHeight=function(){return gt*lr};var mr=y.__private__.setLineHeightFactor=y.setLineHeightFactor=function(t){return\"number\"==typeof(t=t||1.15)&&(lr=t),this},vr=y.__private__.getLineHeightFactor=y.getLineHeightFactor=function(){return lr};mr(e.lineHeight);var br=y.__private__.getHorizontalCoordinate=function(t){return U(t)},yr=y.__private__.getVerticalCoordinate=function(t){return S===x.ADVANCED?t:Rt[$].mediaBox.topRightY-Rt[$].mediaBox.bottomLeftY-U(t)},wr=y.__private__.getHorizontalCoordinateString=y.getHorizontalCoordinateString=function(t){return O(br(t))},Nr=y.__private__.getVerticalCoordinateString=y.getVerticalCoordinateString=function(t){return O(yr(t))},Lr=e.strokeColor||\"0 G\";y.__private__.getStrokeColor=y.getDrawColor=function(){return ee(Lr)},y.__private__.setStrokeColor=y.setDrawColor=function(t,e,r,n){return Lr=re({ch1:t,ch2:e,ch3:r,ch4:n,pdfColorType:\"draw\",precision:2}),lt(Lr),this};var Ar=e.fillColor||\"0 g\";y.__private__.getFillColor=y.getFillColor=function(){return ee(Ar)},y.__private__.setFillColor=y.setFillColor=function(t,e,r,n){return Ar=re({ch1:t,ch2:e,ch3:r,ch4:n,pdfColorType:\"fill\",precision:2}),lt(Ar),this};var xr=e.textColor||\"0 g\",Sr=y.__private__.getTextColor=y.getTextColor=function(){return ee(xr)};y.__private__.setTextColor=y.setTextColor=function(t,e,r,n){return xr=re({ch1:t,ch2:e,ch3:r,ch4:n,pdfColorType:\"text\",precision:3}),this};var _r=e.charSpace,Pr=y.__private__.getCharSpace=y.getCharSpace=function(){return parseFloat(_r||0)};y.__private__.setCharSpace=y.setCharSpace=function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.setCharSpace\");return _r=t,this};var kr=0;y.CapJoinStyles={0:0,butt:0,but:0,miter:0,1:1,round:1,rounded:1,circle:1,2:2,projecting:2,project:2,square:2,bevel:2},y.__private__.setLineCap=y.setLineCap=function(t){var e=y.CapJoinStyles[t];if(void 0===e)throw new Error(\"Line cap style of '\"+t+\"' is not recognized. See or extend .CapJoinStyles property for valid styles\");return kr=e,lt(e+\" J\"),this};var Ir=0;y.__private__.setLineJoin=y.setLineJoin=function(t){var e=y.CapJoinStyles[t];if(void 0===e)throw new Error(\"Line join style of '\"+t+\"' is not recognized. See or extend .CapJoinStyles property for valid styles\");return Ir=e,lt(e+\" j\"),this},y.__private__.setLineMiterLimit=y.__private__.setMiterLimit=y.setLineMiterLimit=y.setMiterLimit=function(t){if(t=t||0,isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.setLineMiterLimit\");return lt(O(U(t))+\" M\"),this},y.GState=j,y.setGState=function(t){(t=\"string\"==typeof t?Mt[Et[t]]:Fr(null,t)).equals(qt)||(lt(\"/\"+t.id+\" gs\"),qt=t)};var Fr=function(t,e){if(!t||!Et[t]){var r=!1;for(var n in Mt)if(Mt.hasOwnProperty(n)&&Mt[n].equals(e)){r=!0;break}if(r)e=Mt[n];else{var i=\"GS\"+(Object.keys(Mt).length+1).toString(10);Mt[i]=e,e.id=i}return t&&(Et[t]=e.id),Tt.publish(\"addGState\",e),e}};y.addGState=function(t,e){return Fr(t,e),this},y.saveGraphicsState=function(){return lt(\"q\"),jt.push({key:St,size:gt,color:xr}),this},y.restoreGraphicsState=function(){lt(\"Q\");var t=jt.pop();return St=t.key,gt=t.size,xr=t.color,qt=null,this},y.setCurrentTransformationMatrix=function(t){return lt(t.toString()+\" cm\"),this},y.comment=function(t){return lt(\"#\"+t),this};var Cr=function(t,e){var r=t||0;Object.defineProperty(this,\"x\",{enumerable:!0,get:function(){return r},set:function(t){isNaN(t)||(r=parseFloat(t))}});var n=e||0;Object.defineProperty(this,\"y\",{enumerable:!0,get:function(){return n},set:function(t){isNaN(t)||(n=parseFloat(t))}});var i=\"pt\";return Object.defineProperty(this,\"type\",{enumerable:!0,get:function(){return i},set:function(t){i=t.toString()}}),this},jr=function(t,e,r,n){Cr.call(this,t,e),this.type=\"rect\";var i=r||0;Object.defineProperty(this,\"w\",{enumerable:!0,get:function(){return i},set:function(t){isNaN(t)||(i=parseFloat(t))}});var a=n||0;return Object.defineProperty(this,\"h\",{enumerable:!0,get:function(){return a},set:function(t){isNaN(t)||(a=parseFloat(t))}}),this},Or=function(){this.page=Dt,this.currentPage=$,this.pages=ot.slice(0),this.pagesContext=Rt.slice(0),this.x=Pt,this.y=kt,this.matrix=It,this.width=qr($),this.height=Rr($),this.outputDestination=ct,this.id=\"\",this.objectNumber=-1};Or.prototype.restore=function(){Dt=this.page,$=this.currentPage,Rt=this.pagesContext,ot=this.pages,Pt=this.x,kt=this.y,It=this.matrix,Dr($,this.width),Tr($,this.height),ct=this.outputDestination};var Br=function(t,e,r,n,i){Wt.push(new Or),Dt=$=0,ot=[],Pt=t,kt=e,It=i,je([r,n])},Mr=function(t){if(Ht[t])Wt.pop().restore();else{var e=new Or,r=\"Xo\"+(Object.keys(zt).length+1).toString(10);e.id=r,Ht[t]=r,zt[r]=e,Tt.publish(\"addFormObject\",e),Wt.pop().restore()}};for(var Er in y.beginFormObject=function(t,e,r,n,i){return Br(t,e,r,n,i),this},y.endFormObject=function(t){return Mr(t),this},y.doFormObject=function(t,e){var r=zt[Ht[t]];return lt(\"q\"),lt(e.toString()+\" cm\"),lt(\"/\"+r.id+\" Do\"),lt(\"Q\"),this},y.getFormObject=function(t){var e=zt[Ht[t]];return{x:e.x,y:e.y,width:e.width,height:e.height,matrix:e.matrix}},y.save=function(t,e){return t=t||\"generated.pdf\",(e=e||{}).returnPromise=e.returnPromise||!1,!1===e.returnPromise?(l(We(He()),t),\"function\"==typeof l.unload&&n.setTimeout&&setTimeout(l.unload,911),this):new Promise((function(e,r){try{var i=l(We(He()),t);\"function\"==typeof l.unload&&n.setTimeout&&setTimeout(l.unload,911),e(i)}catch(t){r(t.message)}}))},E.API)E.API.hasOwnProperty(Er)&&(\"events\"===Er&&E.API.events.length?function(t,e){var r,n,i;for(i=e.length-1;-1!==i;i--)r=e[i][0],n=e[i][1],t.subscribe.apply(t,[r].concat(\"function\"==typeof n?[n]:n))}(Tt,E.API.events):y[Er]=E.API[Er]);var qr=y.getPageWidth=function(t){return(Rt[t=t||$].mediaBox.topRightX-Rt[t].mediaBox.bottomLeftX)/_t},Dr=y.setPageWidth=function(t,e){Rt[t].mediaBox.topRightX=e*_t+Rt[t].mediaBox.bottomLeftX},Rr=y.getPageHeight=function(t){return(Rt[t=t||$].mediaBox.topRightY-Rt[t].mediaBox.bottomLeftY)/_t},Tr=y.setPageHeight=function(t,e){Rt[t].mediaBox.topRightY=e*_t+Rt[t].mediaBox.bottomLeftY};return y.internal={pdfEscape:Ce,getStyle:tr,getFont:hr,getFontSize:vt,getCharSpace:Pr,getTextColor:Sr,getLineHeight:gr,getLineHeightFactor:vr,getLineWidth:dr,write:ft,getHorizontalCoordinate:br,getVerticalCoordinate:yr,getCoordinateString:wr,getVerticalCoordinateString:Nr,collections:{},newObject:Xt,newAdditionalObject:$t,newObjectDeferred:Kt,newObjectDeferredBegin:Zt,getFilters:ne,putStream:ie,events:Tt,scaleFactor:_t,pageSize:{getWidth:function(){return qr($)},setWidth:function(t){Dr($,t)},getHeight:function(){return Rr($)},setHeight:function(t){Tr($,t)}},encryptionOptions:m,encryption:Ye,getEncryptor:Je,output:Ve,getNumberOfPages:Ee,pages:ot,out:lt,f2:R,f3:T,getPageInfo:Xe,getPageInfoByObjId:Ke,getCurrentPageInfo:Ze,getPDFVersion:N,Point:Cr,Rectangle:jr,Matrix:Vt,hasHotfix:Ge},Object.defineProperty(y.internal.pageSize,\"width\",{get:function(){return qr($)},set:function(t){Dr($,t)},enumerable:!0,configurable:!0}),Object.defineProperty(y.internal.pageSize,\"height\",{get:function(){return Rr($)},set:function(t){Tr($,t)},enumerable:!0,configurable:!0}),ke.call(y,pt),St=\"F1\",Oe(s,i),Tt.publish(\"initialized\"),y}I.prototype.lsbFirstWord=function(t){return String.fromCharCode(t>>0&255,t>>8&255,t>>16&255,t>>24&255)},I.prototype.toHexString=function(t){return t.split(\"\").map((function(t){return(\"0\"+(255&t.charCodeAt(0)).toString(16)).slice(-2)})).join(\"\")},I.prototype.hexToBytes=function(t){for(var e=[],r=0;r<t.length;r+=2)e.push(String.fromCharCode(parseInt(t.substr(r,2),16)));return e.join(\"\")},I.prototype.processOwnerPassword=function(t,e){return P(x(e).substr(0,5),t)},I.prototype.encryptor=function(t,e){var r=x(this.encryptionKey+String.fromCharCode(255&t,t>>8&255,t>>16&255,255&e,e>>8&255)).substr(0,10);return function(t){return P(r,t)}},j.prototype.equals=function(e){var r,n=\"id,objectNumber,equals\";if(!e||t(e)!==t(this))return!1;var i=0;for(r in this)if(!(n.indexOf(r)>=0)){if(this.hasOwnProperty(r)&&!e.hasOwnProperty(r))return!1;if(this[r]!==e[r])return!1;i++}for(r in e)e.hasOwnProperty(r)&&n.indexOf(r)<0&&i--;return 0===i},E.API={events:[]},E.version=\"2.5.1\";var q=E.API,D=1,R=function(t){return t.replace(/\\\\/g,\"\\\\\\\\\").replace(/\\(/g,\"\\\\(\").replace(/\\)/g,\"\\\\)\")},T=function(t){return t.replace(/\\\\\\\\/g,\"\\\\\").replace(/\\\\\\(/g,\"(\").replace(/\\\\\\)/g,\")\")},U=function(t){return t.toFixed(2)},z=function(t){return t.toFixed(5)};q.__acroform__={};var H=function(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t},W=function(t){return t*D},V=function(t){var e=new ut,r=At.internal.getHeight(t)||0,n=At.internal.getWidth(t)||0;return e.BBox=[0,0,Number(U(n)),Number(U(r))],e},G=q.__acroform__.setBit=function(t,e){if(t=t||0,e=e||0,isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.setBit\");return t|=1<<e},Y=q.__acroform__.clearBit=function(t,e){if(t=t||0,e=e||0,isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.clearBit\");return t&=~(1<<e)},J=q.__acroform__.getBit=function(t,e){if(isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.getBit\");return 0==(t&1<<e)?0:1},X=q.__acroform__.getBitForPdf=function(t,e){if(isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.getBitForPdf\");return J(t,e-1)},K=q.__acroform__.setBitForPdf=function(t,e){if(isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.setBitForPdf\");return G(t,e-1)},Z=q.__acroform__.clearBitForPdf=function(t,e){if(isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.clearBitForPdf\");return Y(t,e-1)},$=q.__acroform__.calculateCoordinates=function(t,e){var r=e.internal.getHorizontalCoordinate,n=e.internal.getVerticalCoordinate,i=t[0],a=t[1],o=t[2],s=t[3],c={};return c.lowerLeft_X=r(i)||0,c.lowerLeft_Y=n(a+s)||0,c.upperRight_X=r(i+o)||0,c.upperRight_Y=n(a)||0,[Number(U(c.lowerLeft_X)),Number(U(c.lowerLeft_Y)),Number(U(c.upperRight_X)),Number(U(c.upperRight_Y))]},Q=function(t){if(t.appearanceStreamContent)return t.appearanceStreamContent;if(t.V||t.DV){var e=[],r=t._V||t.DV,n=tt(t,r),i=t.scope.internal.getFont(t.fontName,t.fontStyle).id;e.push(\"/Tx BMC\"),e.push(\"q\"),e.push(\"BT\"),e.push(t.scope.__private__.encodeColorString(t.color)),e.push(\"/\"+i+\" \"+U(n.fontSize)+\" Tf\"),e.push(\"1 0 0 1 0 0 Tm\"),e.push(n.text),e.push(\"ET\"),e.push(\"Q\"),e.push(\"EMC\");var a=V(t);return a.scope=t.scope,a.stream=e.join(\"\\n\"),a}},tt=function(t,e){var r=0===t.fontSize?t.maxFontSize:t.fontSize,n={text:\"\",fontSize:\"\"},i=(e=\")\"==(e=\"(\"==e.substr(0,1)?e.substr(1):e).substr(e.length-1)?e.substr(0,e.length-1):e).split(\" \");i=t.multiline?i.map((function(t){return t.split(\"\\n\")})):i.map((function(t){return[t]}));var a=r,o=At.internal.getHeight(t)||0;o=o<0?-o:o;var s=At.internal.getWidth(t)||0;s=s<0?-s:s;var c=function(e,r,n){if(e+1<i.length){var a=r+\" \"+i[e+1][0];return et(a,t,n).width<=s-4}return!1};a++;t:for(;a>0;){e=\"\",a--;var u,h,l=et(\"3\",t,a).height,f=t.multiline?o-a:(o-l)/2,d=f+=2,p=0,g=0,m=0;if(a<=0){e=\"(...) Tj\\n\",e+=\"% Width of Text: \"+et(e,t,a=12).width+\", FieldWidth:\"+s+\"\\n\";break}for(var v=\"\",b=0,y=0;y<i.length;y++)if(i.hasOwnProperty(y)){var w=!1;if(1!==i[y].length&&m!==i[y].length-1){if((l+2)*(b+2)+2>o)continue t;v+=i[y][m],w=!0,g=y,y--}else{v=\" \"==(v+=i[y][m]+\" \").substr(v.length-1)?v.substr(0,v.length-1):v;var N=parseInt(y),L=c(N,v,a),A=y>=i.length-1;if(L&&!A){v+=\" \",m=0;continue}if(L||A){if(A)g=N;else if(t.multiline&&(l+2)*(b+2)+2>o)continue t}else{if(!t.multiline)continue t;if((l+2)*(b+2)+2>o)continue t;g=N}}for(var x=\"\",S=p;S<=g;S++){var _=i[S];if(t.multiline){if(S===g){x+=_[m]+\" \",m=(m+1)%_.length;continue}if(S===p){x+=_[_.length-1]+\" \";continue}}x+=_[0]+\" \"}switch(x=\" \"==x.substr(x.length-1)?x.substr(0,x.length-1):x,h=et(x,t,a).width,t.textAlign){case\"right\":u=s-h-2;break;case\"center\":u=(s-h)/2;break;case\"left\":default:u=2}e+=U(u)+\" \"+U(d)+\" Td\\n\",e+=\"(\"+R(x)+\") Tj\\n\",e+=-U(u)+\" 0 Td\\n\",d=-(a+2),h=0,p=w?g:g+1,b++,v=\"\"}else;break}return n.text=e,n.fontSize=a,n},et=function(t,e,r){var n=e.scope.internal.getFont(e.fontName,e.fontStyle),i=e.scope.getStringUnitWidth(t,{font:n,fontSize:parseFloat(r),charSpace:0})*parseFloat(r);return{height:e.scope.getStringUnitWidth(\"3\",{font:n,fontSize:parseFloat(r),charSpace:0})*parseFloat(r)*1.5,width:i}},rt={fields:[],xForms:[],acroFormDictionaryRoot:null,printedOut:!1,internal:null,isInitialized:!1},nt=function(t,e){var r={type:\"reference\",object:t};void 0===e.internal.getPageInfo(t.page).pageContext.annotations.find((function(t){return t.type===r.type&&t.object===r.object}))&&e.internal.getPageInfo(t.page).pageContext.annotations.push(r)},it=function(e,r){for(var n in e)if(e.hasOwnProperty(n)){var i=n,a=e[n];r.internal.newObjectDeferredBegin(a.objId,!0),\"object\"===t(a)&&\"function\"==typeof a.putStream&&a.putStream(),delete e[i]}},at=function(e,r){if(r.scope=e,void 0!==e.internal&&(void 0===e.internal.acroformPlugin||!1===e.internal.acroformPlugin.isInitialized)){if(lt.FieldNum=0,e.internal.acroformPlugin=JSON.parse(JSON.stringify(rt)),e.internal.acroformPlugin.acroFormDictionaryRoot)throw new Error(\"Exception while creating AcroformDictionary\");D=e.internal.scaleFactor,e.internal.acroformPlugin.acroFormDictionaryRoot=new ht,e.internal.acroformPlugin.acroFormDictionaryRoot.scope=e,e.internal.acroformPlugin.acroFormDictionaryRoot._eventID=e.internal.events.subscribe(\"postPutResources\",(function(){!function(t){t.internal.events.unsubscribe(t.internal.acroformPlugin.acroFormDictionaryRoot._eventID),delete t.internal.acroformPlugin.acroFormDictionaryRoot._eventID,t.internal.acroformPlugin.printedOut=!0}(e)})),e.internal.events.subscribe(\"buildDocument\",(function(){!function(t){t.internal.acroformPlugin.acroFormDictionaryRoot.objId=void 0;var e=t.internal.acroformPlugin.acroFormDictionaryRoot.Fields;for(var r in e)if(e.hasOwnProperty(r)){var n=e[r];n.objId=void 0,n.hasAnnotation&&nt(n,t)}}(e)})),e.internal.events.subscribe(\"putCatalog\",(function(){!function(t){if(void 0===t.internal.acroformPlugin.acroFormDictionaryRoot)throw new Error(\"putCatalogCallback: Root missing.\");t.internal.write(\"/AcroForm \"+t.internal.acroformPlugin.acroFormDictionaryRoot.objId+\" 0 R\")}(e)})),e.internal.events.subscribe(\"postPutPages\",(function(r){!function(e,r){var n=!e;for(var i in e||(r.internal.newObjectDeferredBegin(r.internal.acroformPlugin.acroFormDictionaryRoot.objId,!0),r.internal.acroformPlugin.acroFormDictionaryRoot.putStream()),e=e||r.internal.acroformPlugin.acroFormDictionaryRoot.Kids)if(e.hasOwnProperty(i)){var a=e[i],o=[],s=a.Rect;if(a.Rect&&(a.Rect=$(a.Rect,r)),r.internal.newObjectDeferredBegin(a.objId,!0),a.DA=At.createDefaultAppearanceStream(a),\"object\"===t(a)&&\"function\"==typeof a.getKeyValueListForStream&&(o=a.getKeyValueListForStream()),a.Rect=s,a.hasAppearanceStream&&!a.appearanceStreamContent){var c=Q(a);o.push({key:\"AP\",value:\"<</N \"+c+\">>\"}),r.internal.acroformPlugin.xForms.push(c)}if(a.appearanceStreamContent){var u=\"\";for(var h in a.appearanceStreamContent)if(a.appearanceStreamContent.hasOwnProperty(h)){var l=a.appearanceStreamContent[h];if(u+=\"/\"+h+\" \",u+=\"<<\",Object.keys(l).length>=1||Array.isArray(l)){for(var i in l)if(l.hasOwnProperty(i)){var f=l[i];\"function\"==typeof f&&(f=f.call(r,a)),u+=\"/\"+i+\" \"+f+\" \",r.internal.acroformPlugin.xForms.indexOf(f)>=0||r.internal.acroformPlugin.xForms.push(f)}}else\"function\"==typeof(f=l)&&(f=f.call(r,a)),u+=\"/\"+i+\" \"+f,r.internal.acroformPlugin.xForms.indexOf(f)>=0||r.internal.acroformPlugin.xForms.push(f);u+=\">>\"}o.push({key:\"AP\",value:\"<<\\n\"+u+\">>\"})}r.internal.putStream({additionalKeyValues:o,objectId:a.objId}),r.internal.out(\"endobj\")}n&&it(r.internal.acroformPlugin.xForms,r)}(r,e)})),e.internal.acroformPlugin.isInitialized=!0}},ot=q.__acroform__.arrayToPdfArray=function(e,r,n){var i=function(t){return t};if(Array.isArray(e)){for(var a=\"[\",o=0;o<e.length;o++)switch(0!==o&&(a+=\" \"),t(e[o])){case\"boolean\":case\"number\":case\"object\":a+=e[o].toString();break;case\"string\":\"/\"!==e[o].substr(0,1)?(void 0!==r&&n&&(i=n.internal.getEncryptor(r)),a+=\"(\"+R(i(e[o].toString()))+\")\"):a+=e[o].toString()}return a+=\"]\"}throw new Error(\"Invalid argument passed to jsPDF.__acroform__.arrayToPdfArray\")};var st=function(t,e,r){var n=function(t){return t};return void 0!==e&&r&&(n=r.internal.getEncryptor(e)),(t=t||\"\").toString(),t=\"(\"+R(n(t))+\")\"},ct=function(){this._objId=void 0,this._scope=void 0,Object.defineProperty(this,\"objId\",{get:function(){if(void 0===this._objId){if(void 0===this.scope)return;this._objId=this.scope.internal.newObjectDeferred()}return this._objId},set:function(t){this._objId=t}}),Object.defineProperty(this,\"scope\",{value:this._scope,writable:!0})};ct.prototype.toString=function(){return this.objId+\" 0 R\"},ct.prototype.putStream=function(){var t=this.getKeyValueListForStream();this.scope.internal.putStream({data:this.stream,additionalKeyValues:t,objectId:this.objId}),this.scope.internal.out(\"endobj\")},ct.prototype.getKeyValueListForStream=function(){var t=[],e=Object.getOwnPropertyNames(this).filter((function(t){return\"content\"!=t&&\"appearanceStreamContent\"!=t&&\"scope\"!=t&&\"objId\"!=t&&\"_\"!=t.substring(0,1)}));for(var r in e)if(!1===Object.getOwnPropertyDescriptor(this,e[r]).configurable){var n=e[r],i=this[n];i&&(Array.isArray(i)?t.push({key:n,value:ot(i,this.objId,this.scope)}):i instanceof ct?(i.scope=this.scope,t.push({key:n,value:i.objId+\" 0 R\"})):\"function\"!=typeof i&&t.push({key:n,value:i}))}return t};var ut=function(){ct.call(this),Object.defineProperty(this,\"Type\",{value:\"/XObject\",configurable:!1,writable:!0}),Object.defineProperty(this,\"Subtype\",{value:\"/Form\",configurable:!1,writable:!0}),Object.defineProperty(this,\"FormType\",{value:1,configurable:!1,writable:!0});var t,e=[];Object.defineProperty(this,\"BBox\",{configurable:!1,get:function(){return e},set:function(t){e=t}}),Object.defineProperty(this,\"Resources\",{value:\"2 0 R\",configurable:!1,writable:!0}),Object.defineProperty(this,\"stream\",{enumerable:!1,configurable:!0,set:function(e){t=e.trim()},get:function(){return t||null}})};H(ut,ct);var ht=function(){ct.call(this);var t,e=[];Object.defineProperty(this,\"Kids\",{enumerable:!1,configurable:!0,get:function(){return e.length>0?e:void 0}}),Object.defineProperty(this,\"Fields\",{enumerable:!1,configurable:!1,get:function(){return e}}),Object.defineProperty(this,\"DA\",{enumerable:!1,configurable:!1,get:function(){if(t){var e=function(t){return t};return this.scope&&(e=this.scope.internal.getEncryptor(this.objId)),\"(\"+R(e(t))+\")\"}},set:function(e){t=e}})};H(ht,ct);var lt=function t(){ct.call(this);var e=4;Object.defineProperty(this,\"F\",{enumerable:!1,configurable:!1,get:function(){return e},set:function(t){if(isNaN(t))throw new Error('Invalid value \"'+t+'\" for attribute F supplied.');e=t}}),Object.defineProperty(this,\"showWhenPrinted\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(e,3))},set:function(t){!0===Boolean(t)?this.F=K(e,3):this.F=Z(e,3)}});var r=0;Object.defineProperty(this,\"Ff\",{enumerable:!1,configurable:!1,get:function(){return r},set:function(t){if(isNaN(t))throw new Error('Invalid value \"'+t+'\" for attribute Ff supplied.');r=t}});var n=[];Object.defineProperty(this,\"Rect\",{enumerable:!1,configurable:!1,get:function(){if(0!==n.length)return n},set:function(t){n=void 0!==t?t:[]}}),Object.defineProperty(this,\"x\",{enumerable:!0,configurable:!0,get:function(){return!n||isNaN(n[0])?0:n[0]},set:function(t){n[0]=t}}),Object.defineProperty(this,\"y\",{enumerable:!0,configurable:!0,get:function(){return!n||isNaN(n[1])?0:n[1]},set:function(t){n[1]=t}}),Object.defineProperty(this,\"width\",{enumerable:!0,configurable:!0,get:function(){return!n||isNaN(n[2])?0:n[2]},set:function(t){n[2]=t}}),Object.defineProperty(this,\"height\",{enumerable:!0,configurable:!0,get:function(){return!n||isNaN(n[3])?0:n[3]},set:function(t){n[3]=t}});var i=\"\";Object.defineProperty(this,\"FT\",{enumerable:!0,configurable:!1,get:function(){return i},set:function(t){switch(t){case\"/Btn\":case\"/Tx\":case\"/Ch\":case\"/Sig\":i=t;break;default:throw new Error('Invalid value \"'+t+'\" for attribute FT supplied.')}}});var a=null;Object.defineProperty(this,\"T\",{enumerable:!0,configurable:!1,get:function(){if(!a||a.length<1){if(this instanceof yt)return;a=\"FieldObject\"+t.FieldNum++}var e=function(t){return t};return this.scope&&(e=this.scope.internal.getEncryptor(this.objId)),\"(\"+R(e(a))+\")\"},set:function(t){a=t.toString()}}),Object.defineProperty(this,\"fieldName\",{configurable:!0,enumerable:!0,get:function(){return a},set:function(t){a=t}});var o=\"helvetica\";Object.defineProperty(this,\"fontName\",{enumerable:!0,configurable:!0,get:function(){return o},set:function(t){o=t}});var s=\"normal\";Object.defineProperty(this,\"fontStyle\",{enumerable:!0,configurable:!0,get:function(){return s},set:function(t){s=t}});var c=0;Object.defineProperty(this,\"fontSize\",{enumerable:!0,configurable:!0,get:function(){return c},set:function(t){c=t}});var u=void 0;Object.defineProperty(this,\"maxFontSize\",{enumerable:!0,configurable:!0,get:function(){return void 0===u?50/D:u},set:function(t){u=t}});var h=\"black\";Object.defineProperty(this,\"color\",{enumerable:!0,configurable:!0,get:function(){return h},set:function(t){h=t}});var l=\"/F1 0 Tf 0 g\";Object.defineProperty(this,\"DA\",{enumerable:!0,configurable:!1,get:function(){if(!(!l||this instanceof yt||this instanceof Nt))return st(l,this.objId,this.scope)},set:function(t){t=t.toString(),l=t}});var f=null;Object.defineProperty(this,\"DV\",{enumerable:!1,configurable:!1,get:function(){if(f)return this instanceof mt==!1?st(f,this.objId,this.scope):f},set:function(t){t=t.toString(),f=this instanceof mt==!1?\"(\"===t.substr(0,1)?T(t.substr(1,t.length-2)):T(t):t}}),Object.defineProperty(this,\"defaultValue\",{enumerable:!0,configurable:!0,get:function(){return this instanceof mt==!0?T(f.substr(1,f.length-1)):f},set:function(t){t=t.toString(),f=this instanceof mt==!0?\"/\"+t:t}});var d=null;Object.defineProperty(this,\"_V\",{enumerable:!1,configurable:!1,get:function(){if(d)return d},set:function(t){this.V=t}}),Object.defineProperty(this,\"V\",{enumerable:!1,configurable:!1,get:function(){if(d)return this instanceof mt==!1?st(d,this.objId,this.scope):d},set:function(t){t=t.toString(),d=this instanceof mt==!1?\"(\"===t.substr(0,1)?T(t.substr(1,t.length-2)):T(t):t}}),Object.defineProperty(this,\"value\",{enumerable:!0,configurable:!0,get:function(){return this instanceof mt==!0?T(d.substr(1,d.length-1)):d},set:function(t){t=t.toString(),d=this instanceof mt==!0?\"/\"+t:t}}),Object.defineProperty(this,\"hasAnnotation\",{enumerable:!0,configurable:!0,get:function(){return this.Rect}}),Object.defineProperty(this,\"Type\",{enumerable:!0,configurable:!1,get:function(){return this.hasAnnotation?\"/Annot\":null}}),Object.defineProperty(this,\"Subtype\",{enumerable:!0,configurable:!1,get:function(){return this.hasAnnotation?\"/Widget\":null}});var p,g=!1;Object.defineProperty(this,\"hasAppearanceStream\",{enumerable:!0,configurable:!0,get:function(){return g},set:function(t){t=Boolean(t),g=t}}),Object.defineProperty(this,\"page\",{enumerable:!0,configurable:!0,get:function(){if(p)return p},set:function(t){p=t}}),Object.defineProperty(this,\"readOnly\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,1))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,1):this.Ff=Z(this.Ff,1)}}),Object.defineProperty(this,\"required\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,2))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,2):this.Ff=Z(this.Ff,2)}}),Object.defineProperty(this,\"noExport\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,3))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,3):this.Ff=Z(this.Ff,3)}});var m=null;Object.defineProperty(this,\"Q\",{enumerable:!0,configurable:!1,get:function(){if(null!==m)return m},set:function(t){if(-1===[0,1,2].indexOf(t))throw new Error('Invalid value \"'+t+'\" for attribute Q supplied.');m=t}}),Object.defineProperty(this,\"textAlign\",{get:function(){var t;switch(m){case 0:default:t=\"left\";break;case 1:t=\"center\";break;case 2:t=\"right\"}return t},configurable:!0,enumerable:!0,set:function(t){switch(t){case\"right\":case 2:m=2;break;case\"center\":case 1:m=1;break;case\"left\":case 0:default:m=0}}})};H(lt,ct);var ft=function(){lt.call(this),this.FT=\"/Ch\",this.V=\"()\",this.fontName=\"zapfdingbats\";var t=0;Object.defineProperty(this,\"TI\",{enumerable:!0,configurable:!1,get:function(){return t},set:function(e){t=e}}),Object.defineProperty(this,\"topIndex\",{enumerable:!0,configurable:!0,get:function(){return t},set:function(e){t=e}});var e=[];Object.defineProperty(this,\"Opt\",{enumerable:!0,configurable:!1,get:function(){return ot(e,this.objId,this.scope)},set:function(t){var r,n;n=[],\"string\"==typeof(r=t)&&(n=function(t,e,r){r||(r=1);for(var n,i=[];n=e.exec(t);)i.push(n[r]);return i}(r,/\\((.*?)\\)/g)),e=n}}),this.getOptions=function(){return e},this.setOptions=function(t){e=t,this.sort&&e.sort()},this.addOption=function(t){t=(t=t||\"\").toString(),e.push(t),this.sort&&e.sort()},this.removeOption=function(t,r){for(r=r||!1,t=(t=t||\"\").toString();-1!==e.indexOf(t)&&(e.splice(e.indexOf(t),1),!1!==r););},Object.defineProperty(this,\"combo\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,18))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,18):this.Ff=Z(this.Ff,18)}}),Object.defineProperty(this,\"edit\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,19))},set:function(t){!0===this.combo&&(!0===Boolean(t)?this.Ff=K(this.Ff,19):this.Ff=Z(this.Ff,19))}}),Object.defineProperty(this,\"sort\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,20))},set:function(t){!0===Boolean(t)?(this.Ff=K(this.Ff,20),e.sort()):this.Ff=Z(this.Ff,20)}}),Object.defineProperty(this,\"multiSelect\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,22))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,22):this.Ff=Z(this.Ff,22)}}),Object.defineProperty(this,\"doNotSpellCheck\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,23))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,23):this.Ff=Z(this.Ff,23)}}),Object.defineProperty(this,\"commitOnSelChange\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,27))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,27):this.Ff=Z(this.Ff,27)}}),this.hasAppearanceStream=!1};H(ft,lt);var dt=function(){ft.call(this),this.fontName=\"helvetica\",this.combo=!1};H(dt,ft);var pt=function(){dt.call(this),this.combo=!0};H(pt,dt);var gt=function(){pt.call(this),this.edit=!0};H(gt,pt);var mt=function(){lt.call(this),this.FT=\"/Btn\",Object.defineProperty(this,\"noToggleToOff\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,15))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,15):this.Ff=Z(this.Ff,15)}}),Object.defineProperty(this,\"radio\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,16))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,16):this.Ff=Z(this.Ff,16)}}),Object.defineProperty(this,\"pushButton\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,17))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,17):this.Ff=Z(this.Ff,17)}}),Object.defineProperty(this,\"radioIsUnison\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,26))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,26):this.Ff=Z(this.Ff,26)}});var e,r={};Object.defineProperty(this,\"MK\",{enumerable:!1,configurable:!1,get:function(){var t=function(t){return t};if(this.scope&&(t=this.scope.internal.getEncryptor(this.objId)),0!==Object.keys(r).length){var e,n=[];for(e in n.push(\"<<\"),r)n.push(\"/\"+e+\" (\"+R(t(r[e]))+\")\");return n.push(\">>\"),n.join(\"\\n\")}},set:function(e){\"object\"===t(e)&&(r=e)}}),Object.defineProperty(this,\"caption\",{enumerable:!0,configurable:!0,get:function(){return r.CA||\"\"},set:function(t){\"string\"==typeof t&&(r.CA=t)}}),Object.defineProperty(this,\"AS\",{enumerable:!1,configurable:!1,get:function(){return e},set:function(t){e=t}}),Object.defineProperty(this,\"appearanceState\",{enumerable:!0,configurable:!0,get:function(){return e.substr(1,e.length-1)},set:function(t){e=\"/\"+t}})};H(mt,lt);var vt=function(){mt.call(this),this.pushButton=!0};H(vt,mt);var bt=function(){mt.call(this),this.radio=!0,this.pushButton=!1;var t=[];Object.defineProperty(this,\"Kids\",{enumerable:!0,configurable:!1,get:function(){return t},set:function(e){t=void 0!==e?e:[]}})};H(bt,mt);var yt=function(){var e,r;lt.call(this),Object.defineProperty(this,\"Parent\",{enumerable:!1,configurable:!1,get:function(){return e},set:function(t){e=t}}),Object.defineProperty(this,\"optionName\",{enumerable:!1,configurable:!0,get:function(){return r},set:function(t){r=t}});var n,i={};Object.defineProperty(this,\"MK\",{enumerable:!1,configurable:!1,get:function(){var t=function(t){return t};this.scope&&(t=this.scope.internal.getEncryptor(this.objId));var e,r=[];for(e in r.push(\"<<\"),i)r.push(\"/\"+e+\" (\"+R(t(i[e]))+\")\");return r.push(\">>\"),r.join(\"\\n\")},set:function(e){\"object\"===t(e)&&(i=e)}}),Object.defineProperty(this,\"caption\",{enumerable:!0,configurable:!0,get:function(){return i.CA||\"\"},set:function(t){\"string\"==typeof t&&(i.CA=t)}}),Object.defineProperty(this,\"AS\",{enumerable:!1,configurable:!1,get:function(){return n},set:function(t){n=t}}),Object.defineProperty(this,\"appearanceState\",{enumerable:!0,configurable:!0,get:function(){return n.substr(1,n.length-1)},set:function(t){n=\"/\"+t}}),this.caption=\"l\",this.appearanceState=\"Off\",this._AppearanceType=At.RadioButton.Circle,this.appearanceStreamContent=this._AppearanceType.createAppearanceStream(this.optionName)};H(yt,lt),bt.prototype.setAppearance=function(t){if(!(\"createAppearanceStream\"in t)||!(\"getCA\"in t))throw new Error(\"Couldn't assign Appearance to RadioButton. Appearance was Invalid!\");for(var e in this.Kids)if(this.Kids.hasOwnProperty(e)){var r=this.Kids[e];r.appearanceStreamContent=t.createAppearanceStream(r.optionName),r.caption=t.getCA()}},bt.prototype.createOption=function(t){var e=new yt;return e.Parent=this,e.optionName=t,this.Kids.push(e),xt.call(this.scope,e),e};var wt=function(){mt.call(this),this.fontName=\"zapfdingbats\",this.caption=\"3\",this.appearanceState=\"On\",this.value=\"On\",this.textAlign=\"center\",this.appearanceStreamContent=At.CheckBox.createAppearanceStream()};H(wt,mt);var Nt=function(){lt.call(this),this.FT=\"/Tx\",Object.defineProperty(this,\"multiline\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,13))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,13):this.Ff=Z(this.Ff,13)}}),Object.defineProperty(this,\"fileSelect\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,21))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,21):this.Ff=Z(this.Ff,21)}}),Object.defineProperty(this,\"doNotSpellCheck\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,23))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,23):this.Ff=Z(this.Ff,23)}}),Object.defineProperty(this,\"doNotScroll\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,24))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,24):this.Ff=Z(this.Ff,24)}}),Object.defineProperty(this,\"comb\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,25))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,25):this.Ff=Z(this.Ff,25)}}),Object.defineProperty(this,\"richText\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,26))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,26):this.Ff=Z(this.Ff,26)}});var t=null;Object.defineProperty(this,\"MaxLen\",{enumerable:!0,configurable:!1,get:function(){return t},set:function(e){t=e}}),Object.defineProperty(this,\"maxLength\",{enumerable:!0,configurable:!0,get:function(){return t},set:function(e){Number.isInteger(e)&&(t=e)}}),Object.defineProperty(this,\"hasAppearanceStream\",{enumerable:!0,configurable:!0,get:function(){return this.V||this.DV}})};H(Nt,lt);var Lt=function(){Nt.call(this),Object.defineProperty(this,\"password\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,14))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,14):this.Ff=Z(this.Ff,14)}}),this.password=!0};H(Lt,Nt);var At={CheckBox:{createAppearanceStream:function(){return{N:{On:At.CheckBox.YesNormal},D:{On:At.CheckBox.YesPushDown,Off:At.CheckBox.OffPushDown}}},YesPushDown:function(t){var e=V(t);e.scope=t.scope;var r=[],n=t.scope.internal.getFont(t.fontName,t.fontStyle).id,i=t.scope.__private__.encodeColorString(t.color),a=tt(t,t.caption);return r.push(\"0.749023 g\"),r.push(\"0 0 \"+U(At.internal.getWidth(t))+\" \"+U(At.internal.getHeight(t))+\" re\"),r.push(\"f\"),r.push(\"BMC\"),r.push(\"q\"),r.push(\"0 0 1 rg\"),r.push(\"/\"+n+\" \"+U(a.fontSize)+\" Tf \"+i),r.push(\"BT\"),r.push(a.text),r.push(\"ET\"),r.push(\"Q\"),r.push(\"EMC\"),e.stream=r.join(\"\\n\"),e},YesNormal:function(t){var e=V(t);e.scope=t.scope;var r=t.scope.internal.getFont(t.fontName,t.fontStyle).id,n=t.scope.__private__.encodeColorString(t.color),i=[],a=At.internal.getHeight(t),o=At.internal.getWidth(t),s=tt(t,t.caption);return i.push(\"1 g\"),i.push(\"0 0 \"+U(o)+\" \"+U(a)+\" re\"),i.push(\"f\"),i.push(\"q\"),i.push(\"0 0 1 rg\"),i.push(\"0 0 \"+U(o-1)+\" \"+U(a-1)+\" re\"),i.push(\"W\"),i.push(\"n\"),i.push(\"0 g\"),i.push(\"BT\"),i.push(\"/\"+r+\" \"+U(s.fontSize)+\" Tf \"+n),i.push(s.text),i.push(\"ET\"),i.push(\"Q\"),e.stream=i.join(\"\\n\"),e},OffPushDown:function(t){var e=V(t);e.scope=t.scope;var r=[];return r.push(\"0.749023 g\"),r.push(\"0 0 \"+U(At.internal.getWidth(t))+\" \"+U(At.internal.getHeight(t))+\" re\"),r.push(\"f\"),e.stream=r.join(\"\\n\"),e}},RadioButton:{Circle:{createAppearanceStream:function(t){var e={D:{Off:At.RadioButton.Circle.OffPushDown},N:{}};return e.N[t]=At.RadioButton.Circle.YesNormal,e.D[t]=At.RadioButton.Circle.YesPushDown,e},getCA:function(){return\"l\"},YesNormal:function(t){var e=V(t);e.scope=t.scope;var r=[],n=At.internal.getWidth(t)<=At.internal.getHeight(t)?At.internal.getWidth(t)/4:At.internal.getHeight(t)/4;n=Number((.9*n).toFixed(5));var i=At.internal.Bezier_C,a=Number((n*i).toFixed(5));return r.push(\"q\"),r.push(\"1 0 0 1 \"+z(At.internal.getWidth(t)/2)+\" \"+z(At.internal.getHeight(t)/2)+\" cm\"),r.push(n+\" 0 m\"),r.push(n+\" \"+a+\" \"+a+\" \"+n+\" 0 \"+n+\" c\"),r.push(\"-\"+a+\" \"+n+\" -\"+n+\" \"+a+\" -\"+n+\" 0 c\"),r.push(\"-\"+n+\" -\"+a+\" -\"+a+\" -\"+n+\" 0 -\"+n+\" c\"),r.push(a+\" -\"+n+\" \"+n+\" -\"+a+\" \"+n+\" 0 c\"),r.push(\"f\"),r.push(\"Q\"),e.stream=r.join(\"\\n\"),e},YesPushDown:function(t){var e=V(t);e.scope=t.scope;var r=[],n=At.internal.getWidth(t)<=At.internal.getHeight(t)?At.internal.getWidth(t)/4:At.internal.getHeight(t)/4;n=Number((.9*n).toFixed(5));var i=Number((2*n).toFixed(5)),a=Number((i*At.internal.Bezier_C).toFixed(5)),o=Number((n*At.internal.Bezier_C).toFixed(5));return r.push(\"0.749023 g\"),r.push(\"q\"),r.push(\"1 0 0 1 \"+z(At.internal.getWidth(t)/2)+\" \"+z(At.internal.getHeight(t)/2)+\" cm\"),r.push(i+\" 0 m\"),r.push(i+\" \"+a+\" \"+a+\" \"+i+\" 0 \"+i+\" c\"),r.push(\"-\"+a+\" \"+i+\" -\"+i+\" \"+a+\" -\"+i+\" 0 c\"),r.push(\"-\"+i+\" -\"+a+\" -\"+a+\" -\"+i+\" 0 -\"+i+\" c\"),r.push(a+\" -\"+i+\" \"+i+\" -\"+a+\" \"+i+\" 0 c\"),r.push(\"f\"),r.push(\"Q\"),r.push(\"0 g\"),r.push(\"q\"),r.push(\"1 0 0 1 \"+z(At.internal.getWidth(t)/2)+\" \"+z(At.internal.getHeight(t)/2)+\" cm\"),r.push(n+\" 0 m\"),r.push(n+\" \"+o+\" \"+o+\" \"+n+\" 0 \"+n+\" c\"),r.push(\"-\"+o+\" \"+n+\" -\"+n+\" \"+o+\" -\"+n+\" 0 c\"),r.push(\"-\"+n+\" -\"+o+\" -\"+o+\" -\"+n+\" 0 -\"+n+\" c\"),r.push(o+\" -\"+n+\" \"+n+\" -\"+o+\" \"+n+\" 0 c\"),r.push(\"f\"),r.push(\"Q\"),e.stream=r.join(\"\\n\"),e},OffPushDown:function(t){var e=V(t);e.scope=t.scope;var r=[],n=At.internal.getWidth(t)<=At.internal.getHeight(t)?At.internal.getWidth(t)/4:At.internal.getHeight(t)/4;n=Number((.9*n).toFixed(5));var i=Number((2*n).toFixed(5)),a=Number((i*At.internal.Bezier_C).toFixed(5));return r.push(\"0.749023 g\"),r.push(\"q\"),r.push(\"1 0 0 1 \"+z(At.internal.getWidth(t)/2)+\" \"+z(At.internal.getHeight(t)/2)+\" cm\"),r.push(i+\" 0 m\"),r.push(i+\" \"+a+\" \"+a+\" \"+i+\" 0 \"+i+\" c\"),r.push(\"-\"+a+\" \"+i+\" -\"+i+\" \"+a+\" -\"+i+\" 0 c\"),r.push(\"-\"+i+\" -\"+a+\" -\"+a+\" -\"+i+\" 0 -\"+i+\" c\"),r.push(a+\" -\"+i+\" \"+i+\" -\"+a+\" \"+i+\" 0 c\"),r.push(\"f\"),r.push(\"Q\"),e.stream=r.join(\"\\n\"),e}},Cross:{createAppearanceStream:function(t){var e={D:{Off:At.RadioButton.Cross.OffPushDown},N:{}};return e.N[t]=At.RadioButton.Cross.YesNormal,e.D[t]=At.RadioButton.Cross.YesPushDown,e},getCA:function(){return\"8\"},YesNormal:function(t){var e=V(t);e.scope=t.scope;var r=[],n=At.internal.calculateCross(t);return r.push(\"q\"),r.push(\"1 1 \"+U(At.internal.getWidth(t)-2)+\" \"+U(At.internal.getHeight(t)-2)+\" re\"),r.push(\"W\"),r.push(\"n\"),r.push(U(n.x1.x)+\" \"+U(n.x1.y)+\" m\"),r.push(U(n.x2.x)+\" \"+U(n.x2.y)+\" l\"),r.push(U(n.x4.x)+\" \"+U(n.x4.y)+\" m\"),r.push(U(n.x3.x)+\" \"+U(n.x3.y)+\" l\"),r.push(\"s\"),r.push(\"Q\"),e.stream=r.join(\"\\n\"),e},YesPushDown:function(t){var e=V(t);e.scope=t.scope;var r=At.internal.calculateCross(t),n=[];return n.push(\"0.749023 g\"),n.push(\"0 0 \"+U(At.internal.getWidth(t))+\" \"+U(At.internal.getHeight(t))+\" re\"),n.push(\"f\"),n.push(\"q\"),n.push(\"1 1 \"+U(At.internal.getWidth(t)-2)+\" \"+U(At.internal.getHeight(t)-2)+\" re\"),n.push(\"W\"),n.push(\"n\"),n.push(U(r.x1.x)+\" \"+U(r.x1.y)+\" m\"),n.push(U(r.x2.x)+\" \"+U(r.x2.y)+\" l\"),n.push(U(r.x4.x)+\" \"+U(r.x4.y)+\" m\"),n.push(U(r.x3.x)+\" \"+U(r.x3.y)+\" l\"),n.push(\"s\"),n.push(\"Q\"),e.stream=n.join(\"\\n\"),e},OffPushDown:function(t){var e=V(t);e.scope=t.scope;var r=[];return r.push(\"0.749023 g\"),r.push(\"0 0 \"+U(At.internal.getWidth(t))+\" \"+U(At.internal.getHeight(t))+\" re\"),r.push(\"f\"),e.stream=r.join(\"\\n\"),e}}},createDefaultAppearanceStream:function(t){var e=t.scope.internal.getFont(t.fontName,t.fontStyle).id,r=t.scope.__private__.encodeColorString(t.color);return\"/\"+e+\" \"+t.fontSize+\" Tf \"+r}};At.internal={Bezier_C:.551915024494,calculateCross:function(t){var e=At.internal.getWidth(t),r=At.internal.getHeight(t),n=Math.min(e,r);return{x1:{x:(e-n)/2,y:(r-n)/2+n},x2:{x:(e-n)/2+n,y:(r-n)/2},x3:{x:(e-n)/2,y:(r-n)/2},x4:{x:(e-n)/2+n,y:(r-n)/2+n}}}},At.internal.getWidth=function(e){var r=0;return\"object\"===t(e)&&(r=W(e.Rect[2])),r},At.internal.getHeight=function(e){var r=0;return\"object\"===t(e)&&(r=W(e.Rect[3])),r};var xt=q.addField=function(t){if(at(this,t),!(t instanceof lt))throw new Error(\"Invalid argument passed to jsPDF.addField.\");var e;return(e=t).scope.internal.acroformPlugin.printedOut&&(e.scope.internal.acroformPlugin.printedOut=!1,e.scope.internal.acroformPlugin.acroFormDictionaryRoot=null),e.scope.internal.acroformPlugin.acroFormDictionaryRoot.Fields.push(e),t.page=t.scope.internal.getCurrentPageInfo().pageNumber,this};q.AcroFormChoiceField=ft,q.AcroFormListBox=dt,q.AcroFormComboBox=pt,q.AcroFormEditBox=gt,q.AcroFormButton=mt,q.AcroFormPushButton=vt,q.AcroFormRadioButton=bt,q.AcroFormCheckBox=wt,q.AcroFormTextField=Nt,q.AcroFormPasswordField=Lt,q.AcroFormAppearance=At,q.AcroForm={ChoiceField:ft,ListBox:dt,ComboBox:pt,EditBox:gt,Button:mt,PushButton:vt,RadioButton:bt,CheckBox:wt,TextField:Nt,PasswordField:Lt,Appearance:At},E.AcroForm={ChoiceField:ft,ListBox:dt,ComboBox:pt,EditBox:gt,Button:mt,PushButton:vt,RadioButton:bt,CheckBox:wt,TextField:Nt,PasswordField:Lt,Appearance:At};var St=E.AcroForm;function _t(t){return t.reduce((function(t,e,r){return t[e]=r,t}),{})}!function(e){e.__addimage__={};var r=\"UNKNOWN\",n={PNG:[[137,80,78,71]],TIFF:[[77,77,0,42],[73,73,42,0]],JPEG:[[255,216,255,224,void 0,void 0,74,70,73,70,0],[255,216,255,225,void 0,void 0,69,120,105,102,0,0],[255,216,255,219],[255,216,255,238]],JPEG2000:[[0,0,0,12,106,80,32,32]],GIF87a:[[71,73,70,56,55,97]],GIF89a:[[71,73,70,56,57,97]],WEBP:[[82,73,70,70,void 0,void 0,void 0,void 0,87,69,66,80]],BMP:[[66,77],[66,65],[67,73],[67,80],[73,67],[80,84]]},i=e.__addimage__.getImageFileTypeByImageData=function(t,e){var i,a,o,s,c,u=r;if(\"RGBA\"===(e=e||r)||void 0!==t.data&&t.data instanceof Uint8ClampedArray&&\"height\"in t&&\"width\"in t)return\"RGBA\";if(x(t))for(c in n)for(o=n[c],i=0;i<o.length;i+=1){for(s=!0,a=0;a<o[i].length;a+=1)if(void 0!==o[i][a]&&o[i][a]!==t[a]){s=!1;break}if(!0===s){u=c;break}}else for(c in n)for(o=n[c],i=0;i<o.length;i+=1){for(s=!0,a=0;a<o[i].length;a+=1)if(void 0!==o[i][a]&&o[i][a]!==t.charCodeAt(a)){s=!1;break}if(!0===s){u=c;break}}return u===r&&e!==r&&(u=e),u},a=function t(e){for(var r=this.internal.write,n=this.internal.putStream,i=(0,this.internal.getFilters)();-1!==i.indexOf(\"FlateEncode\");)i.splice(i.indexOf(\"FlateEncode\"),1);e.objectId=this.internal.newObject();var a=[];if(a.push({key:\"Type\",value:\"/XObject\"}),a.push({key:\"Subtype\",value:\"/Image\"}),a.push({key:\"Width\",value:e.width}),a.push({key:\"Height\",value:e.height}),e.colorSpace===b.INDEXED?a.push({key:\"ColorSpace\",value:\"[/Indexed /DeviceRGB \"+(e.palette.length/3-1)+\" \"+(\"sMask\"in e&&void 0!==e.sMask?e.objectId+2:e.objectId+1)+\" 0 R]\"}):(a.push({key:\"ColorSpace\",value:\"/\"+e.colorSpace}),e.colorSpace===b.DEVICE_CMYK&&a.push({key:\"Decode\",value:\"[1 0 1 0 1 0 1 0]\"})),a.push({key:\"BitsPerComponent\",value:e.bitsPerComponent}),\"decodeParameters\"in e&&void 0!==e.decodeParameters&&a.push({key:\"DecodeParms\",value:\"<<\"+e.decodeParameters+\">>\"}),\"transparency\"in e&&Array.isArray(e.transparency)){for(var o=\"\",s=0,c=e.transparency.length;s<c;s++)o+=e.transparency[s]+\" \"+e.transparency[s]+\" \";a.push({key:\"Mask\",value:\"[\"+o+\"]\"})}void 0!==e.sMask&&a.push({key:\"SMask\",value:e.objectId+1+\" 0 R\"});var u=void 0!==e.filter?[\"/\"+e.filter]:void 0;if(n({data:e.data,additionalKeyValues:a,alreadyAppliedFilters:u,objectId:e.objectId}),r(\"endobj\"),\"sMask\"in e&&void 0!==e.sMask){var h=\"/Predictor \"+e.predictor+\" /Colors 1 /BitsPerComponent \"+e.bitsPerComponent+\" /Columns \"+e.width,l={width:e.width,height:e.height,colorSpace:\"DeviceGray\",bitsPerComponent:e.bitsPerComponent,decodeParameters:h,data:e.sMask};\"filter\"in e&&(l.filter=e.filter),t.call(this,l)}if(e.colorSpace===b.INDEXED){var f=this.internal.newObject();n({data:_(new Uint8Array(e.palette)),objectId:f}),r(\"endobj\")}},o=function(){var t=this.internal.collections.addImage_images;for(var e in t)a.call(this,t[e])},s=function(){var t,e=this.internal.collections.addImage_images,r=this.internal.write;for(var n in e)r(\"/I\"+(t=e[n]).index,t.objectId,\"0\",\"R\")},c=function(){this.internal.collections.addImage_images||(this.internal.collections.addImage_images={},this.internal.events.subscribe(\"putResources\",o),this.internal.events.subscribe(\"putXobjectDict\",s))},h=function(){var t=this.internal.collections.addImage_images;return c.call(this),t},l=function(){return Object.keys(this.internal.collections.addImage_images).length},f=function(t){return\"function\"==typeof e[\"process\"+t.toUpperCase()]},d=function(e){return\"object\"===t(e)&&1===e.nodeType},p=function(t,r){if(\"IMG\"===t.nodeName&&t.hasAttribute(\"src\")){var n=\"\"+t.getAttribute(\"src\");if(0===n.indexOf(\"data:image/\"))return u(unescape(n).split(\"base64,\").pop());var i=e.loadFile(n,!0);if(void 0!==i)return i}if(\"CANVAS\"===t.nodeName){if(0===t.width||0===t.height)throw new Error(\"Given canvas must have data. Canvas width: \"+t.width+\", height: \"+t.height);var a;switch(r){case\"PNG\":a=\"image/png\";break;case\"WEBP\":a=\"image/webp\";break;case\"JPEG\":case\"JPG\":default:a=\"image/jpeg\"}return u(t.toDataURL(a,1).split(\"base64,\").pop())}},g=function(t){var e=this.internal.collections.addImage_images;if(e)for(var r in e)if(t===e[r].alias)return e[r]},m=function(t,e,r){return t||e||(t=-96,e=-96),t<0&&(t=-1*r.width*72/t/this.internal.scaleFactor),e<0&&(e=-1*r.height*72/e/this.internal.scaleFactor),0===t&&(t=e*r.width/r.height),0===e&&(e=t*r.height/r.width),[t,e]},v=function(t,e,r,n,i,a){var o=m.call(this,r,n,i),s=this.internal.getCoordinateString,c=this.internal.getVerticalCoordinateString,u=h.call(this);if(r=o[0],n=o[1],u[i.index]=i,a){a*=Math.PI/180;var l=Math.cos(a),f=Math.sin(a),d=function(t){return t.toFixed(4)},p=[d(l),d(f),d(-1*f),d(l),0,0,\"cm\"]}this.internal.write(\"q\"),a?(this.internal.write([1,\"0\",\"0\",1,s(t),c(e+n),\"cm\"].join(\" \")),this.internal.write(p.join(\" \")),this.internal.write([s(r),\"0\",\"0\",s(n),\"0\",\"0\",\"cm\"].join(\" \"))):this.internal.write([s(r),\"0\",\"0\",s(n),s(t),c(e+n),\"cm\"].join(\" \")),this.isAdvancedAPI()&&this.internal.write([1,0,0,-1,0,0,\"cm\"].join(\" \")),this.internal.write(\"/I\"+i.index+\" Do\"),this.internal.write(\"Q\")},b=e.color_spaces={DEVICE_RGB:\"DeviceRGB\",DEVICE_GRAY:\"DeviceGray\",DEVICE_CMYK:\"DeviceCMYK\",CAL_GREY:\"CalGray\",CAL_RGB:\"CalRGB\",LAB:\"Lab\",ICC_BASED:\"ICCBased\",INDEXED:\"Indexed\",PATTERN:\"Pattern\",SEPARATION:\"Separation\",DEVICE_N:\"DeviceN\"};e.decode={DCT_DECODE:\"DCTDecode\",FLATE_DECODE:\"FlateDecode\",LZW_DECODE:\"LZWDecode\",JPX_DECODE:\"JPXDecode\",JBIG2_DECODE:\"JBIG2Decode\",ASCII85_DECODE:\"ASCII85Decode\",ASCII_HEX_DECODE:\"ASCIIHexDecode\",RUN_LENGTH_DECODE:\"RunLengthDecode\",CCITT_FAX_DECODE:\"CCITTFaxDecode\"};var y=e.image_compression={NONE:\"NONE\",FAST:\"FAST\",MEDIUM:\"MEDIUM\",SLOW:\"SLOW\"},w=e.__addimage__.sHashCode=function(t){var e,r,n=0;if(\"string\"==typeof t)for(r=t.length,e=0;e<r;e++)n=(n<<5)-n+t.charCodeAt(e),n|=0;else if(x(t))for(r=t.byteLength/2,e=0;e<r;e++)n=(n<<5)-n+t[e],n|=0;return n},N=e.__addimage__.validateStringAsBase64=function(t){(t=t||\"\").toString().trim();var e=!0;return 0===t.length&&(e=!1),t.length%4!=0&&(e=!1),!1===/^[A-Za-z0-9+/]+$/.test(t.substr(0,t.length-2))&&(e=!1),!1===/^[A-Za-z0-9/][A-Za-z0-9+/]|[A-Za-z0-9+/]=|==$/.test(t.substr(-2))&&(e=!1),e},L=e.__addimage__.extractImageFromDataUrl=function(t){var e=(t=t||\"\").split(\"base64,\"),r=null;if(2===e.length){var n=/^data:(\\w*\\/\\w*);*(charset=(?!charset=)[\\w=-]*)*;*$/.exec(e[0]);Array.isArray(n)&&(r={mimeType:n[1],charset:n[2],data:e[1]})}return r},A=e.__addimage__.supportsArrayBuffer=function(){return\"undefined\"!=typeof ArrayBuffer&&\"undefined\"!=typeof Uint8Array};e.__addimage__.isArrayBuffer=function(t){return A()&&t instanceof ArrayBuffer};var x=e.__addimage__.isArrayBufferView=function(t){return A()&&\"undefined\"!=typeof Uint32Array&&(t instanceof Int8Array||t instanceof Uint8Array||\"undefined\"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)},S=e.__addimage__.binaryStringToUint8Array=function(t){for(var e=t.length,r=new Uint8Array(e),n=0;n<e;n++)r[n]=t.charCodeAt(n);return r},_=e.__addimage__.arrayBufferToBinaryString=function(t){for(var e=\"\",r=x(t)?t:new Uint8Array(t),n=0;n<r.length;n+=8192)e+=String.fromCharCode.apply(null,r.subarray(n,n+8192));return e};e.addImage=function(){var e,n,i,a,o,s,u,h,l;if(\"number\"==typeof arguments[1]?(n=r,i=arguments[1],a=arguments[2],o=arguments[3],s=arguments[4],u=arguments[5],h=arguments[6],l=arguments[7]):(n=arguments[1],i=arguments[2],a=arguments[3],o=arguments[4],s=arguments[5],u=arguments[6],h=arguments[7],l=arguments[8]),\"object\"===t(e=arguments[0])&&!d(e)&&\"imageData\"in e){var f=e;e=f.imageData,n=f.format||n||r,i=f.x||i||0,a=f.y||a||0,o=f.w||f.width||o,s=f.h||f.height||s,u=f.alias||u,h=f.compression||h,l=f.rotation||f.angle||l}var p=this.internal.getFilters();if(void 0===h&&-1!==p.indexOf(\"FlateEncode\")&&(h=\"SLOW\"),isNaN(i)||isNaN(a))throw new Error(\"Invalid coordinates passed to jsPDF.addImage\");c.call(this);var g=P.call(this,e,n,u,h);return v.call(this,i,a,o,s,g,l),this};var P=function(t,n,a,o){var s,c,u;if(\"string\"==typeof t&&i(t)===r){t=unescape(t);var h=k(t,!1);(\"\"!==h||void 0!==(h=e.loadFile(t,!0)))&&(t=h)}if(d(t)&&(t=p(t,n)),n=i(t,n),!f(n))throw new Error(\"addImage does not support files of type '\"+n+\"', please ensure that a plugin for '\"+n+\"' support is added.\");if((null==(u=a)||0===u.length)&&(a=function(t){return\"string\"==typeof t||x(t)?w(t):x(t.data)?w(t.data):null}(t)),(s=g.call(this,a))||(A()&&(t instanceof Uint8Array||\"RGBA\"===n||(c=t,t=S(t))),s=this[\"process\"+n.toUpperCase()](t,l.call(this),a,function(t){return t&&\"string\"==typeof t&&(t=t.toUpperCase()),t in e.image_compression?t:y.NONE}(o),c)),!s)throw new Error(\"An unknown error occurred whilst processing the image.\");return s},k=e.__addimage__.convertBase64ToBinaryString=function(t,e){var r;e=\"boolean\"!=typeof e||e;var n,i=\"\";if(\"string\"==typeof t){n=null!==(r=L(t))?r.data:t;try{i=u(n)}catch(t){if(e)throw N(n)?new Error(\"atob-Error in jsPDF.convertBase64ToBinaryString \"+t.message):new Error(\"Supplied Data is not a valid base64-String jsPDF.convertBase64ToBinaryString \")}}return i};e.getImageProperties=function(t){var n,a,o=\"\";if(d(t)&&(t=p(t)),\"string\"==typeof t&&i(t)===r&&(\"\"===(o=k(t,!1))&&(o=e.loadFile(t)||\"\"),t=o),a=i(t),!f(a))throw new Error(\"addImage does not support files of type '\"+a+\"', please ensure that a plugin for '\"+a+\"' support is added.\");if(!A()||t instanceof Uint8Array||(t=S(t)),!(n=this[\"process\"+a.toUpperCase()](t)))throw new Error(\"An unknown error occurred whilst processing the image\");return n.fileType=a,n}}(E.API),\n/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var e=function(t){if(void 0!==t&&\"\"!=t)return!0};E.API.events.push([\"addPage\",function(t){this.internal.getPageInfo(t.pageNumber).pageContext.annotations=[]}]),t.events.push([\"putPage\",function(t){for(var r,n,i,a=this.internal.getCoordinateString,o=this.internal.getVerticalCoordinateString,s=this.internal.getPageInfoByObjId(t.objId),c=t.pageContext.annotations,u=!1,h=0;h<c.length&&!u;h++)switch((r=c[h]).type){case\"link\":(e(r.options.url)||e(r.options.pageNumber))&&(u=!0);break;case\"reference\":case\"text\":case\"freetext\":u=!0}if(0!=u){this.internal.write(\"/Annots [\");for(var l=0;l<c.length;l++){r=c[l];var f=this.internal.pdfEscape,d=this.internal.getEncryptor(t.objId);switch(r.type){case\"reference\":this.internal.write(\" \"+r.object.objId+\" 0 R \");break;case\"text\":var p=this.internal.newAdditionalObject(),g=this.internal.newAdditionalObject(),m=this.internal.getEncryptor(p.objId),v=r.title||\"Note\";i=\"<</Type /Annot /Subtype /Text \"+(n=\"/Rect [\"+a(r.bounds.x)+\" \"+o(r.bounds.y+r.bounds.h)+\" \"+a(r.bounds.x+r.bounds.w)+\" \"+o(r.bounds.y)+\"] \")+\"/Contents (\"+f(m(r.contents))+\")\",i+=\" /Popup \"+g.objId+\" 0 R\",i+=\" /P \"+s.objId+\" 0 R\",i+=\" /T (\"+f(m(v))+\") >>\",p.content=i;var b=p.objId+\" 0 R\";i=\"<</Type /Annot /Subtype /Popup \"+(n=\"/Rect [\"+a(r.bounds.x+30)+\" \"+o(r.bounds.y+r.bounds.h)+\" \"+a(r.bounds.x+r.bounds.w+30)+\" \"+o(r.bounds.y)+\"] \")+\" /Parent \"+b,r.open&&(i+=\" /Open true\"),i+=\" >>\",g.content=i,this.internal.write(p.objId,\"0 R\",g.objId,\"0 R\");break;case\"freetext\":n=\"/Rect [\"+a(r.bounds.x)+\" \"+o(r.bounds.y)+\" \"+a(r.bounds.x+r.bounds.w)+\" \"+o(r.bounds.y+r.bounds.h)+\"] \";var y=r.color||\"#000000\";i=\"<</Type /Annot /Subtype /FreeText \"+n+\"/Contents (\"+f(d(r.contents))+\")\",i+=\" /DS(font: Helvetica,sans-serif 12.0pt; text-align:left; color:#\"+y+\")\",i+=\" /Border [0 0 0]\",i+=\" >>\",this.internal.write(i);break;case\"link\":if(r.options.name){var w=this.annotations._nameMap[r.options.name];r.options.pageNumber=w.page,r.options.top=w.y}else r.options.top||(r.options.top=0);if(n=\"/Rect [\"+r.finalBounds.x+\" \"+r.finalBounds.y+\" \"+r.finalBounds.w+\" \"+r.finalBounds.h+\"] \",i=\"\",r.options.url)i=\"<</Type /Annot /Subtype /Link \"+n+\"/Border [0 0 0] /A <</S /URI /URI (\"+f(d(r.options.url))+\") >>\";else if(r.options.pageNumber){switch(i=\"<</Type /Annot /Subtype /Link \"+n+\"/Border [0 0 0] /Dest [\"+this.internal.getPageInfo(r.options.pageNumber).objId+\" 0 R\",r.options.magFactor=r.options.magFactor||\"XYZ\",r.options.magFactor){case\"Fit\":i+=\" /Fit]\";break;case\"FitH\":i+=\" /FitH \"+r.options.top+\"]\";break;case\"FitV\":r.options.left=r.options.left||0,i+=\" /FitV \"+r.options.left+\"]\";break;case\"XYZ\":default:var N=o(r.options.top);r.options.left=r.options.left||0,void 0===r.options.zoom&&(r.options.zoom=0),i+=\" /XYZ \"+r.options.left+\" \"+N+\" \"+r.options.zoom+\"]\"}}\"\"!=i&&(i+=\" >>\",this.internal.write(i))}}this.internal.write(\"]\")}}]),t.createAnnotation=function(t){var e=this.internal.getCurrentPageInfo();switch(t.type){case\"link\":this.link(t.bounds.x,t.bounds.y,t.bounds.w,t.bounds.h,t);break;case\"text\":case\"freetext\":e.pageContext.annotations.push(t)}},t.link=function(t,e,r,n,i){var a=this.internal.getCurrentPageInfo(),o=this.internal.getCoordinateString,s=this.internal.getVerticalCoordinateString;a.pageContext.annotations.push({finalBounds:{x:o(t),y:s(e),w:o(t+r),h:s(e+n)},options:i,type:\"link\"})},t.textWithLink=function(t,e,r,n){var i,a,o=this.getTextWidth(t),s=this.internal.getLineHeight()/this.internal.scaleFactor;if(void 0!==n.maxWidth){a=n.maxWidth;var c=this.splitTextToSize(t,a).length;i=Math.ceil(s*c)}else a=o,i=s;return this.text(t,e,r,n),r+=.2*s,\"center\"===n.align&&(e-=o/2),\"right\"===n.align&&(e-=o),this.link(e,r-s,a,i,n),o},t.getTextWidth=function(t){var e=this.internal.getFontSize();return this.getStringUnitWidth(t)*e/this.internal.scaleFactor}}(E.API),\n/**\n * @license\n * Copyright (c) 2017 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var e={1569:[65152],1570:[65153,65154],1571:[65155,65156],1572:[65157,65158],1573:[65159,65160],1574:[65161,65162,65163,65164],1575:[65165,65166],1576:[65167,65168,65169,65170],1577:[65171,65172],1578:[65173,65174,65175,65176],1579:[65177,65178,65179,65180],1580:[65181,65182,65183,65184],1581:[65185,65186,65187,65188],1582:[65189,65190,65191,65192],1583:[65193,65194],1584:[65195,65196],1585:[65197,65198],1586:[65199,65200],1587:[65201,65202,65203,65204],1588:[65205,65206,65207,65208],1589:[65209,65210,65211,65212],1590:[65213,65214,65215,65216],1591:[65217,65218,65219,65220],1592:[65221,65222,65223,65224],1593:[65225,65226,65227,65228],1594:[65229,65230,65231,65232],1601:[65233,65234,65235,65236],1602:[65237,65238,65239,65240],1603:[65241,65242,65243,65244],1604:[65245,65246,65247,65248],1605:[65249,65250,65251,65252],1606:[65253,65254,65255,65256],1607:[65257,65258,65259,65260],1608:[65261,65262],1609:[65263,65264,64488,64489],1610:[65265,65266,65267,65268],1649:[64336,64337],1655:[64477],1657:[64358,64359,64360,64361],1658:[64350,64351,64352,64353],1659:[64338,64339,64340,64341],1662:[64342,64343,64344,64345],1663:[64354,64355,64356,64357],1664:[64346,64347,64348,64349],1667:[64374,64375,64376,64377],1668:[64370,64371,64372,64373],1670:[64378,64379,64380,64381],1671:[64382,64383,64384,64385],1672:[64392,64393],1676:[64388,64389],1677:[64386,64387],1678:[64390,64391],1681:[64396,64397],1688:[64394,64395],1700:[64362,64363,64364,64365],1702:[64366,64367,64368,64369],1705:[64398,64399,64400,64401],1709:[64467,64468,64469,64470],1711:[64402,64403,64404,64405],1713:[64410,64411,64412,64413],1715:[64406,64407,64408,64409],1722:[64414,64415],1723:[64416,64417,64418,64419],1726:[64426,64427,64428,64429],1728:[64420,64421],1729:[64422,64423,64424,64425],1733:[64480,64481],1734:[64473,64474],1735:[64471,64472],1736:[64475,64476],1737:[64482,64483],1739:[64478,64479],1740:[64508,64509,64510,64511],1744:[64484,64485,64486,64487],1746:[64430,64431],1747:[64432,64433]},r={65247:{65154:65269,65156:65271,65160:65273,65166:65275},65248:{65154:65270,65156:65272,65160:65274,65166:65276},65165:{65247:{65248:{65258:65010}}},1617:{1612:64606,1613:64607,1614:64608,1615:64609,1616:64610}},n={1612:64606,1613:64607,1614:64608,1615:64609,1616:64610},i=[1570,1571,1573,1575];t.__arabicParser__={};var a=t.__arabicParser__.isInArabicSubstitutionA=function(t){return void 0!==e[t.charCodeAt(0)]},o=t.__arabicParser__.isArabicLetter=function(t){return\"string\"==typeof t&&/^[\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\uFB50-\\uFDFF\\uFE70-\\uFEFF]+$/.test(t)},s=t.__arabicParser__.isArabicEndLetter=function(t){return o(t)&&a(t)&&e[t.charCodeAt(0)].length<=2},c=t.__arabicParser__.isArabicAlfLetter=function(t){return o(t)&&i.indexOf(t.charCodeAt(0))>=0};t.__arabicParser__.arabicLetterHasIsolatedForm=function(t){return o(t)&&a(t)&&e[t.charCodeAt(0)].length>=1};var u=t.__arabicParser__.arabicLetterHasFinalForm=function(t){return o(t)&&a(t)&&e[t.charCodeAt(0)].length>=2};t.__arabicParser__.arabicLetterHasInitialForm=function(t){return o(t)&&a(t)&&e[t.charCodeAt(0)].length>=3};var h=t.__arabicParser__.arabicLetterHasMedialForm=function(t){return o(t)&&a(t)&&4==e[t.charCodeAt(0)].length},l=t.__arabicParser__.resolveLigatures=function(t){var e=0,n=r,i=\"\",a=0;for(e=0;e<t.length;e+=1)void 0!==n[t.charCodeAt(e)]?(a++,\"number\"==typeof(n=n[t.charCodeAt(e)])&&(i+=String.fromCharCode(n),n=r,a=0),e===t.length-1&&(n=r,i+=t.charAt(e-(a-1)),e-=a-1,a=0)):(n=r,i+=t.charAt(e-a),e-=a,a=0);return i};t.__arabicParser__.isArabicDiacritic=function(t){return void 0!==t&&void 0!==n[t.charCodeAt(0)]};var f=t.__arabicParser__.getCorrectForm=function(t,e,r){return o(t)?!1===a(t)?-1:!u(t)||!o(e)&&!o(r)||!o(r)&&s(e)||s(t)&&!o(e)||s(t)&&c(e)||s(t)&&s(e)?0:h(t)&&o(e)&&!s(e)&&o(r)&&u(r)?3:s(t)||!o(r)?1:2:-1},d=function(t){var r=0,n=0,i=0,a=\"\",s=\"\",c=\"\",u=(t=t||\"\").split(\"\\\\s+\"),h=[];for(r=0;r<u.length;r+=1){for(h.push(\"\"),n=0;n<u[r].length;n+=1)a=u[r][n],s=u[r][n-1],c=u[r][n+1],o(a)?(i=f(a,s,c),h[r]+=-1!==i?String.fromCharCode(e[a.charCodeAt(0)][i]):a):h[r]+=a;h[r]=l(h[r])}return h.join(\" \")},p=t.__arabicParser__.processArabic=t.processArabic=function(){var t,e=\"string\"==typeof arguments[0]?arguments[0]:arguments[0].text,r=[];if(Array.isArray(e)){var n=0;for(r=[],n=0;n<e.length;n+=1)Array.isArray(e[n])?r.push([d(e[n][0]),e[n][1],e[n][2]]):r.push([d(e[n])]);t=r}else t=d(e);return\"string\"==typeof arguments[0]?t:(arguments[0].text=t,arguments[0])};t.events.push([\"preProcessText\",p])}(E.API),E.API.autoPrint=function(t){var e;switch((t=t||{}).variant=t.variant||\"non-conform\",t.variant){case\"javascript\":this.addJS(\"print({});\");break;case\"non-conform\":default:this.internal.events.subscribe(\"postPutResources\",(function(){e=this.internal.newObject(),this.internal.out(\"<<\"),this.internal.out(\"/S /Named\"),this.internal.out(\"/Type /Action\"),this.internal.out(\"/N /Print\"),this.internal.out(\">>\"),this.internal.out(\"endobj\")})),this.internal.events.subscribe(\"putCatalog\",(function(){this.internal.out(\"/OpenAction \"+e+\" 0 R\")}))}return this},\n/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var e=function(){var t=void 0;Object.defineProperty(this,\"pdf\",{get:function(){return t},set:function(e){t=e}});var e=150;Object.defineProperty(this,\"width\",{get:function(){return e},set:function(t){e=isNaN(t)||!1===Number.isInteger(t)||t<0?150:t,this.getContext(\"2d\").pageWrapXEnabled&&(this.getContext(\"2d\").pageWrapX=e+1)}});var r=300;Object.defineProperty(this,\"height\",{get:function(){return r},set:function(t){r=isNaN(t)||!1===Number.isInteger(t)||t<0?300:t,this.getContext(\"2d\").pageWrapYEnabled&&(this.getContext(\"2d\").pageWrapY=r+1)}});var n=[];Object.defineProperty(this,\"childNodes\",{get:function(){return n},set:function(t){n=t}});var i={};Object.defineProperty(this,\"style\",{get:function(){return i},set:function(t){i=t}}),Object.defineProperty(this,\"parentNode\",{})};e.prototype.getContext=function(t,e){var r;if(\"2d\"!==(t=t||\"2d\"))return null;for(r in e)this.pdf.context2d.hasOwnProperty(r)&&(this.pdf.context2d[r]=e[r]);return this.pdf.context2d._canvas=this,this.pdf.context2d},e.prototype.toDataURL=function(){throw new Error(\"toDataURL is not implemented.\")},t.events.push([\"initialized\",function(){this.canvas=new e,this.canvas.pdf=this}])}(E.API),function(e){var r={left:0,top:0,bottom:0,right:0},n=!1,i=function(){void 0===this.internal.__cell__&&(this.internal.__cell__={},this.internal.__cell__.padding=3,this.internal.__cell__.headerFunction=void 0,this.internal.__cell__.margins=Object.assign({},r),this.internal.__cell__.margins.width=this.getPageWidth(),a.call(this))},a=function(){this.internal.__cell__.lastCell=new o,this.internal.__cell__.pages=1},o=function(){var t=arguments[0];Object.defineProperty(this,\"x\",{enumerable:!0,get:function(){return t},set:function(e){t=e}});var e=arguments[1];Object.defineProperty(this,\"y\",{enumerable:!0,get:function(){return e},set:function(t){e=t}});var r=arguments[2];Object.defineProperty(this,\"width\",{enumerable:!0,get:function(){return r},set:function(t){r=t}});var n=arguments[3];Object.defineProperty(this,\"height\",{enumerable:!0,get:function(){return n},set:function(t){n=t}});var i=arguments[4];Object.defineProperty(this,\"text\",{enumerable:!0,get:function(){return i},set:function(t){i=t}});var a=arguments[5];Object.defineProperty(this,\"lineNumber\",{enumerable:!0,get:function(){return a},set:function(t){a=t}});var o=arguments[6];return Object.defineProperty(this,\"align\",{enumerable:!0,get:function(){return o},set:function(t){o=t}}),this};o.prototype.clone=function(){return new o(this.x,this.y,this.width,this.height,this.text,this.lineNumber,this.align)},o.prototype.toArray=function(){return[this.x,this.y,this.width,this.height,this.text,this.lineNumber,this.align]},e.setHeaderFunction=function(t){return i.call(this),this.internal.__cell__.headerFunction=\"function\"==typeof t?t:void 0,this},e.getTextDimensions=function(t,e){i.call(this);var r=(e=e||{}).fontSize||this.getFontSize(),n=e.font||this.getFont(),a=e.scaleFactor||this.internal.scaleFactor,o=0,s=0,c=0,u=this;if(!Array.isArray(t)&&\"string\"!=typeof t){if(\"number\"!=typeof t)throw new Error(\"getTextDimensions expects text-parameter to be of type String or type Number or an Array of Strings.\");t=String(t)}var h=e.maxWidth;h>0?\"string\"==typeof t?t=this.splitTextToSize(t,h):\"[object Array]\"===Object.prototype.toString.call(t)&&(t=t.reduce((function(t,e){return t.concat(u.splitTextToSize(e,h))}),[])):t=Array.isArray(t)?t:[t];for(var l=0;l<t.length;l++)o<(c=this.getStringUnitWidth(t[l],{font:n})*r)&&(o=c);return 0!==o&&(s=t.length),{w:o/=a,h:Math.max((s*r*this.getLineHeightFactor()-r*(this.getLineHeightFactor()-1))/a,0)}},e.cellAddPage=function(){i.call(this),this.addPage();var t=this.internal.__cell__.margins||r;return this.internal.__cell__.lastCell=new o(t.left,t.top,void 0,void 0),this.internal.__cell__.pages+=1,this};var s=e.cell=function(){var t;t=arguments[0]instanceof o?arguments[0]:new o(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]),i.call(this);var e=this.internal.__cell__.lastCell,a=this.internal.__cell__.padding,s=this.internal.__cell__.margins||r,c=this.internal.__cell__.tableHeaderRow,u=this.internal.__cell__.printHeaders;return void 0!==e.lineNumber&&(e.lineNumber===t.lineNumber?(t.x=(e.x||0)+(e.width||0),t.y=e.y||0):e.y+e.height+t.height+s.bottom>this.getPageHeight()?(this.cellAddPage(),t.y=s.top,u&&c&&(this.printHeaderRow(t.lineNumber,!0),t.y+=c[0].height)):t.y=e.y+e.height||t.y),void 0!==t.text[0]&&(this.rect(t.x,t.y,t.width,t.height,!0===n?\"FD\":void 0),\"right\"===t.align?this.text(t.text,t.x+t.width-a,t.y+a,{align:\"right\",baseline:\"top\"}):\"center\"===t.align?this.text(t.text,t.x+t.width/2,t.y+a,{align:\"center\",baseline:\"top\",maxWidth:t.width-a-a}):this.text(t.text,t.x+a,t.y+a,{align:\"left\",baseline:\"top\",maxWidth:t.width-a-a})),this.internal.__cell__.lastCell=t,this};e.table=function(e,n,u,h,l){if(i.call(this),!u)throw new Error(\"No data for PDF table.\");var f,d,p,g,m=[],v=[],b=[],y={},w={},N=[],L=[],A=(l=l||{}).autoSize||!1,x=!1!==l.printHeaders,S=l.css&&void 0!==l.css[\"font-size\"]?16*l.css[\"font-size\"]:l.fontSize||12,_=l.margins||Object.assign({width:this.getPageWidth()},r),P=\"number\"==typeof l.padding?l.padding:3,k=l.headerBackgroundColor||\"#c8c8c8\",I=l.headerTextColor||\"#000\";if(a.call(this),this.internal.__cell__.printHeaders=x,this.internal.__cell__.margins=_,this.internal.__cell__.table_font_size=S,this.internal.__cell__.padding=P,this.internal.__cell__.headerBackgroundColor=k,this.internal.__cell__.headerTextColor=I,this.setFontSize(S),null==h)v=m=Object.keys(u[0]),b=m.map((function(){return\"left\"}));else if(Array.isArray(h)&&\"object\"===t(h[0]))for(m=h.map((function(t){return t.name})),v=h.map((function(t){return t.prompt||t.name||\"\"})),b=h.map((function(t){return t.align||\"left\"})),f=0;f<h.length;f+=1)w[h[f].name]=h[f].width*(19.049976/25.4);else Array.isArray(h)&&\"string\"==typeof h[0]&&(v=m=h,b=m.map((function(){return\"left\"})));if(A||Array.isArray(h)&&\"string\"==typeof h[0])for(f=0;f<m.length;f+=1){for(y[g=m[f]]=u.map((function(t){return t[g]})),this.setFont(void 0,\"bold\"),N.push(this.getTextDimensions(v[f],{fontSize:this.internal.__cell__.table_font_size,scaleFactor:this.internal.scaleFactor}).w),d=y[g],this.setFont(void 0,\"normal\"),p=0;p<d.length;p+=1)N.push(this.getTextDimensions(d[p],{fontSize:this.internal.__cell__.table_font_size,scaleFactor:this.internal.scaleFactor}).w);w[g]=Math.max.apply(null,N)+P+P,N=[]}if(x){var F={};for(f=0;f<m.length;f+=1)F[m[f]]={},F[m[f]].text=v[f],F[m[f]].align=b[f];var C=c.call(this,F,w);L=m.map((function(t){return new o(e,n,w[t],C,F[t].text,void 0,F[t].align)})),this.setTableHeaderRow(L),this.printHeaderRow(1,!1)}var j=h.reduce((function(t,e){return t[e.name]=e.align,t}),{});for(f=0;f<u.length;f+=1){\"rowStart\"in l&&l.rowStart instanceof Function&&l.rowStart({row:f,data:u[f]},this);var O=c.call(this,u[f],w);for(p=0;p<m.length;p+=1){var B=u[f][m[p]];\"cellStart\"in l&&l.cellStart instanceof Function&&l.cellStart({row:f,col:p,data:B},this),s.call(this,new o(e,n,w[m[p]],O,B,f+2,j[m[p]]))}}return this.internal.__cell__.table_x=e,this.internal.__cell__.table_y=n,this};var c=function(t,e){var r=this.internal.__cell__.padding,n=this.internal.__cell__.table_font_size,i=this.internal.scaleFactor;return Object.keys(t).map((function(n){var i=t[n];return this.splitTextToSize(i.hasOwnProperty(\"text\")?i.text:i,e[n]-r-r)}),this).map((function(t){return this.getLineHeightFactor()*t.length*n/i+r+r}),this).reduce((function(t,e){return Math.max(t,e)}),0)};e.setTableHeaderRow=function(t){i.call(this),this.internal.__cell__.tableHeaderRow=t},e.printHeaderRow=function(t,e){if(i.call(this),!this.internal.__cell__.tableHeaderRow)throw new Error(\"Property tableHeaderRow does not exist.\");var r;if(n=!0,\"function\"==typeof this.internal.__cell__.headerFunction){var a=this.internal.__cell__.headerFunction(this,this.internal.__cell__.pages);this.internal.__cell__.lastCell=new o(a[0],a[1],a[2],a[3],void 0,-1)}this.setFont(void 0,\"bold\");for(var c=[],u=0;u<this.internal.__cell__.tableHeaderRow.length;u+=1){r=this.internal.__cell__.tableHeaderRow[u].clone(),e&&(r.y=this.internal.__cell__.margins.top||0,c.push(r)),r.lineNumber=t;var h=this.getTextColor();this.setTextColor(this.internal.__cell__.headerTextColor),this.setFillColor(this.internal.__cell__.headerBackgroundColor),s.call(this,r),this.setTextColor(h)}c.length>0&&this.setTableHeaderRow(c),this.setFont(void 0,\"normal\"),n=!1}}(E.API);var Pt={italic:[\"italic\",\"oblique\",\"normal\"],oblique:[\"oblique\",\"italic\",\"normal\"],normal:[\"normal\",\"oblique\",\"italic\"]},kt=[\"ultra-condensed\",\"extra-condensed\",\"condensed\",\"semi-condensed\",\"normal\",\"semi-expanded\",\"expanded\",\"extra-expanded\",\"ultra-expanded\"],It=_t(kt),Ft=[100,200,300,400,500,600,700,800,900],Ct=_t(Ft);function jt(t){var e=t.family.replace(/\"|'/g,\"\").toLowerCase(),r=function(t){return Pt[t=t||\"normal\"]?t:\"normal\"}(t.style),n=function(t){if(!t)return 400;if(\"number\"==typeof t)return t>=100&&t<=900&&t%100==0?t:400;if(/^\\d00$/.test(t))return parseInt(t);switch(t){case\"bold\":return 700;case\"normal\":default:return 400}}(t.weight),i=function(t){return\"number\"==typeof It[t=t||\"normal\"]?t:\"normal\"}(t.stretch);return{family:e,style:r,weight:n,stretch:i,src:t.src||[],ref:t.ref||{name:e,style:[i,r,n].join(\" \")}}}function Ot(t,e,r,n){var i;for(i=r;i>=0&&i<e.length;i+=n)if(t[e[i]])return t[e[i]];for(i=r;i>=0&&i<e.length;i-=n)if(t[e[i]])return t[e[i]]}var Bt={\"sans-serif\":\"helvetica\",fixed:\"courier\",monospace:\"courier\",terminal:\"courier\",cursive:\"times\",fantasy:\"times\",serif:\"times\"},Mt={caption:\"times\",icon:\"times\",menu:\"times\",\"message-box\":\"times\",\"small-caption\":\"times\",\"status-bar\":\"times\"};function Et(t){return[t.stretch,t.style,t.weight,t.family].join(\" \")}function qt(t,e,r){for(var n=(r=r||{}).defaultFontFamily||\"times\",i=Object.assign({},Bt,r.genericFontFamilies||{}),a=null,o=null,s=0;s<e.length;++s)if(i[(a=jt(e[s])).family]&&(a.family=i[a.family]),t.hasOwnProperty(a.family)){o=t[a.family];break}if(!(o=o||t[n]))throw new Error(\"Could not find a font-family for the rule '\"+Et(a)+\"' and default family '\"+n+\"'.\");if(o=function(t,e){if(e[t])return e[t];var r=It[t],n=r<=It.normal?-1:1,i=Ot(e,kt,r,n);if(!i)throw new Error(\"Could not find a matching font-stretch value for \"+t);return i}(a.stretch,o),o=function(t,e){if(e[t])return e[t];for(var r=Pt[t],n=0;n<r.length;++n)if(e[r[n]])return e[r[n]];throw new Error(\"Could not find a matching font-style for \"+t)}(a.style,o),!(o=function(t,e){if(e[t])return e[t];if(400===t&&e[500])return e[500];if(500===t&&e[400])return e[400];var r=Ct[t],n=Ot(e,Ft,r,t<400?-1:1);if(!n)throw new Error(\"Could not find a matching font-weight for value \"+t);return n}(a.weight,o)))throw new Error(\"Failed to resolve a font for the rule '\"+Et(a)+\"'.\");return o}function Dt(t){return t.trimLeft()}function Rt(t,e){for(var r=0;r<t.length;){if(t.charAt(r)===e)return[t.substring(0,r),t.substring(r+1)];r+=1}return null}function Tt(t){var e=t.match(/^(-[a-z_]|[a-z_])[a-z0-9_-]*/i);return null===e?null:[e[0],t.substring(e[0].length)]}var Ut,zt,Ht,Wt=[\"times\"];!function(e){var r,n,i,o,s,c,u,h,l,d=function(t){return t=t||{},this.isStrokeTransparent=t.isStrokeTransparent||!1,this.strokeOpacity=t.strokeOpacity||1,this.strokeStyle=t.strokeStyle||\"#000000\",this.fillStyle=t.fillStyle||\"#000000\",this.isFillTransparent=t.isFillTransparent||!1,this.fillOpacity=t.fillOpacity||1,this.font=t.font||\"10px sans-serif\",this.textBaseline=t.textBaseline||\"alphabetic\",this.textAlign=t.textAlign||\"left\",this.lineWidth=t.lineWidth||1,this.lineJoin=t.lineJoin||\"miter\",this.lineCap=t.lineCap||\"butt\",this.path=t.path||[],this.transform=void 0!==t.transform?t.transform.clone():new h,this.globalCompositeOperation=t.globalCompositeOperation||\"normal\",this.globalAlpha=t.globalAlpha||1,this.clip_path=t.clip_path||[],this.currentPoint=t.currentPoint||new c,this.miterLimit=t.miterLimit||10,this.lastPoint=t.lastPoint||new c,this.lineDashOffset=t.lineDashOffset||0,this.lineDash=t.lineDash||[],this.margin=t.margin||[0,0,0,0],this.prevPageLastElemOffset=t.prevPageLastElemOffset||0,this.ignoreClearRect=\"boolean\"!=typeof t.ignoreClearRect||t.ignoreClearRect,this};e.events.push([\"initialized\",function(){this.context2d=new p(this),r=this.internal.f2,n=this.internal.getCoordinateString,i=this.internal.getVerticalCoordinateString,o=this.internal.getHorizontalCoordinate,s=this.internal.getVerticalCoordinate,c=this.internal.Point,u=this.internal.Rectangle,h=this.internal.Matrix,l=new d}]);var p=function(t){Object.defineProperty(this,\"canvas\",{get:function(){return{parentNode:!1,style:!1}}});var e=t;Object.defineProperty(this,\"pdf\",{get:function(){return e}});var r=!1;Object.defineProperty(this,\"pageWrapXEnabled\",{get:function(){return r},set:function(t){r=Boolean(t)}});var n=!1;Object.defineProperty(this,\"pageWrapYEnabled\",{get:function(){return n},set:function(t){n=Boolean(t)}});var i=0;Object.defineProperty(this,\"posX\",{get:function(){return i},set:function(t){isNaN(t)||(i=t)}});var a=0;Object.defineProperty(this,\"posY\",{get:function(){return a},set:function(t){isNaN(t)||(a=t)}}),Object.defineProperty(this,\"margin\",{get:function(){return l.margin},set:function(t){var e;\"number\"==typeof t?e=[t,t,t,t]:((e=new Array(4))[0]=t[0],e[1]=t.length>=2?t[1]:e[0],e[2]=t.length>=3?t[2]:e[0],e[3]=t.length>=4?t[3]:e[1]),l.margin=e}});var o=!1;Object.defineProperty(this,\"autoPaging\",{get:function(){return o},set:function(t){o=t}});var s=0;Object.defineProperty(this,\"lastBreak\",{get:function(){return s},set:function(t){s=t}});var c=[];Object.defineProperty(this,\"pageBreaks\",{get:function(){return c},set:function(t){c=t}}),Object.defineProperty(this,\"ctx\",{get:function(){return l},set:function(t){t instanceof d&&(l=t)}}),Object.defineProperty(this,\"path\",{get:function(){return l.path},set:function(t){l.path=t}});var u=[];Object.defineProperty(this,\"ctxStack\",{get:function(){return u},set:function(t){u=t}}),Object.defineProperty(this,\"fillStyle\",{get:function(){return this.ctx.fillStyle},set:function(t){var e;e=g(t),this.ctx.fillStyle=e.style,this.ctx.isFillTransparent=0===e.a,this.ctx.fillOpacity=e.a,this.pdf.setFillColor(e.r,e.g,e.b,{a:e.a}),this.pdf.setTextColor(e.r,e.g,e.b,{a:e.a})}}),Object.defineProperty(this,\"strokeStyle\",{get:function(){return this.ctx.strokeStyle},set:function(t){var e=g(t);this.ctx.strokeStyle=e.style,this.ctx.isStrokeTransparent=0===e.a,this.ctx.strokeOpacity=e.a,0===e.a?this.pdf.setDrawColor(255,255,255):(e.a,this.pdf.setDrawColor(e.r,e.g,e.b))}}),Object.defineProperty(this,\"lineCap\",{get:function(){return this.ctx.lineCap},set:function(t){-1!==[\"butt\",\"round\",\"square\"].indexOf(t)&&(this.ctx.lineCap=t,this.pdf.setLineCap(t))}}),Object.defineProperty(this,\"lineWidth\",{get:function(){return this.ctx.lineWidth},set:function(t){isNaN(t)||(this.ctx.lineWidth=t,this.pdf.setLineWidth(t))}}),Object.defineProperty(this,\"lineJoin\",{get:function(){return this.ctx.lineJoin},set:function(t){-1!==[\"bevel\",\"round\",\"miter\"].indexOf(t)&&(this.ctx.lineJoin=t,this.pdf.setLineJoin(t))}}),Object.defineProperty(this,\"miterLimit\",{get:function(){return this.ctx.miterLimit},set:function(t){isNaN(t)||(this.ctx.miterLimit=t,this.pdf.setMiterLimit(t))}}),Object.defineProperty(this,\"textBaseline\",{get:function(){return this.ctx.textBaseline},set:function(t){this.ctx.textBaseline=t}}),Object.defineProperty(this,\"textAlign\",{get:function(){return this.ctx.textAlign},set:function(t){-1!==[\"right\",\"end\",\"center\",\"left\",\"start\"].indexOf(t)&&(this.ctx.textAlign=t)}});var h=null;function f(t,e){if(null===h){var r=function(t){var e=[];return Object.keys(t).forEach((function(r){t[r].forEach((function(t){var n=null;switch(t){case\"bold\":n={family:r,weight:\"bold\"};break;case\"italic\":n={family:r,style:\"italic\"};break;case\"bolditalic\":n={family:r,weight:\"bold\",style:\"italic\"};break;case\"\":case\"normal\":n={family:r}}null!==n&&(n.ref={name:r,style:t},e.push(n))}))})),e}(t.getFontList());h=function(t){for(var e={},r=0;r<t.length;++r){var n=jt(t[r]),i=n.family,a=n.stretch,o=n.style,s=n.weight;e[i]=e[i]||{},e[i][a]=e[i][a]||{},e[i][a][o]=e[i][a][o]||{},e[i][a][o][s]=n}return e}(r.concat(e))}return h}var p=null;Object.defineProperty(this,\"fontFaces\",{get:function(){return p},set:function(t){h=null,p=t}}),Object.defineProperty(this,\"font\",{get:function(){return this.ctx.font},set:function(t){var e;if(this.ctx.font=t,null!==(e=/^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))(?:\\s*\\/\\s*(normal|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])))?\\s*([-_,\\\"\\'\\sa-z]+?)\\s*$/i.exec(t))){var r=e[1],n=(e[2],e[3]),i=e[4],a=(e[5],e[6]),o=/^([.\\d]+)((?:%|in|[cem]m|ex|p[ctx]))$/i.exec(i)[2];i=\"px\"===o?Math.floor(parseFloat(i)*this.pdf.internal.scaleFactor):\"em\"===o?Math.floor(parseFloat(i)*this.pdf.getFontSize()):Math.floor(parseFloat(i)*this.pdf.internal.scaleFactor),this.pdf.setFontSize(i);var s=function(t){var e,r,n=[],i=t.trim();if(\"\"===i)return Wt;if(i in Mt)return[Mt[i]];for(;\"\"!==i;){switch(r=null,e=(i=Dt(i)).charAt(0)){case'\"':case\"'\":r=Rt(i.substring(1),e);break;default:r=Tt(i)}if(null===r)return Wt;if(n.push(r[0]),\"\"!==(i=Dt(r[1]))&&\",\"!==i.charAt(0))return Wt;i=i.replace(/^,/,\"\")}return n}(a);if(this.fontFaces){var c=qt(f(this.pdf,this.fontFaces),s.map((function(t){return{family:t,stretch:\"normal\",weight:n,style:r}})));this.pdf.setFont(c.ref.name,c.ref.style)}else{var u=\"\";(\"bold\"===n||parseInt(n,10)>=700||\"bold\"===r)&&(u=\"bold\"),\"italic\"===r&&(u+=\"italic\"),0===u.length&&(u=\"normal\");for(var h=\"\",l={arial:\"Helvetica\",Arial:\"Helvetica\",verdana:\"Helvetica\",Verdana:\"Helvetica\",helvetica:\"Helvetica\",Helvetica:\"Helvetica\",\"sans-serif\":\"Helvetica\",fixed:\"Courier\",monospace:\"Courier\",terminal:\"Courier\",cursive:\"Times\",fantasy:\"Times\",serif:\"Times\"},d=0;d<s.length;d++){if(void 0!==this.pdf.internal.getFont(s[d],u,{noFallback:!0,disableWarning:!0})){h=s[d];break}if(\"bolditalic\"===u&&void 0!==this.pdf.internal.getFont(s[d],\"bold\",{noFallback:!0,disableWarning:!0}))h=s[d],u=\"bold\";else if(void 0!==this.pdf.internal.getFont(s[d],\"normal\",{noFallback:!0,disableWarning:!0})){h=s[d],u=\"normal\";break}}if(\"\"===h)for(var p=0;p<s.length;p++)if(l[s[p]]){h=l[s[p]];break}h=\"\"===h?\"Times\":h,this.pdf.setFont(h,u)}}}}),Object.defineProperty(this,\"globalCompositeOperation\",{get:function(){return this.ctx.globalCompositeOperation},set:function(t){this.ctx.globalCompositeOperation=t}}),Object.defineProperty(this,\"globalAlpha\",{get:function(){return this.ctx.globalAlpha},set:function(t){this.ctx.globalAlpha=t}}),Object.defineProperty(this,\"lineDashOffset\",{get:function(){return this.ctx.lineDashOffset},set:function(t){this.ctx.lineDashOffset=t,T.call(this)}}),Object.defineProperty(this,\"lineDash\",{get:function(){return this.ctx.lineDash},set:function(t){this.ctx.lineDash=t,T.call(this)}}),Object.defineProperty(this,\"ignoreClearRect\",{get:function(){return this.ctx.ignoreClearRect},set:function(t){this.ctx.ignoreClearRect=Boolean(t)}})};p.prototype.setLineDash=function(t){this.lineDash=t},p.prototype.getLineDash=function(){return this.lineDash.length%2?this.lineDash.concat(this.lineDash):this.lineDash.slice()},p.prototype.fill=function(){A.call(this,\"fill\",!1)},p.prototype.stroke=function(){A.call(this,\"stroke\",!1)},p.prototype.beginPath=function(){this.path=[{type:\"begin\"}]},p.prototype.moveTo=function(t,e){if(isNaN(t)||isNaN(e))throw a.error(\"jsPDF.context2d.moveTo: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.moveTo\");var r=this.ctx.transform.applyToPoint(new c(t,e));this.path.push({type:\"mt\",x:r.x,y:r.y}),this.ctx.lastPoint=new c(t,e)},p.prototype.closePath=function(){var e=new c(0,0),r=0;for(r=this.path.length-1;-1!==r;r--)if(\"begin\"===this.path[r].type&&\"object\"===t(this.path[r+1])&&\"number\"==typeof this.path[r+1].x){e=new c(this.path[r+1].x,this.path[r+1].y);break}this.path.push({type:\"close\"}),this.ctx.lastPoint=new c(e.x,e.y)},p.prototype.lineTo=function(t,e){if(isNaN(t)||isNaN(e))throw a.error(\"jsPDF.context2d.lineTo: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.lineTo\");var r=this.ctx.transform.applyToPoint(new c(t,e));this.path.push({type:\"lt\",x:r.x,y:r.y}),this.ctx.lastPoint=new c(r.x,r.y)},p.prototype.clip=function(){this.ctx.clip_path=JSON.parse(JSON.stringify(this.path)),A.call(this,null,!0)},p.prototype.quadraticCurveTo=function(t,e,r,n){if(isNaN(r)||isNaN(n)||isNaN(t)||isNaN(e))throw a.error(\"jsPDF.context2d.quadraticCurveTo: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.quadraticCurveTo\");var i=this.ctx.transform.applyToPoint(new c(r,n)),o=this.ctx.transform.applyToPoint(new c(t,e));this.path.push({type:\"qct\",x1:o.x,y1:o.y,x:i.x,y:i.y}),this.ctx.lastPoint=new c(i.x,i.y)},p.prototype.bezierCurveTo=function(t,e,r,n,i,o){if(isNaN(i)||isNaN(o)||isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n))throw a.error(\"jsPDF.context2d.bezierCurveTo: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.bezierCurveTo\");var s=this.ctx.transform.applyToPoint(new c(i,o)),u=this.ctx.transform.applyToPoint(new c(t,e)),h=this.ctx.transform.applyToPoint(new c(r,n));this.path.push({type:\"bct\",x1:u.x,y1:u.y,x2:h.x,y2:h.y,x:s.x,y:s.y}),this.ctx.lastPoint=new c(s.x,s.y)},p.prototype.arc=function(t,e,r,n,i,o){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n)||isNaN(i))throw a.error(\"jsPDF.context2d.arc: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.arc\");if(o=Boolean(o),!this.ctx.transform.isIdentity){var s=this.ctx.transform.applyToPoint(new c(t,e));t=s.x,e=s.y;var u=this.ctx.transform.applyToPoint(new c(0,r)),h=this.ctx.transform.applyToPoint(new c(0,0));r=Math.sqrt(Math.pow(u.x-h.x,2)+Math.pow(u.y-h.y,2))}Math.abs(i-n)>=2*Math.PI&&(n=0,i=2*Math.PI),this.path.push({type:\"arc\",x:t,y:e,radius:r,startAngle:n,endAngle:i,counterclockwise:o})},p.prototype.arcTo=function(t,e,r,n,i){throw new Error(\"arcTo not implemented.\")},p.prototype.rect=function(t,e,r,n){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n))throw a.error(\"jsPDF.context2d.rect: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.rect\");this.moveTo(t,e),this.lineTo(t+r,e),this.lineTo(t+r,e+n),this.lineTo(t,e+n),this.lineTo(t,e),this.lineTo(t+r,e),this.lineTo(t,e)},p.prototype.fillRect=function(t,e,r,n){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n))throw a.error(\"jsPDF.context2d.fillRect: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.fillRect\");if(!m.call(this)){var i={};\"butt\"!==this.lineCap&&(i.lineCap=this.lineCap,this.lineCap=\"butt\"),\"miter\"!==this.lineJoin&&(i.lineJoin=this.lineJoin,this.lineJoin=\"miter\"),this.beginPath(),this.rect(t,e,r,n),this.fill(),i.hasOwnProperty(\"lineCap\")&&(this.lineCap=i.lineCap),i.hasOwnProperty(\"lineJoin\")&&(this.lineJoin=i.lineJoin)}},p.prototype.strokeRect=function(t,e,r,n){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n))throw a.error(\"jsPDF.context2d.strokeRect: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.strokeRect\");v.call(this)||(this.beginPath(),this.rect(t,e,r,n),this.stroke())},p.prototype.clearRect=function(t,e,r,n){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n))throw a.error(\"jsPDF.context2d.clearRect: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.clearRect\");this.ignoreClearRect||(this.fillStyle=\"#ffffff\",this.fillRect(t,e,r,n))},p.prototype.save=function(t){t=\"boolean\"!=typeof t||t;for(var e=this.pdf.internal.getCurrentPageInfo().pageNumber,r=0;r<this.pdf.internal.getNumberOfPages();r++)this.pdf.setPage(r+1),this.pdf.internal.out(\"q\");if(this.pdf.setPage(e),t){this.ctx.fontSize=this.pdf.internal.getFontSize();var n=new d(this.ctx);this.ctxStack.push(this.ctx),this.ctx=n}},p.prototype.restore=function(t){t=\"boolean\"!=typeof t||t;for(var e=this.pdf.internal.getCurrentPageInfo().pageNumber,r=0;r<this.pdf.internal.getNumberOfPages();r++)this.pdf.setPage(r+1),this.pdf.internal.out(\"Q\");this.pdf.setPage(e),t&&0!==this.ctxStack.length&&(this.ctx=this.ctxStack.pop(),this.fillStyle=this.ctx.fillStyle,this.strokeStyle=this.ctx.strokeStyle,this.font=this.ctx.font,this.lineCap=this.ctx.lineCap,this.lineWidth=this.ctx.lineWidth,this.lineJoin=this.ctx.lineJoin,this.lineDash=this.ctx.lineDash,this.lineDashOffset=this.ctx.lineDashOffset)},p.prototype.toDataURL=function(){throw new Error(\"toDataUrl not implemented.\")};var g=function(t){var e,r,n,i;if(!0===t.isCanvasGradient&&(t=t.getColor()),!t)return{r:0,g:0,b:0,a:0,style:t};if(/transparent|rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*0+\\s*\\)/.test(t))e=0,r=0,n=0,i=0;else{var a=/rgb\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)/.exec(t);if(null!==a)e=parseInt(a[1]),r=parseInt(a[2]),n=parseInt(a[3]),i=1;else if(null!==(a=/rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*([\\d.]+)\\s*\\)/.exec(t)))e=parseInt(a[1]),r=parseInt(a[2]),n=parseInt(a[3]),i=parseFloat(a[4]);else{if(i=1,\"string\"==typeof t&&\"#\"!==t.charAt(0)){var o=new f(t);t=o.ok?o.toHex():\"#000000\"}4===t.length?(e=t.substring(1,2),e+=e,r=t.substring(2,3),r+=r,n=t.substring(3,4),n+=n):(e=t.substring(1,3),r=t.substring(3,5),n=t.substring(5,7)),e=parseInt(e,16),r=parseInt(r,16),n=parseInt(n,16)}}return{r:e,g:r,b:n,a:i,style:t}},m=function(){return this.ctx.isFillTransparent||0==this.globalAlpha},v=function(){return Boolean(this.ctx.isStrokeTransparent||0==this.globalAlpha)};p.prototype.fillText=function(t,e,r,n){if(isNaN(e)||isNaN(r)||\"string\"!=typeof t)throw a.error(\"jsPDF.context2d.fillText: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.fillText\");if(n=isNaN(n)?void 0:n,!m.call(this)){var i=q(this.ctx.transform.rotation),o=this.ctx.transform.scaleX;C.call(this,{text:t,x:e,y:r,scale:o,angle:i,align:this.textAlign,maxWidth:n})}},p.prototype.strokeText=function(t,e,r,n){if(isNaN(e)||isNaN(r)||\"string\"!=typeof t)throw a.error(\"jsPDF.context2d.strokeText: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.strokeText\");if(!v.call(this)){n=isNaN(n)?void 0:n;var i=q(this.ctx.transform.rotation),o=this.ctx.transform.scaleX;C.call(this,{text:t,x:e,y:r,scale:o,renderingMode:\"stroke\",angle:i,align:this.textAlign,maxWidth:n})}},p.prototype.measureText=function(t){if(\"string\"!=typeof t)throw a.error(\"jsPDF.context2d.measureText: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.measureText\");var e=this.pdf,r=this.pdf.internal.scaleFactor,n=e.internal.getFontSize(),i=e.getStringUnitWidth(t)*n/e.internal.scaleFactor,o=function(t){var e=(t=t||{}).width||0;return Object.defineProperty(this,\"width\",{get:function(){return e}}),this};return new o({width:i*=Math.round(96*r/72*1e4)/1e4})},p.prototype.scale=function(t,e){if(isNaN(t)||isNaN(e))throw a.error(\"jsPDF.context2d.scale: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.scale\");var r=new h(t,0,0,e,0,0);this.ctx.transform=this.ctx.transform.multiply(r)},p.prototype.rotate=function(t){if(isNaN(t))throw a.error(\"jsPDF.context2d.rotate: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.rotate\");var e=new h(Math.cos(t),Math.sin(t),-Math.sin(t),Math.cos(t),0,0);this.ctx.transform=this.ctx.transform.multiply(e)},p.prototype.translate=function(t,e){if(isNaN(t)||isNaN(e))throw a.error(\"jsPDF.context2d.translate: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.translate\");var r=new h(1,0,0,1,t,e);this.ctx.transform=this.ctx.transform.multiply(r)},p.prototype.transform=function(t,e,r,n,i,o){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n)||isNaN(i)||isNaN(o))throw a.error(\"jsPDF.context2d.transform: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.transform\");var s=new h(t,e,r,n,i,o);this.ctx.transform=this.ctx.transform.multiply(s)},p.prototype.setTransform=function(t,e,r,n,i,a){t=isNaN(t)?1:t,e=isNaN(e)?0:e,r=isNaN(r)?0:r,n=isNaN(n)?1:n,i=isNaN(i)?0:i,a=isNaN(a)?0:a,this.ctx.transform=new h(t,e,r,n,i,a)};var b=function(){return this.margin[0]>0||this.margin[1]>0||this.margin[2]>0||this.margin[3]>0};p.prototype.drawImage=function(t,e,r,n,i,a,o,s,c){var l=this.pdf.getImageProperties(t),f=1,d=1,p=1,g=1;void 0!==n&&void 0!==s&&(p=s/n,g=c/i,f=l.width/n*s/n,d=l.height/i*c/i),void 0===a&&(a=e,o=r,e=0,r=0),void 0!==n&&void 0===s&&(s=n,c=i),void 0===n&&void 0===s&&(s=l.width,c=l.height);for(var m,v=this.ctx.transform.decompose(),w=q(v.rotate.shx),A=new h,S=(A=(A=(A=A.multiply(v.translate)).multiply(v.skew)).multiply(v.scale)).applyToRectangle(new u(a-e*p,o-r*g,n*f,i*d)),_=y.call(this,S),P=[],k=0;k<_.length;k+=1)-1===P.indexOf(_[k])&&P.push(_[k]);if(L(P),this.autoPaging)for(var I=P[0],F=P[P.length-1],C=I;C<F+1;C++){this.pdf.setPage(C);var j=this.pdf.internal.pageSize.width-this.margin[3]-this.margin[1],O=1===C?this.posY+this.margin[0]:this.margin[0],B=this.pdf.internal.pageSize.height-this.posY-this.margin[0]-this.margin[2],M=this.pdf.internal.pageSize.height-this.margin[0]-this.margin[2],E=1===C?0:B+(C-2)*M;if(0!==this.ctx.clip_path.length){var D=this.path;m=JSON.parse(JSON.stringify(this.ctx.clip_path)),this.path=N(m,this.posX+this.margin[3],-E+O+this.ctx.prevPageLastElemOffset),x.call(this,\"fill\",!0),this.path=D}var R=JSON.parse(JSON.stringify(S));R=N([R],this.posX+this.margin[3],-E+O+this.ctx.prevPageLastElemOffset)[0];var T=(C>I||C<F)&&b.call(this);T&&(this.pdf.saveGraphicsState(),this.pdf.rect(this.margin[3],this.margin[0],j,M,null).clip().discardPath()),this.pdf.addImage(t,\"JPEG\",R.x,R.y,R.w,R.h,null,null,w),T&&this.pdf.restoreGraphicsState()}else this.pdf.addImage(t,\"JPEG\",S.x,S.y,S.w,S.h,null,null,w)};var y=function(t,e,r){var n=[];e=e||this.pdf.internal.pageSize.width,r=r||this.pdf.internal.pageSize.height-this.margin[0]-this.margin[2];var i=this.posY+this.ctx.prevPageLastElemOffset;switch(t.type){default:case\"mt\":case\"lt\":n.push(Math.floor((t.y+i)/r)+1);break;case\"arc\":n.push(Math.floor((t.y+i-t.radius)/r)+1),n.push(Math.floor((t.y+i+t.radius)/r)+1);break;case\"qct\":var a=D(this.ctx.lastPoint.x,this.ctx.lastPoint.y,t.x1,t.y1,t.x,t.y);n.push(Math.floor((a.y+i)/r)+1),n.push(Math.floor((a.y+a.h+i)/r)+1);break;case\"bct\":var o=R(this.ctx.lastPoint.x,this.ctx.lastPoint.y,t.x1,t.y1,t.x2,t.y2,t.x,t.y);n.push(Math.floor((o.y+i)/r)+1),n.push(Math.floor((o.y+o.h+i)/r)+1);break;case\"rect\":n.push(Math.floor((t.y+i)/r)+1),n.push(Math.floor((t.y+t.h+i)/r)+1)}for(var s=0;s<n.length;s+=1)for(;this.pdf.internal.getNumberOfPages()<n[s];)w.call(this);return n},w=function(){var t=this.fillStyle,e=this.strokeStyle,r=this.font,n=this.lineCap,i=this.lineWidth,a=this.lineJoin;this.pdf.addPage(),this.fillStyle=t,this.strokeStyle=e,this.font=r,this.lineCap=n,this.lineWidth=i,this.lineJoin=a},N=function(t,e,r){for(var n=0;n<t.length;n++)switch(t[n].type){case\"bct\":t[n].x2+=e,t[n].y2+=r;case\"qct\":t[n].x1+=e,t[n].y1+=r;case\"mt\":case\"lt\":case\"arc\":default:t[n].x+=e,t[n].y+=r}return t},L=function(t){return t.sort((function(t,e){return t-e}))},A=function(t,e){for(var r,n,i=this.fillStyle,a=this.strokeStyle,o=this.lineCap,s=this.lineWidth,c=Math.abs(s*this.ctx.transform.scaleX),u=this.lineJoin,h=JSON.parse(JSON.stringify(this.path)),l=JSON.parse(JSON.stringify(this.path)),f=[],d=0;d<l.length;d++)if(void 0!==l[d].x)for(var p=y.call(this,l[d]),g=0;g<p.length;g+=1)-1===f.indexOf(p[g])&&f.push(p[g]);for(var m=0;m<f.length;m++)for(;this.pdf.internal.getNumberOfPages()<f[m];)w.call(this);if(L(f),this.autoPaging)for(var v=f[0],A=f[f.length-1],S=v;S<A+1;S++){this.pdf.setPage(S),this.fillStyle=i,this.strokeStyle=a,this.lineCap=o,this.lineWidth=c,this.lineJoin=u;var _=this.pdf.internal.pageSize.width-this.margin[3]-this.margin[1],P=1===S?this.posY+this.margin[0]:this.margin[0],k=this.pdf.internal.pageSize.height-this.posY-this.margin[0]-this.margin[2],I=this.pdf.internal.pageSize.height-this.margin[0]-this.margin[2],F=1===S?0:k+(S-2)*I;if(0!==this.ctx.clip_path.length){var C=this.path;r=JSON.parse(JSON.stringify(this.ctx.clip_path)),this.path=N(r,this.posX+this.margin[3],-F+P+this.ctx.prevPageLastElemOffset),x.call(this,t,!0),this.path=C}if(n=JSON.parse(JSON.stringify(h)),this.path=N(n,this.posX+this.margin[3],-F+P+this.ctx.prevPageLastElemOffset),!1===e||0===S){var j=(S>v||S<A)&&b.call(this);j&&(this.pdf.saveGraphicsState(),this.pdf.rect(this.margin[3],this.margin[0],_,I,null).clip().discardPath()),x.call(this,t,e),j&&this.pdf.restoreGraphicsState()}this.lineWidth=s}else this.lineWidth=c,x.call(this,t,e),this.lineWidth=s;this.path=h},x=function(t,e){if((\"stroke\"!==t||e||!v.call(this))&&(\"stroke\"===t||e||!m.call(this))){for(var r,n,i=[],a=this.path,o=0;o<a.length;o++){var s=a[o];switch(s.type){case\"begin\":i.push({begin:!0});break;case\"close\":i.push({close:!0});break;case\"mt\":i.push({start:s,deltas:[],abs:[]});break;case\"lt\":var c=i.length;if(a[o-1]&&!isNaN(a[o-1].x)&&(r=[s.x-a[o-1].x,s.y-a[o-1].y],c>0))for(;c>=0;c--)if(!0!==i[c-1].close&&!0!==i[c-1].begin){i[c-1].deltas.push(r),i[c-1].abs.push(s);break}break;case\"bct\":r=[s.x1-a[o-1].x,s.y1-a[o-1].y,s.x2-a[o-1].x,s.y2-a[o-1].y,s.x-a[o-1].x,s.y-a[o-1].y],i[i.length-1].deltas.push(r);break;case\"qct\":var u=a[o-1].x+2/3*(s.x1-a[o-1].x),h=a[o-1].y+2/3*(s.y1-a[o-1].y),l=s.x+2/3*(s.x1-s.x),f=s.y+2/3*(s.y1-s.y),d=s.x,p=s.y;r=[u-a[o-1].x,h-a[o-1].y,l-a[o-1].x,f-a[o-1].y,d-a[o-1].x,p-a[o-1].y],i[i.length-1].deltas.push(r);break;case\"arc\":i.push({deltas:[],abs:[],arc:!0}),Array.isArray(i[i.length-1].abs)&&i[i.length-1].abs.push(s)}}n=e?null:\"stroke\"===t?\"stroke\":\"fill\";for(var g=!1,b=0;b<i.length;b++)if(i[b].arc)for(var y=i[b].abs,w=0;w<y.length;w++){var N=y[w];\"arc\"===N.type?P.call(this,N.x,N.y,N.radius,N.startAngle,N.endAngle,N.counterclockwise,void 0,e,!g):j.call(this,N.x,N.y),g=!0}else if(!0===i[b].close)this.pdf.internal.out(\"h\"),g=!1;else if(!0!==i[b].begin){var L=i[b].start.x,A=i[b].start.y;O.call(this,i[b].deltas,L,A),g=!0}n&&k.call(this,n),e&&I.call(this)}},S=function(t){var e=this.pdf.internal.getFontSize()/this.pdf.internal.scaleFactor,r=e*(this.pdf.internal.getLineHeightFactor()-1);switch(this.ctx.textBaseline){case\"bottom\":return t-r;case\"top\":return t+e-r;case\"hanging\":return t+e-2*r;case\"middle\":return t+e/2-r;case\"ideographic\":return t;case\"alphabetic\":default:return t}},_=function(t){return t+this.pdf.internal.getFontSize()/this.pdf.internal.scaleFactor*(this.pdf.internal.getLineHeightFactor()-1)};p.prototype.createLinearGradient=function(){var t=function(){};return t.colorStops=[],t.addColorStop=function(t,e){this.colorStops.push([t,e])},t.getColor=function(){return 0===this.colorStops.length?\"#000000\":this.colorStops[0][1]},t.isCanvasGradient=!0,t},p.prototype.createPattern=function(){return this.createLinearGradient()},p.prototype.createRadialGradient=function(){return this.createLinearGradient()};var P=function(t,e,r,n,i,a,o,s,c){for(var u=M.call(this,r,n,i,a),h=0;h<u.length;h++){var l=u[h];0===h&&(c?F.call(this,l.x1+t,l.y1+e):j.call(this,l.x1+t,l.y1+e)),B.call(this,t,e,l.x2,l.y2,l.x3,l.y3,l.x4,l.y4)}s?I.call(this):k.call(this,o)},k=function(t){switch(t){case\"stroke\":this.pdf.internal.out(\"S\");break;case\"fill\":this.pdf.internal.out(\"f\")}},I=function(){this.pdf.clip(),this.pdf.discardPath()},F=function(t,e){this.pdf.internal.out(n(t)+\" \"+i(e)+\" m\")},C=function(t){var e;switch(t.align){case\"right\":case\"end\":e=\"right\";break;case\"center\":e=\"center\";break;case\"left\":case\"start\":default:e=\"left\"}var r=this.pdf.getTextDimensions(t.text),n=S.call(this,t.y),i=_.call(this,n)-r.h,a=this.ctx.transform.applyToPoint(new c(t.x,n)),o=this.ctx.transform.decompose(),s=new h;s=(s=(s=s.multiply(o.translate)).multiply(o.skew)).multiply(o.scale);for(var l,f,d,p=this.ctx.transform.applyToRectangle(new u(t.x,n,r.w,r.h)),g=s.applyToRectangle(new u(t.x,i,r.w,r.h)),m=y.call(this,g),v=[],w=0;w<m.length;w+=1)-1===v.indexOf(m[w])&&v.push(m[w]);if(L(v),this.autoPaging)for(var A=v[0],P=v[v.length-1],k=A;k<P+1;k++){this.pdf.setPage(k);var I=1===k?this.posY+this.margin[0]:this.margin[0],F=this.pdf.internal.pageSize.height-this.posY-this.margin[0]-this.margin[2],C=this.pdf.internal.pageSize.height-this.margin[2],j=C-this.margin[0],O=this.pdf.internal.pageSize.width-this.margin[1],B=O-this.margin[3],M=1===k?0:F+(k-2)*j;if(0!==this.ctx.clip_path.length){var E=this.path;l=JSON.parse(JSON.stringify(this.ctx.clip_path)),this.path=N(l,this.posX+this.margin[3],-1*M+I),x.call(this,\"fill\",!0),this.path=E}var q=N([JSON.parse(JSON.stringify(g))],this.posX+this.margin[3],-M+I+this.ctx.prevPageLastElemOffset)[0];t.scale>=.01&&(f=this.pdf.internal.getFontSize(),this.pdf.setFontSize(f*t.scale),d=this.lineWidth,this.lineWidth=d*t.scale);var D=\"text\"!==this.autoPaging;if(D||q.y+q.h<=C){if(D||q.y>=I&&q.x<=O){var R=D?t.text:this.pdf.splitTextToSize(t.text,t.maxWidth||O-q.x)[0],T=N([JSON.parse(JSON.stringify(p))],this.posX+this.margin[3],-M+I+this.ctx.prevPageLastElemOffset)[0],U=D&&(k>A||k<P)&&b.call(this);U&&(this.pdf.saveGraphicsState(),this.pdf.rect(this.margin[3],this.margin[0],B,j,null).clip().discardPath()),this.pdf.text(R,T.x,T.y,{angle:t.angle,align:e,renderingMode:t.renderingMode}),U&&this.pdf.restoreGraphicsState()}}else q.y<C&&(this.ctx.prevPageLastElemOffset+=C-q.y);t.scale>=.01&&(this.pdf.setFontSize(f),this.lineWidth=d)}else t.scale>=.01&&(f=this.pdf.internal.getFontSize(),this.pdf.setFontSize(f*t.scale),d=this.lineWidth,this.lineWidth=d*t.scale),this.pdf.text(t.text,a.x+this.posX,a.y+this.posY,{angle:t.angle,align:e,renderingMode:t.renderingMode,maxWidth:t.maxWidth}),t.scale>=.01&&(this.pdf.setFontSize(f),this.lineWidth=d)},j=function(t,e,r,a){r=r||0,a=a||0,this.pdf.internal.out(n(t+r)+\" \"+i(e+a)+\" l\")},O=function(t,e,r){return this.pdf.lines(t,e,r,null,null)},B=function(t,e,n,i,a,c,u,h){this.pdf.internal.out([r(o(n+t)),r(s(i+e)),r(o(a+t)),r(s(c+e)),r(o(u+t)),r(s(h+e)),\"c\"].join(\" \"))},M=function(t,e,r,n){for(var i=2*Math.PI,a=Math.PI/2;e>r;)e-=i;var o=Math.abs(r-e);o<i&&n&&(o=i-o);for(var s=[],c=n?-1:1,u=e;o>1e-5;){var h=u+c*Math.min(o,a);s.push(E.call(this,t,u,h)),o-=Math.abs(h-u),u=h}return s},E=function(t,e,r){var n=(r-e)/2,i=t*Math.cos(n),a=t*Math.sin(n),o=i,s=-a,c=o*o+s*s,u=c+o*i+s*a,h=4/3*(Math.sqrt(2*c*u)-u)/(o*a-s*i),l=o-h*s,f=s+h*o,d=l,p=-f,g=n+e,m=Math.cos(g),v=Math.sin(g);return{x1:t*Math.cos(e),y1:t*Math.sin(e),x2:l*m-f*v,y2:l*v+f*m,x3:d*m-p*v,y3:d*v+p*m,x4:t*Math.cos(r),y4:t*Math.sin(r)}},q=function(t){return 180*t/Math.PI},D=function(t,e,r,n,i,a){var o=t+.5*(r-t),s=e+.5*(n-e),c=i+.5*(r-i),h=a+.5*(n-a),l=Math.min(t,i,o,c),f=Math.max(t,i,o,c),d=Math.min(e,a,s,h),p=Math.max(e,a,s,h);return new u(l,d,f-l,p-d)},R=function(t,e,r,n,i,a,o,s){var c,h,l,f,d,p,g,m,v,b,y,w,N,L,A=r-t,x=n-e,S=i-r,_=a-n,P=o-i,k=s-a;for(h=0;h<41;h++)v=(g=(l=t+(c=h/40)*A)+c*((d=r+c*S)-l))+c*(d+c*(i+c*P-d)-g),b=(m=(f=e+c*x)+c*((p=n+c*_)-f))+c*(p+c*(a+c*k-p)-m),0==h?(y=v,w=b,N=v,L=b):(y=Math.min(y,v),w=Math.min(w,b),N=Math.max(N,v),L=Math.max(L,b));return new u(Math.round(y),Math.round(w),Math.round(N-y),Math.round(L-w))},T=function(){if(this.prevLineDash||this.ctx.lineDash.length||this.ctx.lineDashOffset){var t,e,r=(t=this.ctx.lineDash,e=this.ctx.lineDashOffset,JSON.stringify({lineDash:t,lineDashOffset:e}));this.prevLineDash!==r&&(this.pdf.setLineDash(this.ctx.lineDash,this.ctx.lineDashOffset),this.prevLineDash=r)}}}(E.API),\n/**\n * @license\n * jsPDF filters PlugIn\n * Copyright (c) 2014 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var r=function(t){var e,r,n,i,a,o,s,c,u,h;for(/[^\\x00-\\xFF]/.test(t),r=[],n=0,i=(t+=e=\"\\0\\0\\0\\0\".slice(t.length%4||4)).length;i>n;n+=4)0!==(a=(t.charCodeAt(n)<<24)+(t.charCodeAt(n+1)<<16)+(t.charCodeAt(n+2)<<8)+t.charCodeAt(n+3))?(o=(a=((a=((a=((a=(a-(h=a%85))/85)-(u=a%85))/85)-(c=a%85))/85)-(s=a%85))/85)%85,r.push(o+33,s+33,c+33,u+33,h+33)):r.push(122);return function(t,e){for(var r=e;r>0;r--)t.pop()}(r,e.length),String.fromCharCode.apply(String,r)+\"~>\"},n=function(t){var e,r,n,i,a,o=String,s=\"length\",c=255,u=\"charCodeAt\",h=\"slice\",l=\"replace\";for(t[h](-2),t=t[h](0,-2)[l](/\\s/g,\"\")[l](\"z\",\"!!!!!\"),n=[],i=0,a=(t+=e=\"uuuuu\"[h](t[s]%5||5))[s];a>i;i+=5)r=52200625*(t[u](i)-33)+614125*(t[u](i+1)-33)+7225*(t[u](i+2)-33)+85*(t[u](i+3)-33)+(t[u](i+4)-33),n.push(c&r>>24,c&r>>16,c&r>>8,c&r);return function(t,e){for(var r=e;r>0;r--)t.pop()}(n,e[s]),o.fromCharCode.apply(o,n)},i=function(t){var e=new RegExp(/^([0-9A-Fa-f]{2})+$/);if(-1!==(t=t.replace(/\\s/g,\"\")).indexOf(\">\")&&(t=t.substr(0,t.indexOf(\">\"))),t.length%2&&(t+=\"0\"),!1===e.test(t))return\"\";for(var r=\"\",n=0;n<t.length;n+=2)r+=String.fromCharCode(\"0x\"+(t[n]+t[n+1]));return r},a=function(t){for(var r=new Uint8Array(t.length),n=t.length;n--;)r[n]=t.charCodeAt(n);return t=(r=e(r)).reduce((function(t,e){return t+String.fromCharCode(e)}),\"\")};t.processDataByFilters=function(t,e){var o=0,s=t||\"\",c=[];for(\"string\"==typeof(e=e||[])&&(e=[e]),o=0;o<e.length;o+=1)switch(e[o]){case\"ASCII85Decode\":case\"/ASCII85Decode\":s=n(s),c.push(\"/ASCII85Encode\");break;case\"ASCII85Encode\":case\"/ASCII85Encode\":s=r(s),c.push(\"/ASCII85Decode\");break;case\"ASCIIHexDecode\":case\"/ASCIIHexDecode\":s=i(s),c.push(\"/ASCIIHexEncode\");break;case\"ASCIIHexEncode\":case\"/ASCIIHexEncode\":s=s.split(\"\").map((function(t){return(\"0\"+t.charCodeAt().toString(16)).slice(-2)})).join(\"\")+\">\",c.push(\"/ASCIIHexDecode\");break;case\"FlateEncode\":case\"/FlateEncode\":s=a(s),c.push(\"/FlateDecode\");break;default:throw new Error('The filter: \"'+e[o]+'\" is not implemented')}return{data:s,reverseChain:c.reverse().join(\" \")}}}(E.API),\n/**\n * @license\n * jsPDF fileloading PlugIn\n * Copyright (c) 2018 Aras Abbasi (aras.abbasi@gmail.com)\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){t.loadFile=function(t,e,r){return function(t,e,r){e=!1!==e,r=\"function\"==typeof r?r:function(){};var n=void 0;try{n=function(t,e,r){var n=new XMLHttpRequest,i=0,a=function(t){var e=t.length,r=[],n=String.fromCharCode;for(i=0;i<e;i+=1)r.push(n(255&t.charCodeAt(i)));return r.join(\"\")};if(n.open(\"GET\",t,!e),n.overrideMimeType(\"text/plain; charset=x-user-defined\"),!1===e&&(n.onload=function(){200===n.status?r(a(this.responseText)):r(void 0)}),n.send(null),e&&200===n.status)return a(n.responseText)}(t,e,r)}catch(t){}return n}(t,e,r)},t.loadImageFile=t.loadFile}(E.API),function(e){function r(){return(n.html2canvas?Promise.resolve(n.html2canvas):import(\"html2canvas\")).catch((function(t){return Promise.reject(new Error(\"Could not load html2canvas: \"+t))})).then((function(t){return t.default?t.default:t}))}function i(){return(n.DOMPurify?Promise.resolve(n.DOMPurify):import(\"dompurify\")).catch((function(t){return Promise.reject(new Error(\"Could not load dompurify: \"+t))})).then((function(t){return t.default?t.default:t}))}var a=function(e){var r=t(e);return\"undefined\"===r?\"undefined\":\"string\"===r||e instanceof String?\"string\":\"number\"===r||e instanceof Number?\"number\":\"function\"===r||e instanceof Function?\"function\":e&&e.constructor===Array?\"array\":e&&1===e.nodeType?\"element\":\"object\"===r?\"object\":\"unknown\"},o=function(t,e){var r=document.createElement(t);for(var n in e.className&&(r.className=e.className),e.innerHTML&&e.dompurify&&(r.innerHTML=e.dompurify.sanitize(e.innerHTML)),e.style)r.style[n]=e.style[n];return r},s=function t(e){var r=Object.assign(t.convert(Promise.resolve()),JSON.parse(JSON.stringify(t.template))),n=t.convert(Promise.resolve(),r);return n=(n=n.setProgress(1,t,1,[t])).set(e)};(s.prototype=Object.create(Promise.prototype)).constructor=s,s.convert=function(t,e){return t.__proto__=e||s.prototype,t},s.template={prop:{src:null,container:null,overlay:null,canvas:null,img:null,pdf:null,pageSize:null,callback:function(){}},progress:{val:0,state:null,n:0,stack:[]},opt:{filename:\"file.pdf\",margin:[0,0,0,0],enableLinks:!0,x:0,y:0,html2canvas:{},jsPDF:{},backgroundColor:\"transparent\"}},s.prototype.from=function(t,e){return this.then((function(){switch(e=e||function(t){switch(a(t)){case\"string\":return\"string\";case\"element\":return\"canvas\"===t.nodeName.toLowerCase()?\"canvas\":\"element\";default:return\"unknown\"}}(t)){case\"string\":return this.then(i).then((function(e){return this.set({src:o(\"div\",{innerHTML:t,dompurify:e})})}));case\"element\":return this.set({src:t});case\"canvas\":return this.set({canvas:t});case\"img\":return this.set({img:t});default:return this.error(\"Unknown source type.\")}}))},s.prototype.to=function(t){switch(t){case\"container\":return this.toContainer();case\"canvas\":return this.toCanvas();case\"img\":return this.toImg();case\"pdf\":return this.toPdf();default:return this.error(\"Invalid target.\")}},s.prototype.toContainer=function(){return this.thenList([function(){return this.prop.src||this.error(\"Cannot duplicate - no source HTML.\")},function(){return this.prop.pageSize||this.setPageSize()}]).then((function(){var t={position:\"relative\",display:\"inline-block\",width:(\"number\"!=typeof this.opt.width||isNaN(this.opt.width)||\"number\"!=typeof this.opt.windowWidth||isNaN(this.opt.windowWidth)?Math.max(this.prop.src.clientWidth,this.prop.src.scrollWidth,this.prop.src.offsetWidth):this.opt.windowWidth)+\"px\",left:0,right:0,top:0,margin:\"auto\",backgroundColor:this.opt.backgroundColor},e=function t(e,r){for(var n=3===e.nodeType?document.createTextNode(e.nodeValue):e.cloneNode(!1),i=e.firstChild;i;i=i.nextSibling)!0!==r&&1===i.nodeType&&\"SCRIPT\"===i.nodeName||n.appendChild(t(i,r));return 1===e.nodeType&&(\"CANVAS\"===e.nodeName?(n.width=e.width,n.height=e.height,n.getContext(\"2d\").drawImage(e,0,0)):\"TEXTAREA\"!==e.nodeName&&\"SELECT\"!==e.nodeName||(n.value=e.value),n.addEventListener(\"load\",(function(){n.scrollTop=e.scrollTop,n.scrollLeft=e.scrollLeft}),!0)),n}(this.prop.src,this.opt.html2canvas.javascriptEnabled);\"BODY\"===e.tagName&&(t.height=Math.max(document.body.scrollHeight,document.body.offsetHeight,document.documentElement.clientHeight,document.documentElement.scrollHeight,document.documentElement.offsetHeight)+\"px\"),this.prop.overlay=o(\"div\",{className:\"html2pdf__overlay\",style:{position:\"fixed\",overflow:\"hidden\",zIndex:1e3,left:\"-100000px\",right:0,bottom:0,top:0}}),this.prop.container=o(\"div\",{className:\"html2pdf__container\",style:t}),this.prop.container.appendChild(e),this.prop.container.firstChild.appendChild(o(\"div\",{style:{clear:\"both\",border:\"0 none transparent\",margin:0,padding:0,height:0}})),this.prop.container.style.float=\"none\",this.prop.overlay.appendChild(this.prop.container),document.body.appendChild(this.prop.overlay),this.prop.container.firstChild.style.position=\"relative\",this.prop.container.height=Math.max(this.prop.container.firstChild.clientHeight,this.prop.container.firstChild.scrollHeight,this.prop.container.firstChild.offsetHeight)+\"px\"}))},s.prototype.toCanvas=function(){var t=[function(){return document.body.contains(this.prop.container)||this.toContainer()}];return this.thenList(t).then(r).then((function(t){var e=Object.assign({},this.opt.html2canvas);return delete e.onrendered,t(this.prop.container,e)})).then((function(t){(this.opt.html2canvas.onrendered||function(){})(t),this.prop.canvas=t,document.body.removeChild(this.prop.overlay)}))},s.prototype.toContext2d=function(){var t=[function(){return document.body.contains(this.prop.container)||this.toContainer()}];return this.thenList(t).then(r).then((function(t){var e=this.opt.jsPDF,r=this.opt.fontFaces,n=\"number\"!=typeof this.opt.width||isNaN(this.opt.width)||\"number\"!=typeof this.opt.windowWidth||isNaN(this.opt.windowWidth)?1:this.opt.width/this.opt.windowWidth,i=Object.assign({async:!0,allowTaint:!0,scale:n,scrollX:this.opt.scrollX||0,scrollY:this.opt.scrollY||0,backgroundColor:\"#ffffff\",imageTimeout:15e3,logging:!0,proxy:null,removeContainer:!0,foreignObjectRendering:!1,useCORS:!1},this.opt.html2canvas);if(delete i.onrendered,e.context2d.autoPaging=void 0===this.opt.autoPaging||this.opt.autoPaging,e.context2d.posX=this.opt.x,e.context2d.posY=this.opt.y,e.context2d.margin=this.opt.margin,e.context2d.fontFaces=r,r)for(var a=0;a<r.length;++a){var o=r[a],s=o.src.find((function(t){return\"truetype\"===t.format}));s&&e.addFont(s.url,o.ref.name,o.ref.style)}return i.windowHeight=i.windowHeight||0,i.windowHeight=0==i.windowHeight?Math.max(this.prop.container.clientHeight,this.prop.container.scrollHeight,this.prop.container.offsetHeight):i.windowHeight,e.context2d.save(!0),t(this.prop.container,i)})).then((function(t){this.opt.jsPDF.context2d.restore(!0),(this.opt.html2canvas.onrendered||function(){})(t),this.prop.canvas=t,document.body.removeChild(this.prop.overlay)}))},s.prototype.toImg=function(){return this.thenList([function(){return this.prop.canvas||this.toCanvas()}]).then((function(){var t=this.prop.canvas.toDataURL(\"image/\"+this.opt.image.type,this.opt.image.quality);this.prop.img=document.createElement(\"img\"),this.prop.img.src=t}))},s.prototype.toPdf=function(){return this.thenList([function(){return this.toContext2d()}]).then((function(){this.prop.pdf=this.prop.pdf||this.opt.jsPDF}))},s.prototype.output=function(t,e,r){return\"img\"===(r=r||\"pdf\").toLowerCase()||\"image\"===r.toLowerCase()?this.outputImg(t,e):this.outputPdf(t,e)},s.prototype.outputPdf=function(t,e){return this.thenList([function(){return this.prop.pdf||this.toPdf()}]).then((function(){return this.prop.pdf.output(t,e)}))},s.prototype.outputImg=function(t){return this.thenList([function(){return this.prop.img||this.toImg()}]).then((function(){switch(t){case void 0:case\"img\":return this.prop.img;case\"datauristring\":case\"dataurlstring\":return this.prop.img.src;case\"datauri\":case\"dataurl\":return document.location.href=this.prop.img.src;default:throw'Image output type \"'+t+'\" is not supported.'}}))},s.prototype.save=function(t){return this.thenList([function(){return this.prop.pdf||this.toPdf()}]).set(t?{filename:t}:null).then((function(){this.prop.pdf.save(this.opt.filename)}))},s.prototype.doCallback=function(){return this.thenList([function(){return this.prop.pdf||this.toPdf()}]).then((function(){this.prop.callback(this.prop.pdf)}))},s.prototype.set=function(t){if(\"object\"!==a(t))return this;var e=Object.keys(t||{}).map((function(e){if(e in s.template.prop)return function(){this.prop[e]=t[e]};switch(e){case\"margin\":return this.setMargin.bind(this,t.margin);case\"jsPDF\":return function(){return this.opt.jsPDF=t.jsPDF,this.setPageSize()};case\"pageSize\":return this.setPageSize.bind(this,t.pageSize);default:return function(){this.opt[e]=t[e]}}}),this);return this.then((function(){return this.thenList(e)}))},s.prototype.get=function(t,e){return this.then((function(){var r=t in s.template.prop?this.prop[t]:this.opt[t];return e?e(r):r}))},s.prototype.setMargin=function(t){return this.then((function(){switch(a(t)){case\"number\":t=[t,t,t,t];case\"array\":if(2===t.length&&(t=[t[0],t[1],t[0],t[1]]),4===t.length)break;default:return this.error(\"Invalid margin array.\")}this.opt.margin=t})).then(this.setPageSize)},s.prototype.setPageSize=function(t){function e(t,e){return Math.floor(t*e/72*96)}return this.then((function(){(t=t||E.getPageSize(this.opt.jsPDF)).hasOwnProperty(\"inner\")||(t.inner={width:t.width-this.opt.margin[1]-this.opt.margin[3],height:t.height-this.opt.margin[0]-this.opt.margin[2]},t.inner.px={width:e(t.inner.width,t.k),height:e(t.inner.height,t.k)},t.inner.ratio=t.inner.height/t.inner.width),this.prop.pageSize=t}))},s.prototype.setProgress=function(t,e,r,n){return null!=t&&(this.progress.val=t),null!=e&&(this.progress.state=e),null!=r&&(this.progress.n=r),null!=n&&(this.progress.stack=n),this.progress.ratio=this.progress.val/this.progress.state,this},s.prototype.updateProgress=function(t,e,r,n){return this.setProgress(t?this.progress.val+t:null,e||null,r?this.progress.n+r:null,n?this.progress.stack.concat(n):null)},s.prototype.then=function(t,e){var r=this;return this.thenCore(t,e,(function(t,e){return r.updateProgress(null,null,1,[t]),Promise.prototype.then.call(this,(function(e){return r.updateProgress(null,t),e})).then(t,e).then((function(t){return r.updateProgress(1),t}))}))},s.prototype.thenCore=function(t,e,r){r=r||Promise.prototype.then;t&&(t=t.bind(this)),e&&(e=e.bind(this));var n=-1!==Promise.toString().indexOf(\"[native code]\")&&\"Promise\"===Promise.name?this:s.convert(Object.assign({},this),Promise.prototype),i=r.call(n,t,e);return s.convert(i,this.__proto__)},s.prototype.thenExternal=function(t,e){return Promise.prototype.then.call(this,t,e)},s.prototype.thenList=function(t){var e=this;return t.forEach((function(t){e=e.thenCore(t)})),e},s.prototype.catch=function(t){t&&(t=t.bind(this));var e=Promise.prototype.catch.call(this,t);return s.convert(e,this)},s.prototype.catchExternal=function(t){return Promise.prototype.catch.call(this,t)},s.prototype.error=function(t){return this.then((function(){throw new Error(t)}))},s.prototype.using=s.prototype.set,s.prototype.saveAs=s.prototype.save,s.prototype.export=s.prototype.output,s.prototype.run=s.prototype.then,E.getPageSize=function(e,r,n){if(\"object\"===t(e)){var i=e;e=i.orientation,r=i.unit||r,n=i.format||n}r=r||\"mm\",n=n||\"a4\",e=(\"\"+(e||\"P\")).toLowerCase();var a,o=(\"\"+n).toLowerCase(),s={a0:[2383.94,3370.39],a1:[1683.78,2383.94],a2:[1190.55,1683.78],a3:[841.89,1190.55],a4:[595.28,841.89],a5:[419.53,595.28],a6:[297.64,419.53],a7:[209.76,297.64],a8:[147.4,209.76],a9:[104.88,147.4],a10:[73.7,104.88],b0:[2834.65,4008.19],b1:[2004.09,2834.65],b2:[1417.32,2004.09],b3:[1000.63,1417.32],b4:[708.66,1000.63],b5:[498.9,708.66],b6:[354.33,498.9],b7:[249.45,354.33],b8:[175.75,249.45],b9:[124.72,175.75],b10:[87.87,124.72],c0:[2599.37,3676.54],c1:[1836.85,2599.37],c2:[1298.27,1836.85],c3:[918.43,1298.27],c4:[649.13,918.43],c5:[459.21,649.13],c6:[323.15,459.21],c7:[229.61,323.15],c8:[161.57,229.61],c9:[113.39,161.57],c10:[79.37,113.39],dl:[311.81,623.62],letter:[612,792],\"government-letter\":[576,756],legal:[612,1008],\"junior-legal\":[576,360],ledger:[1224,792],tabloid:[792,1224],\"credit-card\":[153,243]};switch(r){case\"pt\":a=1;break;case\"mm\":a=72/25.4;break;case\"cm\":a=72/2.54;break;case\"in\":a=72;break;case\"px\":a=.75;break;case\"pc\":case\"em\":a=12;break;case\"ex\":a=6;break;default:throw\"Invalid unit: \"+r}var c,u=0,h=0;if(s.hasOwnProperty(o))u=s[o][1]/a,h=s[o][0]/a;else try{u=n[1],h=n[0]}catch(t){throw new Error(\"Invalid format: \"+n)}if(\"p\"===e||\"portrait\"===e)e=\"p\",h>u&&(c=h,h=u,u=c);else{if(\"l\"!==e&&\"landscape\"!==e)throw\"Invalid orientation: \"+e;e=\"l\",u>h&&(c=h,h=u,u=c)}return{width:h,height:u,unit:r,k:a,orientation:e}},e.html=function(t,e){(e=e||{}).callback=e.callback||function(){},e.html2canvas=e.html2canvas||{},e.html2canvas.canvas=e.html2canvas.canvas||this.canvas,e.jsPDF=e.jsPDF||this,e.fontFaces=e.fontFaces?e.fontFaces.map(jt):null;var r=new s(e);return e.worker?r:r.from(t).doCallback()}}(E.API),E.API.addJS=function(t){return Ht=t,this.internal.events.subscribe(\"postPutResources\",(function(){Ut=this.internal.newObject(),this.internal.out(\"<<\"),this.internal.out(\"/Names [(EmbeddedJS) \"+(Ut+1)+\" 0 R]\"),this.internal.out(\">>\"),this.internal.out(\"endobj\"),zt=this.internal.newObject(),this.internal.out(\"<<\"),this.internal.out(\"/S /JavaScript\"),this.internal.out(\"/JS (\"+Ht+\")\"),this.internal.out(\">>\"),this.internal.out(\"endobj\")})),this.internal.events.subscribe(\"putCatalog\",(function(){void 0!==Ut&&void 0!==zt&&this.internal.out(\"/Names <</JavaScript \"+Ut+\" 0 R>>\")})),this},\n/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var e;t.events.push([\"postPutResources\",function(){var t=this,r=/^(\\d+) 0 obj$/;if(this.outline.root.children.length>0)for(var n=t.outline.render().split(/\\r\\n/),i=0;i<n.length;i++){var a=n[i],o=r.exec(a);if(null!=o){var s=o[1];t.internal.newObjectDeferredBegin(s,!1)}t.internal.write(a)}if(this.outline.createNamedDestinations){var c=this.internal.pages.length,u=[];for(i=0;i<c;i++){var h=t.internal.newObject();u.push(h);var l=t.internal.getPageInfo(i+1);t.internal.write(\"<< /D[\"+l.objId+\" 0 R /XYZ null null null]>> endobj\")}var f=t.internal.newObject();t.internal.write(\"<< /Names [ \");for(i=0;i<u.length;i++)t.internal.write(\"(page_\"+(i+1)+\")\"+u[i]+\" 0 R\");t.internal.write(\" ] >>\",\"endobj\"),e=t.internal.newObject(),t.internal.write(\"<< /Dests \"+f+\" 0 R\"),t.internal.write(\">>\",\"endobj\")}}]),t.events.push([\"putCatalog\",function(){this.outline.root.children.length>0&&(this.internal.write(\"/Outlines\",this.outline.makeRef(this.outline.root)),this.outline.createNamedDestinations&&this.internal.write(\"/Names \"+e+\" 0 R\"))}]),t.events.push([\"initialized\",function(){var t=this;t.outline={createNamedDestinations:!1,root:{children:[]}},t.outline.add=function(t,e,r){var n={title:e,options:r,children:[]};return null==t&&(t=this.root),t.children.push(n),n},t.outline.render=function(){return this.ctx={},this.ctx.val=\"\",this.ctx.pdf=t,this.genIds_r(this.root),this.renderRoot(this.root),this.renderItems(this.root),this.ctx.val},t.outline.genIds_r=function(e){e.id=t.internal.newObjectDeferred();for(var r=0;r<e.children.length;r++)this.genIds_r(e.children[r])},t.outline.renderRoot=function(t){this.objStart(t),this.line(\"/Type /Outlines\"),t.children.length>0&&(this.line(\"/First \"+this.makeRef(t.children[0])),this.line(\"/Last \"+this.makeRef(t.children[t.children.length-1]))),this.line(\"/Count \"+this.count_r({count:0},t)),this.objEnd()},t.outline.renderItems=function(e){for(var r=this.ctx.pdf.internal.getVerticalCoordinateString,n=0;n<e.children.length;n++){var i=e.children[n];this.objStart(i),this.line(\"/Title \"+this.makeString(i.title)),this.line(\"/Parent \"+this.makeRef(e)),n>0&&this.line(\"/Prev \"+this.makeRef(e.children[n-1])),n<e.children.length-1&&this.line(\"/Next \"+this.makeRef(e.children[n+1])),i.children.length>0&&(this.line(\"/First \"+this.makeRef(i.children[0])),this.line(\"/Last \"+this.makeRef(i.children[i.children.length-1])));var a=this.count=this.count_r({count:0},i);if(a>0&&this.line(\"/Count \"+a),i.options&&i.options.pageNumber){var o=t.internal.getPageInfo(i.options.pageNumber);this.line(\"/Dest [\"+o.objId+\" 0 R /XYZ 0 \"+r(0)+\" 0]\")}this.objEnd()}for(var s=0;s<e.children.length;s++)this.renderItems(e.children[s])},t.outline.line=function(t){this.ctx.val+=t+\"\\r\\n\"},t.outline.makeRef=function(t){return t.id+\" 0 R\"},t.outline.makeString=function(e){return\"(\"+t.internal.pdfEscape(e)+\")\"},t.outline.objStart=function(t){this.ctx.val+=\"\\r\\n\"+t.id+\" 0 obj\\r\\n<<\\r\\n\"},t.outline.objEnd=function(){this.ctx.val+=\">> \\r\\nendobj\\r\\n\"},t.outline.count_r=function(t,e){for(var r=0;r<e.children.length;r++)t.count++,this.count_r(t,e.children[r]);return t.count}}])}(E.API),\n/**\n * @license\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var e=[192,193,194,195,196,197,198,199];t.processJPEG=function(t,r,n,i,a,o){var s,c=this.decode.DCT_DECODE,u=null;if(\"string\"==typeof t||this.__addimage__.isArrayBuffer(t)||this.__addimage__.isArrayBufferView(t)){switch(t=a||t,t=this.__addimage__.isArrayBuffer(t)?new Uint8Array(t):t,(s=function(t){for(var r,n=256*t.charCodeAt(4)+t.charCodeAt(5),i=t.length,a={width:0,height:0,numcomponents:1},o=4;o<i;o+=2){if(o+=n,-1!==e.indexOf(t.charCodeAt(o+1))){r=256*t.charCodeAt(o+5)+t.charCodeAt(o+6),a={width:256*t.charCodeAt(o+7)+t.charCodeAt(o+8),height:r,numcomponents:t.charCodeAt(o+9)};break}n=256*t.charCodeAt(o+2)+t.charCodeAt(o+3)}return a}(t=this.__addimage__.isArrayBufferView(t)?this.__addimage__.arrayBufferToBinaryString(t):t)).numcomponents){case 1:o=this.color_spaces.DEVICE_GRAY;break;case 4:o=this.color_spaces.DEVICE_CMYK;break;case 3:o=this.color_spaces.DEVICE_RGB}u={data:t,width:s.width,height:s.height,colorSpace:o,bitsPerComponent:8,filter:c,index:r,alias:n}}return u}}(E.API);var Vt,Gt,Yt,Jt,Xt,Kt=function(){var t,e,i;function a(t){var e,r,n,i,a,o,s,c,u,h,l,f,d,p;for(this.data=t,this.pos=8,this.palette=[],this.imgData=[],this.transparency={},this.animation=null,this.text={},o=null;;){switch(e=this.readUInt32(),u=function(){var t,e;for(e=[],t=0;t<4;++t)e.push(String.fromCharCode(this.data[this.pos++]));return e}.call(this).join(\"\")){case\"IHDR\":this.width=this.readUInt32(),this.height=this.readUInt32(),this.bits=this.data[this.pos++],this.colorType=this.data[this.pos++],this.compressionMethod=this.data[this.pos++],this.filterMethod=this.data[this.pos++],this.interlaceMethod=this.data[this.pos++];break;case\"acTL\":this.animation={numFrames:this.readUInt32(),numPlays:this.readUInt32()||1/0,frames:[]};break;case\"PLTE\":this.palette=this.read(e);break;case\"fcTL\":o&&this.animation.frames.push(o),this.pos+=4,o={width:this.readUInt32(),height:this.readUInt32(),xOffset:this.readUInt32(),yOffset:this.readUInt32()},a=this.readUInt16(),i=this.readUInt16()||100,o.delay=1e3*a/i,o.disposeOp=this.data[this.pos++],o.blendOp=this.data[this.pos++],o.data=[];break;case\"IDAT\":case\"fdAT\":for(\"fdAT\"===u&&(this.pos+=4,e-=4),t=(null!=o?o.data:void 0)||this.imgData,f=0;0<=e?f<e:f>e;0<=e?++f:--f)t.push(this.data[this.pos++]);break;case\"tRNS\":switch(this.transparency={},this.colorType){case 3:if(n=this.palette.length/3,this.transparency.indexed=this.read(e),this.transparency.indexed.length>n)throw new Error(\"More transparent colors than palette size\");if((h=n-this.transparency.indexed.length)>0)for(d=0;0<=h?d<h:d>h;0<=h?++d:--d)this.transparency.indexed.push(255);break;case 0:this.transparency.grayscale=this.read(e)[0];break;case 2:this.transparency.rgb=this.read(e)}break;case\"tEXt\":s=(l=this.read(e)).indexOf(0),c=String.fromCharCode.apply(String,l.slice(0,s)),this.text[c]=String.fromCharCode.apply(String,l.slice(s+1));break;case\"IEND\":return o&&this.animation.frames.push(o),this.colors=function(){switch(this.colorType){case 0:case 3:case 4:return 1;case 2:case 6:return 3}}.call(this),this.hasAlphaChannel=4===(p=this.colorType)||6===p,r=this.colors+(this.hasAlphaChannel?1:0),this.pixelBitlength=this.bits*r,this.colorSpace=function(){switch(this.colors){case 1:return\"DeviceGray\";case 3:return\"DeviceRGB\"}}.call(this),void(this.imgData=new Uint8Array(this.imgData));default:this.pos+=e}if(this.pos+=4,this.pos>this.data.length)throw new Error(\"Incomplete or corrupt PNG file\")}}a.prototype.read=function(t){var e,r;for(r=[],e=0;0<=t?e<t:e>t;0<=t?++e:--e)r.push(this.data[this.pos++]);return r},a.prototype.readUInt32=function(){return this.data[this.pos++]<<24|this.data[this.pos++]<<16|this.data[this.pos++]<<8|this.data[this.pos++]},a.prototype.readUInt16=function(){return this.data[this.pos++]<<8|this.data[this.pos++]},a.prototype.decodePixels=function(t){var e=this.pixelBitlength/8,n=new Uint8Array(this.width*this.height*e),i=0,a=this;if(null==t&&(t=this.imgData),0===t.length)return new Uint8Array(0);function o(r,o,s,c){var u,h,l,f,d,p,g,m,v,b,y,w,N,L,A,x,S,_,P,k,I,F=Math.ceil((a.width-r)/s),C=Math.ceil((a.height-o)/c),j=a.width==F&&a.height==C;for(L=e*F,w=j?n:new Uint8Array(L*C),p=t.length,N=0,h=0;N<C&&i<p;){switch(t[i++]){case 0:for(f=S=0;S<L;f=S+=1)w[h++]=t[i++];break;case 1:for(f=_=0;_<L;f=_+=1)u=t[i++],d=f<e?0:w[h-e],w[h++]=(u+d)%256;break;case 2:for(f=P=0;P<L;f=P+=1)u=t[i++],l=(f-f%e)/e,A=N&&w[(N-1)*L+l*e+f%e],w[h++]=(A+u)%256;break;case 3:for(f=k=0;k<L;f=k+=1)u=t[i++],l=(f-f%e)/e,d=f<e?0:w[h-e],A=N&&w[(N-1)*L+l*e+f%e],w[h++]=(u+Math.floor((d+A)/2))%256;break;case 4:for(f=I=0;I<L;f=I+=1)u=t[i++],l=(f-f%e)/e,d=f<e?0:w[h-e],0===N?A=x=0:(A=w[(N-1)*L+l*e+f%e],x=l&&w[(N-1)*L+(l-1)*e+f%e]),g=d+A-x,m=Math.abs(g-d),b=Math.abs(g-A),y=Math.abs(g-x),v=m<=b&&m<=y?d:b<=y?A:x,w[h++]=(u+v)%256;break;default:throw new Error(\"Invalid filter algorithm: \"+t[i-1])}if(!j){var O=((o+N*c)*a.width+r)*e,B=N*L;for(f=0;f<F;f+=1){for(var M=0;M<e;M+=1)n[O++]=w[B++];O+=(s-1)*e}}N++}}return t=r(t),1==a.interlaceMethod?(o(0,0,8,8),o(4,0,8,8),o(0,4,4,8),o(2,0,4,4),o(0,2,2,4),o(1,0,2,2),o(0,1,1,2)):o(0,0,1,1),n},a.prototype.decodePalette=function(){var t,e,r,n,i,a,o,s,c;for(r=this.palette,a=this.transparency.indexed||[],i=new Uint8Array((a.length||0)+r.length),n=0,t=0,e=o=0,s=r.length;o<s;e=o+=3)i[n++]=r[e],i[n++]=r[e+1],i[n++]=r[e+2],i[n++]=null!=(c=a[t++])?c:255;return i},a.prototype.copyToImageData=function(t,e){var r,n,i,a,o,s,c,u,h,l,f;if(n=this.colors,h=null,r=this.hasAlphaChannel,this.palette.length&&(h=null!=(f=this._decodedPalette)?f:this._decodedPalette=this.decodePalette(),n=4,r=!0),u=(i=t.data||t).length,o=h||e,a=s=0,1===n)for(;a<u;)c=h?4*e[a/4]:s,l=o[c++],i[a++]=l,i[a++]=l,i[a++]=l,i[a++]=r?o[c++]:255,s=c;else for(;a<u;)c=h?4*e[a/4]:s,i[a++]=o[c++],i[a++]=o[c++],i[a++]=o[c++],i[a++]=r?o[c++]:255,s=c},a.prototype.decode=function(){var t;return t=new Uint8Array(this.width*this.height*4),this.copyToImageData(t,this.decodePixels()),t};var o=function(){if(\"[object Window]\"===Object.prototype.toString.call(n)){try{e=n.document.createElement(\"canvas\"),i=e.getContext(\"2d\")}catch(t){return!1}return!0}return!1};return o(),t=function(t){var r;if(!0===o())return i.width=t.width,i.height=t.height,i.clearRect(0,0,t.width,t.height),i.putImageData(t,0,0),(r=new Image).src=e.toDataURL(),r;throw new Error(\"This method requires a Browser with Canvas-capability.\")},a.prototype.decodeFrames=function(e){var r,n,i,a,o,s,c,u;if(this.animation){for(u=[],n=o=0,s=(c=this.animation.frames).length;o<s;n=++o)r=c[n],i=e.createImageData(r.width,r.height),a=this.decodePixels(new Uint8Array(r.data)),this.copyToImageData(i,a),r.imageData=i,u.push(r.image=t(i));return u}},a.prototype.renderFrame=function(t,e){var r,n,i;return r=(n=this.animation.frames)[e],i=n[e-1],0===e&&t.clearRect(0,0,this.width,this.height),1===(null!=i?i.disposeOp:void 0)?t.clearRect(i.xOffset,i.yOffset,i.width,i.height):2===(null!=i?i.disposeOp:void 0)&&t.putImageData(i.imageData,i.xOffset,i.yOffset),0===r.blendOp&&t.clearRect(r.xOffset,r.yOffset,r.width,r.height),t.drawImage(r.image,r.xOffset,r.yOffset)},a.prototype.animate=function(t){var e,r,n,i,a,o,s=this;return r=0,o=this.animation,i=o.numFrames,n=o.frames,a=o.numPlays,(e=function(){var o,c;if(o=r++%i,c=n[o],s.renderFrame(t,o),i>1&&r/i<a)return s.animation._timeout=setTimeout(e,c.delay)})()},a.prototype.stopAnimation=function(){var t;return clearTimeout(null!=(t=this.animation)?t._timeout:void 0)},a.prototype.render=function(t){var e,r;return t._png&&t._png.stopAnimation(),t._png=this,t.width=this.width,t.height=this.height,e=t.getContext(\"2d\"),this.animation?(this.decodeFrames(e),this.animate(e)):(r=e.createImageData(this.width,this.height),this.copyToImageData(r,this.decodePixels()),e.putImageData(r,0,0))},a}();\n/**\n * @license\n *\n * Copyright (c) 2014 James Robb, https://github.com/jamesbrobb\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n/**\n * @license\n * (c) Dean McNamee <dean@gmail.com>, 2013.\n *\n * https://github.com/deanm/omggif\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n * omggif is a JavaScript implementation of a GIF 89a encoder and decoder,\n * including animation and compression. It does not rely on any specific\n * underlying system, so should run in the browser, Node, or Plask.\n */\nfunction Zt(t){var e=0;if(71!==t[e++]||73!==t[e++]||70!==t[e++]||56!==t[e++]||56!=(t[e++]+1&253)||97!==t[e++])throw new Error(\"Invalid GIF 87a/89a header.\");var r=t[e++]|t[e++]<<8,n=t[e++]|t[e++]<<8,i=t[e++],a=i>>7,o=1<<(7&i)+1;t[e++];t[e++];var s=null,c=null;a&&(s=e,c=o,e+=3*o);var u=!0,h=[],l=0,f=null,d=0,p=null;for(this.width=r,this.height=n;u&&e<t.length;)switch(t[e++]){case 33:switch(t[e++]){case 255:if(11!==t[e]||78==t[e+1]&&69==t[e+2]&&84==t[e+3]&&83==t[e+4]&&67==t[e+5]&&65==t[e+6]&&80==t[e+7]&&69==t[e+8]&&50==t[e+9]&&46==t[e+10]&&48==t[e+11]&&3==t[e+12]&&1==t[e+13]&&0==t[e+16])e+=14,p=t[e++]|t[e++]<<8,e++;else for(e+=12;;){if(!((P=t[e++])>=0))throw Error(\"Invalid block size\");if(0===P)break;e+=P}break;case 249:if(4!==t[e++]||0!==t[e+4])throw new Error(\"Invalid graphics extension block.\");var g=t[e++];l=t[e++]|t[e++]<<8,f=t[e++],0==(1&g)&&(f=null),d=g>>2&7,e++;break;case 254:for(;;){if(!((P=t[e++])>=0))throw Error(\"Invalid block size\");if(0===P)break;e+=P}break;default:throw new Error(\"Unknown graphic control label: 0x\"+t[e-1].toString(16))}break;case 44:var m=t[e++]|t[e++]<<8,v=t[e++]|t[e++]<<8,b=t[e++]|t[e++]<<8,y=t[e++]|t[e++]<<8,w=t[e++],N=w>>6&1,L=1<<(7&w)+1,A=s,x=c,S=!1;if(w>>7){S=!0;A=e,x=L,e+=3*L}var _=e;for(e++;;){var P;if(!((P=t[e++])>=0))throw Error(\"Invalid block size\");if(0===P)break;e+=P}h.push({x:m,y:v,width:b,height:y,has_local_palette:S,palette_offset:A,palette_size:x,data_offset:_,data_length:e-_,transparent_index:f,interlaced:!!N,delay:l,disposal:d});break;case 59:u=!1;break;default:throw new Error(\"Unknown gif block: 0x\"+t[e-1].toString(16))}this.numFrames=function(){return h.length},this.loopCount=function(){return p},this.frameInfo=function(t){if(t<0||t>=h.length)throw new Error(\"Frame index out of range.\");return h[t]},this.decodeAndBlitFrameBGRA=function(e,n){var i=this.frameInfo(e),a=i.width*i.height,o=new Uint8Array(a);$t(t,i.data_offset,o,a);var s=i.palette_offset,c=i.transparent_index;null===c&&(c=256);var u=i.width,h=r-u,l=u,f=4*(i.y*r+i.x),d=4*((i.y+i.height)*r+i.x),p=f,g=4*h;!0===i.interlaced&&(g+=4*r*7);for(var m=8,v=0,b=o.length;v<b;++v){var y=o[v];if(0===l&&(l=u,(p+=g)>=d&&(g=4*h+4*r*(m-1),p=f+(u+h)*(m<<1),m>>=1)),y===c)p+=4;else{var w=t[s+3*y],N=t[s+3*y+1],L=t[s+3*y+2];n[p++]=L,n[p++]=N,n[p++]=w,n[p++]=255}--l}},this.decodeAndBlitFrameRGBA=function(e,n){var i=this.frameInfo(e),a=i.width*i.height,o=new Uint8Array(a);$t(t,i.data_offset,o,a);var s=i.palette_offset,c=i.transparent_index;null===c&&(c=256);var u=i.width,h=r-u,l=u,f=4*(i.y*r+i.x),d=4*((i.y+i.height)*r+i.x),p=f,g=4*h;!0===i.interlaced&&(g+=4*r*7);for(var m=8,v=0,b=o.length;v<b;++v){var y=o[v];if(0===l&&(l=u,(p+=g)>=d&&(g=4*h+4*r*(m-1),p=f+(u+h)*(m<<1),m>>=1)),y===c)p+=4;else{var w=t[s+3*y],N=t[s+3*y+1],L=t[s+3*y+2];n[p++]=w,n[p++]=N,n[p++]=L,n[p++]=255}--l}}}function $t(t,e,r,n){for(var i=t[e++],o=1<<i,s=o+1,c=s+1,u=i+1,h=(1<<u)-1,l=0,f=0,d=0,p=t[e++],g=new Int32Array(4096),m=null;;){for(;l<16&&0!==p;)f|=t[e++]<<l,l+=8,1===p?p=t[e++]:--p;if(l<u)break;var v=f&h;if(f>>=u,l-=u,v!==o){if(v===s)break;for(var b=v<c?v:m,y=0,w=b;w>o;)w=g[w]>>8,++y;var N=w;if(d+y+(b!==v?1:0)>n)return void a.log(\"Warning, gif stream longer than expected.\");r[d++]=N;var L=d+=y;for(b!==v&&(r[d++]=N),w=b;y--;)w=g[w],r[--L]=255&w,w>>=8;null!==m&&c<4096&&(g[c++]=m<<8|N,c>=h+1&&u<12&&(++u,h=h<<1|1)),m=v}else c=s+1,h=(1<<(u=i+1))-1,m=null}return d!==n&&a.log(\"Warning, gif stream shorter than expected.\"),r}\n/**\n * @license\n Copyright (c) 2008, Adobe Systems Incorporated\n All rights reserved.\n\n Redistribution and use in source and binary forms, with or without \n modification, are permitted provided that the following conditions are\n met:\n\n * Redistributions of source code must retain the above copyright notice, \n this list of conditions and the following disclaimer.\n \n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the \n documentation and/or other materials provided with the distribution.\n \n * Neither the name of Adobe Systems Incorporated nor the names of its \n contributors may be used to endorse or promote products derived from \n this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\n IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\n THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR \n CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/function Qt(t){var e,r,n,i,a,o=Math.floor,s=new Array(64),c=new Array(64),u=new Array(64),h=new Array(64),l=new Array(65535),f=new Array(65535),d=new Array(64),p=new Array(64),g=[],m=0,v=7,b=new Array(64),y=new Array(64),w=new Array(64),N=new Array(256),L=new Array(2048),A=[0,1,5,6,14,15,27,28,2,4,7,13,16,26,29,42,3,8,12,17,25,30,41,43,9,11,18,24,31,40,44,53,10,19,23,32,39,45,52,54,20,22,33,38,46,51,55,60,21,34,37,47,50,56,59,61,35,36,48,49,57,58,62,63],x=[0,0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0],S=[0,1,2,3,4,5,6,7,8,9,10,11],_=[0,0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,125],P=[1,2,3,0,4,17,5,18,33,49,65,6,19,81,97,7,34,113,20,50,129,145,161,8,35,66,177,193,21,82,209,240,36,51,98,114,130,9,10,22,23,24,25,26,37,38,39,40,41,42,52,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,225,226,227,228,229,230,231,232,233,234,241,242,243,244,245,246,247,248,249,250],k=[0,0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0],I=[0,1,2,3,4,5,6,7,8,9,10,11],F=[0,0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,119],C=[0,1,2,3,17,4,5,33,49,6,18,65,81,7,97,113,19,34,50,129,8,20,66,145,161,177,193,9,35,51,82,240,21,98,114,209,10,22,36,52,225,37,241,23,24,25,26,38,39,40,41,42,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,130,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,226,227,228,229,230,231,232,233,234,242,243,244,245,246,247,248,249,250];function j(t,e){for(var r=0,n=0,i=new Array,a=1;a<=16;a++){for(var o=1;o<=t[a];o++)i[e[n]]=[],i[e[n]][0]=r,i[e[n]][1]=a,n++,r++;r*=2}return i}function O(t){for(var e=t[0],r=t[1]-1;r>=0;)e&1<<r&&(m|=1<<v),r--,--v<0&&(255==m?(B(255),B(0)):B(m),v=7,m=0)}function B(t){g.push(t)}function M(t){B(t>>8&255),B(255&t)}function E(t,e,r,n,i){for(var a,o=i[0],s=i[240],c=function(t,e){var r,n,i,a,o,s,c,u,h,l,f=0;for(h=0;h<8;++h){r=t[f],n=t[f+1],i=t[f+2],a=t[f+3],o=t[f+4],s=t[f+5],c=t[f+6];var p=r+(u=t[f+7]),g=r-u,m=n+c,v=n-c,b=i+s,y=i-s,w=a+o,N=a-o,L=p+w,A=p-w,x=m+b,S=m-b;t[f]=L+x,t[f+4]=L-x;var _=.707106781*(S+A);t[f+2]=A+_,t[f+6]=A-_;var P=.382683433*((L=N+y)-(S=v+g)),k=.5411961*L+P,I=1.306562965*S+P,F=.707106781*(x=y+v),C=g+F,j=g-F;t[f+5]=j+k,t[f+3]=j-k,t[f+1]=C+I,t[f+7]=C-I,f+=8}for(f=0,h=0;h<8;++h){r=t[f],n=t[f+8],i=t[f+16],a=t[f+24],o=t[f+32],s=t[f+40],c=t[f+48];var O=r+(u=t[f+56]),B=r-u,M=n+c,E=n-c,q=i+s,D=i-s,R=a+o,T=a-o,U=O+R,z=O-R,H=M+q,W=M-q;t[f]=U+H,t[f+32]=U-H;var V=.707106781*(W+z);t[f+16]=z+V,t[f+48]=z-V;var G=.382683433*((U=T+D)-(W=E+B)),Y=.5411961*U+G,J=1.306562965*W+G,X=.707106781*(H=D+E),K=B+X,Z=B-X;t[f+40]=Z+Y,t[f+24]=Z-Y,t[f+8]=K+J,t[f+56]=K-J,f++}for(h=0;h<64;++h)l=t[h]*e[h],d[h]=l>0?l+.5|0:l-.5|0;return d}(t,e),u=0;u<64;++u)p[A[u]]=c[u];var h=p[0]-r;r=p[0],0==h?O(n[0]):(O(n[f[a=32767+h]]),O(l[a]));for(var g=63;g>0&&0==p[g];)g--;if(0==g)return O(o),r;for(var m,v=1;v<=g;){for(var b=v;0==p[v]&&v<=g;)++v;var y=v-b;if(y>=16){m=y>>4;for(var w=1;w<=m;++w)O(s);y&=15}a=32767+p[v],O(i[(y<<4)+f[a]]),O(l[a]),v++}return 63!=g&&O(o),r}function q(t){(t=Math.min(Math.max(t,1),100),a!=t)&&(!function(t){for(var e=[16,11,10,16,24,40,51,61,12,12,14,19,26,58,60,55,14,13,16,24,40,57,69,56,14,17,22,29,51,87,80,62,18,22,37,56,68,109,103,77,24,35,55,64,81,104,113,92,49,64,78,87,103,121,120,101,72,92,95,98,112,100,103,99],r=0;r<64;r++){var n=o((e[r]*t+50)/100);n=Math.min(Math.max(n,1),255),s[A[r]]=n}for(var i=[17,18,24,47,99,99,99,99,18,21,26,66,99,99,99,99,24,26,56,99,99,99,99,99,47,66,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99],a=0;a<64;a++){var l=o((i[a]*t+50)/100);l=Math.min(Math.max(l,1),255),c[A[a]]=l}for(var f=[1,1.387039845,1.306562965,1.175875602,1,.785694958,.5411961,.275899379],d=0,p=0;p<8;p++)for(var g=0;g<8;g++)u[d]=1/(s[A[d]]*f[p]*f[g]*8),h[d]=1/(c[A[d]]*f[p]*f[g]*8),d++}(t<50?Math.floor(5e3/t):Math.floor(200-2*t)),a=t)}this.encode=function(t,a){a&&q(a),g=new Array,m=0,v=7,M(65496),M(65504),M(16),B(74),B(70),B(73),B(70),B(0),B(1),B(1),B(0),M(1),M(1),B(0),B(0),function(){M(65499),M(132),B(0);for(var t=0;t<64;t++)B(s[t]);B(1);for(var e=0;e<64;e++)B(c[e])}(),function(t,e){M(65472),M(17),B(8),M(e),M(t),B(3),B(1),B(17),B(0),B(2),B(17),B(1),B(3),B(17),B(1)}(t.width,t.height),function(){M(65476),M(418),B(0);for(var t=0;t<16;t++)B(x[t+1]);for(var e=0;e<=11;e++)B(S[e]);B(16);for(var r=0;r<16;r++)B(_[r+1]);for(var n=0;n<=161;n++)B(P[n]);B(1);for(var i=0;i<16;i++)B(k[i+1]);for(var a=0;a<=11;a++)B(I[a]);B(17);for(var o=0;o<16;o++)B(F[o+1]);for(var s=0;s<=161;s++)B(C[s])}(),M(65498),M(12),B(3),B(1),B(0),B(2),B(17),B(3),B(17),B(0),B(63),B(0);var o=0,l=0,f=0;m=0,v=7,this.encode.displayName=\"_encode_\";for(var d,p,N,A,j,D,R,T,U,z=t.data,H=t.width,W=t.height,V=4*H,G=0;G<W;){for(d=0;d<V;){for(j=V*G+d,R=-1,T=0,U=0;U<64;U++)D=j+(T=U>>3)*V+(R=4*(7&U)),G+T>=W&&(D-=V*(G+1+T-W)),d+R>=V&&(D-=d+R-V+4),p=z[D++],N=z[D++],A=z[D++],b[U]=(L[p]+L[N+256>>0]+L[A+512>>0]>>16)-128,y[U]=(L[p+768>>0]+L[N+1024>>0]+L[A+1280>>0]>>16)-128,w[U]=(L[p+1280>>0]+L[N+1536>>0]+L[A+1792>>0]>>16)-128;o=E(b,u,o,e,n),l=E(y,h,l,r,i),f=E(w,h,f,r,i),d+=32}G+=8}if(v>=0){var Y=[];Y[1]=v+1,Y[0]=(1<<v+1)-1,O(Y)}return M(65497),new Uint8Array(g)},t=t||50,function(){for(var t=String.fromCharCode,e=0;e<256;e++)N[e]=t(e)}(),e=j(x,S),r=j(k,I),n=j(_,P),i=j(F,C),function(){for(var t=1,e=2,r=1;r<=15;r++){for(var n=t;n<e;n++)f[32767+n]=r,l[32767+n]=[],l[32767+n][1]=r,l[32767+n][0]=n;for(var i=-(e-1);i<=-t;i++)f[32767+i]=r,l[32767+i]=[],l[32767+i][1]=r,l[32767+i][0]=e-1+i;t<<=1,e<<=1}}(),function(){for(var t=0;t<256;t++)L[t]=19595*t,L[t+256>>0]=38470*t,L[t+512>>0]=7471*t+32768,L[t+768>>0]=-11059*t,L[t+1024>>0]=-21709*t,L[t+1280>>0]=32768*t+8421375,L[t+1536>>0]=-27439*t,L[t+1792>>0]=-5329*t}(),q(t)}\n/**\n * @license\n * Copyright (c) 2017 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */function te(t,e){if(this.pos=0,this.buffer=t,this.datav=new DataView(t.buffer),this.is_with_alpha=!!e,this.bottom_up=!0,this.flag=String.fromCharCode(this.buffer[0])+String.fromCharCode(this.buffer[1]),this.pos+=2,-1===[\"BM\",\"BA\",\"CI\",\"CP\",\"IC\",\"PT\"].indexOf(this.flag))throw new Error(\"Invalid BMP File\");this.parseHeader(),this.parseBGR()}function ee(t){function e(t){if(!t)throw Error(\"assert :P\")}function r(t,e,r){for(var n=0;4>n;n++)if(t[e+n]!=r.charCodeAt(n))return!0;return!1}function n(t,e,r,n,i){for(var a=0;a<i;a++)t[e+a]=r[n+a]}function i(t,e,r,n){for(var i=0;i<n;i++)t[e+i]=r}function a(t){return new Int32Array(t)}function o(t,e){for(var r=[],n=0;n<t;n++)r.push(new e);return r}function s(t,e){var r=[];return function t(r,n,i){for(var a=i[n],o=0;o<a&&(r.push(i.length>n+1?[]:new e),!(i.length<n+1));o++)t(r[o],n+1,i)}(r,0,t),r}var c=function(){var t=this;function c(t,e){for(var r=1<<e-1>>>0;t&r;)r>>>=1;return r?(t&r-1)+r:t}function u(t,r,n,i,a){e(!(i%n));do{t[r+(i-=n)]=a}while(0<i)}function h(t,r,n,i,o){if(e(2328>=o),512>=o)var s=a(512);else if(null==(s=a(o)))return 0;return function(t,r,n,i,o,s){var h,f,d=r,p=1<<n,g=a(16),m=a(16);for(e(0!=o),e(null!=i),e(null!=t),e(0<n),f=0;f<o;++f){if(15<i[f])return 0;++g[i[f]]}if(g[0]==o)return 0;for(m[1]=0,h=1;15>h;++h){if(g[h]>1<<h)return 0;m[h+1]=m[h]+g[h]}for(f=0;f<o;++f)h=i[f],0<i[f]&&(s[m[h]++]=f);if(1==m[15])return(i=new l).g=0,i.value=s[0],u(t,d,1,p,i),p;var v,b=-1,y=p-1,w=0,N=1,L=1,A=1<<n;for(f=0,h=1,o=2;h<=n;++h,o<<=1){if(N+=L<<=1,0>(L-=g[h]))return 0;for(;0<g[h];--g[h])(i=new l).g=h,i.value=s[f++],u(t,d+w,o,A,i),w=c(w,h)}for(h=n+1,o=2;15>=h;++h,o<<=1){if(N+=L<<=1,0>(L-=g[h]))return 0;for(;0<g[h];--g[h]){if(i=new l,(w&y)!=b){for(d+=A,v=1<<(b=h)-n;15>b&&!(0>=(v-=g[b]));)++b,v<<=1;p+=A=1<<(v=b-n),t[r+(b=w&y)].g=v+n,t[r+b].value=d-r-b}i.g=h-n,i.value=s[f++],u(t,d+(w>>n),o,A,i),w=c(w,h)}}return N!=2*m[15]-1?0:p}(t,r,n,i,o,s)}function l(){this.value=this.g=0}function f(){this.value=this.g=0}function d(){this.G=o(5,l),this.H=a(5),this.jc=this.Qb=this.qb=this.nd=0,this.pd=o(Dr,f)}function p(t,r,n,i){e(null!=t),e(null!=r),e(2147483648>i),t.Ca=254,t.I=0,t.b=-8,t.Ka=0,t.oa=r,t.pa=n,t.Jd=r,t.Yc=n+i,t.Zc=4<=i?n+i-4+1:n,_(t)}function g(t,e){for(var r=0;0<e--;)r|=k(t,128)<<e;return r}function m(t,e){var r=g(t,e);return P(t)?-r:r}function v(t,r,n,i){var a,o=0;for(e(null!=t),e(null!=r),e(4294967288>i),t.Sb=i,t.Ra=0,t.u=0,t.h=0,4<i&&(i=4),a=0;a<i;++a)o+=r[n+a]<<8*a;t.Ra=o,t.bb=i,t.oa=r,t.pa=n}function b(t){for(;8<=t.u&&t.bb<t.Sb;)t.Ra>>>=8,t.Ra+=t.oa[t.pa+t.bb]<<Ur-8>>>0,++t.bb,t.u-=8;A(t)&&(t.h=1,t.u=0)}function y(t,r){if(e(0<=r),!t.h&&r<=Tr){var n=L(t)&Rr[r];return t.u+=r,b(t),n}return t.h=1,t.u=0}function w(){this.b=this.Ca=this.I=0,this.oa=[],this.pa=0,this.Jd=[],this.Yc=0,this.Zc=[],this.Ka=0}function N(){this.Ra=0,this.oa=[],this.h=this.u=this.bb=this.Sb=this.pa=0}function L(t){return t.Ra>>>(t.u&Ur-1)>>>0}function A(t){return e(t.bb<=t.Sb),t.h||t.bb==t.Sb&&t.u>Ur}function x(t,e){t.u=e,t.h=A(t)}function S(t){t.u>=zr&&(e(t.u>=zr),b(t))}function _(t){e(null!=t&&null!=t.oa),t.pa<t.Zc?(t.I=(t.oa[t.pa++]|t.I<<8)>>>0,t.b+=8):(e(null!=t&&null!=t.oa),t.pa<t.Yc?(t.b+=8,t.I=t.oa[t.pa++]|t.I<<8):t.Ka?t.b=0:(t.I<<=8,t.b+=8,t.Ka=1))}function P(t){return g(t,1)}function k(t,e){var r=t.Ca;0>t.b&&_(t);var n=t.b,i=r*e>>>8,a=(t.I>>>n>i)+0;for(a?(r-=i,t.I-=i+1<<n>>>0):r=i+1,n=r,i=0;256<=n;)i+=8,n>>=8;return n=7^i+Hr[n],t.b-=n,t.Ca=(r<<n)-1,a}function I(t,e,r){t[e+0]=r>>24&255,t[e+1]=r>>16&255,t[e+2]=r>>8&255,t[e+3]=r>>0&255}function F(t,e){return t[e+0]<<0|t[e+1]<<8}function C(t,e){return F(t,e)|t[e+2]<<16}function j(t,e){return F(t,e)|F(t,e+2)<<16}function O(t,r){var n=1<<r;return e(null!=t),e(0<r),t.X=a(n),null==t.X?0:(t.Mb=32-r,t.Xa=r,1)}function B(t,r){e(null!=t),e(null!=r),e(t.Xa==r.Xa),n(r.X,0,t.X,0,1<<r.Xa)}function M(){this.X=[],this.Xa=this.Mb=0}function E(t,r,n,i){e(null!=n),e(null!=i);var a=n[0],o=i[0];return 0==a&&(a=(t*o+r/2)/r),0==o&&(o=(r*a+t/2)/t),0>=a||0>=o?0:(n[0]=a,i[0]=o,1)}function q(t,e){return t+(1<<e)-1>>>e}function D(t,e){return((4278255360&t)+(4278255360&e)>>>0&4278255360)+((16711935&t)+(16711935&e)>>>0&16711935)>>>0}function R(e,r){t[r]=function(r,n,i,a,o,s,c){var u;for(u=0;u<o;++u){var h=t[e](s[c+u-1],i,a+u);s[c+u]=D(r[n+u],h)}}}function T(){this.ud=this.hd=this.jd=0}function U(t,e){return((4278124286&(t^e))>>>1)+(t&e)>>>0}function z(t){return 0<=t&&256>t?t:0>t?0:255<t?255:void 0}function H(t,e){return z(t+(t-e+.5>>1))}function W(t,e,r){return Math.abs(e-r)-Math.abs(t-r)}function V(t,e,r,n,i,a,o){for(n=a[o-1],r=0;r<i;++r)a[o+r]=n=D(t[e+r],n)}function G(t,e,r,n,i){var a;for(a=0;a<r;++a){var o=t[e+a],s=o>>8&255,c=16711935&(c=(c=16711935&o)+((s<<16)+s));n[i+a]=(4278255360&o)+c>>>0}}function Y(t,e){e.jd=t>>0&255,e.hd=t>>8&255,e.ud=t>>16&255}function J(t,e,r,n,i,a){var o;for(o=0;o<n;++o){var s=e[r+o],c=s>>>8,u=s,h=255&(h=(h=s>>>16)+((t.jd<<24>>24)*(c<<24>>24)>>>5));u=255&(u=(u=u+((t.hd<<24>>24)*(c<<24>>24)>>>5))+((t.ud<<24>>24)*(h<<24>>24)>>>5));i[a+o]=(4278255360&s)+(h<<16)+u}}function X(e,r,n,i,a){t[r]=function(t,e,r,n,o,s,c,u,h){for(n=c;n<u;++n)for(c=0;c<h;++c)o[s++]=a(r[i(t[e++])])},t[e]=function(e,r,o,s,c,u,h){var l=8>>e.b,f=e.Ea,d=e.K[0],p=e.w;if(8>l)for(e=(1<<e.b)-1,p=(1<<l)-1;r<o;++r){var g,m=0;for(g=0;g<f;++g)g&e||(m=i(s[c++])),u[h++]=a(d[m&p]),m>>=l}else t[\"VP8LMapColor\"+n](s,c,d,p,u,h,r,o,f)}}function K(t,e,r,n,i){for(r=e+r;e<r;){var a=t[e++];n[i++]=a>>16&255,n[i++]=a>>8&255,n[i++]=a>>0&255}}function Z(t,e,r,n,i){for(r=e+r;e<r;){var a=t[e++];n[i++]=a>>16&255,n[i++]=a>>8&255,n[i++]=a>>0&255,n[i++]=a>>24&255}}function $(t,e,r,n,i){for(r=e+r;e<r;){var a=(o=t[e++])>>16&240|o>>12&15,o=o>>0&240|o>>28&15;n[i++]=a,n[i++]=o}}function Q(t,e,r,n,i){for(r=e+r;e<r;){var a=(o=t[e++])>>16&248|o>>13&7,o=o>>5&224|o>>3&31;n[i++]=a,n[i++]=o}}function tt(t,e,r,n,i){for(r=e+r;e<r;){var a=t[e++];n[i++]=a>>0&255,n[i++]=a>>8&255,n[i++]=a>>16&255}}function et(t,e,r,i,a,o){if(0==o)for(r=e+r;e<r;)I(i,((o=t[e++])[0]>>24|o[1]>>8&65280|o[2]<<8&16711680|o[3]<<24)>>>0),a+=32;else n(i,a,t,e,r)}function rt(e,r){t[r][0]=t[e+\"0\"],t[r][1]=t[e+\"1\"],t[r][2]=t[e+\"2\"],t[r][3]=t[e+\"3\"],t[r][4]=t[e+\"4\"],t[r][5]=t[e+\"5\"],t[r][6]=t[e+\"6\"],t[r][7]=t[e+\"7\"],t[r][8]=t[e+\"8\"],t[r][9]=t[e+\"9\"],t[r][10]=t[e+\"10\"],t[r][11]=t[e+\"11\"],t[r][12]=t[e+\"12\"],t[r][13]=t[e+\"13\"],t[r][14]=t[e+\"0\"],t[r][15]=t[e+\"0\"]}function nt(t){return t==Hn||t==Wn||t==Vn||t==Gn}function it(){this.eb=[],this.size=this.A=this.fb=0}function at(){this.y=[],this.f=[],this.ea=[],this.F=[],this.Tc=this.Ed=this.Cd=this.Fd=this.lb=this.Db=this.Ab=this.fa=this.J=this.W=this.N=this.O=0}function ot(){this.Rd=this.height=this.width=this.S=0,this.f={},this.f.RGBA=new it,this.f.kb=new at,this.sd=null}function st(){this.width=[0],this.height=[0],this.Pd=[0],this.Qd=[0],this.format=[0]}function ct(){this.Id=this.fd=this.Md=this.hb=this.ib=this.da=this.bd=this.cd=this.j=this.v=this.Da=this.Sd=this.ob=0}function ut(t){return alert(\"todo:WebPSamplerProcessPlane\"),t.T}function ht(t,e){var r=t.T,i=e.ba.f.RGBA,a=i.eb,o=i.fb+t.ka*i.A,s=vi[e.ba.S],c=t.y,u=t.O,h=t.f,l=t.N,f=t.ea,d=t.W,p=e.cc,g=e.dc,m=e.Mc,v=e.Nc,b=t.ka,y=t.ka+t.T,w=t.U,N=w+1>>1;for(0==b?s(c,u,null,null,h,l,f,d,h,l,f,d,a,o,null,null,w):(s(e.ec,e.fc,c,u,p,g,m,v,h,l,f,d,a,o-i.A,a,o,w),++r);b+2<y;b+=2)p=h,g=l,m=f,v=d,l+=t.Rc,d+=t.Rc,o+=2*i.A,s(c,(u+=2*t.fa)-t.fa,c,u,p,g,m,v,h,l,f,d,a,o-i.A,a,o,w);return u+=t.fa,t.j+y<t.o?(n(e.ec,e.fc,c,u,w),n(e.cc,e.dc,h,l,N),n(e.Mc,e.Nc,f,d,N),r--):1&y||s(c,u,null,null,h,l,f,d,h,l,f,d,a,o+i.A,null,null,w),r}function lt(t,r,n){var i=t.F,a=[t.J];if(null!=i){var o=t.U,s=r.ba.S,c=s==Tn||s==Vn;r=r.ba.f.RGBA;var u=[0],h=t.ka;u[0]=t.T,t.Kb&&(0==h?--u[0]:(--h,a[0]-=t.width),t.j+t.ka+t.T==t.o&&(u[0]=t.o-t.j-h));var l=r.eb;h=r.fb+h*r.A;t=Sn(i,a[0],t.width,o,u,l,h+(c?0:3),r.A),e(n==u),t&&nt(s)&&An(l,h,c,o,u,r.A)}return 0}function ft(t){var e=t.ma,r=e.ba.S,n=11>r,i=r==qn||r==Rn||r==Tn||r==Un||12==r||nt(r);if(e.memory=null,e.Ib=null,e.Jb=null,e.Nd=null,!Mr(e.Oa,t,i?11:12))return 0;if(i&&nt(r)&&br(),t.da)alert(\"todo:use_scaling\");else{if(n){if(e.Ib=ut,t.Kb){if(r=t.U+1>>1,e.memory=a(t.U+2*r),null==e.memory)return 0;e.ec=e.memory,e.fc=0,e.cc=e.ec,e.dc=e.fc+t.U,e.Mc=e.cc,e.Nc=e.dc+r,e.Ib=ht,br()}}else alert(\"todo:EmitYUV\");i&&(e.Jb=lt,n&&mr())}if(n&&!Ci){for(t=0;256>t;++t)ji[t]=89858*(t-128)+_i>>Si,Mi[t]=-22014*(t-128)+_i,Bi[t]=-45773*(t-128),Oi[t]=113618*(t-128)+_i>>Si;for(t=Pi;t<ki;++t)e=76283*(t-16)+_i>>Si,Ei[t-Pi]=Vt(e,255),qi[t-Pi]=Vt(e+8>>4,15);Ci=1}return 1}function dt(t){var r=t.ma,n=t.U,i=t.T;return e(!(1&t.ka)),0>=n||0>=i?0:(n=r.Ib(t,r),null!=r.Jb&&r.Jb(t,r,n),r.Dc+=n,1)}function pt(t){t.ma.memory=null}function gt(t,e,r,n){return 47!=y(t,8)?0:(e[0]=y(t,14)+1,r[0]=y(t,14)+1,n[0]=y(t,1),0!=y(t,3)?0:!t.h)}function mt(t,e){if(4>t)return t+1;var r=t-2>>1;return(2+(1&t)<<r)+y(e,r)+1}function vt(t,e){return 120<e?e-120:1<=(r=((r=$n[e-1])>>4)*t+(8-(15&r)))?r:1;var r}function bt(t,e,r){var n=L(r),i=t[e+=255&n].g-8;return 0<i&&(x(r,r.u+8),n=L(r),e+=t[e].value,e+=n&(1<<i)-1),x(r,r.u+t[e].g),t[e].value}function yt(t,r,n){return n.g+=t.g,n.value+=t.value<<r>>>0,e(8>=n.g),t.g}function wt(t,r,n){var i=t.xc;return e((r=0==i?0:t.vc[t.md*(n>>i)+(r>>i)])<t.Wb),t.Ya[r]}function Nt(t,r,i,a){var o=t.ab,s=t.c*r,c=t.C;r=c+r;var u=i,h=a;for(a=t.Ta,i=t.Ua;0<o--;){var l=t.gc[o],f=c,d=r,p=u,g=h,m=(h=a,u=i,l.Ea);switch(e(f<d),e(d<=l.nc),l.hc){case 2:Gr(p,g,(d-f)*m,h,u);break;case 0:var v=f,b=d,y=h,w=u,N=(_=l).Ea;0==v&&(Wr(p,g,null,null,1,y,w),V(p,g+1,0,0,N-1,y,w+1),g+=N,w+=N,++v);for(var L=1<<_.b,A=L-1,x=q(N,_.b),S=_.K,_=_.w+(v>>_.b)*x;v<b;){var P=S,k=_,I=1;for(Vr(p,g,y,w-N,1,y,w);I<N;){var F=(I&~A)+L;F>N&&(F=N),(0,Zr[P[k++]>>8&15])(p,g+ +I,y,w+I-N,F-I,y,w+I),I=F}g+=N,w+=N,++v&A||(_+=x)}d!=l.nc&&n(h,u-m,h,u+(d-f-1)*m,m);break;case 1:for(m=p,b=g,N=(p=l.Ea)-(w=p&~(y=(g=1<<l.b)-1)),v=q(p,l.b),L=l.K,l=l.w+(f>>l.b)*v;f<d;){for(A=L,x=l,S=new T,_=b+w,P=b+p;b<_;)Y(A[x++],S),$r(S,m,b,g,h,u),b+=g,u+=g;b<P&&(Y(A[x++],S),$r(S,m,b,N,h,u),b+=N,u+=N),++f&y||(l+=v)}break;case 3:if(p==h&&g==u&&0<l.b){for(b=h,p=m=u+(d-f)*m-(w=(d-f)*q(l.Ea,l.b)),g=h,y=u,v=[],w=(N=w)-1;0<=w;--w)v[w]=g[y+w];for(w=N-1;0<=w;--w)b[p+w]=v[w];Yr(l,f,d,h,m,h,u)}else Yr(l,f,d,p,g,h,u)}u=a,h=i}h!=i&&n(a,i,u,h,s)}function Lt(t,r){var n=t.V,i=t.Ba+t.c*t.C,a=r-t.C;if(e(r<=t.l.o),e(16>=a),0<a){var o=t.l,s=t.Ta,c=t.Ua,u=o.width;if(Nt(t,a,n,i),a=c=[c],e((n=t.C)<(i=r)),e(o.v<o.va),i>o.o&&(i=o.o),n<o.j){var h=o.j-n;n=o.j;a[0]+=h*u}if(n>=i?n=0:(a[0]+=4*o.v,o.ka=n-o.j,o.U=o.va-o.v,o.T=i-n,n=1),n){if(c=c[0],11>(n=t.ca).S){var l=n.f.RGBA,f=(i=n.S,a=o.U,o=o.T,h=l.eb,l.A),d=o;for(l=l.fb+t.Ma*l.A;0<d--;){var p=s,g=c,m=a,v=h,b=l;switch(i){case En:Qr(p,g,m,v,b);break;case qn:tn(p,g,m,v,b);break;case Hn:tn(p,g,m,v,b),An(v,b,0,m,1,0);break;case Dn:nn(p,g,m,v,b);break;case Rn:et(p,g,m,v,b,1);break;case Wn:et(p,g,m,v,b,1),An(v,b,0,m,1,0);break;case Tn:et(p,g,m,v,b,0);break;case Vn:et(p,g,m,v,b,0),An(v,b,1,m,1,0);break;case Un:en(p,g,m,v,b);break;case Gn:en(p,g,m,v,b),xn(v,b,m,1,0);break;case zn:rn(p,g,m,v,b);break;default:e(0)}c+=u,l+=f}t.Ma+=o}else alert(\"todo:EmitRescaledRowsYUVA\");e(t.Ma<=n.height)}}t.C=r,e(t.C<=t.i)}function At(t){var e;if(0<t.ua)return 0;for(e=0;e<t.Wb;++e){var r=t.Ya[e].G,n=t.Ya[e].H;if(0<r[1][n[1]+0].g||0<r[2][n[2]+0].g||0<r[3][n[3]+0].g)return 0}return 1}function xt(t,r,n,i,a,o){if(0!=t.Z){var s=t.qd,c=t.rd;for(e(null!=mi[t.Z]);r<n;++r)mi[t.Z](s,c,i,a,i,a,o),s=i,c=a,a+=o;t.qd=s,t.rd=c}}function St(t,r){var n=t.l.ma,i=0==n.Z||1==n.Z?t.l.j:t.C;i=t.C<i?i:t.C;if(e(r<=t.l.o),r>i){var a=t.l.width,o=n.ca,s=n.tb+a*i,c=t.V,u=t.Ba+t.c*i,h=t.gc;e(1==t.ab),e(3==h[0].hc),Xr(h[0],i,r,c,u,o,s),xt(n,i,r,o,s,a)}t.C=t.Ma=r}function _t(t,r,n,i,a,o,s){var c=t.$/i,u=t.$%i,h=t.m,l=t.s,f=n+t.$,d=f;a=n+i*a;var p=n+i*o,g=280+l.ua,m=t.Pb?c:16777216,v=0<l.ua?l.Wa:null,b=l.wc,y=f<p?wt(l,u,c):null;e(t.C<o),e(p<=a);var w=!1;t:for(;;){for(;w||f<p;){var N=0;if(c>=m){var _=f-n;e((m=t).Pb),m.wd=m.m,m.xd=_,0<m.s.ua&&B(m.s.Wa,m.s.vb),m=c+ti}if(u&b||(y=wt(l,u,c)),e(null!=y),y.Qb&&(r[f]=y.qb,w=!0),!w)if(S(h),y.jc){N=h,_=r;var P=f,k=y.pd[L(N)&Dr-1];e(y.jc),256>k.g?(x(N,N.u+k.g),_[P]=k.value,N=0):(x(N,N.u+k.g-256),e(256<=k.value),N=k.value),0==N&&(w=!0)}else N=bt(y.G[0],y.H[0],h);if(h.h)break;if(w||256>N){if(!w)if(y.nd)r[f]=(y.qb|N<<8)>>>0;else{if(S(h),w=bt(y.G[1],y.H[1],h),S(h),_=bt(y.G[2],y.H[2],h),P=bt(y.G[3],y.H[3],h),h.h)break;r[f]=(P<<24|w<<16|N<<8|_)>>>0}if(w=!1,++f,++u>=i&&(u=0,++c,null!=s&&c<=o&&!(c%16)&&s(t,c),null!=v))for(;d<f;)N=r[d++],v.X[(506832829*N&4294967295)>>>v.Mb]=N}else if(280>N){if(N=mt(N-256,h),_=bt(y.G[4],y.H[4],h),S(h),_=vt(i,_=mt(_,h)),h.h)break;if(f-n<_||a-f<N)break t;for(P=0;P<N;++P)r[f+P]=r[f+P-_];for(f+=N,u+=N;u>=i;)u-=i,++c,null!=s&&c<=o&&!(c%16)&&s(t,c);if(e(f<=a),u&b&&(y=wt(l,u,c)),null!=v)for(;d<f;)N=r[d++],v.X[(506832829*N&4294967295)>>>v.Mb]=N}else{if(!(N<g))break t;for(w=N-280,e(null!=v);d<f;)N=r[d++],v.X[(506832829*N&4294967295)>>>v.Mb]=N;N=f,e(!(w>>>(_=v).Xa)),r[N]=_.X[w],w=!0}w||e(h.h==A(h))}if(t.Pb&&h.h&&f<a)e(t.m.h),t.a=5,t.m=t.wd,t.$=t.xd,0<t.s.ua&&B(t.s.vb,t.s.Wa);else{if(h.h)break t;null!=s&&s(t,c>o?o:c),t.a=0,t.$=f-n}return 1}return t.a=3,0}function Pt(t){e(null!=t),t.vc=null,t.yc=null,t.Ya=null;var r=t.Wa;null!=r&&(r.X=null),t.vb=null,e(null!=t)}function kt(){var e=new or;return null==e?null:(e.a=0,e.xb=gi,rt(\"Predictor\",\"VP8LPredictors\"),rt(\"Predictor\",\"VP8LPredictors_C\"),rt(\"PredictorAdd\",\"VP8LPredictorsAdd\"),rt(\"PredictorAdd\",\"VP8LPredictorsAdd_C\"),Gr=G,$r=J,Qr=K,tn=Z,en=$,rn=Q,nn=tt,t.VP8LMapColor32b=Jr,t.VP8LMapColor8b=Kr,e)}function It(t,r,n,s,c){var u=1,f=[t],p=[r],g=s.m,m=s.s,v=null,b=0;t:for(;;){if(n)for(;u&&y(g,1);){var w=f,N=p,A=s,_=1,P=A.m,k=A.gc[A.ab],I=y(P,2);if(A.Oc&1<<I)u=0;else{switch(A.Oc|=1<<I,k.hc=I,k.Ea=w[0],k.nc=N[0],k.K=[null],++A.ab,e(4>=A.ab),I){case 0:case 1:k.b=y(P,3)+2,_=It(q(k.Ea,k.b),q(k.nc,k.b),0,A,k.K),k.K=k.K[0];break;case 3:var F,C=y(P,8)+1,j=16<C?0:4<C?1:2<C?2:3;if(w[0]=q(k.Ea,j),k.b=j,F=_=It(C,1,0,A,k.K)){var B,M=C,E=k,R=1<<(8>>E.b),T=a(R);if(null==T)F=0;else{var U=E.K[0],z=E.w;for(T[0]=E.K[0][0],B=1;B<1*M;++B)T[B]=D(U[z+B],T[B-1]);for(;B<4*R;++B)T[B]=0;E.K[0]=null,E.K[0]=T,F=1}}_=F;break;case 2:break;default:e(0)}u=_}}if(f=f[0],p=p[0],u&&y(g,1)&&!(u=1<=(b=y(g,4))&&11>=b)){s.a=3;break t}var H;if(H=u)e:{var W,V,G,Y=s,J=f,X=p,K=b,Z=n,$=Y.m,Q=Y.s,tt=[null],et=1,rt=0,nt=Qn[K];r:for(;;){if(Z&&y($,1)){var it=y($,3)+2,at=q(J,it),ot=q(X,it),st=at*ot;if(!It(at,ot,0,Y,tt))break r;for(tt=tt[0],Q.xc=it,W=0;W<st;++W){var ct=tt[W]>>8&65535;tt[W]=ct,ct>=et&&(et=ct+1)}}if($.h)break r;for(V=0;5>V;++V){var ut=Xn[V];!V&&0<K&&(ut+=1<<K),rt<ut&&(rt=ut)}var ht=o(et*nt,l),lt=et,ft=o(lt,d);if(null==ft)var dt=null;else e(65536>=lt),dt=ft;var pt=a(rt);if(null==dt||null==pt||null==ht){Y.a=1;break r}var gt=ht;for(W=G=0;W<et;++W){var mt=dt[W],vt=mt.G,bt=mt.H,wt=0,Nt=1,Lt=0;for(V=0;5>V;++V){ut=Xn[V],vt[V]=gt,bt[V]=G,!V&&0<K&&(ut+=1<<K);n:{var At,xt=ut,St=Y,kt=pt,Ft=gt,Ct=G,jt=0,Ot=St.m,Bt=y(Ot,1);if(i(kt,0,0,xt),Bt){var Mt=y(Ot,1)+1,Et=y(Ot,1),qt=y(Ot,0==Et?1:8);kt[qt]=1,2==Mt&&(kt[qt=y(Ot,8)]=1);var Dt=1}else{var Rt=a(19),Tt=y(Ot,4)+4;if(19<Tt){St.a=3;var Ut=0;break n}for(At=0;At<Tt;++At)Rt[Zn[At]]=y(Ot,3);var zt=void 0,Ht=void 0,Wt=St,Vt=Rt,Gt=xt,Yt=kt,Jt=0,Xt=Wt.m,Kt=8,Zt=o(128,l);i:for(;h(Zt,0,7,Vt,19);){if(y(Xt,1)){var $t=2+2*y(Xt,3);if((zt=2+y(Xt,$t))>Gt)break i}else zt=Gt;for(Ht=0;Ht<Gt&&zt--;){S(Xt);var Qt=Zt[0+(127&L(Xt))];x(Xt,Xt.u+Qt.g);var te=Qt.value;if(16>te)Yt[Ht++]=te,0!=te&&(Kt=te);else{var ee=16==te,re=te-16,ne=Jn[re],ie=y(Xt,Yn[re])+ne;if(Ht+ie>Gt)break i;for(var ae=ee?Kt:0;0<ie--;)Yt[Ht++]=ae}}Jt=1;break i}Jt||(Wt.a=3),Dt=Jt}(Dt=Dt&&!Ot.h)&&(jt=h(Ft,Ct,8,kt,xt)),Dt&&0!=jt?Ut=jt:(St.a=3,Ut=0)}if(0==Ut)break r;if(Nt&&1==Kn[V]&&(Nt=0==gt[G].g),wt+=gt[G].g,G+=Ut,3>=V){var oe,se=pt[0];for(oe=1;oe<ut;++oe)pt[oe]>se&&(se=pt[oe]);Lt+=se}}if(mt.nd=Nt,mt.Qb=0,Nt&&(mt.qb=(vt[3][bt[3]+0].value<<24|vt[1][bt[1]+0].value<<16|vt[2][bt[2]+0].value)>>>0,0==wt&&256>vt[0][bt[0]+0].value&&(mt.Qb=1,mt.qb+=vt[0][bt[0]+0].value<<8)),mt.jc=!mt.Qb&&6>Lt,mt.jc){var ce,ue=mt;for(ce=0;ce<Dr;++ce){var he=ce,le=ue.pd[he],fe=ue.G[0][ue.H[0]+he];256<=fe.value?(le.g=fe.g+256,le.value=fe.value):(le.g=0,le.value=0,he>>=yt(fe,8,le),he>>=yt(ue.G[1][ue.H[1]+he],16,le),he>>=yt(ue.G[2][ue.H[2]+he],0,le),yt(ue.G[3][ue.H[3]+he],24,le))}}}Q.vc=tt,Q.Wb=et,Q.Ya=dt,Q.yc=ht,H=1;break e}H=0}if(!(u=H)){s.a=3;break t}if(0<b){if(m.ua=1<<b,!O(m.Wa,b)){s.a=1,u=0;break t}}else m.ua=0;var de=s,pe=f,ge=p,me=de.s,ve=me.xc;if(de.c=pe,de.i=ge,me.md=q(pe,ve),me.wc=0==ve?-1:(1<<ve)-1,n){s.xb=pi;break t}if(null==(v=a(f*p))){s.a=1,u=0;break t}u=(u=_t(s,v,0,f,p,p,null))&&!g.h;break t}return u?(null!=c?c[0]=v:(e(null==v),e(n)),s.$=0,n||Pt(m)):Pt(m),u}function Ft(t,r){var n=t.c*t.i,i=n+r+16*r;return e(t.c<=r),t.V=a(i),null==t.V?(t.Ta=null,t.Ua=0,t.a=1,0):(t.Ta=t.V,t.Ua=t.Ba+n+r,1)}function Ct(t,r){var n=t.C,i=r-n,a=t.V,o=t.Ba+t.c*n;for(e(r<=t.l.o);0<i;){var s=16<i?16:i,c=t.l.ma,u=t.l.width,h=u*s,l=c.ca,f=c.tb+u*n,d=t.Ta,p=t.Ua;Nt(t,s,a,o),_n(d,p,l,f,h),xt(c,n,n+s,l,f,u),i-=s,a+=s*t.c,n+=s}e(n==r),t.C=t.Ma=r}function jt(){this.ub=this.yd=this.td=this.Rb=0}function Ot(){this.Kd=this.Ld=this.Ud=this.Td=this.i=this.c=0}function Bt(){this.Fb=this.Bb=this.Cb=0,this.Zb=a(4),this.Lb=a(4)}function Mt(){this.Yb=function(){var t=[];return function t(e,r,n){for(var i=n[r],a=0;a<i&&(e.push(n.length>r+1?[]:0),!(n.length<r+1));a++)t(e[a],r+1,n)}(t,0,[3,11]),t}()}function Et(){this.jb=a(3),this.Wc=s([4,8],Mt),this.Xc=s([4,17],Mt)}function qt(){this.Pc=this.wb=this.Tb=this.zd=0,this.vd=new a(4),this.od=new a(4)}function Dt(){this.ld=this.La=this.dd=this.tc=0}function Rt(){this.Na=this.la=0}function Tt(){this.Sc=[0,0],this.Eb=[0,0],this.Qc=[0,0],this.ia=this.lc=0}function Ut(){this.ad=a(384),this.Za=0,this.Ob=a(16),this.$b=this.Ad=this.ia=this.Gc=this.Hc=this.Dd=0}function zt(){this.uc=this.M=this.Nb=0,this.wa=Array(new Dt),this.Y=0,this.ya=Array(new Ut),this.aa=0,this.l=new Gt}function Ht(){this.y=a(16),this.f=a(8),this.ea=a(8)}function Wt(){this.cb=this.a=0,this.sc=\"\",this.m=new w,this.Od=new jt,this.Kc=new Ot,this.ed=new qt,this.Qa=new Bt,this.Ic=this.$c=this.Aa=0,this.D=new zt,this.Xb=this.Va=this.Hb=this.zb=this.yb=this.Ub=this.za=0,this.Jc=o(8,w),this.ia=0,this.pb=o(4,Tt),this.Pa=new Et,this.Bd=this.kc=0,this.Ac=[],this.Bc=0,this.zc=[0,0,0,0],this.Gd=Array(new Ht),this.Hd=0,this.rb=Array(new Rt),this.sb=0,this.wa=Array(new Dt),this.Y=0,this.oc=[],this.pc=0,this.sa=[],this.ta=0,this.qa=[],this.ra=0,this.Ha=[],this.B=this.R=this.Ia=0,this.Ec=[],this.M=this.ja=this.Vb=this.Fc=0,this.ya=Array(new Ut),this.L=this.aa=0,this.gd=s([4,2],Dt),this.ga=null,this.Fa=[],this.Cc=this.qc=this.P=0,this.Gb=[],this.Uc=0,this.mb=[],this.nb=0,this.rc=[],this.Ga=this.Vc=0}function Vt(t,e){return 0>t?0:t>e?e:t}function Gt(){this.T=this.U=this.ka=this.height=this.width=0,this.y=[],this.f=[],this.ea=[],this.Rc=this.fa=this.W=this.N=this.O=0,this.ma=\"void\",this.put=\"VP8IoPutHook\",this.ac=\"VP8IoSetupHook\",this.bc=\"VP8IoTeardownHook\",this.ha=this.Kb=0,this.data=[],this.hb=this.ib=this.da=this.o=this.j=this.va=this.v=this.Da=this.ob=this.w=0,this.F=[],this.J=0}function Yt(){var t=new Wt;return null!=t&&(t.a=0,t.sc=\"OK\",t.cb=0,t.Xb=0,ni||(ni=Zt)),t}function Jt(t,e,r){return 0==t.a&&(t.a=e,t.sc=r,t.cb=0),0}function Xt(t,e,r){return 3<=r&&157==t[e+0]&&1==t[e+1]&&42==t[e+2]}function Kt(t,r){if(null==t)return 0;if(t.a=0,t.sc=\"OK\",null==r)return Jt(t,2,\"null VP8Io passed to VP8GetHeaders()\");var n=r.data,a=r.w,o=r.ha;if(4>o)return Jt(t,7,\"Truncated header.\");var s=n[a+0]|n[a+1]<<8|n[a+2]<<16,c=t.Od;if(c.Rb=!(1&s),c.td=s>>1&7,c.yd=s>>4&1,c.ub=s>>5,3<c.td)return Jt(t,3,\"Incorrect keyframe parameters.\");if(!c.yd)return Jt(t,4,\"Frame not displayable.\");a+=3,o-=3;var u=t.Kc;if(c.Rb){if(7>o)return Jt(t,7,\"cannot parse picture header\");if(!Xt(n,a,o))return Jt(t,3,\"Bad code word\");u.c=16383&(n[a+4]<<8|n[a+3]),u.Td=n[a+4]>>6,u.i=16383&(n[a+6]<<8|n[a+5]),u.Ud=n[a+6]>>6,a+=7,o-=7,t.za=u.c+15>>4,t.Ub=u.i+15>>4,r.width=u.c,r.height=u.i,r.Da=0,r.j=0,r.v=0,r.va=r.width,r.o=r.height,r.da=0,r.ib=r.width,r.hb=r.height,r.U=r.width,r.T=r.height,i((s=t.Pa).jb,0,255,s.jb.length),e(null!=(s=t.Qa)),s.Cb=0,s.Bb=0,s.Fb=1,i(s.Zb,0,0,s.Zb.length),i(s.Lb,0,0,s.Lb)}if(c.ub>o)return Jt(t,7,\"bad partition length\");p(s=t.m,n,a,c.ub),a+=c.ub,o-=c.ub,c.Rb&&(u.Ld=P(s),u.Kd=P(s)),u=t.Qa;var h,l=t.Pa;if(e(null!=s),e(null!=u),u.Cb=P(s),u.Cb){if(u.Bb=P(s),P(s)){for(u.Fb=P(s),h=0;4>h;++h)u.Zb[h]=P(s)?m(s,7):0;for(h=0;4>h;++h)u.Lb[h]=P(s)?m(s,6):0}if(u.Bb)for(h=0;3>h;++h)l.jb[h]=P(s)?g(s,8):255}else u.Bb=0;if(s.Ka)return Jt(t,3,\"cannot parse segment header\");if((u=t.ed).zd=P(s),u.Tb=g(s,6),u.wb=g(s,3),u.Pc=P(s),u.Pc&&P(s)){for(l=0;4>l;++l)P(s)&&(u.vd[l]=m(s,6));for(l=0;4>l;++l)P(s)&&(u.od[l]=m(s,6))}if(t.L=0==u.Tb?0:u.zd?1:2,s.Ka)return Jt(t,3,\"cannot parse filter header\");var f=o;if(o=h=a,a=h+f,u=f,t.Xb=(1<<g(t.m,2))-1,f<3*(l=t.Xb))n=7;else{for(h+=3*l,u-=3*l,f=0;f<l;++f){var d=n[o+0]|n[o+1]<<8|n[o+2]<<16;d>u&&(d=u),p(t.Jc[+f],n,h,d),h+=d,u-=d,o+=3}p(t.Jc[+l],n,h,u),n=h<a?0:5}if(0!=n)return Jt(t,n,\"cannot parse partitions\");for(n=g(h=t.m,7),o=P(h)?m(h,4):0,a=P(h)?m(h,4):0,u=P(h)?m(h,4):0,l=P(h)?m(h,4):0,h=P(h)?m(h,4):0,f=t.Qa,d=0;4>d;++d){if(f.Cb){var v=f.Zb[d];f.Fb||(v+=n)}else{if(0<d){t.pb[d]=t.pb[0];continue}v=n}var b=t.pb[d];b.Sc[0]=ei[Vt(v+o,127)],b.Sc[1]=ri[Vt(v+0,127)],b.Eb[0]=2*ei[Vt(v+a,127)],b.Eb[1]=101581*ri[Vt(v+u,127)]>>16,8>b.Eb[1]&&(b.Eb[1]=8),b.Qc[0]=ei[Vt(v+l,117)],b.Qc[1]=ri[Vt(v+h,127)],b.lc=v+h}if(!c.Rb)return Jt(t,4,\"Not a key frame.\");for(P(s),c=t.Pa,n=0;4>n;++n){for(o=0;8>o;++o)for(a=0;3>a;++a)for(u=0;11>u;++u)l=k(s,ui[n][o][a][u])?g(s,8):si[n][o][a][u],c.Wc[n][o].Yb[a][u]=l;for(o=0;17>o;++o)c.Xc[n][o]=c.Wc[n][hi[o]]}return t.kc=P(s),t.kc&&(t.Bd=g(s,8)),t.cb=1}function Zt(t,e,r,n,i,a,o){var s=e[i].Yb[r];for(r=0;16>i;++i){if(!k(t,s[r+0]))return i;for(;!k(t,s[r+1]);)if(s=e[++i].Yb[0],r=0,16==i)return 16;var c=e[i+1].Yb;if(k(t,s[r+2])){var u=t,h=0;if(k(u,(f=s)[(l=r)+3]))if(k(u,f[l+6])){for(s=0,l=2*(h=k(u,f[l+8]))+(f=k(u,f[l+9+h])),h=0,f=ii[l];f[s];++s)h+=h+k(u,f[s]);h+=3+(8<<l)}else k(u,f[l+7])?(h=7+2*k(u,165),h+=k(u,145)):h=5+k(u,159);else h=k(u,f[l+4])?3+k(u,f[l+5]):2;s=c[2]}else h=1,s=c[1];c=o+ai[i],0>(u=t).b&&_(u);var l,f=u.b,d=(l=u.Ca>>1)-(u.I>>f)>>31;--u.b,u.Ca+=d,u.Ca|=1,u.I-=(l+1&d)<<f,a[c]=((h^d)-d)*n[(0<i)+0]}return 16}function $t(t){var e=t.rb[t.sb-1];e.la=0,e.Na=0,i(t.zc,0,0,t.zc.length),t.ja=0}function Qt(t,r){if(null==t)return 0;if(null==r)return Jt(t,2,\"NULL VP8Io parameter in VP8Decode().\");if(!t.cb&&!Kt(t,r))return 0;if(e(t.cb),null==r.ac||r.ac(r)){r.ob&&(t.L=0);var s=Ri[t.L];if(2==t.L?(t.yb=0,t.zb=0):(t.yb=r.v-s>>4,t.zb=r.j-s>>4,0>t.yb&&(t.yb=0),0>t.zb&&(t.zb=0)),t.Va=r.o+15+s>>4,t.Hb=r.va+15+s>>4,t.Hb>t.za&&(t.Hb=t.za),t.Va>t.Ub&&(t.Va=t.Ub),0<t.L){var c=t.ed;for(s=0;4>s;++s){var u;if(t.Qa.Cb){var h=t.Qa.Lb[s];t.Qa.Fb||(h+=c.Tb)}else h=c.Tb;for(u=0;1>=u;++u){var l=t.gd[s][u],f=h;if(c.Pc&&(f+=c.vd[0],u&&(f+=c.od[0])),0<(f=0>f?0:63<f?63:f)){var d=f;0<c.wb&&((d=4<c.wb?d>>2:d>>1)>9-c.wb&&(d=9-c.wb)),1>d&&(d=1),l.dd=d,l.tc=2*f+d,l.ld=40<=f?2:15<=f?1:0}else l.tc=0;l.La=u}}}s=0}else Jt(t,6,\"Frame setup failed\"),s=t.a;if(s=0==s){if(s){t.$c=0,0<t.Aa||(t.Ic=Ui);t:{s=t.Ic;c=4*(d=t.za);var p=32*d,g=d+1,m=0<t.L?d*(0<t.Aa?2:1):0,v=(2==t.Aa?2:1)*d;if((l=c+832+(u=3*(16*s+Ri[t.L])/2*p)+(h=null!=t.Fa&&0<t.Fa.length?t.Kc.c*t.Kc.i:0))!=l)s=0;else{if(l>t.Vb){if(t.Vb=0,t.Ec=a(l),t.Fc=0,null==t.Ec){s=Jt(t,1,\"no memory during frame initialization.\");break t}t.Vb=l}l=t.Ec,f=t.Fc,t.Ac=l,t.Bc=f,f+=c,t.Gd=o(p,Ht),t.Hd=0,t.rb=o(g+1,Rt),t.sb=1,t.wa=m?o(m,Dt):null,t.Y=0,t.D.Nb=0,t.D.wa=t.wa,t.D.Y=t.Y,0<t.Aa&&(t.D.Y+=d),e(!0),t.oc=l,t.pc=f,f+=832,t.ya=o(v,Ut),t.aa=0,t.D.ya=t.ya,t.D.aa=t.aa,2==t.Aa&&(t.D.aa+=d),t.R=16*d,t.B=8*d,d=(p=Ri[t.L])*t.R,p=p/2*t.B,t.sa=l,t.ta=f+d,t.qa=t.sa,t.ra=t.ta+16*s*t.R+p,t.Ha=t.qa,t.Ia=t.ra+8*s*t.B+p,t.$c=0,f+=u,t.mb=h?l:null,t.nb=h?f:null,e(f+h<=t.Fc+t.Vb),$t(t),i(t.Ac,t.Bc,0,c),s=1}}if(s){if(r.ka=0,r.y=t.sa,r.O=t.ta,r.f=t.qa,r.N=t.ra,r.ea=t.Ha,r.Vd=t.Ia,r.fa=t.R,r.Rc=t.B,r.F=null,r.J=0,!Cn){for(s=-255;255>=s;++s)Pn[255+s]=0>s?-s:s;for(s=-1020;1020>=s;++s)kn[1020+s]=-128>s?-128:127<s?127:s;for(s=-112;112>=s;++s)In[112+s]=-16>s?-16:15<s?15:s;for(s=-255;510>=s;++s)Fn[255+s]=0>s?0:255<s?255:s;Cn=1}an=ue,on=ae,cn=oe,un=se,hn=ce,sn=ie,ln=Je,fn=Xe,dn=$e,pn=Qe,gn=Ke,mn=Ze,vn=tr,bn=er,yn=ze,wn=He,Nn=We,Ln=Ve,fi[0]=xe,fi[1]=le,fi[2]=Le,fi[3]=Ae,fi[4]=Se,fi[5]=Pe,fi[6]=_e,fi[7]=ke,fi[8]=Fe,fi[9]=Ie,li[0]=ve,li[1]=de,li[2]=pe,li[3]=ge,li[4]=be,li[5]=ye,li[6]=we,di[0]=Be,di[1]=fe,di[2]=Ce,di[3]=je,di[4]=Ee,di[5]=Me,di[6]=qe,s=1}else s=0}s&&(s=function(t,r){for(t.M=0;t.M<t.Va;++t.M){var o,s=t.Jc[t.M&t.Xb],c=t.m,u=t;for(o=0;o<u.za;++o){var h=c,l=u,f=l.Ac,d=l.Bc+4*o,p=l.zc,g=l.ya[l.aa+o];if(l.Qa.Bb?g.$b=k(h,l.Pa.jb[0])?2+k(h,l.Pa.jb[2]):k(h,l.Pa.jb[1]):g.$b=0,l.kc&&(g.Ad=k(h,l.Bd)),g.Za=!k(h,145)+0,g.Za){var m=g.Ob,v=0;for(l=0;4>l;++l){var b,y=p[0+l];for(b=0;4>b;++b){y=ci[f[d+b]][y];for(var w=oi[k(h,y[0])];0<w;)w=oi[2*w+k(h,y[w])];y=-w,f[d+b]=y}n(m,v,f,d,4),v+=4,p[0+l]=y}}else y=k(h,156)?k(h,128)?1:3:k(h,163)?2:0,g.Ob[0]=y,i(f,d,y,4),i(p,0,y,4);g.Dd=k(h,142)?k(h,114)?k(h,183)?1:3:2:0}if(u.m.Ka)return Jt(t,7,\"Premature end-of-partition0 encountered.\");for(;t.ja<t.za;++t.ja){if(u=s,h=(c=t).rb[c.sb-1],f=c.rb[c.sb+c.ja],o=c.ya[c.aa+c.ja],d=c.kc?o.Ad:0)h.la=f.la=0,o.Za||(h.Na=f.Na=0),o.Hc=0,o.Gc=0,o.ia=0;else{var N,L;h=f,f=u,d=c.Pa.Xc,p=c.ya[c.aa+c.ja],g=c.pb[p.$b];if(l=p.ad,m=0,v=c.rb[c.sb-1],y=b=0,i(l,m,0,384),p.Za)var A=0,x=d[3];else{w=a(16);var S=h.Na+v.Na;if(S=ni(f,d[1],S,g.Eb,0,w,0),h.Na=v.Na=(0<S)+0,1<S)an(w,0,l,m);else{var _=w[0]+3>>3;for(w=0;256>w;w+=16)l[m+w]=_}A=1,x=d[0]}var P=15&h.la,I=15&v.la;for(w=0;4>w;++w){var F=1&I;for(_=L=0;4>_;++_)P=P>>1|(F=(S=ni(f,x,S=F+(1&P),g.Sc,A,l,m))>A)<<7,L=L<<2|(3<S?3:1<S?2:0!=l[m+0]),m+=16;P>>=4,I=I>>1|F<<7,b=(b<<8|L)>>>0}for(x=P,A=I>>4,N=0;4>N;N+=2){for(L=0,P=h.la>>4+N,I=v.la>>4+N,w=0;2>w;++w){for(F=1&I,_=0;2>_;++_)S=F+(1&P),P=P>>1|(F=0<(S=ni(f,d[2],S,g.Qc,0,l,m)))<<3,L=L<<2|(3<S?3:1<S?2:0!=l[m+0]),m+=16;P>>=2,I=I>>1|F<<5}y|=L<<4*N,x|=P<<4<<N,A|=(240&I)<<N}h.la=x,v.la=A,p.Hc=b,p.Gc=y,p.ia=43690&y?0:g.ia,d=!(b|y)}if(0<c.L&&(c.wa[c.Y+c.ja]=c.gd[o.$b][o.Za],c.wa[c.Y+c.ja].La|=!d),u.Ka)return Jt(t,7,\"Premature end-of-file encountered.\")}if($t(t),c=r,u=1,o=(s=t).D,h=0<s.L&&s.M>=s.zb&&s.M<=s.Va,0==s.Aa)t:{if(o.M=s.M,o.uc=h,Or(s,o),u=1,o=(L=s.D).Nb,h=(y=Ri[s.L])*s.R,f=y/2*s.B,w=16*o*s.R,_=8*o*s.B,d=s.sa,p=s.ta-h+w,g=s.qa,l=s.ra-f+_,m=s.Ha,v=s.Ia-f+_,I=0==(P=L.M),b=P>=s.Va-1,2==s.Aa&&Or(s,L),L.uc)for(F=(S=s).D.M,e(S.D.uc),L=S.yb;L<S.Hb;++L){A=L,x=F;var C=(j=(U=S).D).Nb;N=U.R;var j=j.wa[j.Y+A],O=U.sa,B=U.ta+16*C*N+16*A,M=j.dd,E=j.tc;if(0!=E)if(e(3<=E),1==U.L)0<A&&wn(O,B,N,E+4),j.La&&Ln(O,B,N,E),0<x&&yn(O,B,N,E+4),j.La&&Nn(O,B,N,E);else{var q=U.B,D=U.qa,R=U.ra+8*C*q+8*A,T=U.Ha,U=U.Ia+8*C*q+8*A;C=j.ld;0<A&&(fn(O,B,N,E+4,M,C),pn(D,R,T,U,q,E+4,M,C)),j.La&&(mn(O,B,N,E,M,C),bn(D,R,T,U,q,E,M,C)),0<x&&(ln(O,B,N,E+4,M,C),dn(D,R,T,U,q,E+4,M,C)),j.La&&(gn(O,B,N,E,M,C),vn(D,R,T,U,q,E,M,C))}}if(s.ia&&alert(\"todo:DitherRow\"),null!=c.put){if(L=16*P,P=16*(P+1),I?(c.y=s.sa,c.O=s.ta+w,c.f=s.qa,c.N=s.ra+_,c.ea=s.Ha,c.W=s.Ia+_):(L-=y,c.y=d,c.O=p,c.f=g,c.N=l,c.ea=m,c.W=v),b||(P-=y),P>c.o&&(P=c.o),c.F=null,c.J=null,null!=s.Fa&&0<s.Fa.length&&L<P&&(c.J=lr(s,c,L,P-L),c.F=s.mb,null==c.F&&0==c.F.length)){u=Jt(s,3,\"Could not decode alpha data.\");break t}L<c.j&&(y=c.j-L,L=c.j,e(!(1&y)),c.O+=s.R*y,c.N+=s.B*(y>>1),c.W+=s.B*(y>>1),null!=c.F&&(c.J+=c.width*y)),L<P&&(c.O+=c.v,c.N+=c.v>>1,c.W+=c.v>>1,null!=c.F&&(c.J+=c.v),c.ka=L-c.j,c.U=c.va-c.v,c.T=P-L,u=c.put(c))}o+1!=s.Ic||b||(n(s.sa,s.ta-h,d,p+16*s.R,h),n(s.qa,s.ra-f,g,l+8*s.B,f),n(s.Ha,s.Ia-f,m,v+8*s.B,f))}if(!u)return Jt(t,6,\"Output aborted.\")}return 1}(t,r)),null!=r.bc&&r.bc(r),s&=1}return s?(t.cb=0,s):0}function te(t,e,r,n,i){i=t[e+r+32*n]+(i>>3),t[e+r+32*n]=-256&i?0>i?0:255:i}function ee(t,e,r,n,i,a){te(t,e,0,r,n+i),te(t,e,1,r,n+a),te(t,e,2,r,n-a),te(t,e,3,r,n-i)}function re(t){return(20091*t>>16)+t}function ne(t,e,r,n){var i,o=0,s=a(16);for(i=0;4>i;++i){var c=t[e+0]+t[e+8],u=t[e+0]-t[e+8],h=(35468*t[e+4]>>16)-re(t[e+12]),l=re(t[e+4])+(35468*t[e+12]>>16);s[o+0]=c+l,s[o+1]=u+h,s[o+2]=u-h,s[o+3]=c-l,o+=4,e++}for(i=o=0;4>i;++i)c=(t=s[o+0]+4)+s[o+8],u=t-s[o+8],h=(35468*s[o+4]>>16)-re(s[o+12]),te(r,n,0,0,c+(l=re(s[o+4])+(35468*s[o+12]>>16))),te(r,n,1,0,u+h),te(r,n,2,0,u-h),te(r,n,3,0,c-l),o++,n+=32}function ie(t,e,r,n){var i=t[e+0]+4,a=35468*t[e+4]>>16,o=re(t[e+4]),s=35468*t[e+1]>>16;ee(r,n,0,i+o,t=re(t[e+1]),s),ee(r,n,1,i+a,t,s),ee(r,n,2,i-a,t,s),ee(r,n,3,i-o,t,s)}function ae(t,e,r,n,i){ne(t,e,r,n),i&&ne(t,e+16,r,n+4)}function oe(t,e,r,n){on(t,e+0,r,n,1),on(t,e+32,r,n+128,1)}function se(t,e,r,n){var i;for(t=t[e+0]+4,i=0;4>i;++i)for(e=0;4>e;++e)te(r,n,e,i,t)}function ce(t,e,r,n){t[e+0]&&un(t,e+0,r,n),t[e+16]&&un(t,e+16,r,n+4),t[e+32]&&un(t,e+32,r,n+128),t[e+48]&&un(t,e+48,r,n+128+4)}function ue(t,e,r,n){var i,o=a(16);for(i=0;4>i;++i){var s=t[e+0+i]+t[e+12+i],c=t[e+4+i]+t[e+8+i],u=t[e+4+i]-t[e+8+i],h=t[e+0+i]-t[e+12+i];o[0+i]=s+c,o[8+i]=s-c,o[4+i]=h+u,o[12+i]=h-u}for(i=0;4>i;++i)s=(t=o[0+4*i]+3)+o[3+4*i],c=o[1+4*i]+o[2+4*i],u=o[1+4*i]-o[2+4*i],h=t-o[3+4*i],r[n+0]=s+c>>3,r[n+16]=h+u>>3,r[n+32]=s-c>>3,r[n+48]=h-u>>3,n+=64}function he(t,e,r){var n,i=e-32,a=Bn,o=255-t[i-1];for(n=0;n<r;++n){var s,c=a,u=o+t[e-1];for(s=0;s<r;++s)t[e+s]=c[u+t[i+s]];e+=32}}function le(t,e){he(t,e,4)}function fe(t,e){he(t,e,8)}function de(t,e){he(t,e,16)}function pe(t,e){var r;for(r=0;16>r;++r)n(t,e+32*r,t,e-32,16)}function ge(t,e){var r;for(r=16;0<r;--r)i(t,e,t[e-1],16),e+=32}function me(t,e,r){var n;for(n=0;16>n;++n)i(e,r+32*n,t,16)}function ve(t,e){var r,n=16;for(r=0;16>r;++r)n+=t[e-1+32*r]+t[e+r-32];me(n>>5,t,e)}function be(t,e){var r,n=8;for(r=0;16>r;++r)n+=t[e-1+32*r];me(n>>4,t,e)}function ye(t,e){var r,n=8;for(r=0;16>r;++r)n+=t[e+r-32];me(n>>4,t,e)}function we(t,e){me(128,t,e)}function Ne(t,e,r){return t+2*e+r+2>>2}function Le(t,e){var r,i=e-32;i=new Uint8Array([Ne(t[i-1],t[i+0],t[i+1]),Ne(t[i+0],t[i+1],t[i+2]),Ne(t[i+1],t[i+2],t[i+3]),Ne(t[i+2],t[i+3],t[i+4])]);for(r=0;4>r;++r)n(t,e+32*r,i,0,i.length)}function Ae(t,e){var r=t[e-1],n=t[e-1+32],i=t[e-1+64],a=t[e-1+96];I(t,e+0,16843009*Ne(t[e-1-32],r,n)),I(t,e+32,16843009*Ne(r,n,i)),I(t,e+64,16843009*Ne(n,i,a)),I(t,e+96,16843009*Ne(i,a,a))}function xe(t,e){var r,n=4;for(r=0;4>r;++r)n+=t[e+r-32]+t[e-1+32*r];for(n>>=3,r=0;4>r;++r)i(t,e+32*r,n,4)}function Se(t,e){var r=t[e-1+0],n=t[e-1+32],i=t[e-1+64],a=t[e-1-32],o=t[e+0-32],s=t[e+1-32],c=t[e+2-32],u=t[e+3-32];t[e+0+96]=Ne(n,i,t[e-1+96]),t[e+1+96]=t[e+0+64]=Ne(r,n,i),t[e+2+96]=t[e+1+64]=t[e+0+32]=Ne(a,r,n),t[e+3+96]=t[e+2+64]=t[e+1+32]=t[e+0+0]=Ne(o,a,r),t[e+3+64]=t[e+2+32]=t[e+1+0]=Ne(s,o,a),t[e+3+32]=t[e+2+0]=Ne(c,s,o),t[e+3+0]=Ne(u,c,s)}function _e(t,e){var r=t[e+1-32],n=t[e+2-32],i=t[e+3-32],a=t[e+4-32],o=t[e+5-32],s=t[e+6-32],c=t[e+7-32];t[e+0+0]=Ne(t[e+0-32],r,n),t[e+1+0]=t[e+0+32]=Ne(r,n,i),t[e+2+0]=t[e+1+32]=t[e+0+64]=Ne(n,i,a),t[e+3+0]=t[e+2+32]=t[e+1+64]=t[e+0+96]=Ne(i,a,o),t[e+3+32]=t[e+2+64]=t[e+1+96]=Ne(a,o,s),t[e+3+64]=t[e+2+96]=Ne(o,s,c),t[e+3+96]=Ne(s,c,c)}function Pe(t,e){var r=t[e-1+0],n=t[e-1+32],i=t[e-1+64],a=t[e-1-32],o=t[e+0-32],s=t[e+1-32],c=t[e+2-32],u=t[e+3-32];t[e+0+0]=t[e+1+64]=a+o+1>>1,t[e+1+0]=t[e+2+64]=o+s+1>>1,t[e+2+0]=t[e+3+64]=s+c+1>>1,t[e+3+0]=c+u+1>>1,t[e+0+96]=Ne(i,n,r),t[e+0+64]=Ne(n,r,a),t[e+0+32]=t[e+1+96]=Ne(r,a,o),t[e+1+32]=t[e+2+96]=Ne(a,o,s),t[e+2+32]=t[e+3+96]=Ne(o,s,c),t[e+3+32]=Ne(s,c,u)}function ke(t,e){var r=t[e+0-32],n=t[e+1-32],i=t[e+2-32],a=t[e+3-32],o=t[e+4-32],s=t[e+5-32],c=t[e+6-32],u=t[e+7-32];t[e+0+0]=r+n+1>>1,t[e+1+0]=t[e+0+64]=n+i+1>>1,t[e+2+0]=t[e+1+64]=i+a+1>>1,t[e+3+0]=t[e+2+64]=a+o+1>>1,t[e+0+32]=Ne(r,n,i),t[e+1+32]=t[e+0+96]=Ne(n,i,a),t[e+2+32]=t[e+1+96]=Ne(i,a,o),t[e+3+32]=t[e+2+96]=Ne(a,o,s),t[e+3+64]=Ne(o,s,c),t[e+3+96]=Ne(s,c,u)}function Ie(t,e){var r=t[e-1+0],n=t[e-1+32],i=t[e-1+64],a=t[e-1+96];t[e+0+0]=r+n+1>>1,t[e+2+0]=t[e+0+32]=n+i+1>>1,t[e+2+32]=t[e+0+64]=i+a+1>>1,t[e+1+0]=Ne(r,n,i),t[e+3+0]=t[e+1+32]=Ne(n,i,a),t[e+3+32]=t[e+1+64]=Ne(i,a,a),t[e+3+64]=t[e+2+64]=t[e+0+96]=t[e+1+96]=t[e+2+96]=t[e+3+96]=a}function Fe(t,e){var r=t[e-1+0],n=t[e-1+32],i=t[e-1+64],a=t[e-1+96],o=t[e-1-32],s=t[e+0-32],c=t[e+1-32],u=t[e+2-32];t[e+0+0]=t[e+2+32]=r+o+1>>1,t[e+0+32]=t[e+2+64]=n+r+1>>1,t[e+0+64]=t[e+2+96]=i+n+1>>1,t[e+0+96]=a+i+1>>1,t[e+3+0]=Ne(s,c,u),t[e+2+0]=Ne(o,s,c),t[e+1+0]=t[e+3+32]=Ne(r,o,s),t[e+1+32]=t[e+3+64]=Ne(n,r,o),t[e+1+64]=t[e+3+96]=Ne(i,n,r),t[e+1+96]=Ne(a,i,n)}function Ce(t,e){var r;for(r=0;8>r;++r)n(t,e+32*r,t,e-32,8)}function je(t,e){var r;for(r=0;8>r;++r)i(t,e,t[e-1],8),e+=32}function Oe(t,e,r){var n;for(n=0;8>n;++n)i(e,r+32*n,t,8)}function Be(t,e){var r,n=8;for(r=0;8>r;++r)n+=t[e+r-32]+t[e-1+32*r];Oe(n>>4,t,e)}function Me(t,e){var r,n=4;for(r=0;8>r;++r)n+=t[e+r-32];Oe(n>>3,t,e)}function Ee(t,e){var r,n=4;for(r=0;8>r;++r)n+=t[e-1+32*r];Oe(n>>3,t,e)}function qe(t,e){Oe(128,t,e)}function De(t,e,r){var n=t[e-r],i=t[e+0],a=3*(i-n)+jn[1020+t[e-2*r]-t[e+r]],o=On[112+(a+4>>3)];t[e-r]=Bn[255+n+On[112+(a+3>>3)]],t[e+0]=Bn[255+i-o]}function Re(t,e,r,n){var i=t[e+0],a=t[e+r];return Mn[255+t[e-2*r]-t[e-r]]>n||Mn[255+a-i]>n}function Te(t,e,r,n){return 4*Mn[255+t[e-r]-t[e+0]]+Mn[255+t[e-2*r]-t[e+r]]<=n}function Ue(t,e,r,n,i){var a=t[e-3*r],o=t[e-2*r],s=t[e-r],c=t[e+0],u=t[e+r],h=t[e+2*r],l=t[e+3*r];return 4*Mn[255+s-c]+Mn[255+o-u]>n?0:Mn[255+t[e-4*r]-a]<=i&&Mn[255+a-o]<=i&&Mn[255+o-s]<=i&&Mn[255+l-h]<=i&&Mn[255+h-u]<=i&&Mn[255+u-c]<=i}function ze(t,e,r,n){var i=2*n+1;for(n=0;16>n;++n)Te(t,e+n,r,i)&&De(t,e+n,r)}function He(t,e,r,n){var i=2*n+1;for(n=0;16>n;++n)Te(t,e+n*r,1,i)&&De(t,e+n*r,1)}function We(t,e,r,n){var i;for(i=3;0<i;--i)ze(t,e+=4*r,r,n)}function Ve(t,e,r,n){var i;for(i=3;0<i;--i)He(t,e+=4,r,n)}function Ge(t,e,r,n,i,a,o,s){for(a=2*a+1;0<i--;){if(Ue(t,e,r,a,o))if(Re(t,e,r,s))De(t,e,r);else{var c=t,u=e,h=r,l=c[u-2*h],f=c[u-h],d=c[u+0],p=c[u+h],g=c[u+2*h],m=27*(b=jn[1020+3*(d-f)+jn[1020+l-p]])+63>>7,v=18*b+63>>7,b=9*b+63>>7;c[u-3*h]=Bn[255+c[u-3*h]+b],c[u-2*h]=Bn[255+l+v],c[u-h]=Bn[255+f+m],c[u+0]=Bn[255+d-m],c[u+h]=Bn[255+p-v],c[u+2*h]=Bn[255+g-b]}e+=n}}function Ye(t,e,r,n,i,a,o,s){for(a=2*a+1;0<i--;){if(Ue(t,e,r,a,o))if(Re(t,e,r,s))De(t,e,r);else{var c=t,u=e,h=r,l=c[u-h],f=c[u+0],d=c[u+h],p=On[112+((g=3*(f-l))+4>>3)],g=On[112+(g+3>>3)],m=p+1>>1;c[u-2*h]=Bn[255+c[u-2*h]+m],c[u-h]=Bn[255+l+g],c[u+0]=Bn[255+f-p],c[u+h]=Bn[255+d-m]}e+=n}}function Je(t,e,r,n,i,a){Ge(t,e,r,1,16,n,i,a)}function Xe(t,e,r,n,i,a){Ge(t,e,1,r,16,n,i,a)}function Ke(t,e,r,n,i,a){var o;for(o=3;0<o;--o)Ye(t,e+=4*r,r,1,16,n,i,a)}function Ze(t,e,r,n,i,a){var o;for(o=3;0<o;--o)Ye(t,e+=4,1,r,16,n,i,a)}function $e(t,e,r,n,i,a,o,s){Ge(t,e,i,1,8,a,o,s),Ge(r,n,i,1,8,a,o,s)}function Qe(t,e,r,n,i,a,o,s){Ge(t,e,1,i,8,a,o,s),Ge(r,n,1,i,8,a,o,s)}function tr(t,e,r,n,i,a,o,s){Ye(t,e+4*i,i,1,8,a,o,s),Ye(r,n+4*i,i,1,8,a,o,s)}function er(t,e,r,n,i,a,o,s){Ye(t,e+4,1,i,8,a,o,s),Ye(r,n+4,1,i,8,a,o,s)}function rr(){this.ba=new ot,this.ec=[],this.cc=[],this.Mc=[],this.Dc=this.Nc=this.dc=this.fc=0,this.Oa=new ct,this.memory=0,this.Ib=\"OutputFunc\",this.Jb=\"OutputAlphaFunc\",this.Nd=\"OutputRowFunc\"}function nr(){this.data=[],this.offset=this.kd=this.ha=this.w=0,this.na=[],this.xa=this.gb=this.Ja=this.Sa=this.P=0}function ir(){this.nc=this.Ea=this.b=this.hc=0,this.K=[],this.w=0}function ar(){this.ua=0,this.Wa=new M,this.vb=new M,this.md=this.xc=this.wc=0,this.vc=[],this.Wb=0,this.Ya=new d,this.yc=new l}function or(){this.xb=this.a=0,this.l=new Gt,this.ca=new ot,this.V=[],this.Ba=0,this.Ta=[],this.Ua=0,this.m=new N,this.Pb=0,this.wd=new N,this.Ma=this.$=this.C=this.i=this.c=this.xd=0,this.s=new ar,this.ab=0,this.gc=o(4,ir),this.Oc=0}function sr(){this.Lc=this.Z=this.$a=this.i=this.c=0,this.l=new Gt,this.ic=0,this.ca=[],this.tb=0,this.qd=null,this.rd=0}function cr(t,e,r,n,i,a,o){for(t=null==t?0:t[e+0],e=0;e<o;++e)i[a+e]=t+r[n+e]&255,t=i[a+e]}function ur(t,e,r,n,i,a,o){var s;if(null==t)cr(null,null,r,n,i,a,o);else for(s=0;s<o;++s)i[a+s]=t[e+s]+r[n+s]&255}function hr(t,e,r,n,i,a,o){if(null==t)cr(null,null,r,n,i,a,o);else{var s,c=t[e+0],u=c,h=c;for(s=0;s<o;++s)u=h+(c=t[e+s])-u,h=r[n+s]+(-256&u?0>u?0:255:u)&255,u=c,i[a+s]=h}}function lr(t,r,i,o){var s=r.width,c=r.o;if(e(null!=t&&null!=r),0>i||0>=o||i+o>c)return null;if(!t.Cc){if(null==t.ga){var u;if(t.ga=new sr,(u=null==t.ga)||(u=r.width*r.o,e(0==t.Gb.length),t.Gb=a(u),t.Uc=0,null==t.Gb?u=0:(t.mb=t.Gb,t.nb=t.Uc,t.rc=null,u=1),u=!u),!u){u=t.ga;var h=t.Fa,l=t.P,f=t.qc,d=t.mb,p=t.nb,g=l+1,m=f-1,b=u.l;if(e(null!=h&&null!=d&&null!=r),mi[0]=null,mi[1]=cr,mi[2]=ur,mi[3]=hr,u.ca=d,u.tb=p,u.c=r.width,u.i=r.height,e(0<u.c&&0<u.i),1>=f)r=0;else if(u.$a=h[l+0]>>0&3,u.Z=h[l+0]>>2&3,u.Lc=h[l+0]>>4&3,l=h[l+0]>>6&3,0>u.$a||1<u.$a||4<=u.Z||1<u.Lc||l)r=0;else if(b.put=dt,b.ac=ft,b.bc=pt,b.ma=u,b.width=r.width,b.height=r.height,b.Da=r.Da,b.v=r.v,b.va=r.va,b.j=r.j,b.o=r.o,u.$a)t:{e(1==u.$a),r=kt();e:for(;;){if(null==r){r=0;break t}if(e(null!=u),u.mc=r,r.c=u.c,r.i=u.i,r.l=u.l,r.l.ma=u,r.l.width=u.c,r.l.height=u.i,r.a=0,v(r.m,h,g,m),!It(u.c,u.i,1,r,null))break e;if(1==r.ab&&3==r.gc[0].hc&&At(r.s)?(u.ic=1,h=r.c*r.i,r.Ta=null,r.Ua=0,r.V=a(h),r.Ba=0,null==r.V?(r.a=1,r=0):r=1):(u.ic=0,r=Ft(r,u.c)),!r)break e;r=1;break t}u.mc=null,r=0}else r=m>=u.c*u.i;u=!r}if(u)return null;1!=t.ga.Lc?t.Ga=0:o=c-i}e(null!=t.ga),e(i+o<=c);t:{if(r=(h=t.ga).c,c=h.l.o,0==h.$a){if(g=t.rc,m=t.Vc,b=t.Fa,l=t.P+1+i*r,f=t.mb,d=t.nb+i*r,e(l<=t.P+t.qc),0!=h.Z)for(e(null!=mi[h.Z]),u=0;u<o;++u)mi[h.Z](g,m,b,l,f,d,r),g=f,m=d,d+=r,l+=r;else for(u=0;u<o;++u)n(f,d,b,l,r),g=f,m=d,d+=r,l+=r;t.rc=g,t.Vc=m}else{if(e(null!=h.mc),r=i+o,e(null!=(u=h.mc)),e(r<=u.i),u.C>=r)r=1;else if(h.ic||mr(),h.ic){h=u.V,g=u.Ba,m=u.c;var y=u.i,w=(b=1,l=u.$/m,f=u.$%m,d=u.m,p=u.s,u.$),N=m*y,L=m*r,x=p.wc,_=w<L?wt(p,f,l):null;e(w<=N),e(r<=y),e(At(p));e:for(;;){for(;!d.h&&w<L;){if(f&x||(_=wt(p,f,l)),e(null!=_),S(d),256>(y=bt(_.G[0],_.H[0],d)))h[g+w]=y,++w,++f>=m&&(f=0,++l<=r&&!(l%16)&&St(u,l));else{if(!(280>y)){b=0;break e}y=mt(y-256,d);var P,k=bt(_.G[4],_.H[4],d);if(S(d),!(w>=(k=vt(m,k=mt(k,d)))&&N-w>=y)){b=0;break e}for(P=0;P<y;++P)h[g+w+P]=h[g+w+P-k];for(w+=y,f+=y;f>=m;)f-=m,++l<=r&&!(l%16)&&St(u,l);w<L&&f&x&&(_=wt(p,f,l))}e(d.h==A(d))}St(u,l>r?r:l);break e}!b||d.h&&w<N?(b=0,u.a=d.h?5:3):u.$=w,r=b}else r=_t(u,u.V,u.Ba,u.c,u.i,r,Ct);if(!r){o=0;break t}}i+o>=c&&(t.Cc=1),o=1}if(!o)return null;if(t.Cc&&(null!=(o=t.ga)&&(o.mc=null),t.ga=null,0<t.Ga))return alert(\"todo:WebPDequantizeLevels\"),null}return t.nb+i*s}function fr(t,e,r,n,i,a){for(;0<i--;){var o,s=t,c=e+(r?1:0),u=t,h=e+(r?0:3);for(o=0;o<n;++o){var l=u[h+4*o];255!=l&&(l*=32897,s[c+4*o+0]=s[c+4*o+0]*l>>23,s[c+4*o+1]=s[c+4*o+1]*l>>23,s[c+4*o+2]=s[c+4*o+2]*l>>23)}e+=a}}function dr(t,e,r,n,i){for(;0<n--;){var a;for(a=0;a<r;++a){var o=t[e+2*a+0],s=15&(u=t[e+2*a+1]),c=4369*s,u=(240&u|u>>4)*c>>16;t[e+2*a+0]=(240&o|o>>4)*c>>16&240|(15&o|o<<4)*c>>16>>4&15,t[e+2*a+1]=240&u|s}e+=i}}function pr(t,e,r,n,i,a,o,s){var c,u,h=255;for(u=0;u<i;++u){for(c=0;c<n;++c){var l=t[e+c];a[o+4*c]=l,h&=l}e+=r,o+=s}return 255!=h}function gr(t,e,r,n,i){var a;for(a=0;a<i;++a)r[n+a]=t[e+a]>>8}function mr(){An=fr,xn=dr,Sn=pr,_n=gr}function vr(r,n,i){t[r]=function(t,r,a,o,s,c,u,h,l,f,d,p,g,m,v,b,y){var w,N=y-1>>1,L=s[c+0]|u[h+0]<<16,A=l[f+0]|d[p+0]<<16;e(null!=t);var x=3*L+A+131074>>2;for(n(t[r+0],255&x,x>>16,g,m),null!=a&&(x=3*A+L+131074>>2,n(a[o+0],255&x,x>>16,v,b)),w=1;w<=N;++w){var S=s[c+w]|u[h+w]<<16,_=l[f+w]|d[p+w]<<16,P=L+S+A+_+524296,k=P+2*(S+A)>>3;x=k+L>>1,L=(P=P+2*(L+_)>>3)+S>>1,n(t[r+2*w-1],255&x,x>>16,g,m+(2*w-1)*i),n(t[r+2*w-0],255&L,L>>16,g,m+(2*w-0)*i),null!=a&&(x=P+A>>1,L=k+_>>1,n(a[o+2*w-1],255&x,x>>16,v,b+(2*w-1)*i),n(a[o+2*w+0],255&L,L>>16,v,b+(2*w+0)*i)),L=S,A=_}1&y||(x=3*L+A+131074>>2,n(t[r+y-1],255&x,x>>16,g,m+(y-1)*i),null!=a&&(x=3*A+L+131074>>2,n(a[o+y-1],255&x,x>>16,v,b+(y-1)*i)))}}function br(){vi[En]=bi,vi[qn]=wi,vi[Dn]=yi,vi[Rn]=Ni,vi[Tn]=Li,vi[Un]=Ai,vi[zn]=xi,vi[Hn]=wi,vi[Wn]=Ni,vi[Vn]=Li,vi[Gn]=Ai}function yr(t){return t&~Fi?0>t?0:255:t>>Ii}function wr(t,e){return yr((19077*t>>8)+(26149*e>>8)-14234)}function Nr(t,e,r){return yr((19077*t>>8)-(6419*e>>8)-(13320*r>>8)+8708)}function Lr(t,e){return yr((19077*t>>8)+(33050*e>>8)-17685)}function Ar(t,e,r,n,i){n[i+0]=wr(t,r),n[i+1]=Nr(t,e,r),n[i+2]=Lr(t,e)}function xr(t,e,r,n,i){n[i+0]=Lr(t,e),n[i+1]=Nr(t,e,r),n[i+2]=wr(t,r)}function Sr(t,e,r,n,i){var a=Nr(t,e,r);e=a<<3&224|Lr(t,e)>>3,n[i+0]=248&wr(t,r)|a>>5,n[i+1]=e}function _r(t,e,r,n,i){var a=240&Lr(t,e)|15;n[i+0]=240&wr(t,r)|Nr(t,e,r)>>4,n[i+1]=a}function Pr(t,e,r,n,i){n[i+0]=255,Ar(t,e,r,n,i+1)}function kr(t,e,r,n,i){xr(t,e,r,n,i),n[i+3]=255}function Ir(t,e,r,n,i){Ar(t,e,r,n,i),n[i+3]=255}function Vt(t,e){return 0>t?0:t>e?e:t}function Fr(e,r,n){t[e]=function(t,e,i,a,o,s,c,u,h){for(var l=u+(-2&h)*n;u!=l;)r(t[e+0],i[a+0],o[s+0],c,u),r(t[e+1],i[a+0],o[s+0],c,u+n),e+=2,++a,++s,u+=2*n;1&h&&r(t[e+0],i[a+0],o[s+0],c,u)}}function Cr(t,e,r){return 0==r?0==t?0==e?6:5:0==e?4:0:r}function jr(t,e,r,n,i){switch(t>>>30){case 3:on(e,r,n,i,0);break;case 2:sn(e,r,n,i);break;case 1:un(e,r,n,i)}}function Or(t,e){var r,a,o=e.M,s=e.Nb,c=t.oc,u=t.pc+40,h=t.oc,l=t.pc+584,f=t.oc,d=t.pc+600;for(r=0;16>r;++r)c[u+32*r-1]=129;for(r=0;8>r;++r)h[l+32*r-1]=129,f[d+32*r-1]=129;for(0<o?c[u-1-32]=h[l-1-32]=f[d-1-32]=129:(i(c,u-32-1,127,21),i(h,l-32-1,127,9),i(f,d-32-1,127,9)),a=0;a<t.za;++a){var p=e.ya[e.aa+a];if(0<a){for(r=-1;16>r;++r)n(c,u+32*r-4,c,u+32*r+12,4);for(r=-1;8>r;++r)n(h,l+32*r-4,h,l+32*r+4,4),n(f,d+32*r-4,f,d+32*r+4,4)}var g=t.Gd,m=t.Hd+a,v=p.ad,b=p.Hc;if(0<o&&(n(c,u-32,g[m].y,0,16),n(h,l-32,g[m].f,0,8),n(f,d-32,g[m].ea,0,8)),p.Za){var y=c,w=u-32+16;for(0<o&&(a>=t.za-1?i(y,w,g[m].y[15],4):n(y,w,g[m+1].y,0,4)),r=0;4>r;r++)y[w+128+r]=y[w+256+r]=y[w+384+r]=y[w+0+r];for(r=0;16>r;++r,b<<=2)y=c,w=u+Di[r],fi[p.Ob[r]](y,w),jr(b,v,16*+r,y,w)}else if(y=Cr(a,o,p.Ob[0]),li[y](c,u),0!=b)for(r=0;16>r;++r,b<<=2)jr(b,v,16*+r,c,u+Di[r]);for(r=p.Gc,y=Cr(a,o,p.Dd),di[y](h,l),di[y](f,d),b=v,y=h,w=l,255&(p=r>>0)&&(170&p?cn(b,256,y,w):hn(b,256,y,w)),p=f,b=d,255&(r>>=8)&&(170&r?cn(v,320,p,b):hn(v,320,p,b)),o<t.Ub-1&&(n(g[m].y,0,c,u+480,16),n(g[m].f,0,h,l+224,8),n(g[m].ea,0,f,d+224,8)),r=8*s*t.B,g=t.sa,m=t.ta+16*a+16*s*t.R,v=t.qa,p=t.ra+8*a+r,b=t.Ha,y=t.Ia+8*a+r,r=0;16>r;++r)n(g,m+r*t.R,c,u+32*r,16);for(r=0;8>r;++r)n(v,p+r*t.B,h,l+32*r,8),n(b,y+r*t.B,f,d+32*r,8)}}function Br(t,n,i,a,o,s,c,u,h){var l=[0],f=[0],d=0,p=null!=h?h.kd:0,g=null!=h?h:new nr;if(null==t||12>i)return 7;g.data=t,g.w=n,g.ha=i,n=[n],i=[i],g.gb=[g.gb];t:{var m=n,b=i,y=g.gb;if(e(null!=t),e(null!=b),e(null!=y),y[0]=0,12<=b[0]&&!r(t,m[0],\"RIFF\")){if(r(t,m[0]+8,\"WEBP\")){y=3;break t}var w=j(t,m[0]+4);if(12>w||4294967286<w){y=3;break t}if(p&&w>b[0]-8){y=7;break t}y[0]=w,m[0]+=12,b[0]-=12}y=0}if(0!=y)return y;for(w=0<g.gb[0],i=i[0];;){t:{var L=t;b=n,y=i;var A=l,x=f,S=m=[0];if((k=d=[d])[0]=0,8>y[0])y=7;else{if(!r(L,b[0],\"VP8X\")){if(10!=j(L,b[0]+4)){y=3;break t}if(18>y[0]){y=7;break t}var _=j(L,b[0]+8),P=1+C(L,b[0]+12);if(2147483648<=P*(L=1+C(L,b[0]+15))){y=3;break t}null!=S&&(S[0]=_),null!=A&&(A[0]=P),null!=x&&(x[0]=L),b[0]+=18,y[0]-=18,k[0]=1}y=0}}if(d=d[0],m=m[0],0!=y)return y;if(b=!!(2&m),!w&&d)return 3;if(null!=s&&(s[0]=!!(16&m)),null!=c&&(c[0]=b),null!=u&&(u[0]=0),c=l[0],m=f[0],d&&b&&null==h){y=0;break}if(4>i){y=7;break}if(w&&d||!w&&!d&&!r(t,n[0],\"ALPH\")){i=[i],g.na=[g.na],g.P=[g.P],g.Sa=[g.Sa];t:{_=t,y=n,w=i;var k=g.gb;A=g.na,x=g.P,S=g.Sa;P=22,e(null!=_),e(null!=w),L=y[0];var I=w[0];for(e(null!=A),e(null!=S),A[0]=null,x[0]=null,S[0]=0;;){if(y[0]=L,w[0]=I,8>I){y=7;break t}var F=j(_,L+4);if(4294967286<F){y=3;break t}var O=8+F+1&-2;if(P+=O,0<k&&P>k){y=3;break t}if(!r(_,L,\"VP8 \")||!r(_,L,\"VP8L\")){y=0;break t}if(I[0]<O){y=7;break t}r(_,L,\"ALPH\")||(A[0]=_,x[0]=L+8,S[0]=F),L+=O,I-=O}}if(i=i[0],g.na=g.na[0],g.P=g.P[0],g.Sa=g.Sa[0],0!=y)break}i=[i],g.Ja=[g.Ja],g.xa=[g.xa];t:if(k=t,y=n,w=i,A=g.gb[0],x=g.Ja,S=g.xa,_=y[0],L=!r(k,_,\"VP8 \"),P=!r(k,_,\"VP8L\"),e(null!=k),e(null!=w),e(null!=x),e(null!=S),8>w[0])y=7;else{if(L||P){if(k=j(k,_+4),12<=A&&k>A-12){y=3;break t}if(p&&k>w[0]-8){y=7;break t}x[0]=k,y[0]+=8,w[0]-=8,S[0]=P}else S[0]=5<=w[0]&&47==k[_+0]&&!(k[_+4]>>5),x[0]=w[0];y=0}if(i=i[0],g.Ja=g.Ja[0],g.xa=g.xa[0],n=n[0],0!=y)break;if(4294967286<g.Ja)return 3;if(null==u||b||(u[0]=g.xa?2:1),c=[c],m=[m],g.xa){if(5>i){y=7;break}u=c,p=m,b=s,null==t||5>i?t=0:5<=i&&47==t[n+0]&&!(t[n+4]>>5)?(w=[0],k=[0],A=[0],v(x=new N,t,n,i),gt(x,w,k,A)?(null!=u&&(u[0]=w[0]),null!=p&&(p[0]=k[0]),null!=b&&(b[0]=A[0]),t=1):t=0):t=0}else{if(10>i){y=7;break}u=m,null==t||10>i||!Xt(t,n+3,i-3)?t=0:(p=t[n+0]|t[n+1]<<8|t[n+2]<<16,b=16383&(t[n+7]<<8|t[n+6]),t=16383&(t[n+9]<<8|t[n+8]),1&p||3<(p>>1&7)||!(p>>4&1)||p>>5>=g.Ja||!b||!t?t=0:(c&&(c[0]=b),u&&(u[0]=t),t=1))}if(!t)return 3;if(c=c[0],m=m[0],d&&(l[0]!=c||f[0]!=m))return 3;null!=h&&(h[0]=g,h.offset=n-h.w,e(4294967286>n-h.w),e(h.offset==h.ha-i));break}return 0==y||7==y&&d&&null==h?(null!=s&&(s[0]|=null!=g.na&&0<g.na.length),null!=a&&(a[0]=c),null!=o&&(o[0]=m),0):y}function Mr(t,e,r){var n=e.width,i=e.height,a=0,o=0,s=n,c=i;if(e.Da=null!=t&&0<t.Da,e.Da&&(s=t.cd,c=t.bd,a=t.v,o=t.j,11>r||(a&=-2,o&=-2),0>a||0>o||0>=s||0>=c||a+s>n||o+c>i))return 0;if(e.v=a,e.j=o,e.va=a+s,e.o=o+c,e.U=s,e.T=c,e.da=null!=t&&0<t.da,e.da){if(!E(s,c,r=[t.ib],a=[t.hb]))return 0;e.ib=r[0],e.hb=a[0]}return e.ob=null!=t&&t.ob,e.Kb=null==t||!t.Sd,e.da&&(e.ob=e.ib<3*n/4&&e.hb<3*i/4,e.Kb=0),1}function Er(t){if(null==t)return 2;if(11>t.S){var e=t.f.RGBA;e.fb+=(t.height-1)*e.A,e.A=-e.A}else e=t.f.kb,t=t.height,e.O+=(t-1)*e.fa,e.fa=-e.fa,e.N+=(t-1>>1)*e.Ab,e.Ab=-e.Ab,e.W+=(t-1>>1)*e.Db,e.Db=-e.Db,null!=e.F&&(e.J+=(t-1)*e.lb,e.lb=-e.lb);return 0}function qr(t,e,r,n){if(null==n||0>=t||0>=e)return 2;if(null!=r){if(r.Da){var i=r.cd,o=r.bd,s=-2&r.v,c=-2&r.j;if(0>s||0>c||0>=i||0>=o||s+i>t||c+o>e)return 2;t=i,e=o}if(r.da){if(!E(t,e,i=[r.ib],o=[r.hb]))return 2;t=i[0],e=o[0]}}n.width=t,n.height=e;t:{var u=n.width,h=n.height;if(t=n.S,0>=u||0>=h||!(t>=En&&13>t))t=2;else{if(0>=n.Rd&&null==n.sd){s=o=i=e=0;var l=(c=u*zi[t])*h;if(11>t||(o=(h+1)/2*(e=(u+1)/2),12==t&&(s=(i=u)*h)),null==(h=a(l+2*o+s))){t=1;break t}n.sd=h,11>t?((u=n.f.RGBA).eb=h,u.fb=0,u.A=c,u.size=l):((u=n.f.kb).y=h,u.O=0,u.fa=c,u.Fd=l,u.f=h,u.N=0+l,u.Ab=e,u.Cd=o,u.ea=h,u.W=0+l+o,u.Db=e,u.Ed=o,12==t&&(u.F=h,u.J=0+l+2*o),u.Tc=s,u.lb=i)}if(e=1,i=n.S,o=n.width,s=n.height,i>=En&&13>i)if(11>i)t=n.f.RGBA,e&=(c=Math.abs(t.A))*(s-1)+o<=t.size,e&=c>=o*zi[i],e&=null!=t.eb;else{t=n.f.kb,c=(o+1)/2,l=(s+1)/2,u=Math.abs(t.fa);h=Math.abs(t.Ab);var f=Math.abs(t.Db),d=Math.abs(t.lb),p=d*(s-1)+o;e&=u*(s-1)+o<=t.Fd,e&=h*(l-1)+c<=t.Cd,e=(e&=f*(l-1)+c<=t.Ed)&u>=o&h>=c&f>=c,e&=null!=t.y,e&=null!=t.f,e&=null!=t.ea,12==i&&(e&=d>=o,e&=p<=t.Tc,e&=null!=t.F)}else e=0;t=e?0:2}}return 0!=t||null!=r&&r.fd&&(t=Er(n)),t}var Dr=64,Rr=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535,131071,262143,524287,1048575,2097151,4194303,8388607,16777215],Tr=24,Ur=32,zr=8,Hr=[0,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7];R(\"Predictor0\",\"PredictorAdd0\"),t.Predictor0=function(){return 4278190080},t.Predictor1=function(t){return t},t.Predictor2=function(t,e,r){return e[r+0]},t.Predictor3=function(t,e,r){return e[r+1]},t.Predictor4=function(t,e,r){return e[r-1]},t.Predictor5=function(t,e,r){return U(U(t,e[r+1]),e[r+0])},t.Predictor6=function(t,e,r){return U(t,e[r-1])},t.Predictor7=function(t,e,r){return U(t,e[r+0])},t.Predictor8=function(t,e,r){return U(e[r-1],e[r+0])},t.Predictor9=function(t,e,r){return U(e[r+0],e[r+1])},t.Predictor10=function(t,e,r){return U(U(t,e[r-1]),U(e[r+0],e[r+1]))},t.Predictor11=function(t,e,r){var n=e[r+0];return 0>=W(n>>24&255,t>>24&255,(e=e[r-1])>>24&255)+W(n>>16&255,t>>16&255,e>>16&255)+W(n>>8&255,t>>8&255,e>>8&255)+W(255&n,255&t,255&e)?n:t},t.Predictor12=function(t,e,r){var n=e[r+0];return(z((t>>24&255)+(n>>24&255)-((e=e[r-1])>>24&255))<<24|z((t>>16&255)+(n>>16&255)-(e>>16&255))<<16|z((t>>8&255)+(n>>8&255)-(e>>8&255))<<8|z((255&t)+(255&n)-(255&e)))>>>0},t.Predictor13=function(t,e,r){var n=e[r-1];return(H((t=U(t,e[r+0]))>>24&255,n>>24&255)<<24|H(t>>16&255,n>>16&255)<<16|H(t>>8&255,n>>8&255)<<8|H(t>>0&255,n>>0&255))>>>0};var Wr=t.PredictorAdd0;t.PredictorAdd1=V,R(\"Predictor2\",\"PredictorAdd2\"),R(\"Predictor3\",\"PredictorAdd3\"),R(\"Predictor4\",\"PredictorAdd4\"),R(\"Predictor5\",\"PredictorAdd5\"),R(\"Predictor6\",\"PredictorAdd6\"),R(\"Predictor7\",\"PredictorAdd7\"),R(\"Predictor8\",\"PredictorAdd8\"),R(\"Predictor9\",\"PredictorAdd9\"),R(\"Predictor10\",\"PredictorAdd10\"),R(\"Predictor11\",\"PredictorAdd11\"),R(\"Predictor12\",\"PredictorAdd12\"),R(\"Predictor13\",\"PredictorAdd13\");var Vr=t.PredictorAdd2;X(\"ColorIndexInverseTransform\",\"MapARGB\",\"32b\",(function(t){return t>>8&255}),(function(t){return t})),X(\"VP8LColorIndexInverseTransformAlpha\",\"MapAlpha\",\"8b\",(function(t){return t}),(function(t){return t>>8&255}));var Gr,Yr=t.ColorIndexInverseTransform,Jr=t.MapARGB,Xr=t.VP8LColorIndexInverseTransformAlpha,Kr=t.MapAlpha,Zr=t.VP8LPredictorsAdd=[];Zr.length=16,(t.VP8LPredictors=[]).length=16,(t.VP8LPredictorsAdd_C=[]).length=16,(t.VP8LPredictors_C=[]).length=16;var $r,Qr,tn,en,rn,nn,an,on,sn,cn,un,hn,ln,fn,dn,pn,gn,mn,vn,bn,yn,wn,Nn,Ln,An,xn,Sn,_n,Pn=a(511),kn=a(2041),In=a(225),Fn=a(767),Cn=0,jn=kn,On=In,Bn=Fn,Mn=Pn,En=0,qn=1,Dn=2,Rn=3,Tn=4,Un=5,zn=6,Hn=7,Wn=8,Vn=9,Gn=10,Yn=[2,3,7],Jn=[3,3,11],Xn=[280,256,256,256,40],Kn=[0,1,1,1,0],Zn=[17,18,0,1,2,3,4,5,16,6,7,8,9,10,11,12,13,14,15],$n=[24,7,23,25,40,6,39,41,22,26,38,42,56,5,55,57,21,27,54,58,37,43,72,4,71,73,20,28,53,59,70,74,36,44,88,69,75,52,60,3,87,89,19,29,86,90,35,45,68,76,85,91,51,61,104,2,103,105,18,30,102,106,34,46,84,92,67,77,101,107,50,62,120,1,119,121,83,93,17,31,100,108,66,78,118,122,33,47,117,123,49,63,99,109,82,94,0,116,124,65,79,16,32,98,110,48,115,125,81,95,64,114,126,97,111,80,113,127,96,112],Qn=[2954,2956,2958,2962,2970,2986,3018,3082,3212,3468,3980,5004],ti=8,ei=[4,5,6,7,8,9,10,10,11,12,13,14,15,16,17,17,18,19,20,20,21,21,22,22,23,23,24,25,25,26,27,28,29,30,31,32,33,34,35,36,37,37,38,39,40,41,42,43,44,45,46,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,76,77,78,79,80,81,82,83,84,85,86,87,88,89,91,93,95,96,98,100,101,102,104,106,108,110,112,114,116,118,122,124,126,128,130,132,134,136,138,140,143,145,148,151,154,157],ri=[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,119,122,125,128,131,134,137,140,143,146,149,152,155,158,161,164,167,170,173,177,181,185,189,193,197,201,205,209,213,217,221,225,229,234,239,245,249,254,259,264,269,274,279,284],ni=null,ii=[[173,148,140,0],[176,155,140,135,0],[180,157,141,134,130,0],[254,254,243,230,196,177,153,140,133,130,129,0]],ai=[0,1,4,8,5,2,3,6,9,12,13,10,7,11,14,15],oi=[-0,1,-1,2,-2,3,4,6,-3,5,-4,-5,-6,7,-7,8,-8,-9],si=[[[[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128]],[[253,136,254,255,228,219,128,128,128,128,128],[189,129,242,255,227,213,255,219,128,128,128],[106,126,227,252,214,209,255,255,128,128,128]],[[1,98,248,255,236,226,255,255,128,128,128],[181,133,238,254,221,234,255,154,128,128,128],[78,134,202,247,198,180,255,219,128,128,128]],[[1,185,249,255,243,255,128,128,128,128,128],[184,150,247,255,236,224,128,128,128,128,128],[77,110,216,255,236,230,128,128,128,128,128]],[[1,101,251,255,241,255,128,128,128,128,128],[170,139,241,252,236,209,255,255,128,128,128],[37,116,196,243,228,255,255,255,128,128,128]],[[1,204,254,255,245,255,128,128,128,128,128],[207,160,250,255,238,128,128,128,128,128,128],[102,103,231,255,211,171,128,128,128,128,128]],[[1,152,252,255,240,255,128,128,128,128,128],[177,135,243,255,234,225,128,128,128,128,128],[80,129,211,255,194,224,128,128,128,128,128]],[[1,1,255,128,128,128,128,128,128,128,128],[246,1,255,128,128,128,128,128,128,128,128],[255,128,128,128,128,128,128,128,128,128,128]]],[[[198,35,237,223,193,187,162,160,145,155,62],[131,45,198,221,172,176,220,157,252,221,1],[68,47,146,208,149,167,221,162,255,223,128]],[[1,149,241,255,221,224,255,255,128,128,128],[184,141,234,253,222,220,255,199,128,128,128],[81,99,181,242,176,190,249,202,255,255,128]],[[1,129,232,253,214,197,242,196,255,255,128],[99,121,210,250,201,198,255,202,128,128,128],[23,91,163,242,170,187,247,210,255,255,128]],[[1,200,246,255,234,255,128,128,128,128,128],[109,178,241,255,231,245,255,255,128,128,128],[44,130,201,253,205,192,255,255,128,128,128]],[[1,132,239,251,219,209,255,165,128,128,128],[94,136,225,251,218,190,255,255,128,128,128],[22,100,174,245,186,161,255,199,128,128,128]],[[1,182,249,255,232,235,128,128,128,128,128],[124,143,241,255,227,234,128,128,128,128,128],[35,77,181,251,193,211,255,205,128,128,128]],[[1,157,247,255,236,231,255,255,128,128,128],[121,141,235,255,225,227,255,255,128,128,128],[45,99,188,251,195,217,255,224,128,128,128]],[[1,1,251,255,213,255,128,128,128,128,128],[203,1,248,255,255,128,128,128,128,128,128],[137,1,177,255,224,255,128,128,128,128,128]]],[[[253,9,248,251,207,208,255,192,128,128,128],[175,13,224,243,193,185,249,198,255,255,128],[73,17,171,221,161,179,236,167,255,234,128]],[[1,95,247,253,212,183,255,255,128,128,128],[239,90,244,250,211,209,255,255,128,128,128],[155,77,195,248,188,195,255,255,128,128,128]],[[1,24,239,251,218,219,255,205,128,128,128],[201,51,219,255,196,186,128,128,128,128,128],[69,46,190,239,201,218,255,228,128,128,128]],[[1,191,251,255,255,128,128,128,128,128,128],[223,165,249,255,213,255,128,128,128,128,128],[141,124,248,255,255,128,128,128,128,128,128]],[[1,16,248,255,255,128,128,128,128,128,128],[190,36,230,255,236,255,128,128,128,128,128],[149,1,255,128,128,128,128,128,128,128,128]],[[1,226,255,128,128,128,128,128,128,128,128],[247,192,255,128,128,128,128,128,128,128,128],[240,128,255,128,128,128,128,128,128,128,128]],[[1,134,252,255,255,128,128,128,128,128,128],[213,62,250,255,255,128,128,128,128,128,128],[55,93,255,128,128,128,128,128,128,128,128]],[[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128]]],[[[202,24,213,235,186,191,220,160,240,175,255],[126,38,182,232,169,184,228,174,255,187,128],[61,46,138,219,151,178,240,170,255,216,128]],[[1,112,230,250,199,191,247,159,255,255,128],[166,109,228,252,211,215,255,174,128,128,128],[39,77,162,232,172,180,245,178,255,255,128]],[[1,52,220,246,198,199,249,220,255,255,128],[124,74,191,243,183,193,250,221,255,255,128],[24,71,130,219,154,170,243,182,255,255,128]],[[1,182,225,249,219,240,255,224,128,128,128],[149,150,226,252,216,205,255,171,128,128,128],[28,108,170,242,183,194,254,223,255,255,128]],[[1,81,230,252,204,203,255,192,128,128,128],[123,102,209,247,188,196,255,233,128,128,128],[20,95,153,243,164,173,255,203,128,128,128]],[[1,222,248,255,216,213,128,128,128,128,128],[168,175,246,252,235,205,255,255,128,128,128],[47,116,215,255,211,212,255,255,128,128,128]],[[1,121,236,253,212,214,255,255,128,128,128],[141,84,213,252,201,202,255,219,128,128,128],[42,80,160,240,162,185,255,205,128,128,128]],[[1,1,255,128,128,128,128,128,128,128,128],[244,1,255,128,128,128,128,128,128,128,128],[238,1,255,128,128,128,128,128,128,128,128]]]],ci=[[[231,120,48,89,115,113,120,152,112],[152,179,64,126,170,118,46,70,95],[175,69,143,80,85,82,72,155,103],[56,58,10,171,218,189,17,13,152],[114,26,17,163,44,195,21,10,173],[121,24,80,195,26,62,44,64,85],[144,71,10,38,171,213,144,34,26],[170,46,55,19,136,160,33,206,71],[63,20,8,114,114,208,12,9,226],[81,40,11,96,182,84,29,16,36]],[[134,183,89,137,98,101,106,165,148],[72,187,100,130,157,111,32,75,80],[66,102,167,99,74,62,40,234,128],[41,53,9,178,241,141,26,8,107],[74,43,26,146,73,166,49,23,157],[65,38,105,160,51,52,31,115,128],[104,79,12,27,217,255,87,17,7],[87,68,71,44,114,51,15,186,23],[47,41,14,110,182,183,21,17,194],[66,45,25,102,197,189,23,18,22]],[[88,88,147,150,42,46,45,196,205],[43,97,183,117,85,38,35,179,61],[39,53,200,87,26,21,43,232,171],[56,34,51,104,114,102,29,93,77],[39,28,85,171,58,165,90,98,64],[34,22,116,206,23,34,43,166,73],[107,54,32,26,51,1,81,43,31],[68,25,106,22,64,171,36,225,114],[34,19,21,102,132,188,16,76,124],[62,18,78,95,85,57,50,48,51]],[[193,101,35,159,215,111,89,46,111],[60,148,31,172,219,228,21,18,111],[112,113,77,85,179,255,38,120,114],[40,42,1,196,245,209,10,25,109],[88,43,29,140,166,213,37,43,154],[61,63,30,155,67,45,68,1,209],[100,80,8,43,154,1,51,26,71],[142,78,78,16,255,128,34,197,171],[41,40,5,102,211,183,4,1,221],[51,50,17,168,209,192,23,25,82]],[[138,31,36,171,27,166,38,44,229],[67,87,58,169,82,115,26,59,179],[63,59,90,180,59,166,93,73,154],[40,40,21,116,143,209,34,39,175],[47,15,16,183,34,223,49,45,183],[46,17,33,183,6,98,15,32,183],[57,46,22,24,128,1,54,17,37],[65,32,73,115,28,128,23,128,205],[40,3,9,115,51,192,18,6,223],[87,37,9,115,59,77,64,21,47]],[[104,55,44,218,9,54,53,130,226],[64,90,70,205,40,41,23,26,57],[54,57,112,184,5,41,38,166,213],[30,34,26,133,152,116,10,32,134],[39,19,53,221,26,114,32,73,255],[31,9,65,234,2,15,1,118,73],[75,32,12,51,192,255,160,43,51],[88,31,35,67,102,85,55,186,85],[56,21,23,111,59,205,45,37,192],[55,38,70,124,73,102,1,34,98]],[[125,98,42,88,104,85,117,175,82],[95,84,53,89,128,100,113,101,45],[75,79,123,47,51,128,81,171,1],[57,17,5,71,102,57,53,41,49],[38,33,13,121,57,73,26,1,85],[41,10,67,138,77,110,90,47,114],[115,21,2,10,102,255,166,23,6],[101,29,16,10,85,128,101,196,26],[57,18,10,102,102,213,34,20,43],[117,20,15,36,163,128,68,1,26]],[[102,61,71,37,34,53,31,243,192],[69,60,71,38,73,119,28,222,37],[68,45,128,34,1,47,11,245,171],[62,17,19,70,146,85,55,62,70],[37,43,37,154,100,163,85,160,1],[63,9,92,136,28,64,32,201,85],[75,15,9,9,64,255,184,119,16],[86,6,28,5,64,255,25,248,1],[56,8,17,132,137,255,55,116,128],[58,15,20,82,135,57,26,121,40]],[[164,50,31,137,154,133,25,35,218],[51,103,44,131,131,123,31,6,158],[86,40,64,135,148,224,45,183,128],[22,26,17,131,240,154,14,1,209],[45,16,21,91,64,222,7,1,197],[56,21,39,155,60,138,23,102,213],[83,12,13,54,192,255,68,47,28],[85,26,85,85,128,128,32,146,171],[18,11,7,63,144,171,4,4,246],[35,27,10,146,174,171,12,26,128]],[[190,80,35,99,180,80,126,54,45],[85,126,47,87,176,51,41,20,32],[101,75,128,139,118,146,116,128,85],[56,41,15,176,236,85,37,9,62],[71,30,17,119,118,255,17,18,138],[101,38,60,138,55,70,43,26,142],[146,36,19,30,171,255,97,27,20],[138,45,61,62,219,1,81,188,64],[32,41,20,117,151,142,20,21,163],[112,19,12,61,195,128,48,4,24]]],ui=[[[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[176,246,255,255,255,255,255,255,255,255,255],[223,241,252,255,255,255,255,255,255,255,255],[249,253,253,255,255,255,255,255,255,255,255]],[[255,244,252,255,255,255,255,255,255,255,255],[234,254,254,255,255,255,255,255,255,255,255],[253,255,255,255,255,255,255,255,255,255,255]],[[255,246,254,255,255,255,255,255,255,255,255],[239,253,254,255,255,255,255,255,255,255,255],[254,255,254,255,255,255,255,255,255,255,255]],[[255,248,254,255,255,255,255,255,255,255,255],[251,255,254,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,253,254,255,255,255,255,255,255,255,255],[251,254,254,255,255,255,255,255,255,255,255],[254,255,254,255,255,255,255,255,255,255,255]],[[255,254,253,255,254,255,255,255,255,255,255],[250,255,254,255,254,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]],[[[217,255,255,255,255,255,255,255,255,255,255],[225,252,241,253,255,255,254,255,255,255,255],[234,250,241,250,253,255,253,254,255,255,255]],[[255,254,255,255,255,255,255,255,255,255,255],[223,254,254,255,255,255,255,255,255,255,255],[238,253,254,254,255,255,255,255,255,255,255]],[[255,248,254,255,255,255,255,255,255,255,255],[249,254,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,253,255,255,255,255,255,255,255,255,255],[247,254,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,253,254,255,255,255,255,255,255,255,255],[252,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,254,254,255,255,255,255,255,255,255,255],[253,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,254,253,255,255,255,255,255,255,255,255],[250,255,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]],[[[186,251,250,255,255,255,255,255,255,255,255],[234,251,244,254,255,255,255,255,255,255,255],[251,251,243,253,254,255,254,255,255,255,255]],[[255,253,254,255,255,255,255,255,255,255,255],[236,253,254,255,255,255,255,255,255,255,255],[251,253,253,254,254,255,255,255,255,255,255]],[[255,254,254,255,255,255,255,255,255,255,255],[254,254,254,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,254,255,255,255,255,255,255,255,255,255],[254,254,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]],[[[248,255,255,255,255,255,255,255,255,255,255],[250,254,252,254,255,255,255,255,255,255,255],[248,254,249,253,255,255,255,255,255,255,255]],[[255,253,253,255,255,255,255,255,255,255,255],[246,253,253,255,255,255,255,255,255,255,255],[252,254,251,254,254,255,255,255,255,255,255]],[[255,254,252,255,255,255,255,255,255,255,255],[248,254,253,255,255,255,255,255,255,255,255],[253,255,254,254,255,255,255,255,255,255,255]],[[255,251,254,255,255,255,255,255,255,255,255],[245,251,254,255,255,255,255,255,255,255,255],[253,253,254,255,255,255,255,255,255,255,255]],[[255,251,253,255,255,255,255,255,255,255,255],[252,253,254,255,255,255,255,255,255,255,255],[255,254,255,255,255,255,255,255,255,255,255]],[[255,252,255,255,255,255,255,255,255,255,255],[249,255,254,255,255,255,255,255,255,255,255],[255,255,254,255,255,255,255,255,255,255,255]],[[255,255,253,255,255,255,255,255,255,255,255],[250,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]]],hi=[0,1,2,3,6,4,5,6,6,6,6,6,6,6,6,7,0],li=[],fi=[],di=[],pi=1,gi=2,mi=[],vi=[];vr(\"UpsampleRgbLinePair\",Ar,3),vr(\"UpsampleBgrLinePair\",xr,3),vr(\"UpsampleRgbaLinePair\",Ir,4),vr(\"UpsampleBgraLinePair\",kr,4),vr(\"UpsampleArgbLinePair\",Pr,4),vr(\"UpsampleRgba4444LinePair\",_r,2),vr(\"UpsampleRgb565LinePair\",Sr,2);var bi=t.UpsampleRgbLinePair,yi=t.UpsampleBgrLinePair,wi=t.UpsampleRgbaLinePair,Ni=t.UpsampleBgraLinePair,Li=t.UpsampleArgbLinePair,Ai=t.UpsampleRgba4444LinePair,xi=t.UpsampleRgb565LinePair,Si=16,_i=1<<Si-1,Pi=-227,ki=482,Ii=6,Fi=(256<<Ii)-1,Ci=0,ji=a(256),Oi=a(256),Bi=a(256),Mi=a(256),Ei=a(ki-Pi),qi=a(ki-Pi);Fr(\"YuvToRgbRow\",Ar,3),Fr(\"YuvToBgrRow\",xr,3),Fr(\"YuvToRgbaRow\",Ir,4),Fr(\"YuvToBgraRow\",kr,4),Fr(\"YuvToArgbRow\",Pr,4),Fr(\"YuvToRgba4444Row\",_r,2),Fr(\"YuvToRgb565Row\",Sr,2);var Di=[0,4,8,12,128,132,136,140,256,260,264,268,384,388,392,396],Ri=[0,2,8],Ti=[8,7,6,4,4,2,2,2,1,1,1,1],Ui=1;this.WebPDecodeRGBA=function(t,r,n,i,a){var o=qn,s=new rr,c=new ot;s.ba=c,c.S=o,c.width=[c.width],c.height=[c.height];var u=c.width,h=c.height,l=new st;if(null==l||null==t)var f=2;else e(null!=l),f=Br(t,r,n,l.width,l.height,l.Pd,l.Qd,l.format,null);if(0!=f?u=0:(null!=u&&(u[0]=l.width[0]),null!=h&&(h[0]=l.height[0]),u=1),u){c.width=c.width[0],c.height=c.height[0],null!=i&&(i[0]=c.width),null!=a&&(a[0]=c.height);t:{if(i=new Gt,(a=new nr).data=t,a.w=r,a.ha=n,a.kd=1,r=[0],e(null!=a),(0==(t=Br(a.data,a.w,a.ha,null,null,null,r,null,a))||7==t)&&r[0]&&(t=4),0==(r=t)){if(e(null!=s),i.data=a.data,i.w=a.w+a.offset,i.ha=a.ha-a.offset,i.put=dt,i.ac=ft,i.bc=pt,i.ma=s,a.xa){if(null==(t=kt())){s=1;break t}if(function(t,r){var n=[0],i=[0],a=[0];e:for(;;){if(null==t)return 0;if(null==r)return t.a=2,0;if(t.l=r,t.a=0,v(t.m,r.data,r.w,r.ha),!gt(t.m,n,i,a)){t.a=3;break e}if(t.xb=gi,r.width=n[0],r.height=i[0],!It(n[0],i[0],1,t,null))break e;return 1}return e(0!=t.a),0}(t,i)){if(i=0==(r=qr(i.width,i.height,s.Oa,s.ba))){e:{i=t;r:for(;;){if(null==i){i=0;break e}if(e(null!=i.s.yc),e(null!=i.s.Ya),e(0<i.s.Wb),e(null!=(n=i.l)),e(null!=(a=n.ma)),0!=i.xb){if(i.ca=a.ba,i.tb=a.tb,e(null!=i.ca),!Mr(a.Oa,n,Rn)){i.a=2;break r}if(!Ft(i,n.width))break r;if(n.da)break r;if((n.da||nt(i.ca.S))&&mr(),11>i.ca.S||(alert(\"todo:WebPInitConvertARGBToYUV\"),null!=i.ca.f.kb.F&&mr()),i.Pb&&0<i.s.ua&&null==i.s.vb.X&&!O(i.s.vb,i.s.Wa.Xa)){i.a=1;break r}i.xb=0}if(!_t(i,i.V,i.Ba,i.c,i.i,n.o,Lt))break r;a.Dc=i.Ma,i=1;break e}e(0!=i.a),i=0}i=!i}i&&(r=t.a)}else r=t.a}else{if(null==(t=new Yt)){s=1;break t}if(t.Fa=a.na,t.P=a.P,t.qc=a.Sa,Kt(t,i)){if(0==(r=qr(i.width,i.height,s.Oa,s.ba))){if(t.Aa=0,n=s.Oa,e(null!=(a=t)),null!=n){if(0<(u=0>(u=n.Md)?0:100<u?255:255*u/100)){for(h=l=0;4>h;++h)12>(f=a.pb[h]).lc&&(f.ia=u*Ti[0>f.lc?0:f.lc]>>3),l|=f.ia;l&&(alert(\"todo:VP8InitRandom\"),a.ia=1)}a.Ga=n.Id,100<a.Ga?a.Ga=100:0>a.Ga&&(a.Ga=0)}Qt(t,i)||(r=t.a)}}else r=t.a}0==r&&null!=s.Oa&&s.Oa.fd&&(r=Er(s.ba))}s=r}o=0!=s?null:11>o?c.f.RGBA.eb:c.f.kb.y}else o=null;return o};var zi=[3,4,3,4,4,2,2,4,4,4,2,1,1]};function u(t,e){for(var r=\"\",n=0;n<4;n++)r+=String.fromCharCode(t[e++]);return r}function h(t,e){return(t[e+0]<<0|t[e+1]<<8|t[e+2]<<16)>>>0}function l(t,e){return(t[e+0]<<0|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24)>>>0}new c;var f=[0],d=[0],p=[],g=new c,m=t,v=function(t,e){var r={},n=0,i=!1,a=0,o=0;if(r.frames=[],!\n/** @license\n * Copyright (c) 2017 Dominik Homberger\n Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n https://webpjs.appspot.com\n WebPRiffParser dominikhlbg@gmail.com\n */\nfunction(t,e,r,n){for(var i=0;i<n;i++)if(t[e+i]!=r.charCodeAt(i))return!0;return!1}(t,e,\"RIFF\",4)){var s,c;l(t,e+=4);for(e+=8;e<t.length;){var f=u(t,e),d=l(t,e+=4);e+=4;var p=d+(1&d);switch(f){case\"VP8 \":case\"VP8L\":void 0===r.frames[n]&&(r.frames[n]={});(v=r.frames[n]).src_off=i?o:e-8,v.src_size=a+d+8,n++,i&&(i=!1,a=0,o=0);break;case\"VP8X\":(v=r.header={}).feature_flags=t[e];var g=e+4;v.canvas_width=1+h(t,g);g+=3;v.canvas_height=1+h(t,g);g+=3;break;case\"ALPH\":i=!0,a=p+8,o=e-8;break;case\"ANIM\":(v=r.header).bgcolor=l(t,e);g=e+4;v.loop_count=(s=t)[(c=g)+0]<<0|s[c+1]<<8;g+=2;break;case\"ANMF\":var m,v;(v=r.frames[n]={}).offset_x=2*h(t,e),e+=3,v.offset_y=2*h(t,e),e+=3,v.width=1+h(t,e),e+=3,v.height=1+h(t,e),e+=3,v.duration=h(t,e),e+=3,m=t[e++],v.dispose=1&m,v.blend=m>>1&1}\"ANMF\"!=f&&(e+=p)}return r}}(m,0);v.response=m,v.rgbaoutput=!0,v.dataurl=!1;var b=v.header?v.header:null,y=v.frames?v.frames:null;if(b){b.loop_counter=b.loop_count,f=[b.canvas_height],d=[b.canvas_width];for(var w=0;w<y.length&&0!=y[w].blend;w++);}var N=y[0],L=g.WebPDecodeRGBA(m,N.src_off,N.src_size,d,f);N.rgba=L,N.imgwidth=d[0],N.imgheight=f[0];for(var A=0;A<d[0]*f[0]*4;A++)p[A]=L[A];return this.width=d,this.height=f,this.data=p,this}!function(t){var r=function(){return\"function\"==typeof e},n=function(r,n,a,h){var l=4,f=s;switch(h){case t.image_compression.FAST:l=1,f=o;break;case t.image_compression.MEDIUM:l=6,f=c;break;case t.image_compression.SLOW:l=9,f=u}r=i(r,n,a,f);var d=e(r,{level:l});return t.__addimage__.arrayBufferToBinaryString(d)},i=function(t,e,r,n){for(var i,a,o,s=t.length/e,c=new Uint8Array(t.length+s),u=l(),h=0;h<s;h+=1){if(o=h*e,i=t.subarray(o,o+e),n)c.set(n(i,r,a),o+h);else{for(var d,p=u.length,g=[];d<p;d+=1)g[d]=u[d](i,r,a);var m=f(g.concat());c.set(g[m],o+h)}a=i}return c},a=function(t){var e=Array.apply([],t);return e.unshift(0),e},o=function(t,e){var r,n=[],i=t.length;n[0]=1;for(var a=0;a<i;a+=1)r=t[a-e]||0,n[a+1]=t[a]-r+256&255;return n},s=function(t,e,r){var n,i=[],a=t.length;i[0]=2;for(var o=0;o<a;o+=1)n=r&&r[o]||0,i[o+1]=t[o]-n+256&255;return i},c=function(t,e,r){var n,i,a=[],o=t.length;a[0]=3;for(var s=0;s<o;s+=1)n=t[s-e]||0,i=r&&r[s]||0,a[s+1]=t[s]+256-(n+i>>>1)&255;return a},u=function(t,e,r){var n,i,a,o,s=[],c=t.length;s[0]=4;for(var u=0;u<c;u+=1)n=t[u-e]||0,i=r&&r[u]||0,a=r&&r[u-e]||0,o=h(n,i,a),s[u+1]=t[u]-o+256&255;return s},h=function(t,e,r){if(t===e&&e===r)return t;var n=Math.abs(e-r),i=Math.abs(t-r),a=Math.abs(t+e-r-r);return n<=i&&n<=a?t:i<=a?e:r},l=function(){return[a,o,s,c,u]},f=function(t){var e=t.map((function(t){return t.reduce((function(t,e){return t+Math.abs(e)}),0)}));return e.indexOf(Math.min.apply(null,e))};t.processPNG=function(e,i,a,o){var s,c,u,h,l,f,d,p,g,m,v,b,y,w,N,L=this.decode.FLATE_DECODE,A=\"\";if(this.__addimage__.isArrayBuffer(e)&&(e=new Uint8Array(e)),this.__addimage__.isArrayBufferView(e)){if(e=(u=new Kt(e)).imgData,c=u.bits,s=u.colorSpace,l=u.colors,-1!==[4,6].indexOf(u.colorType)){if(8===u.bits){g=(p=32==u.pixelBitlength?new Uint32Array(u.decodePixels().buffer):16==u.pixelBitlength?new Uint16Array(u.decodePixels().buffer):new Uint8Array(u.decodePixels().buffer)).length,v=new Uint8Array(g*u.colors),m=new Uint8Array(g);var x,S=u.pixelBitlength-u.bits;for(w=0,N=0;w<g;w++){for(y=p[w],x=0;x<S;)v[N++]=y>>>x&255,x+=u.bits;m[w]=y>>>x&255}}if(16===u.bits){g=(p=new Uint32Array(u.decodePixels().buffer)).length,v=new Uint8Array(g*(32/u.pixelBitlength)*u.colors),m=new Uint8Array(g*(32/u.pixelBitlength)),b=u.colors>1,w=0,N=0;for(var _=0;w<g;)y=p[w++],v[N++]=y>>>0&255,b&&(v[N++]=y>>>16&255,y=p[w++],v[N++]=y>>>0&255),m[_++]=y>>>16&255;c=8}o!==t.image_compression.NONE&&r()?(e=n(v,u.width*u.colors,u.colors,o),d=n(m,u.width,1,o)):(e=v,d=m,L=void 0)}if(3===u.colorType&&(s=this.color_spaces.INDEXED,f=u.palette,u.transparency.indexed)){var P=u.transparency.indexed,k=0;for(w=0,g=P.length;w<g;++w)k+=P[w];if((k/=255)===g-1&&-1!==P.indexOf(0))h=[P.indexOf(0)];else if(k!==g){for(p=u.decodePixels(),m=new Uint8Array(p.length),w=0,g=p.length;w<g;w++)m[w]=P[p[w]];d=n(m,u.width,1)}}var I=function(e){var r;switch(e){case t.image_compression.FAST:r=11;break;case t.image_compression.MEDIUM:r=13;break;case t.image_compression.SLOW:r=14;break;default:r=12}return r}(o);return L===this.decode.FLATE_DECODE&&(A=\"/Predictor \"+I+\" \"),A+=\"/Colors \"+l+\" /BitsPerComponent \"+c+\" /Columns \"+u.width,(this.__addimage__.isArrayBuffer(e)||this.__addimage__.isArrayBufferView(e))&&(e=this.__addimage__.arrayBufferToBinaryString(e)),(d&&this.__addimage__.isArrayBuffer(d)||this.__addimage__.isArrayBufferView(d))&&(d=this.__addimage__.arrayBufferToBinaryString(d)),{alias:a,data:e,index:i,filter:L,decodeParameters:A,transparency:h,palette:f,sMask:d,predictor:I,width:u.width,height:u.height,bitsPerComponent:c,colorSpace:s}}}}(E.API),function(t){t.processGIF89A=function(e,r,n,i){var a=new Zt(e),o=a.width,s=a.height,c=[];a.decodeAndBlitFrameRGBA(0,c);var u={data:c,width:o,height:s},h=new Qt(100).encode(u,100);return t.processJPEG.call(this,h,r,n,i)},t.processGIF87A=t.processGIF89A}(E.API),te.prototype.parseHeader=function(){if(this.fileSize=this.datav.getUint32(this.pos,!0),this.pos+=4,this.reserved=this.datav.getUint32(this.pos,!0),this.pos+=4,this.offset=this.datav.getUint32(this.pos,!0),this.pos+=4,this.headerSize=this.datav.getUint32(this.pos,!0),this.pos+=4,this.width=this.datav.getUint32(this.pos,!0),this.pos+=4,this.height=this.datav.getInt32(this.pos,!0),this.pos+=4,this.planes=this.datav.getUint16(this.pos,!0),this.pos+=2,this.bitPP=this.datav.getUint16(this.pos,!0),this.pos+=2,this.compress=this.datav.getUint32(this.pos,!0),this.pos+=4,this.rawSize=this.datav.getUint32(this.pos,!0),this.pos+=4,this.hr=this.datav.getUint32(this.pos,!0),this.pos+=4,this.vr=this.datav.getUint32(this.pos,!0),this.pos+=4,this.colors=this.datav.getUint32(this.pos,!0),this.pos+=4,this.importantColors=this.datav.getUint32(this.pos,!0),this.pos+=4,16===this.bitPP&&this.is_with_alpha&&(this.bitPP=15),this.bitPP<15){var t=0===this.colors?1<<this.bitPP:this.colors;this.palette=new Array(t);for(var e=0;e<t;e++){var r=this.datav.getUint8(this.pos++,!0),n=this.datav.getUint8(this.pos++,!0),i=this.datav.getUint8(this.pos++,!0),a=this.datav.getUint8(this.pos++,!0);this.palette[e]={red:i,green:n,blue:r,quad:a}}}this.height<0&&(this.height*=-1,this.bottom_up=!1)},te.prototype.parseBGR=function(){this.pos=this.offset;try{var t=\"bit\"+this.bitPP,e=this.width*this.height*4;this.data=new Uint8Array(e),this[t]()}catch(t){a.log(\"bit decode error:\"+t)}},te.prototype.bit1=function(){var t,e=Math.ceil(this.width/8),r=e%4;for(t=this.height-1;t>=0;t--){for(var n=this.bottom_up?t:this.height-1-t,i=0;i<e;i++)for(var a=this.datav.getUint8(this.pos++,!0),o=n*this.width*4+8*i*4,s=0;s<8&&8*i+s<this.width;s++){var c=this.palette[a>>7-s&1];this.data[o+4*s]=c.blue,this.data[o+4*s+1]=c.green,this.data[o+4*s+2]=c.red,this.data[o+4*s+3]=255}0!==r&&(this.pos+=4-r)}},te.prototype.bit4=function(){for(var t=Math.ceil(this.width/2),e=t%4,r=this.height-1;r>=0;r--){for(var n=this.bottom_up?r:this.height-1-r,i=0;i<t;i++){var a=this.datav.getUint8(this.pos++,!0),o=n*this.width*4+2*i*4,s=a>>4,c=15&a,u=this.palette[s];if(this.data[o]=u.blue,this.data[o+1]=u.green,this.data[o+2]=u.red,this.data[o+3]=255,2*i+1>=this.width)break;u=this.palette[c],this.data[o+4]=u.blue,this.data[o+4+1]=u.green,this.data[o+4+2]=u.red,this.data[o+4+3]=255}0!==e&&(this.pos+=4-e)}},te.prototype.bit8=function(){for(var t=this.width%4,e=this.height-1;e>=0;e--){for(var r=this.bottom_up?e:this.height-1-e,n=0;n<this.width;n++){var i=this.datav.getUint8(this.pos++,!0),a=r*this.width*4+4*n;if(i<this.palette.length){var o=this.palette[i];this.data[a]=o.red,this.data[a+1]=o.green,this.data[a+2]=o.blue,this.data[a+3]=255}else this.data[a]=255,this.data[a+1]=255,this.data[a+2]=255,this.data[a+3]=255}0!==t&&(this.pos+=4-t)}},te.prototype.bit15=function(){for(var t=this.width%3,e=parseInt(\"11111\",2),r=this.height-1;r>=0;r--){for(var n=this.bottom_up?r:this.height-1-r,i=0;i<this.width;i++){var a=this.datav.getUint16(this.pos,!0);this.pos+=2;var o=(a&e)/e*255|0,s=(a>>5&e)/e*255|0,c=(a>>10&e)/e*255|0,u=a>>15?255:0,h=n*this.width*4+4*i;this.data[h]=c,this.data[h+1]=s,this.data[h+2]=o,this.data[h+3]=u}this.pos+=t}},te.prototype.bit16=function(){for(var t=this.width%3,e=parseInt(\"11111\",2),r=parseInt(\"111111\",2),n=this.height-1;n>=0;n--){for(var i=this.bottom_up?n:this.height-1-n,a=0;a<this.width;a++){var o=this.datav.getUint16(this.pos,!0);this.pos+=2;var s=(o&e)/e*255|0,c=(o>>5&r)/r*255|0,u=(o>>11)/e*255|0,h=i*this.width*4+4*a;this.data[h]=u,this.data[h+1]=c,this.data[h+2]=s,this.data[h+3]=255}this.pos+=t}},te.prototype.bit24=function(){for(var t=this.height-1;t>=0;t--){for(var e=this.bottom_up?t:this.height-1-t,r=0;r<this.width;r++){var n=this.datav.getUint8(this.pos++,!0),i=this.datav.getUint8(this.pos++,!0),a=this.datav.getUint8(this.pos++,!0),o=e*this.width*4+4*r;this.data[o]=a,this.data[o+1]=i,this.data[o+2]=n,this.data[o+3]=255}this.pos+=this.width%4}},te.prototype.bit32=function(){for(var t=this.height-1;t>=0;t--)for(var e=this.bottom_up?t:this.height-1-t,r=0;r<this.width;r++){var n=this.datav.getUint8(this.pos++,!0),i=this.datav.getUint8(this.pos++,!0),a=this.datav.getUint8(this.pos++,!0),o=this.datav.getUint8(this.pos++,!0),s=e*this.width*4+4*r;this.data[s]=a,this.data[s+1]=i,this.data[s+2]=n,this.data[s+3]=o}},te.prototype.getData=function(){return this.data},\n/**\n * @license\n * Copyright (c) 2018 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){t.processBMP=function(e,r,n,i){var a=new te(e,!1),o=a.width,s=a.height,c={data:a.getData(),width:o,height:s},u=new Qt(100).encode(c,100);return t.processJPEG.call(this,u,r,n,i)}}(E.API),ee.prototype.getData=function(){return this.data},\n/**\n * @license\n * Copyright (c) 2019 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){t.processWEBP=function(e,r,n,i){var a=new ee(e,!1),o=a.width,s=a.height,c={data:a.getData(),width:o,height:s},u=new Qt(100).encode(c,100);return t.processJPEG.call(this,u,r,n,i)}}(E.API),E.API.processRGBA=function(t,e,r){for(var n=t.data,i=n.length,a=new Uint8Array(i/4*3),o=new Uint8Array(i/4),s=0,c=0,u=0;u<i;u+=4){var h=n[u],l=n[u+1],f=n[u+2],d=n[u+3];a[s++]=h,a[s++]=l,a[s++]=f,o[c++]=d}var p=this.__addimage__.arrayBufferToBinaryString(a);return{alpha:this.__addimage__.arrayBufferToBinaryString(o),data:p,index:e,alias:r,colorSpace:\"DeviceRGB\",bitsPerComponent:8,width:t.width,height:t.height}},E.API.setLanguage=function(t){return void 0===this.internal.languageSettings&&(this.internal.languageSettings={},this.internal.languageSettings.isSubscribed=!1),void 0!=={af:\"Afrikaans\",sq:\"Albanian\",ar:\"Arabic (Standard)\",\"ar-DZ\":\"Arabic (Algeria)\",\"ar-BH\":\"Arabic (Bahrain)\",\"ar-EG\":\"Arabic (Egypt)\",\"ar-IQ\":\"Arabic (Iraq)\",\"ar-JO\":\"Arabic (Jordan)\",\"ar-KW\":\"Arabic (Kuwait)\",\"ar-LB\":\"Arabic (Lebanon)\",\"ar-LY\":\"Arabic (Libya)\",\"ar-MA\":\"Arabic (Morocco)\",\"ar-OM\":\"Arabic (Oman)\",\"ar-QA\":\"Arabic (Qatar)\",\"ar-SA\":\"Arabic (Saudi Arabia)\",\"ar-SY\":\"Arabic (Syria)\",\"ar-TN\":\"Arabic (Tunisia)\",\"ar-AE\":\"Arabic (U.A.E.)\",\"ar-YE\":\"Arabic (Yemen)\",an:\"Aragonese\",hy:\"Armenian\",as:\"Assamese\",ast:\"Asturian\",az:\"Azerbaijani\",eu:\"Basque\",be:\"Belarusian\",bn:\"Bengali\",bs:\"Bosnian\",br:\"Breton\",bg:\"Bulgarian\",my:\"Burmese\",ca:\"Catalan\",ch:\"Chamorro\",ce:\"Chechen\",zh:\"Chinese\",\"zh-HK\":\"Chinese (Hong Kong)\",\"zh-CN\":\"Chinese (PRC)\",\"zh-SG\":\"Chinese (Singapore)\",\"zh-TW\":\"Chinese (Taiwan)\",cv:\"Chuvash\",co:\"Corsican\",cr:\"Cree\",hr:\"Croatian\",cs:\"Czech\",da:\"Danish\",nl:\"Dutch (Standard)\",\"nl-BE\":\"Dutch (Belgian)\",en:\"English\",\"en-AU\":\"English (Australia)\",\"en-BZ\":\"English (Belize)\",\"en-CA\":\"English (Canada)\",\"en-IE\":\"English (Ireland)\",\"en-JM\":\"English (Jamaica)\",\"en-NZ\":\"English (New Zealand)\",\"en-PH\":\"English (Philippines)\",\"en-ZA\":\"English (South Africa)\",\"en-TT\":\"English (Trinidad & Tobago)\",\"en-GB\":\"English (United Kingdom)\",\"en-US\":\"English (United States)\",\"en-ZW\":\"English (Zimbabwe)\",eo:\"Esperanto\",et:\"Estonian\",fo:\"Faeroese\",fj:\"Fijian\",fi:\"Finnish\",fr:\"French (Standard)\",\"fr-BE\":\"French (Belgium)\",\"fr-CA\":\"French (Canada)\",\"fr-FR\":\"French (France)\",\"fr-LU\":\"French (Luxembourg)\",\"fr-MC\":\"French (Monaco)\",\"fr-CH\":\"French (Switzerland)\",fy:\"Frisian\",fur:\"Friulian\",gd:\"Gaelic (Scots)\",\"gd-IE\":\"Gaelic (Irish)\",gl:\"Galacian\",ka:\"Georgian\",de:\"German (Standard)\",\"de-AT\":\"German (Austria)\",\"de-DE\":\"German (Germany)\",\"de-LI\":\"German (Liechtenstein)\",\"de-LU\":\"German (Luxembourg)\",\"de-CH\":\"German (Switzerland)\",el:\"Greek\",gu:\"Gujurati\",ht:\"Haitian\",he:\"Hebrew\",hi:\"Hindi\",hu:\"Hungarian\",is:\"Icelandic\",id:\"Indonesian\",iu:\"Inuktitut\",ga:\"Irish\",it:\"Italian (Standard)\",\"it-CH\":\"Italian (Switzerland)\",ja:\"Japanese\",kn:\"Kannada\",ks:\"Kashmiri\",kk:\"Kazakh\",km:\"Khmer\",ky:\"Kirghiz\",tlh:\"Klingon\",ko:\"Korean\",\"ko-KP\":\"Korean (North Korea)\",\"ko-KR\":\"Korean (South Korea)\",la:\"Latin\",lv:\"Latvian\",lt:\"Lithuanian\",lb:\"Luxembourgish\",mk:\"North Macedonia\",ms:\"Malay\",ml:\"Malayalam\",mt:\"Maltese\",mi:\"Maori\",mr:\"Marathi\",mo:\"Moldavian\",nv:\"Navajo\",ng:\"Ndonga\",ne:\"Nepali\",no:\"Norwegian\",nb:\"Norwegian (Bokmal)\",nn:\"Norwegian (Nynorsk)\",oc:\"Occitan\",or:\"Oriya\",om:\"Oromo\",fa:\"Persian\",\"fa-IR\":\"Persian/Iran\",pl:\"Polish\",pt:\"Portuguese\",\"pt-BR\":\"Portuguese (Brazil)\",pa:\"Punjabi\",\"pa-IN\":\"Punjabi (India)\",\"pa-PK\":\"Punjabi (Pakistan)\",qu:\"Quechua\",rm:\"Rhaeto-Romanic\",ro:\"Romanian\",\"ro-MO\":\"Romanian (Moldavia)\",ru:\"Russian\",\"ru-MO\":\"Russian (Moldavia)\",sz:\"Sami (Lappish)\",sg:\"Sango\",sa:\"Sanskrit\",sc:\"Sardinian\",sd:\"Sindhi\",si:\"Singhalese\",sr:\"Serbian\",sk:\"Slovak\",sl:\"Slovenian\",so:\"Somani\",sb:\"Sorbian\",es:\"Spanish\",\"es-AR\":\"Spanish (Argentina)\",\"es-BO\":\"Spanish (Bolivia)\",\"es-CL\":\"Spanish (Chile)\",\"es-CO\":\"Spanish (Colombia)\",\"es-CR\":\"Spanish (Costa Rica)\",\"es-DO\":\"Spanish (Dominican Republic)\",\"es-EC\":\"Spanish (Ecuador)\",\"es-SV\":\"Spanish (El Salvador)\",\"es-GT\":\"Spanish (Guatemala)\",\"es-HN\":\"Spanish (Honduras)\",\"es-MX\":\"Spanish (Mexico)\",\"es-NI\":\"Spanish (Nicaragua)\",\"es-PA\":\"Spanish (Panama)\",\"es-PY\":\"Spanish (Paraguay)\",\"es-PE\":\"Spanish (Peru)\",\"es-PR\":\"Spanish (Puerto Rico)\",\"es-ES\":\"Spanish (Spain)\",\"es-UY\":\"Spanish (Uruguay)\",\"es-VE\":\"Spanish (Venezuela)\",sx:\"Sutu\",sw:\"Swahili\",sv:\"Swedish\",\"sv-FI\":\"Swedish (Finland)\",\"sv-SV\":\"Swedish (Sweden)\",ta:\"Tamil\",tt:\"Tatar\",te:\"Teluga\",th:\"Thai\",tig:\"Tigre\",ts:\"Tsonga\",tn:\"Tswana\",tr:\"Turkish\",tk:\"Turkmen\",uk:\"Ukrainian\",hsb:\"Upper Sorbian\",ur:\"Urdu\",ve:\"Venda\",vi:\"Vietnamese\",vo:\"Volapuk\",wa:\"Walloon\",cy:\"Welsh\",xh:\"Xhosa\",ji:\"Yiddish\",zu:\"Zulu\"}[t]&&(this.internal.languageSettings.languageCode=t,!1===this.internal.languageSettings.isSubscribed&&(this.internal.events.subscribe(\"putCatalog\",(function(){this.internal.write(\"/Lang (\"+this.internal.languageSettings.languageCode+\")\")})),this.internal.languageSettings.isSubscribed=!0)),this},Vt=E.API,Gt=Vt.getCharWidthsArray=function(e,r){var n,i,a=(r=r||{}).font||this.internal.getFont(),o=r.fontSize||this.internal.getFontSize(),s=r.charSpace||this.internal.getCharSpace(),c=r.widths?r.widths:a.metadata.Unicode.widths,u=c.fof?c.fof:1,h=r.kerning?r.kerning:a.metadata.Unicode.kerning,l=h.fof?h.fof:1,f=!1!==r.doKerning,d=0,p=e.length,g=0,m=c[0]||u,v=[];for(n=0;n<p;n++)i=e.charCodeAt(n),\"function\"==typeof a.metadata.widthOfString?v.push((a.metadata.widthOfGlyph(a.metadata.characterToGlyph(i))+s*(1e3/o)||0)/1e3):(d=f&&\"object\"===t(h[i])&&!isNaN(parseInt(h[i][g],10))?h[i][g]/l:0,v.push((c[i]||m)/u+d)),g=i;return v},Yt=Vt.getStringUnitWidth=function(t,e){var r=(e=e||{}).fontSize||this.internal.getFontSize(),n=e.font||this.internal.getFont(),i=e.charSpace||this.internal.getCharSpace();return Vt.processArabic&&(t=Vt.processArabic(t)),\"function\"==typeof n.metadata.widthOfString?n.metadata.widthOfString(t,r,i)/r:Gt.apply(this,arguments).reduce((function(t,e){return t+e}),0)},Jt=function(t,e,r,n){for(var i=[],a=0,o=t.length,s=0;a!==o&&s+e[a]<r;)s+=e[a],a++;i.push(t.slice(0,a));var c=a;for(s=0;a!==o;)s+e[a]>n&&(i.push(t.slice(c,a)),s=0,c=a),s+=e[a],a++;return c!==a&&i.push(t.slice(c,a)),i},Xt=function(t,e,r){r||(r={});var n,i,a,o,s,c,u,h=[],l=[h],f=r.textIndent||0,d=0,p=0,g=t.split(\" \"),m=Gt.apply(this,[\" \",r])[0];if(c=-1===r.lineIndent?g[0].length+2:r.lineIndent||0){var v=Array(c).join(\" \"),b=[];g.map((function(t){(t=t.split(/\\s*\\n/)).length>1?b=b.concat(t.map((function(t,e){return(e&&t.length?\"\\n\":\"\")+t}))):b.push(t[0])})),g=b,c=Yt.apply(this,[v,r])}for(a=0,o=g.length;a<o;a++){var y=0;if(n=g[a],c&&\"\\n\"==n[0]&&(n=n.substr(1),y=1),f+d+(p=(i=Gt.apply(this,[n,r])).reduce((function(t,e){return t+e}),0))>e||y){if(p>e){for(s=Jt.apply(this,[n,i,e-(f+d),e]),h.push(s.shift()),h=[s.pop()];s.length;)l.push([s.shift()]);p=i.slice(n.length-(h[0]?h[0].length:0)).reduce((function(t,e){return t+e}),0)}else h=[n];l.push(h),f=p+c,d=m}else h.push(n),f+=d+p,d=m}return u=c?function(t,e){return(e?v:\"\")+t.join(\" \")}:function(t){return t.join(\" \")},l.map(u)},Vt.splitTextToSize=function(t,e,r){var n,i=(r=r||{}).fontSize||this.internal.getFontSize(),a=function(t){if(t.widths&&t.kerning)return{widths:t.widths,kerning:t.kerning};var e=this.internal.getFont(t.fontName,t.fontStyle);return e.metadata.Unicode?{widths:e.metadata.Unicode.widths||{0:1},kerning:e.metadata.Unicode.kerning||{}}:{font:e.metadata,fontSize:this.internal.getFontSize(),charSpace:this.internal.getCharSpace()}}.call(this,r);n=Array.isArray(t)?t:String(t).split(/\\r?\\n/);var o=1*this.internal.scaleFactor*e/i;a.textIndent=r.textIndent?1*r.textIndent*this.internal.scaleFactor/i:0,a.lineIndent=r.lineIndent;var s,c,u=[];for(s=0,c=n.length;s<c;s++)u=u.concat(Xt.apply(this,[n[s],o,a]));return u},function(e){e.__fontmetrics__=e.__fontmetrics__||{};for(var r=\"klmnopqrstuvwxyz\",n={},i={},a=0;a<r.length;a++)n[r[a]]=\"0123456789abcdef\"[a],i[\"0123456789abcdef\"[a]]=r[a];var o=function(t){return\"0x\"+parseInt(t,10).toString(16)},s=e.__fontmetrics__.compress=function(e){var r,n,a,c,u=[\"{\"];for(var h in e){if(r=e[h],isNaN(parseInt(h,10))?n=\"'\"+h+\"'\":(h=parseInt(h,10),n=(n=o(h).slice(2)).slice(0,-1)+i[n.slice(-1)]),\"number\"==typeof r)r<0?(a=o(r).slice(3),c=\"-\"):(a=o(r).slice(2),c=\"\"),a=c+a.slice(0,-1)+i[a.slice(-1)];else{if(\"object\"!==t(r))throw new Error(\"Don't know what to do with value type \"+t(r)+\".\");a=s(r)}u.push(n+a)}return u.push(\"}\"),u.join(\"\")},c=e.__fontmetrics__.uncompress=function(t){if(\"string\"!=typeof t)throw new Error(\"Invalid argument passed to uncompress.\");for(var e,r,i,a,o={},s=1,c=o,u=[],h=\"\",l=\"\",f=t.length-1,d=1;d<f;d+=1)\"'\"==(a=t[d])?e?(i=e.join(\"\"),e=void 0):e=[]:e?e.push(a):\"{\"==a?(u.push([c,i]),c={},i=void 0):\"}\"==a?((r=u.pop())[0][r[1]]=c,i=void 0,c=r[0]):\"-\"==a?s=-1:void 0===i?n.hasOwnProperty(a)?(h+=n[a],i=parseInt(h,16)*s,s=1,h=\"\"):h+=a:n.hasOwnProperty(a)?(l+=n[a],c[i]=parseInt(l,16)*s,s=1,i=void 0,l=\"\"):l+=a;return o},u={codePages:[\"WinAnsiEncoding\"],WinAnsiEncoding:c(\"{19m8n201n9q201o9r201s9l201t9m201u8m201w9n201x9o201y8o202k8q202l8r202m9p202q8p20aw8k203k8t203t8v203u9v2cq8s212m9t15m8w15n9w2dw9s16k8u16l9u17s9z17x8y17y9y}\")},h={Unicode:{Courier:u,\"Courier-Bold\":u,\"Courier-BoldOblique\":u,\"Courier-Oblique\":u,Helvetica:u,\"Helvetica-Bold\":u,\"Helvetica-BoldOblique\":u,\"Helvetica-Oblique\":u,\"Times-Roman\":u,\"Times-Bold\":u,\"Times-BoldItalic\":u,\"Times-Italic\":u}},l={Unicode:{\"Courier-Oblique\":c(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\"Times-BoldItalic\":c(\"{'widths'{k3o2q4ycx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2r202m2n2n3m2o3m2p5n202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5n4l4m4m4m4n4m4o4s4p4m4q4m4r4s4s4y4t2r4u3m4v4m4w3x4x5t4y4s4z4s5k3x5l4s5m4m5n3r5o3x5p4s5q4m5r5t5s4m5t3x5u3x5v2l5w1w5x2l5y3t5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q2l6r3m6s3r6t1w6u1w6v3m6w1w6x4y6y3r6z3m7k3m7l3m7m2r7n2r7o1w7p3r7q2w7r4m7s3m7t2w7u2r7v2n7w1q7x2n7y3t202l3mcl4mal2ram3man3mao3map3mar3mas2lat4uau1uav3maw3way4uaz2lbk2sbl3t'fof'6obo2lbp3tbq3mbr1tbs2lbu1ybv3mbz3mck4m202k3mcm4mcn4mco4mcp4mcq5ycr4mcs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz2w203k6o212m6o2dw2l2cq2l3t3m3u2l17s3x19m3m}'kerning'{cl{4qu5kt5qt5rs17ss5ts}201s{201ss}201t{cks4lscmscnscoscpscls2wu2yu201ts}201x{2wu2yu}2k{201ts}2w{4qx5kx5ou5qx5rs17su5tu}2x{17su5tu5ou}2y{4qx5kx5ou5qx5rs17ss5ts}'fof'-6ofn{17sw5tw5ou5qw5rs}7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qs}3v{17su5tu5os5qs}7p{17su5tu}ck{4qu5kt5qt5rs17ss5ts}4l{4qu5kt5qt5rs17ss5ts}cm{4qu5kt5qt5rs17ss5ts}cn{4qu5kt5qt5rs17ss5ts}co{4qu5kt5qt5rs17ss5ts}cp{4qu5kt5qt5rs17ss5ts}6l{4qu5ou5qw5rt17su5tu}5q{ckuclucmucnucoucpu4lu}5r{ckuclucmucnucoucpu4lu}7q{cksclscmscnscoscps4ls}6p{4qu5ou5qw5rt17sw5tw}ek{4qu5ou5qw5rt17su5tu}el{4qu5ou5qw5rt17su5tu}em{4qu5ou5qw5rt17su5tu}en{4qu5ou5qw5rt17su5tu}eo{4qu5ou5qw5rt17su5tu}ep{4qu5ou5qw5rt17su5tu}es{17ss5ts5qs4qu}et{4qu5ou5qw5rt17sw5tw}eu{4qu5ou5qw5rt17ss5ts}ev{17ss5ts5qs4qu}6z{17sw5tw5ou5qw5rs}fm{17sw5tw5ou5qw5rs}7n{201ts}fo{17sw5tw5ou5qw5rs}fp{17sw5tw5ou5qw5rs}fq{17sw5tw5ou5qw5rs}7r{cksclscmscnscoscps4ls}fs{17sw5tw5ou5qw5rs}ft{17su5tu}fu{17su5tu}fv{17su5tu}fw{17su5tu}fz{cksclscmscnscoscps4ls}}}\"),\"Helvetica-Bold\":c(\"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"),Courier:c(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\"Courier-BoldOblique\":c(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\"Times-Bold\":c(\"{'widths'{k3q2q5ncx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2l202m2n2n3m2o3m2p6o202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5x4l4s4m4m4n4s4o4s4p4m4q3x4r4y4s4y4t2r4u3m4v4y4w4m4x5y4y4s4z4y5k3x5l4y5m4s5n3r5o4m5p4s5q4s5r6o5s4s5t4s5u4m5v2l5w1w5x2l5y3u5z3m6k2l6l3m6m3r6n2w6o3r6p2w6q2l6r3m6s3r6t1w6u2l6v3r6w1w6x5n6y3r6z3m7k3r7l3r7m2w7n2r7o2l7p3r7q3m7r4s7s3m7t3m7u2w7v2r7w1q7x2r7y3o202l3mcl4sal2lam3man3mao3map3mar3mas2lat4uau1yav3maw3tay4uaz2lbk2sbl3t'fof'6obo2lbp3rbr1tbs2lbu2lbv3mbz3mck4s202k3mcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3rek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3m3u2l17s4s19m3m}'kerning'{cl{4qt5ks5ot5qy5rw17sv5tv}201t{cks4lscmscnscoscpscls4wv}2k{201ts}2w{4qu5ku7mu5os5qx5ru17su5tu}2x{17su5tu5ou5qs}2y{4qv5kv7mu5ot5qz5ru17su5tu}'fof'-6o7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qu}3v{17su5tu5os5qu}fu{17su5tu5ou5qu}7p{17su5tu5ou5qu}ck{4qt5ks5ot5qy5rw17sv5tv}4l{4qt5ks5ot5qy5rw17sv5tv}cm{4qt5ks5ot5qy5rw17sv5tv}cn{4qt5ks5ot5qy5rw17sv5tv}co{4qt5ks5ot5qy5rw17sv5tv}cp{4qt5ks5ot5qy5rw17sv5tv}6l{17st5tt5ou5qu}17s{ckuclucmucnucoucpu4lu4wu}5o{ckuclucmucnucoucpu4lu4wu}5q{ckzclzcmzcnzcozcpz4lz4wu}5r{ckxclxcmxcnxcoxcpx4lx4wu}5t{ckuclucmucnucoucpu4lu4wu}7q{ckuclucmucnucoucpu4lu}6p{17sw5tw5ou5qu}ek{17st5tt5qu}el{17st5tt5ou5qu}em{17st5tt5qu}en{17st5tt5qu}eo{17st5tt5qu}ep{17st5tt5ou5qu}es{17ss5ts5qu}et{17sw5tw5ou5qu}eu{17sw5tw5ou5qu}ev{17ss5ts5qu}6z{17sw5tw5ou5qu5rs}fm{17sw5tw5ou5qu5rs}fn{17sw5tw5ou5qu5rs}fo{17sw5tw5ou5qu5rs}fp{17sw5tw5ou5qu5rs}fq{17sw5tw5ou5qu5rs}7r{cktcltcmtcntcotcpt4lt5os}fs{17sw5tw5ou5qu5rs}ft{17su5tu5ou5qu}7m{5os}fv{17su5tu5ou5qu}fw{17su5tu5ou5qu}fz{cksclscmscnscoscps4ls}}}\"),Symbol:c(\"{'widths'{k3uaw4r19m3m2k1t2l2l202m2y2n3m2p5n202q6o3k3m2s2l2t2l2v3r2w1t3m3m2y1t2z1wbk2sbl3r'fof'6o3n3m3o3m3p3m3q3m3r3m3s3m3t3m3u1w3v1w3w3r3x3r3y3r3z2wbp3t3l3m5v2l5x2l5z3m2q4yfr3r7v3k7w1o7x3k}'kerning'{'fof'-6o}}\"),Helvetica:c(\"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\"),\"Helvetica-BoldOblique\":c(\"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"),ZapfDingbats:c(\"{'widths'{k4u2k1w'fof'6o}'kerning'{'fof'-6o}}\"),\"Courier-Bold\":c(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\"Times-Italic\":c(\"{'widths'{k3n2q4ycx2l201n3m201o5t201s2l201t2l201u2l201w3r201x3r201y3r2k1t2l2l202m2n2n3m2o3m2p5n202q5t2r1p2s2l2t2l2u3m2v4n2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w4n3x4n3y4n3z3m4k5w4l3x4m3x4n4m4o4s4p3x4q3x4r4s4s4s4t2l4u2w4v4m4w3r4x5n4y4m4z4s5k3x5l4s5m3x5n3m5o3r5p4s5q3x5r5n5s3x5t3r5u3r5v2r5w1w5x2r5y2u5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q1w6r3m6s3m6t1w6u1w6v2w6w1w6x4s6y3m6z3m7k3m7l3m7m2r7n2r7o1w7p3m7q2w7r4m7s2w7t2w7u2r7v2s7w1v7x2s7y3q202l3mcl3xal2ram3man3mao3map3mar3mas2lat4wau1vav3maw4nay4waz2lbk2sbl4n'fof'6obo2lbp3mbq3obr1tbs2lbu1zbv3mbz3mck3x202k3mcm3xcn3xco3xcp3xcq5tcr4mcs3xct3xcu3xcv3xcw2l2m2ucy2lcz2ldl4mdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr4nfs3mft3mfu3mfv3mfw3mfz2w203k6o212m6m2dw2l2cq2l3t3m3u2l17s3r19m3m}'kerning'{cl{5kt4qw}201s{201sw}201t{201tw2wy2yy6q-t}201x{2wy2yy}2k{201tw}2w{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}2x{17ss5ts5os}2y{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}'fof'-6o6t{17ss5ts5qs}7t{5os}3v{5qs}7p{17su5tu5qs}ck{5kt4qw}4l{5kt4qw}cm{5kt4qw}cn{5kt4qw}co{5kt4qw}cp{5kt4qw}6l{4qs5ks5ou5qw5ru17su5tu}17s{2ks}5q{ckvclvcmvcnvcovcpv4lv}5r{ckuclucmucnucoucpu4lu}5t{2ks}6p{4qs5ks5ou5qw5ru17su5tu}ek{4qs5ks5ou5qw5ru17su5tu}el{4qs5ks5ou5qw5ru17su5tu}em{4qs5ks5ou5qw5ru17su5tu}en{4qs5ks5ou5qw5ru17su5tu}eo{4qs5ks5ou5qw5ru17su5tu}ep{4qs5ks5ou5qw5ru17su5tu}es{5ks5qs4qs}et{4qs5ks5ou5qw5ru17su5tu}eu{4qs5ks5qw5ru17su5tu}ev{5ks5qs4qs}ex{17ss5ts5qs}6z{4qv5ks5ou5qw5ru17su5tu}fm{4qv5ks5ou5qw5ru17su5tu}fn{4qv5ks5ou5qw5ru17su5tu}fo{4qv5ks5ou5qw5ru17su5tu}fp{4qv5ks5ou5qw5ru17su5tu}fq{4qv5ks5ou5qw5ru17su5tu}7r{5os}fs{4qv5ks5ou5qw5ru17su5tu}ft{17su5tu5qs}fu{17su5tu5qs}fv{17su5tu5qs}fw{17su5tu5qs}}}\"),\"Times-Roman\":c(\"{'widths'{k3n2q4ycx2l201n3m201o6o201s2l201t2l201u2l201w2w201x2w201y2w2k1t2l2l202m2n2n3m2o3m2p5n202q6o2r1m2s2l2t2l2u3m2v3s2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v1w3w3s3x3s3y3s3z2w4k5w4l4s4m4m4n4m4o4s4p3x4q3r4r4s4s4s4t2l4u2r4v4s4w3x4x5t4y4s4z4s5k3r5l4s5m4m5n3r5o3x5p4s5q4s5r5y5s4s5t4s5u3x5v2l5w1w5x2l5y2z5z3m6k2l6l2w6m3m6n2w6o3m6p2w6q2l6r3m6s3m6t1w6u1w6v3m6w1w6x4y6y3m6z3m7k3m7l3m7m2l7n2r7o1w7p3m7q3m7r4s7s3m7t3m7u2w7v3k7w1o7x3k7y3q202l3mcl4sal2lam3man3mao3map3mar3mas2lat4wau1vav3maw3say4waz2lbk2sbl3s'fof'6obo2lbp3mbq2xbr1tbs2lbu1zbv3mbz2wck4s202k3mcm4scn4sco4scp4scq5tcr4mcs3xct3xcu3xcv3xcw2l2m2tcy2lcz2ldl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek2wel2wem2wen2weo2wep2weq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr3sfs3mft3mfu3mfv3mfw3mfz3m203k6o212m6m2dw2l2cq2l3t3m3u1w17s4s19m3m}'kerning'{cl{4qs5ku17sw5ou5qy5rw201ss5tw201ws}201s{201ss}201t{ckw4lwcmwcnwcowcpwclw4wu201ts}2k{201ts}2w{4qs5kw5os5qx5ru17sx5tx}2x{17sw5tw5ou5qu}2y{4qs5kw5os5qx5ru17sx5tx}'fof'-6o7t{ckuclucmucnucoucpu4lu5os5rs}3u{17su5tu5qs}3v{17su5tu5qs}7p{17sw5tw5qs}ck{4qs5ku17sw5ou5qy5rw201ss5tw201ws}4l{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cm{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cn{4qs5ku17sw5ou5qy5rw201ss5tw201ws}co{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cp{4qs5ku17sw5ou5qy5rw201ss5tw201ws}6l{17su5tu5os5qw5rs}17s{2ktclvcmvcnvcovcpv4lv4wuckv}5o{ckwclwcmwcnwcowcpw4lw4wu}5q{ckyclycmycnycoycpy4ly4wu5ms}5r{cktcltcmtcntcotcpt4lt4ws}5t{2ktclvcmvcnvcovcpv4lv4wuckv}7q{cksclscmscnscoscps4ls}6p{17su5tu5qw5rs}ek{5qs5rs}el{17su5tu5os5qw5rs}em{17su5tu5os5qs5rs}en{17su5qs5rs}eo{5qs5rs}ep{17su5tu5os5qw5rs}es{5qs}et{17su5tu5qw5rs}eu{17su5tu5qs5rs}ev{5qs}6z{17sv5tv5os5qx5rs}fm{5os5qt5rs}fn{17sv5tv5os5qx5rs}fo{17sv5tv5os5qx5rs}fp{5os5qt5rs}fq{5os5qt5rs}7r{ckuclucmucnucoucpu4lu5os}fs{17sv5tv5os5qx5rs}ft{17ss5ts5qs}fu{17sw5tw5qs}fv{17sw5tw5qs}fw{17ss5ts5qs}fz{ckuclucmucnucoucpu4lu5os5rs}}}\"),\"Helvetica-Oblique\":c(\"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\")}};e.events.push([\"addFont\",function(t){var e=t.font,r=l.Unicode[e.postScriptName];r&&(e.metadata.Unicode={},e.metadata.Unicode.widths=r.widths,e.metadata.Unicode.kerning=r.kerning);var n=h.Unicode[e.postScriptName];n&&(e.metadata.Unicode.encoding=n,e.encoding=n.codePages[0])}])}(E.API),\n/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var e=function(t){for(var e=t.length,r=new Uint8Array(e),n=0;n<e;n++)r[n]=t.charCodeAt(n);return r};t.API.events.push([\"addFont\",function(r){var n=void 0,i=r.font,a=r.instance;if(!i.isStandardFont){if(void 0===a)throw new Error(\"Font does not exist in vFS, import fonts or remove declaration doc.addFont('\"+i.postScriptName+\"').\");if(\"string\"!=typeof(n=!1===a.existsFileInVFS(i.postScriptName)?a.loadFile(i.postScriptName):a.getFileFromVFS(i.postScriptName)))throw new Error(\"Font is not stored as string-data in vFS, import fonts or remove declaration doc.addFont('\"+i.postScriptName+\"').\");!function(r,n){n=/^\\x00\\x01\\x00\\x00/.test(n)?e(n):e(u(n)),r.metadata=t.API.TTFFont.open(n),r.metadata.Unicode=r.metadata.Unicode||{encoding:{},kerning:{},widths:[]},r.metadata.glyIdsUsed=[0]}(i,n)}}])}(E),\n/** @license\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\nfunction(t){function e(){return(n.canvg?Promise.resolve(n.canvg):import(\"canvg\")).catch((function(t){return Promise.reject(new Error(\"Could not load canvg: \"+t))})).then((function(t){return t.default?t.default:t}))}E.API.addSvgAsImage=function(t,r,n,i,o,s,c,u){if(isNaN(r)||isNaN(n))throw a.error(\"jsPDF.addSvgAsImage: Invalid coordinates\",arguments),new Error(\"Invalid coordinates passed to jsPDF.addSvgAsImage\");if(isNaN(i)||isNaN(o))throw a.error(\"jsPDF.addSvgAsImage: Invalid measurements\",arguments),new Error(\"Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage\");var h=document.createElement(\"canvas\");h.width=i,h.height=o;var l=h.getContext(\"2d\");l.fillStyle=\"#fff\",l.fillRect(0,0,h.width,h.height);var f={ignoreMouse:!0,ignoreAnimation:!0,ignoreDimensions:!0},d=this;return e().then((function(e){return e.fromString(l,t,f)}),(function(){return Promise.reject(new Error(\"Could not load canvg.\"))})).then((function(t){return t.render(f)})).then((function(){d.addImage(h.toDataURL(\"image/jpeg\",1),r,n,i,o,c,u)}))}}(),E.API.putTotalPages=function(t){var e,r=0;parseInt(this.internal.getFont().id.substr(1),10)<15?(e=new RegExp(t,\"g\"),r=this.internal.getNumberOfPages()):(e=new RegExp(this.pdfEscape16(t,this.internal.getFont()),\"g\"),r=this.pdfEscape16(this.internal.getNumberOfPages()+\"\",this.internal.getFont()));for(var n=1;n<=this.internal.getNumberOfPages();n++)for(var i=0;i<this.internal.pages[n].length;i++)this.internal.pages[n][i]=this.internal.pages[n][i].replace(e,r);return this},E.API.viewerPreferences=function(e,r){var n;e=e||{},r=r||!1;var i,a,o,s={HideToolbar:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},HideMenubar:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},HideWindowUI:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},FitWindow:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},CenterWindow:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},DisplayDocTitle:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.4},NonFullScreenPageMode:{defaultValue:\"UseNone\",value:\"UseNone\",type:\"name\",explicitSet:!1,valueSet:[\"UseNone\",\"UseOutlines\",\"UseThumbs\",\"UseOC\"],pdfVersion:1.3},Direction:{defaultValue:\"L2R\",value:\"L2R\",type:\"name\",explicitSet:!1,valueSet:[\"L2R\",\"R2L\"],pdfVersion:1.3},ViewArea:{defaultValue:\"CropBox\",value:\"CropBox\",type:\"name\",explicitSet:!1,valueSet:[\"MediaBox\",\"CropBox\",\"TrimBox\",\"BleedBox\",\"ArtBox\"],pdfVersion:1.4},ViewClip:{defaultValue:\"CropBox\",value:\"CropBox\",type:\"name\",explicitSet:!1,valueSet:[\"MediaBox\",\"CropBox\",\"TrimBox\",\"BleedBox\",\"ArtBox\"],pdfVersion:1.4},PrintArea:{defaultValue:\"CropBox\",value:\"CropBox\",type:\"name\",explicitSet:!1,valueSet:[\"MediaBox\",\"CropBox\",\"TrimBox\",\"BleedBox\",\"ArtBox\"],pdfVersion:1.4},PrintClip:{defaultValue:\"CropBox\",value:\"CropBox\",type:\"name\",explicitSet:!1,valueSet:[\"MediaBox\",\"CropBox\",\"TrimBox\",\"BleedBox\",\"ArtBox\"],pdfVersion:1.4},PrintScaling:{defaultValue:\"AppDefault\",value:\"AppDefault\",type:\"name\",explicitSet:!1,valueSet:[\"AppDefault\",\"None\"],pdfVersion:1.6},Duplex:{defaultValue:\"\",value:\"none\",type:\"name\",explicitSet:!1,valueSet:[\"Simplex\",\"DuplexFlipShortEdge\",\"DuplexFlipLongEdge\",\"none\"],pdfVersion:1.7},PickTrayByPDFSize:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.7},PrintPageRange:{defaultValue:\"\",value:\"\",type:\"array\",explicitSet:!1,valueSet:null,pdfVersion:1.7},NumCopies:{defaultValue:1,value:1,type:\"integer\",explicitSet:!1,valueSet:null,pdfVersion:1.7}},c=Object.keys(s),u=[],h=0,l=0,f=0;function d(t,e){var r,n=!1;for(r=0;r<t.length;r+=1)t[r]===e&&(n=!0);return n}if(void 0===this.internal.viewerpreferences&&(this.internal.viewerpreferences={},this.internal.viewerpreferences.configuration=JSON.parse(JSON.stringify(s)),this.internal.viewerpreferences.isSubscribed=!1),n=this.internal.viewerpreferences.configuration,\"reset\"===e||!0===r){var p=c.length;for(f=0;f<p;f+=1)n[c[f]].value=n[c[f]].defaultValue,n[c[f]].explicitSet=!1}if(\"object\"===t(e))for(a in e)if(o=e[a],d(c,a)&&void 0!==o){if(\"boolean\"===n[a].type&&\"boolean\"==typeof o)n[a].value=o;else if(\"name\"===n[a].type&&d(n[a].valueSet,o))n[a].value=o;else if(\"integer\"===n[a].type&&Number.isInteger(o))n[a].value=o;else if(\"array\"===n[a].type){for(h=0;h<o.length;h+=1)if(i=!0,1===o[h].length&&\"number\"==typeof o[h][0])u.push(String(o[h]-1));else if(o[h].length>1){for(l=0;l<o[h].length;l+=1)\"number\"!=typeof o[h][l]&&(i=!1);!0===i&&u.push([o[h][0]-1,o[h][1]-1].join(\" \"))}n[a].value=\"[\"+u.join(\" \")+\"]\"}else n[a].value=n[a].defaultValue;n[a].explicitSet=!0}return!1===this.internal.viewerpreferences.isSubscribed&&(this.internal.events.subscribe(\"putCatalog\",(function(){var t,e=[];for(t in n)!0===n[t].explicitSet&&(\"name\"===n[t].type?e.push(\"/\"+t+\" /\"+n[t].value):e.push(\"/\"+t+\" \"+n[t].value));0!==e.length&&this.internal.write(\"/ViewerPreferences\\n<<\\n\"+e.join(\"\\n\")+\"\\n>>\")})),this.internal.viewerpreferences.isSubscribed=!0),this.internal.viewerpreferences.configuration=n,this},\n/** ====================================================================\n * @license\n * jsPDF XMP metadata plugin\n * Copyright (c) 2016 Jussi Utunen, u-jussi@suomi24.fi\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\nfunction(t){var e=function(){var t='<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"><rdf:Description rdf:about=\"\" xmlns:jspdf=\"'+this.internal.__metadata__.namespaceuri+'\"><jspdf:metadata>',e=unescape(encodeURIComponent('<x:xmpmeta xmlns:x=\"adobe:ns:meta/\">')),r=unescape(encodeURIComponent(t)),n=unescape(encodeURIComponent(this.internal.__metadata__.metadata)),i=unescape(encodeURIComponent(\"</jspdf:metadata></rdf:Description></rdf:RDF>\")),a=unescape(encodeURIComponent(\"</x:xmpmeta>\")),o=r.length+n.length+i.length+e.length+a.length;this.internal.__metadata__.metadata_object_number=this.internal.newObject(),this.internal.write(\"<< /Type /Metadata /Subtype /XML /Length \"+o+\" >>\"),this.internal.write(\"stream\"),this.internal.write(e+r+n+i+a),this.internal.write(\"endstream\"),this.internal.write(\"endobj\")},r=function(){this.internal.__metadata__.metadata_object_number&&this.internal.write(\"/Metadata \"+this.internal.__metadata__.metadata_object_number+\" 0 R\")};t.addMetadata=function(t,n){return void 0===this.internal.__metadata__&&(this.internal.__metadata__={metadata:t,namespaceuri:n||\"http://jspdf.default.namespaceuri/\"},this.internal.events.subscribe(\"putCatalog\",r),this.internal.events.subscribe(\"postPutResources\",e)),this}}(E.API),function(t){var e=t.API,r=e.pdfEscape16=function(t,e){for(var r,n=e.metadata.Unicode.widths,i=[\"\",\"0\",\"00\",\"000\",\"0000\"],a=[\"\"],o=0,s=t.length;o<s;++o){if(r=e.metadata.characterToGlyph(t.charCodeAt(o)),e.metadata.glyIdsUsed.push(r),e.metadata.toUnicode[r]=t.charCodeAt(o),-1==n.indexOf(r)&&(n.push(r),n.push([parseInt(e.metadata.widthOfGlyph(r),10)])),\"0\"==r)return a.join(\"\");r=r.toString(16),a.push(i[4-r.length],r)}return a.join(\"\")},n=function(t){var e,r,n,i,a,o,s;for(a=\"/CIDInit /ProcSet findresource begin\\n12 dict begin\\nbegincmap\\n/CIDSystemInfo <<\\n /Registry (Adobe)\\n /Ordering (UCS)\\n /Supplement 0\\n>> def\\n/CMapName /Adobe-Identity-UCS def\\n/CMapType 2 def\\n1 begincodespacerange\\n<0000><ffff>\\nendcodespacerange\",n=[],o=0,s=(r=Object.keys(t).sort((function(t,e){return t-e}))).length;o<s;o++)e=r[o],n.length>=100&&(a+=\"\\n\"+n.length+\" beginbfchar\\n\"+n.join(\"\\n\")+\"\\nendbfchar\",n=[]),void 0!==t[e]&&null!==t[e]&&\"function\"==typeof t[e].toString&&(i=(\"0000\"+t[e].toString(16)).slice(-4),e=(\"0000\"+(+e).toString(16)).slice(-4),n.push(\"<\"+e+\"><\"+i+\">\"));return n.length&&(a+=\"\\n\"+n.length+\" beginbfchar\\n\"+n.join(\"\\n\")+\"\\nendbfchar\\n\"),a+=\"endcmap\\nCMapName currentdict /CMap defineresource pop\\nend\\nend\"};e.events.push([\"putFont\",function(e){!function(e){var r=e.font,i=e.out,a=e.newObject,o=e.putStream;if(r.metadata instanceof t.API.TTFFont&&\"Identity-H\"===r.encoding){for(var s=r.metadata.Unicode.widths,c=r.metadata.subset.encode(r.metadata.glyIdsUsed,1),u=\"\",h=0;h<c.length;h++)u+=String.fromCharCode(c[h]);var l=a();o({data:u,addLength1:!0,objectId:l}),i(\"endobj\");var f=a();o({data:n(r.metadata.toUnicode),addLength1:!0,objectId:f}),i(\"endobj\");var d=a();i(\"<<\"),i(\"/Type /FontDescriptor\"),i(\"/FontName /\"+F(r.fontName)),i(\"/FontFile2 \"+l+\" 0 R\"),i(\"/FontBBox \"+t.API.PDFObject.convert(r.metadata.bbox)),i(\"/Flags \"+r.metadata.flags),i(\"/StemV \"+r.metadata.stemV),i(\"/ItalicAngle \"+r.metadata.italicAngle),i(\"/Ascent \"+r.metadata.ascender),i(\"/Descent \"+r.metadata.decender),i(\"/CapHeight \"+r.metadata.capHeight),i(\">>\"),i(\"endobj\");var p=a();i(\"<<\"),i(\"/Type /Font\"),i(\"/BaseFont /\"+F(r.fontName)),i(\"/FontDescriptor \"+d+\" 0 R\"),i(\"/W \"+t.API.PDFObject.convert(s)),i(\"/CIDToGIDMap /Identity\"),i(\"/DW 1000\"),i(\"/Subtype /CIDFontType2\"),i(\"/CIDSystemInfo\"),i(\"<<\"),i(\"/Supplement 0\"),i(\"/Registry (Adobe)\"),i(\"/Ordering (\"+r.encoding+\")\"),i(\">>\"),i(\">>\"),i(\"endobj\"),r.objectNumber=a(),i(\"<<\"),i(\"/Type /Font\"),i(\"/Subtype /Type0\"),i(\"/ToUnicode \"+f+\" 0 R\"),i(\"/BaseFont /\"+F(r.fontName)),i(\"/Encoding /\"+r.encoding),i(\"/DescendantFonts [\"+p+\" 0 R]\"),i(\">>\"),i(\"endobj\"),r.isAlreadyPutted=!0}}(e)}]);e.events.push([\"putFont\",function(e){!function(e){var r=e.font,i=e.out,a=e.newObject,o=e.putStream;if(r.metadata instanceof t.API.TTFFont&&\"WinAnsiEncoding\"===r.encoding){for(var s=r.metadata.rawData,c=\"\",u=0;u<s.length;u++)c+=String.fromCharCode(s[u]);var h=a();o({data:c,addLength1:!0,objectId:h}),i(\"endobj\");var l=a();o({data:n(r.metadata.toUnicode),addLength1:!0,objectId:l}),i(\"endobj\");var f=a();i(\"<<\"),i(\"/Descent \"+r.metadata.decender),i(\"/CapHeight \"+r.metadata.capHeight),i(\"/StemV \"+r.metadata.stemV),i(\"/Type /FontDescriptor\"),i(\"/FontFile2 \"+h+\" 0 R\"),i(\"/Flags 96\"),i(\"/FontBBox \"+t.API.PDFObject.convert(r.metadata.bbox)),i(\"/FontName /\"+F(r.fontName)),i(\"/ItalicAngle \"+r.metadata.italicAngle),i(\"/Ascent \"+r.metadata.ascender),i(\">>\"),i(\"endobj\"),r.objectNumber=a();for(var d=0;d<r.metadata.hmtx.widths.length;d++)r.metadata.hmtx.widths[d]=parseInt(r.metadata.hmtx.widths[d]*(1e3/r.metadata.head.unitsPerEm));i(\"<</Subtype/TrueType/Type/Font/ToUnicode \"+l+\" 0 R/BaseFont/\"+F(r.fontName)+\"/FontDescriptor \"+f+\" 0 R/Encoding/\"+r.encoding+\" /FirstChar 29 /LastChar 255 /Widths \"+t.API.PDFObject.convert(r.metadata.hmtx.widths)+\">>\"),i(\"endobj\"),r.isAlreadyPutted=!0}}(e)}]);var i=function(t){var e,n=t.text||\"\",i=t.x,a=t.y,o=t.options||{},s=t.mutex||{},c=s.pdfEscape,u=s.activeFontKey,h=s.fonts,l=u,f=\"\",d=0,p=\"\",g=h[l].encoding;if(\"Identity-H\"!==h[l].encoding)return{text:n,x:i,y:a,options:o,mutex:s};for(p=n,l=u,Array.isArray(n)&&(p=n[0]),d=0;d<p.length;d+=1)h[l].metadata.hasOwnProperty(\"cmap\")&&(e=h[l].metadata.cmap.unicode.codeMap[p[d].charCodeAt(0)]),e||p[d].charCodeAt(0)<256&&h[l].metadata.hasOwnProperty(\"Unicode\")?f+=p[d]:f+=\"\";var m=\"\";return parseInt(l.slice(1))<14||\"WinAnsiEncoding\"===g?m=c(f,l).split(\"\").map((function(t){return t.charCodeAt(0).toString(16)})).join(\"\"):\"Identity-H\"===g&&(m=r(f,h[l])),s.isHex=!0,{text:m,x:i,y:a,options:o,mutex:s}};e.events.push([\"postProcessText\",function(t){var e=t.text||\"\",r=[],n={text:e,x:t.x,y:t.y,options:t.options,mutex:t.mutex};if(Array.isArray(e)){var a=0;for(a=0;a<e.length;a+=1)Array.isArray(e[a])&&3===e[a].length?r.push([i(Object.assign({},n,{text:e[a][0]})).text,e[a][1],e[a][2]]):r.push(i(Object.assign({},n,{text:e[a]})).text);t.text=r}else t.text=i(Object.assign({},n,{text:e})).text}])}(E),\n/**\n * @license\n * jsPDF virtual FileSystem functionality\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var e=function(){return void 0===this.internal.vFS&&(this.internal.vFS={}),!0};t.existsFileInVFS=function(t){return e.call(this),void 0!==this.internal.vFS[t]},t.addFileToVFS=function(t,r){return e.call(this),this.internal.vFS[t]=r,this},t.getFileFromVFS=function(t){return e.call(this),void 0!==this.internal.vFS[t]?this.internal.vFS[t]:null}}(E.API),\n/**\n * @license\n * Unicode Bidi Engine based on the work of Alex Shensis (@asthensis)\n * MIT License\n */\nfunction(t){t.__bidiEngine__=t.prototype.__bidiEngine__=function(t){var r,n,i,a,o,s,c,u=e,h=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],l=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],f={L:0,R:1,EN:2,AN:3,N:4,B:5,S:6},d={0:0,5:1,6:2,7:3,32:4,251:5,254:6,255:7},p=[\"(\",\")\",\"(\",\"<\",\">\",\"<\",\"[\",\"]\",\"[\",\"{\",\"}\",\"{\",\"«\",\"»\",\"«\",\"‹\",\"›\",\"‹\",\"⁅\",\"⁆\",\"⁅\",\"⁽\",\"⁾\",\"⁽\",\"₍\",\"₎\",\"₍\",\"≤\",\"≥\",\"≤\",\"〈\",\"〉\",\"〈\",\"﹙\",\"﹚\",\"﹙\",\"﹛\",\"﹜\",\"﹛\",\"﹝\",\"﹞\",\"﹝\",\"﹤\",\"﹥\",\"﹤\"],g=new RegExp(/^([1-4|9]|1[0-9]|2[0-9]|3[0168]|4[04589]|5[012]|7[78]|159|16[0-9]|17[0-2]|21[569]|22[03489]|250)$/),m=!1,v=0;this.__bidiEngine__={};var b=function(t){var e=t.charCodeAt(),r=e>>8,n=d[r];return void 0!==n?u[256*n+(255&e)]:252===r||253===r?\"AL\":g.test(r)?\"L\":8===r?\"R\":\"N\"},y=function(t){for(var e,r=0;r<t.length;r++){if(\"L\"===(e=b(t.charAt(r))))return!1;if(\"R\"===e)return!0}return!1},w=function(t,e,o,s){var c,u,h,l,f=e[s];switch(f){case\"L\":case\"R\":m=!1;break;case\"N\":case\"AN\":break;case\"EN\":m&&(f=\"AN\");break;case\"AL\":m=!0,f=\"R\";break;case\"WS\":f=\"N\";break;case\"CS\":s<1||s+1>=e.length||\"EN\"!==(c=o[s-1])&&\"AN\"!==c||\"EN\"!==(u=e[s+1])&&\"AN\"!==u?f=\"N\":m&&(u=\"AN\"),f=u===c?u:\"N\";break;case\"ES\":f=\"EN\"===(c=s>0?o[s-1]:\"B\")&&s+1<e.length&&\"EN\"===e[s+1]?\"EN\":\"N\";break;case\"ET\":if(s>0&&\"EN\"===o[s-1]){f=\"EN\";break}if(m){f=\"N\";break}for(h=s+1,l=e.length;h<l&&\"ET\"===e[h];)h++;f=h<l&&\"EN\"===e[h]?\"EN\":\"N\";break;case\"NSM\":if(i&&!a){for(l=e.length,h=s+1;h<l&&\"NSM\"===e[h];)h++;if(h<l){var d=t[s],p=d>=1425&&d<=2303||64286===d;if(c=e[h],p&&(\"R\"===c||\"AL\"===c)){f=\"R\";break}}}f=s<1||\"B\"===(c=e[s-1])?\"N\":o[s-1];break;case\"B\":m=!1,r=!0,f=v;break;case\"S\":n=!0,f=\"N\";break;case\"LRE\":case\"RLE\":case\"LRO\":case\"RLO\":case\"PDF\":m=!1;break;case\"BN\":f=\"N\"}return f},N=function(t,e,r){var n=t.split(\"\");return r&&L(n,r,{hiLevel:v}),n.reverse(),e&&e.reverse(),n.join(\"\")},L=function(t,e,i){var a,o,s,c,u,d=-1,p=t.length,g=0,y=[],N=v?l:h,L=[];for(m=!1,r=!1,n=!1,o=0;o<p;o++)L[o]=b(t[o]);for(s=0;s<p;s++){if(u=g,y[s]=w(t,L,y,s),a=240&(g=N[u][f[y[s]]]),g&=15,e[s]=c=N[g][5],a>0)if(16===a){for(o=d;o<s;o++)e[o]=1;d=-1}else d=-1;if(N[g][6])-1===d&&(d=s);else if(d>-1){for(o=d;o<s;o++)e[o]=c;d=-1}\"B\"===L[s]&&(e[s]=0),i.hiLevel|=c}n&&function(t,e,r){for(var n=0;n<r;n++)if(\"S\"===t[n]){e[n]=v;for(var i=n-1;i>=0&&\"WS\"===t[i];i--)e[i]=v}}(L,e,p)},A=function(t,e,n,i,a){if(!(a.hiLevel<t)){if(1===t&&1===v&&!r)return e.reverse(),void(n&&n.reverse());for(var o,s,c,u,h=e.length,l=0;l<h;){if(i[l]>=t){for(c=l+1;c<h&&i[c]>=t;)c++;for(u=l,s=c-1;u<s;u++,s--)o=e[u],e[u]=e[s],e[s]=o,n&&(o=n[u],n[u]=n[s],n[s]=o);l=c}l++}}},x=function(t,e,r){var n=t.split(\"\"),i={hiLevel:v};return r||(r=[]),L(n,r,i),function(t,e,r){if(0!==r.hiLevel&&c)for(var n,i=0;i<t.length;i++)1===e[i]&&(n=p.indexOf(t[i]))>=0&&(t[i]=p[n+1])}(n,r,i),A(2,n,e,r,i),A(1,n,e,r,i),n.join(\"\")};return this.__bidiEngine__.doBidiReorder=function(t,e,r){if(function(t,e){if(e)for(var r=0;r<t.length;r++)e[r]=r;void 0===a&&(a=y(t)),void 0===s&&(s=y(t))}(t,e),i||!o||s)if(i&&o&&a^s)v=a?1:0,t=N(t,e,r);else if(!i&&o&&s)v=a?1:0,t=x(t,e,r),t=N(t,e);else if(!i||a||o||s){if(i&&!o&&a^s)t=N(t,e),a?(v=0,t=x(t,e,r)):(v=1,t=x(t,e,r),t=N(t,e));else if(i&&a&&!o&&s)v=1,t=x(t,e,r),t=N(t,e);else if(!i&&!o&&a^s){var n=c;a?(v=1,t=x(t,e,r),v=0,c=!1,t=x(t,e,r),c=n):(v=0,t=x(t,e,r),t=N(t,e),v=1,c=!1,t=x(t,e,r),c=n,t=N(t,e))}}else v=0,t=x(t,e,r);else v=a?1:0,t=x(t,e,r);return t},this.__bidiEngine__.setOptions=function(t){t&&(i=t.isInputVisual,o=t.isOutputVisual,a=t.isInputRtl,s=t.isOutputRtl,c=t.isSymmetricSwapping)},this.__bidiEngine__.setOptions(t),this.__bidiEngine__};var e=[\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"S\",\"B\",\"S\",\"WS\",\"B\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"B\",\"B\",\"B\",\"S\",\"WS\",\"N\",\"N\",\"ET\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"N\",\"ES\",\"CS\",\"ES\",\"CS\",\"CS\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"CS\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"B\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"CS\",\"N\",\"ET\",\"ET\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"L\",\"N\",\"N\",\"BN\",\"N\",\"N\",\"ET\",\"ET\",\"EN\",\"EN\",\"N\",\"L\",\"N\",\"N\",\"N\",\"EN\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"ET\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"R\",\"NSM\",\"R\",\"NSM\",\"NSM\",\"R\",\"NSM\",\"NSM\",\"R\",\"NSM\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"N\",\"N\",\"N\",\"N\",\"N\",\"R\",\"R\",\"R\",\"R\",\"R\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"N\",\"N\",\"AL\",\"ET\",\"ET\",\"AL\",\"CS\",\"AL\",\"N\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AL\",\"AL\",\"N\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"ET\",\"AN\",\"AN\",\"AL\",\"AL\",\"AL\",\"NSM\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AN\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AL\",\"AL\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"N\",\"AL\",\"AL\",\"NSM\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"N\",\"N\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AL\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"R\",\"R\",\"N\",\"N\",\"N\",\"N\",\"R\",\"N\",\"N\",\"N\",\"N\",\"N\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"BN\",\"BN\",\"BN\",\"L\",\"R\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"WS\",\"B\",\"LRE\",\"RLE\",\"PDF\",\"LRO\",\"RLO\",\"CS\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"CS\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"WS\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"N\",\"LRI\",\"RLI\",\"FSI\",\"PDI\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"EN\",\"L\",\"N\",\"N\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"ES\",\"ES\",\"N\",\"N\",\"N\",\"L\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"ES\",\"ES\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"R\",\"NSM\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"ES\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"N\",\"R\",\"R\",\"R\",\"R\",\"R\",\"N\",\"R\",\"N\",\"R\",\"R\",\"N\",\"R\",\"R\",\"N\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"CS\",\"N\",\"CS\",\"N\",\"N\",\"CS\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"ET\",\"N\",\"N\",\"ES\",\"ES\",\"N\",\"N\",\"N\",\"N\",\"N\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"N\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"N\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"N\",\"N\",\"BN\",\"N\",\"N\",\"N\",\"ET\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"N\",\"ES\",\"CS\",\"ES\",\"CS\",\"CS\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"CS\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\"],r=new t.__bidiEngine__({isInputVisual:!0});t.API.events.push([\"postProcessText\",function(t){var e=t.text,n=(t.x,t.y,t.options||{}),i=(t.mutex,n.lang,[]);if(n.isInputVisual=\"boolean\"!=typeof n.isInputVisual||n.isInputVisual,r.setOptions(n),\"[object Array]\"===Object.prototype.toString.call(e)){var a=0;for(i=[],a=0;a<e.length;a+=1)\"[object Array]\"===Object.prototype.toString.call(e[a])?i.push([r.doBidiReorder(e[a][0]),e[a][1],e[a][2]]):i.push([r.doBidiReorder(e[a])]);t.text=i}else t.text=r.doBidiReorder(e);r.setOptions({isInputVisual:!0})}])}(E),E.API.TTFFont=function(){function t(t){var e;if(this.rawData=t,e=this.contents=new ne(t),this.contents.pos=4,\"ttcf\"===e.readString(4))throw new Error(\"TTCF not supported.\");e.pos=0,this.parse(),this.subset=new Le(this),this.registerTTF()}return t.open=function(e){return new t(e)},t.prototype.parse=function(){return this.directory=new ie(this.contents),this.head=new se(this),this.name=new pe(this),this.cmap=new ue(this),this.toUnicode={},this.hhea=new he(this),this.maxp=new ge(this),this.hmtx=new me(this),this.post=new fe(this),this.os2=new le(this),this.loca=new Ne(this),this.glyf=new be(this),this.ascender=this.os2.exists&&this.os2.ascender||this.hhea.ascender,this.decender=this.os2.exists&&this.os2.decender||this.hhea.decender,this.lineGap=this.os2.exists&&this.os2.lineGap||this.hhea.lineGap,this.bbox=[this.head.xMin,this.head.yMin,this.head.xMax,this.head.yMax]},t.prototype.registerTTF=function(){var t,e,r,n,i;if(this.scaleFactor=1e3/this.head.unitsPerEm,this.bbox=function(){var e,r,n,i;for(i=[],e=0,r=(n=this.bbox).length;e<r;e++)t=n[e],i.push(Math.round(t*this.scaleFactor));return i}.call(this),this.stemV=0,this.post.exists?(r=255&(n=this.post.italic_angle),0!=(32768&(e=n>>16))&&(e=-(1+(65535^e))),this.italicAngle=+(e+\".\"+r)):this.italicAngle=0,this.ascender=Math.round(this.ascender*this.scaleFactor),this.decender=Math.round(this.decender*this.scaleFactor),this.lineGap=Math.round(this.lineGap*this.scaleFactor),this.capHeight=this.os2.exists&&this.os2.capHeight||this.ascender,this.xHeight=this.os2.exists&&this.os2.xHeight||0,this.familyClass=(this.os2.exists&&this.os2.familyClass||0)>>8,this.isSerif=1===(i=this.familyClass)||2===i||3===i||4===i||5===i||7===i,this.isScript=10===this.familyClass,this.flags=0,this.post.isFixedPitch&&(this.flags|=1),this.isSerif&&(this.flags|=2),this.isScript&&(this.flags|=8),0!==this.italicAngle&&(this.flags|=64),this.flags|=32,!this.cmap.unicode)throw new Error(\"No unicode cmap for font\")},t.prototype.characterToGlyph=function(t){var e;return(null!=(e=this.cmap.unicode)?e.codeMap[t]:void 0)||0},t.prototype.widthOfGlyph=function(t){var e;return e=1e3/this.head.unitsPerEm,this.hmtx.forGlyph(t).advance*e},t.prototype.widthOfString=function(t,e,r){var n,i,a,o;for(a=0,i=0,o=(t=\"\"+t).length;0<=o?i<o:i>o;i=0<=o?++i:--i)n=t.charCodeAt(i),a+=this.widthOfGlyph(this.characterToGlyph(n))+r*(1e3/e)||0;return a*(e/1e3)},t.prototype.lineHeight=function(t,e){var r;return null==e&&(e=!1),r=e?this.lineGap:0,(this.ascender+r-this.decender)/1e3*t},t}();var re,ne=function(){function t(t){this.data=null!=t?t:[],this.pos=0,this.length=this.data.length}return t.prototype.readByte=function(){return this.data[this.pos++]},t.prototype.writeByte=function(t){return this.data[this.pos++]=t},t.prototype.readUInt32=function(){return 16777216*this.readByte()+(this.readByte()<<16)+(this.readByte()<<8)+this.readByte()},t.prototype.writeUInt32=function(t){return this.writeByte(t>>>24&255),this.writeByte(t>>16&255),this.writeByte(t>>8&255),this.writeByte(255&t)},t.prototype.readInt32=function(){var t;return(t=this.readUInt32())>=2147483648?t-4294967296:t},t.prototype.writeInt32=function(t){return t<0&&(t+=4294967296),this.writeUInt32(t)},t.prototype.readUInt16=function(){return this.readByte()<<8|this.readByte()},t.prototype.writeUInt16=function(t){return this.writeByte(t>>8&255),this.writeByte(255&t)},t.prototype.readInt16=function(){var t;return(t=this.readUInt16())>=32768?t-65536:t},t.prototype.writeInt16=function(t){return t<0&&(t+=65536),this.writeUInt16(t)},t.prototype.readString=function(t){var e,r;for(r=[],e=0;0<=t?e<t:e>t;e=0<=t?++e:--e)r[e]=String.fromCharCode(this.readByte());return r.join(\"\")},t.prototype.writeString=function(t){var e,r,n;for(n=[],e=0,r=t.length;0<=r?e<r:e>r;e=0<=r?++e:--e)n.push(this.writeByte(t.charCodeAt(e)));return n},t.prototype.readShort=function(){return this.readInt16()},t.prototype.writeShort=function(t){return this.writeInt16(t)},t.prototype.readLongLong=function(){var t,e,r,n,i,a,o,s;return t=this.readByte(),e=this.readByte(),r=this.readByte(),n=this.readByte(),i=this.readByte(),a=this.readByte(),o=this.readByte(),s=this.readByte(),128&t?-1*(72057594037927940*(255^t)+281474976710656*(255^e)+1099511627776*(255^r)+4294967296*(255^n)+16777216*(255^i)+65536*(255^a)+256*(255^o)+(255^s)+1):72057594037927940*t+281474976710656*e+1099511627776*r+4294967296*n+16777216*i+65536*a+256*o+s},t.prototype.writeLongLong=function(t){var e,r;return e=Math.floor(t/4294967296),r=4294967295&t,this.writeByte(e>>24&255),this.writeByte(e>>16&255),this.writeByte(e>>8&255),this.writeByte(255&e),this.writeByte(r>>24&255),this.writeByte(r>>16&255),this.writeByte(r>>8&255),this.writeByte(255&r)},t.prototype.readInt=function(){return this.readInt32()},t.prototype.writeInt=function(t){return this.writeInt32(t)},t.prototype.read=function(t){var e,r;for(e=[],r=0;0<=t?r<t:r>t;r=0<=t?++r:--r)e.push(this.readByte());return e},t.prototype.write=function(t){var e,r,n,i;for(i=[],r=0,n=t.length;r<n;r++)e=t[r],i.push(this.writeByte(e));return i},t}(),ie=function(){var t;function e(t){var e,r,n;for(this.scalarType=t.readInt(),this.tableCount=t.readShort(),this.searchRange=t.readShort(),this.entrySelector=t.readShort(),this.rangeShift=t.readShort(),this.tables={},r=0,n=this.tableCount;0<=n?r<n:r>n;r=0<=n?++r:--r)e={tag:t.readString(4),checksum:t.readInt(),offset:t.readInt(),length:t.readInt()},this.tables[e.tag]=e}return e.prototype.encode=function(e){var r,n,i,a,o,s,c,u,h,l,f,d,p;for(p in f=Object.keys(e).length,s=Math.log(2),h=16*Math.floor(Math.log(f)/s),a=Math.floor(h/s),u=16*f-h,(n=new ne).writeInt(this.scalarType),n.writeShort(f),n.writeShort(h),n.writeShort(a),n.writeShort(u),i=16*f,c=n.pos+i,o=null,d=[],e)for(l=e[p],n.writeString(p),n.writeInt(t(l)),n.writeInt(c),n.writeInt(l.length),d=d.concat(l),\"head\"===p&&(o=c),c+=l.length;c%4;)d.push(0),c++;return n.write(d),r=2981146554-t(n.data),n.pos=o+8,n.writeUInt32(r),n.data},t=function(t){var e,r,n,i;for(t=ve.call(t);t.length%4;)t.push(0);for(n=new ne(t),r=0,e=0,i=t.length;e<i;e=e+=4)r+=n.readUInt32();return 4294967295&r},e}(),ae={}.hasOwnProperty,oe=function(t,e){for(var r in e)ae.call(e,r)&&(t[r]=e[r]);function n(){this.constructor=t}return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t};re=function(){function t(t){var e;this.file=t,e=this.file.directory.tables[this.tag],this.exists=!!e,e&&(this.offset=e.offset,this.length=e.length,this.parse(this.file.contents))}return t.prototype.parse=function(){},t.prototype.encode=function(){},t.prototype.raw=function(){return this.exists?(this.file.contents.pos=this.offset,this.file.contents.read(this.length)):null},t}();var se=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return oe(e,re),e.prototype.tag=\"head\",e.prototype.parse=function(t){return t.pos=this.offset,this.version=t.readInt(),this.revision=t.readInt(),this.checkSumAdjustment=t.readInt(),this.magicNumber=t.readInt(),this.flags=t.readShort(),this.unitsPerEm=t.readShort(),this.created=t.readLongLong(),this.modified=t.readLongLong(),this.xMin=t.readShort(),this.yMin=t.readShort(),this.xMax=t.readShort(),this.yMax=t.readShort(),this.macStyle=t.readShort(),this.lowestRecPPEM=t.readShort(),this.fontDirectionHint=t.readShort(),this.indexToLocFormat=t.readShort(),this.glyphDataFormat=t.readShort()},e.prototype.encode=function(t){var e;return(e=new ne).writeInt(this.version),e.writeInt(this.revision),e.writeInt(this.checkSumAdjustment),e.writeInt(this.magicNumber),e.writeShort(this.flags),e.writeShort(this.unitsPerEm),e.writeLongLong(this.created),e.writeLongLong(this.modified),e.writeShort(this.xMin),e.writeShort(this.yMin),e.writeShort(this.xMax),e.writeShort(this.yMax),e.writeShort(this.macStyle),e.writeShort(this.lowestRecPPEM),e.writeShort(this.fontDirectionHint),e.writeShort(t),e.writeShort(this.glyphDataFormat),e.data},e}(),ce=function(){function t(t,e){var r,n,i,a,o,s,c,u,h,l,f,d,p,g,m,v,b;switch(this.platformID=t.readUInt16(),this.encodingID=t.readShort(),this.offset=e+t.readInt(),h=t.pos,t.pos=this.offset,this.format=t.readUInt16(),this.length=t.readUInt16(),this.language=t.readUInt16(),this.isUnicode=3===this.platformID&&1===this.encodingID&&4===this.format||0===this.platformID&&4===this.format,this.codeMap={},this.format){case 0:for(s=0;s<256;++s)this.codeMap[s]=t.readByte();break;case 4:for(f=t.readUInt16(),l=f/2,t.pos+=6,i=function(){var e,r;for(r=[],s=e=0;0<=l?e<l:e>l;s=0<=l?++e:--e)r.push(t.readUInt16());return r}(),t.pos+=2,p=function(){var e,r;for(r=[],s=e=0;0<=l?e<l:e>l;s=0<=l?++e:--e)r.push(t.readUInt16());return r}(),c=function(){var e,r;for(r=[],s=e=0;0<=l?e<l:e>l;s=0<=l?++e:--e)r.push(t.readUInt16());return r}(),u=function(){var e,r;for(r=[],s=e=0;0<=l?e<l:e>l;s=0<=l?++e:--e)r.push(t.readUInt16());return r}(),n=(this.length-t.pos+this.offset)/2,o=function(){var e,r;for(r=[],s=e=0;0<=n?e<n:e>n;s=0<=n?++e:--e)r.push(t.readUInt16());return r}(),s=m=0,b=i.length;m<b;s=++m)for(g=i[s],r=v=d=p[s];d<=g?v<=g:v>=g;r=d<=g?++v:--v)0===u[s]?a=r+c[s]:0!==(a=o[u[s]/2+(r-d)-(l-s)]||0)&&(a+=c[s]),this.codeMap[r]=65535&a}t.pos=h}return t.encode=function(t,e){var r,n,i,a,o,s,c,u,h,l,f,d,p,g,m,v,b,y,w,N,L,A,x,S,_,P,k,I,F,C,j,O,B,M,E,q,D,R,T,U,z,H,W,V,G,Y;switch(I=new ne,a=Object.keys(t).sort((function(t,e){return t-e})),e){case\"macroman\":for(p=0,g=function(){var t=[];for(d=0;d<256;++d)t.push(0);return t}(),v={0:0},i={},F=0,B=a.length;F<B;F++)null==v[W=t[n=a[F]]]&&(v[W]=++p),i[n]={old:t[n],new:v[t[n]]},g[n]=v[t[n]];return I.writeUInt16(1),I.writeUInt16(0),I.writeUInt32(12),I.writeUInt16(0),I.writeUInt16(262),I.writeUInt16(0),I.write(g),{charMap:i,subtable:I.data,maxGlyphID:p+1};case\"unicode\":for(P=[],h=[],b=0,v={},r={},m=c=null,C=0,M=a.length;C<M;C++)null==v[w=t[n=a[C]]]&&(v[w]=++b),r[n]={old:w,new:v[w]},o=v[w]-n,null!=m&&o===c||(m&&h.push(m),P.push(n),c=o),m=n;for(m&&h.push(m),h.push(65535),P.push(65535),S=2*(x=P.length),A=2*Math.pow(Math.log(x)/Math.LN2,2),l=Math.log(A/2)/Math.LN2,L=2*x-A,s=[],N=[],f=[],d=j=0,E=P.length;j<E;d=++j){if(_=P[d],u=h[d],65535===_){s.push(0),N.push(0);break}if(_-(k=r[_].new)>=32768)for(s.push(0),N.push(2*(f.length+x-d)),n=O=_;_<=u?O<=u:O>=u;n=_<=u?++O:--O)f.push(r[n].new);else s.push(k-_),N.push(0)}for(I.writeUInt16(3),I.writeUInt16(1),I.writeUInt32(12),I.writeUInt16(4),I.writeUInt16(16+8*x+2*f.length),I.writeUInt16(0),I.writeUInt16(S),I.writeUInt16(A),I.writeUInt16(l),I.writeUInt16(L),z=0,q=h.length;z<q;z++)n=h[z],I.writeUInt16(n);for(I.writeUInt16(0),H=0,D=P.length;H<D;H++)n=P[H],I.writeUInt16(n);for(V=0,R=s.length;V<R;V++)o=s[V],I.writeUInt16(o);for(G=0,T=N.length;G<T;G++)y=N[G],I.writeUInt16(y);for(Y=0,U=f.length;Y<U;Y++)p=f[Y],I.writeUInt16(p);return{charMap:r,subtable:I.data,maxGlyphID:b+1}}},t}(),ue=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return oe(e,re),e.prototype.tag=\"cmap\",e.prototype.parse=function(t){var e,r,n;for(t.pos=this.offset,this.version=t.readUInt16(),n=t.readUInt16(),this.tables=[],this.unicode=null,r=0;0<=n?r<n:r>n;r=0<=n?++r:--r)e=new ce(t,this.offset),this.tables.push(e),e.isUnicode&&null==this.unicode&&(this.unicode=e);return!0},e.encode=function(t,e){var r,n;return null==e&&(e=\"macroman\"),r=ce.encode(t,e),(n=new ne).writeUInt16(0),n.writeUInt16(1),r.table=n.data.concat(r.subtable),r},e}(),he=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return oe(e,re),e.prototype.tag=\"hhea\",e.prototype.parse=function(t){return t.pos=this.offset,this.version=t.readInt(),this.ascender=t.readShort(),this.decender=t.readShort(),this.lineGap=t.readShort(),this.advanceWidthMax=t.readShort(),this.minLeftSideBearing=t.readShort(),this.minRightSideBearing=t.readShort(),this.xMaxExtent=t.readShort(),this.caretSlopeRise=t.readShort(),this.caretSlopeRun=t.readShort(),this.caretOffset=t.readShort(),t.pos+=8,this.metricDataFormat=t.readShort(),this.numberOfMetrics=t.readUInt16()},e}(),le=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return oe(e,re),e.prototype.tag=\"OS/2\",e.prototype.parse=function(t){if(t.pos=this.offset,this.version=t.readUInt16(),this.averageCharWidth=t.readShort(),this.weightClass=t.readUInt16(),this.widthClass=t.readUInt16(),this.type=t.readShort(),this.ySubscriptXSize=t.readShort(),this.ySubscriptYSize=t.readShort(),this.ySubscriptXOffset=t.readShort(),this.ySubscriptYOffset=t.readShort(),this.ySuperscriptXSize=t.readShort(),this.ySuperscriptYSize=t.readShort(),this.ySuperscriptXOffset=t.readShort(),this.ySuperscriptYOffset=t.readShort(),this.yStrikeoutSize=t.readShort(),this.yStrikeoutPosition=t.readShort(),this.familyClass=t.readShort(),this.panose=function(){var e,r;for(r=[],e=0;e<10;++e)r.push(t.readByte());return r}(),this.charRange=function(){var e,r;for(r=[],e=0;e<4;++e)r.push(t.readInt());return r}(),this.vendorID=t.readString(4),this.selection=t.readShort(),this.firstCharIndex=t.readShort(),this.lastCharIndex=t.readShort(),this.version>0&&(this.ascent=t.readShort(),this.descent=t.readShort(),this.lineGap=t.readShort(),this.winAscent=t.readShort(),this.winDescent=t.readShort(),this.codePageRange=function(){var e,r;for(r=[],e=0;e<2;e=++e)r.push(t.readInt());return r}(),this.version>1))return this.xHeight=t.readShort(),this.capHeight=t.readShort(),this.defaultChar=t.readShort(),this.breakChar=t.readShort(),this.maxContext=t.readShort()},e}(),fe=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return oe(e,re),e.prototype.tag=\"post\",e.prototype.parse=function(t){var e,r,n;switch(t.pos=this.offset,this.format=t.readInt(),this.italicAngle=t.readInt(),this.underlinePosition=t.readShort(),this.underlineThickness=t.readShort(),this.isFixedPitch=t.readInt(),this.minMemType42=t.readInt(),this.maxMemType42=t.readInt(),this.minMemType1=t.readInt(),this.maxMemType1=t.readInt(),this.format){case 65536:break;case 131072:var i;for(r=t.readUInt16(),this.glyphNameIndex=[],i=0;0<=r?i<r:i>r;i=0<=r?++i:--i)this.glyphNameIndex.push(t.readUInt16());for(this.names=[],n=[];t.pos<this.offset+this.length;)e=t.readByte(),n.push(this.names.push(t.readString(e)));return n;case 151552:return r=t.readUInt16(),this.offsets=t.read(r);case 196608:break;case 262144:return this.map=function(){var e,r,n;for(n=[],i=e=0,r=this.file.maxp.numGlyphs;0<=r?e<r:e>r;i=0<=r?++e:--e)n.push(t.readUInt32());return n}.call(this)}},e}(),de=function(t,e){this.raw=t,this.length=t.length,this.platformID=e.platformID,this.encodingID=e.encodingID,this.languageID=e.languageID},pe=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return oe(e,re),e.prototype.tag=\"name\",e.prototype.parse=function(t){var e,r,n,i,a,o,s,c,u,h,l;for(t.pos=this.offset,t.readShort(),e=t.readShort(),o=t.readShort(),r=[],i=0;0<=e?i<e:i>e;i=0<=e?++i:--i)r.push({platformID:t.readShort(),encodingID:t.readShort(),languageID:t.readShort(),nameID:t.readShort(),length:t.readShort(),offset:this.offset+o+t.readShort()});for(s={},i=u=0,h=r.length;u<h;i=++u)n=r[i],t.pos=n.offset,c=t.readString(n.length),a=new de(c,n),null==s[l=n.nameID]&&(s[l]=[]),s[n.nameID].push(a);this.strings=s,this.copyright=s[0],this.fontFamily=s[1],this.fontSubfamily=s[2],this.uniqueSubfamily=s[3],this.fontName=s[4],this.version=s[5];try{this.postscriptName=s[6][0].raw.replace(/[\\x00-\\x19\\x80-\\xff]/g,\"\")}catch(t){this.postscriptName=s[4][0].raw.replace(/[\\x00-\\x19\\x80-\\xff]/g,\"\")}return this.trademark=s[7],this.manufacturer=s[8],this.designer=s[9],this.description=s[10],this.vendorUrl=s[11],this.designerUrl=s[12],this.license=s[13],this.licenseUrl=s[14],this.preferredFamily=s[15],this.preferredSubfamily=s[17],this.compatibleFull=s[18],this.sampleText=s[19]},e}(),ge=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return oe(e,re),e.prototype.tag=\"maxp\",e.prototype.parse=function(t){return t.pos=this.offset,this.version=t.readInt(),this.numGlyphs=t.readUInt16(),this.maxPoints=t.readUInt16(),this.maxContours=t.readUInt16(),this.maxCompositePoints=t.readUInt16(),this.maxComponentContours=t.readUInt16(),this.maxZones=t.readUInt16(),this.maxTwilightPoints=t.readUInt16(),this.maxStorage=t.readUInt16(),this.maxFunctionDefs=t.readUInt16(),this.maxInstructionDefs=t.readUInt16(),this.maxStackElements=t.readUInt16(),this.maxSizeOfInstructions=t.readUInt16(),this.maxComponentElements=t.readUInt16(),this.maxComponentDepth=t.readUInt16()},e}(),me=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return oe(e,re),e.prototype.tag=\"hmtx\",e.prototype.parse=function(t){var e,r,n,i,a,o,s;for(t.pos=this.offset,this.metrics=[],e=0,o=this.file.hhea.numberOfMetrics;0<=o?e<o:e>o;e=0<=o?++e:--e)this.metrics.push({advance:t.readUInt16(),lsb:t.readInt16()});for(n=this.file.maxp.numGlyphs-this.file.hhea.numberOfMetrics,this.leftSideBearings=function(){var r,i;for(i=[],e=r=0;0<=n?r<n:r>n;e=0<=n?++r:--r)i.push(t.readInt16());return i}(),this.widths=function(){var t,e,r,n;for(n=[],t=0,e=(r=this.metrics).length;t<e;t++)i=r[t],n.push(i.advance);return n}.call(this),r=this.widths[this.widths.length-1],s=[],e=a=0;0<=n?a<n:a>n;e=0<=n?++a:--a)s.push(this.widths.push(r));return s},e.prototype.forGlyph=function(t){return t in this.metrics?this.metrics[t]:{advance:this.metrics[this.metrics.length-1].advance,lsb:this.leftSideBearings[t-this.metrics.length]}},e}(),ve=[].slice,be=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return oe(e,re),e.prototype.tag=\"glyf\",e.prototype.parse=function(){return this.cache={}},e.prototype.glyphFor=function(t){var e,r,n,i,a,o,s,c,u,h;return t in this.cache?this.cache[t]:(i=this.file.loca,e=this.file.contents,r=i.indexOf(t),0===(n=i.lengthOf(t))?this.cache[t]=null:(e.pos=this.offset+r,a=(o=new ne(e.read(n))).readShort(),c=o.readShort(),h=o.readShort(),s=o.readShort(),u=o.readShort(),this.cache[t]=-1===a?new we(o,c,h,s,u):new ye(o,a,c,h,s,u),this.cache[t]))},e.prototype.encode=function(t,e,r){var n,i,a,o,s;for(a=[],i=[],o=0,s=e.length;o<s;o++)n=t[e[o]],i.push(a.length),n&&(a=a.concat(n.encode(r)));return i.push(a.length),{table:a,offsets:i}},e}(),ye=function(){function t(t,e,r,n,i,a){this.raw=t,this.numberOfContours=e,this.xMin=r,this.yMin=n,this.xMax=i,this.yMax=a,this.compound=!1}return t.prototype.encode=function(){return this.raw.data},t}(),we=function(){function t(t,e,r,n,i){var a,o;for(this.raw=t,this.xMin=e,this.yMin=r,this.xMax=n,this.yMax=i,this.compound=!0,this.glyphIDs=[],this.glyphOffsets=[],a=this.raw;o=a.readShort(),this.glyphOffsets.push(a.pos),this.glyphIDs.push(a.readUInt16()),32&o;)a.pos+=1&o?4:2,128&o?a.pos+=8:64&o?a.pos+=4:8&o&&(a.pos+=2)}return 1,8,32,64,128,t.prototype.encode=function(){var t,e,r;for(e=new ne(ve.call(this.raw.data)),t=0,r=this.glyphIDs.length;t<r;++t)e.pos=this.glyphOffsets[t];return e.data},t}(),Ne=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return oe(e,re),e.prototype.tag=\"loca\",e.prototype.parse=function(t){var e,r;return t.pos=this.offset,e=this.file.head.indexToLocFormat,this.offsets=0===e?function(){var e,n;for(n=[],r=0,e=this.length;r<e;r+=2)n.push(2*t.readUInt16());return n}.call(this):function(){var e,n;for(n=[],r=0,e=this.length;r<e;r+=4)n.push(t.readUInt32());return n}.call(this)},e.prototype.indexOf=function(t){return this.offsets[t]},e.prototype.lengthOf=function(t){return this.offsets[t+1]-this.offsets[t]},e.prototype.encode=function(t,e){for(var r=new Uint32Array(this.offsets.length),n=0,i=0,a=0;a<r.length;++a)if(r[a]=n,i<e.length&&e[i]==a){++i,r[a]=n;var o=this.offsets[a],s=this.offsets[a+1]-o;s>0&&(n+=s)}for(var c=new Array(4*r.length),u=0;u<r.length;++u)c[4*u+3]=255&r[u],c[4*u+2]=(65280&r[u])>>8,c[4*u+1]=(16711680&r[u])>>16,c[4*u]=(4278190080&r[u])>>24;return c},e}(),Le=function(){function t(t){this.font=t,this.subset={},this.unicodes={},this.next=33}return t.prototype.generateCmap=function(){var t,e,r,n,i;for(e in n=this.font.cmap.tables[0].codeMap,t={},i=this.subset)r=i[e],t[e]=n[r];return t},t.prototype.glyphsFor=function(t){var e,r,n,i,a,o,s;for(n={},a=0,o=t.length;a<o;a++)n[i=t[a]]=this.font.glyf.glyphFor(i);for(i in e=[],n)(null!=(r=n[i])?r.compound:void 0)&&e.push.apply(e,r.glyphIDs);if(e.length>0)for(i in s=this.glyphsFor(e))r=s[i],n[i]=r;return n},t.prototype.encode=function(t,e){var r,n,i,a,o,s,c,u,h,l,f,d,p,g,m;for(n in r=ue.encode(this.generateCmap(),\"unicode\"),a=this.glyphsFor(t),f={0:0},m=r.charMap)f[(s=m[n]).old]=s.new;for(d in l=r.maxGlyphID,a)d in f||(f[d]=l++);return u=function(t){var e,r;for(e in r={},t)r[t[e]]=e;return r}(f),h=Object.keys(u).sort((function(t,e){return t-e})),p=function(){var t,e,r;for(r=[],t=0,e=h.length;t<e;t++)o=h[t],r.push(u[o]);return r}(),i=this.font.glyf.encode(a,p,f),c=this.font.loca.encode(i.offsets,p),g={cmap:this.font.cmap.raw(),glyf:i.table,loca:c,hmtx:this.font.hmtx.raw(),hhea:this.font.hhea.raw(),maxp:this.font.maxp.raw(),post:this.font.post.raw(),name:this.font.name.raw(),head:this.font.head.encode(e)},this.font.os2.exists&&(g[\"OS/2\"]=this.font.os2.raw()),this.font.directory.encode(g)},t}();E.API.PDFObject=function(){var t;function e(){}return t=function(t,e){return(Array(e+1).join(\"0\")+t).slice(-e)},e.convert=function(r){var n,i,a,o;if(Array.isArray(r))return\"[\"+function(){var t,i,a;for(a=[],t=0,i=r.length;t<i;t++)n=r[t],a.push(e.convert(n));return a}().join(\" \")+\"]\";if(\"string\"==typeof r)return\"/\"+r;if(null!=r?r.isString:void 0)return\"(\"+r+\")\";if(r instanceof Date)return\"(D:\"+t(r.getUTCFullYear(),4)+t(r.getUTCMonth(),2)+t(r.getUTCDate(),2)+t(r.getUTCHours(),2)+t(r.getUTCMinutes(),2)+t(r.getUTCSeconds(),2)+\"Z)\";if(\"[object Object]\"==={}.toString.call(r)){for(i in a=[\"<<\"],r)o=r[i],a.push(\"/\"+i+\" \"+e.convert(o));return a.push(\">>\"),a.join(\"\\n\")}return\"\"+r},e}();export default E;export{St as AcroForm,At as AcroFormAppearance,mt as AcroFormButton,wt as AcroFormCheckBox,ft as AcroFormChoiceField,pt as AcroFormComboBox,gt as AcroFormEditBox,dt as AcroFormListBox,Lt as AcroFormPasswordField,vt as AcroFormPushButton,bt as AcroFormRadioButton,Nt as AcroFormTextField,j as GState,B as ShadingPattern,M as TilingPattern,E as jsPDF};\n//# sourceMappingURL=jspdf.es.min.js.map\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","export function shallowEqual(a, b) {\n /* eslint-disable no-restricted-syntax */\n for (var key in a) {\n if ({}.hasOwnProperty.call(a, key) && (!{}.hasOwnProperty.call(b, key) || a[key] !== b[key])) {\n return false;\n }\n }\n\n for (var _key in b) {\n if ({}.hasOwnProperty.call(b, _key) && !{}.hasOwnProperty.call(a, _key)) {\n return false;\n }\n }\n\n return true;\n}","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { Constants } from \"../utils/Constants\";\nimport { AuthError } from \"./AuthError\";\n\n/**\n * InteractionRequiredServerErrorMessage contains string constants used by error codes and messages returned by the server indicating interaction is required\n */\nexport const InteractionRequiredServerErrorMessage = [\n \"interaction_required\",\n \"consent_required\",\n \"login_required\"\n];\n\nexport const InteractionRequiredAuthSubErrorMessage = [\n \"message_only\",\n \"additional_action\",\n \"basic_action\",\n \"user_password_expired\",\n \"consent_required\"\n];\n\n/**\n * Interaction required errors defined by the SDK\n */\nexport const InteractionRequiredAuthErrorMessage = {\n noTokensFoundError: {\n code: \"no_tokens_found\",\n desc: \"No refresh token found in the cache. Please sign-in.\"\n },\n native_account_unavailable: {\n code: \"native_account_unavailable\",\n desc: \"The requested account is not available in the native broker. It may have been deleted or logged out. Please sign-in again using an interactive API.\"\n }\n};\n\n/**\n * Error thrown when user interaction is required.\n */\nexport class InteractionRequiredAuthError extends AuthError {\n /**\n * The time the error occured at\n */\n timestamp: string;\n\n /**\n * TraceId associated with the error\n */\n traceId: string;\n\n /**\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-common/docs/claims-challenge.md\n * \n * A string with extra claims needed for the token request to succeed\n * web site: redirect the user to the authorization page and set the extra claims\n * web api: include the claims in the WWW-Authenticate header that are sent back to the client so that it knows to request a token with the extra claims\n * desktop application or browser context: include the claims when acquiring the token interactively\n * app to app context (client_credentials): include the claims in the AcquireTokenByClientCredential request\n */\n claims: string;\n\n constructor(errorCode?: string, errorMessage?: string, subError?: string, timestamp?: string, traceId?: string, correlationId?: string, claims?: string) {\n super(errorCode, errorMessage, subError);\n Object.setPrototypeOf(this, InteractionRequiredAuthError.prototype);\n \n this.timestamp = timestamp || Constants.EMPTY_STRING;\n this.traceId = traceId || Constants.EMPTY_STRING;\n this.correlationId = correlationId || Constants.EMPTY_STRING;\n this.claims = claims || Constants.EMPTY_STRING;\n this.name = \"InteractionRequiredAuthError\";\n }\n\n /**\n * Helper function used to determine if an error thrown by the server requires interaction to resolve\n * @param errorCode \n * @param errorString \n * @param subError \n */\n static isInteractionRequiredError(errorCode?: string, errorString?: string, subError?: string): boolean {\n const isInteractionRequiredErrorCode = !!errorCode && InteractionRequiredServerErrorMessage.indexOf(errorCode) > -1;\n const isInteractionRequiredSubError = !!subError && InteractionRequiredAuthSubErrorMessage.indexOf(subError) > -1;\n const isInteractionRequiredErrorDesc = !!errorString && InteractionRequiredServerErrorMessage.some((irErrorCode) => {\n return errorString.indexOf(irErrorCode) > -1;\n });\n\n return isInteractionRequiredErrorCode || isInteractionRequiredErrorDesc || isInteractionRequiredSubError;\n }\n\n /**\n * Creates an error thrown when the authorization code required for a token request is null or empty.\n */\n static createNoTokensFoundError(): InteractionRequiredAuthError {\n return new InteractionRequiredAuthError(InteractionRequiredAuthErrorMessage.noTokensFoundError.code, InteractionRequiredAuthErrorMessage.noTokensFoundError.desc);\n }\n\n /**\n * Creates an error thrown when the native broker returns ACCOUNT_UNAVAILABLE status, indicating that the account was removed and interactive sign-in is required\n * @returns \n */\n static createNativeAccountUnavailableError(): InteractionRequiredAuthError {\n return new InteractionRequiredAuthError(InteractionRequiredAuthErrorMessage.native_account_unavailable.code, InteractionRequiredAuthErrorMessage.native_account_unavailable.desc);\n }\n}\n","/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported XLSX */\n/*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false */\nvar XLSX = {};\nfunction make_xlsx_lib(XLSX){\nXLSX.version = '0.16.9';\nvar current_codepage = 1200, current_ansi = 1252;\n/*global cptable:true, window */\nif(typeof module !== \"undefined\" && typeof require !== 'undefined') {\n\tif(typeof cptable === 'undefined') {\n\t\tif(typeof global !== 'undefined') global.cptable = require('./dist/cpexcel.js');\n\t\telse if(typeof window !== 'undefined') window.cptable = require('./dist/cpexcel.js');\n\t}\n}\n\nvar VALID_ANSI = [ 874, 932, 936, 949, 950 ];\nfor(var i = 0; i <= 8; ++i) VALID_ANSI.push(1250 + i);\n/* ECMA-376 Part I 18.4.1 charset to codepage mapping */\nvar CS2CP = ({\n0: 1252, /* ANSI */\n1: 65001, /* DEFAULT */\n2: 65001, /* SYMBOL */\n77: 10000, /* MAC */\n128: 932, /* SHIFTJIS */\n129: 949, /* HANGUL */\n130: 1361, /* JOHAB */\n134: 936, /* GB2312 */\n136: 950, /* CHINESEBIG5 */\n161: 1253, /* GREEK */\n162: 1254, /* TURKISH */\n163: 1258, /* VIETNAMESE */\n177: 1255, /* HEBREW */\n178: 1256, /* ARABIC */\n186: 1257, /* BALTIC */\n204: 1251, /* RUSSIAN */\n222: 874, /* THAI */\n238: 1250, /* EASTEUROPE */\n255: 1252, /* OEM */\n69: 6969 /* MISC */\n});\n\nvar set_ansi = function(cp) { if(VALID_ANSI.indexOf(cp) == -1) return; current_ansi = CS2CP[0] = cp; };\nfunction reset_ansi() { set_ansi(1252); }\n\nvar set_cp = function(cp) { current_codepage = cp; set_ansi(cp); };\nfunction reset_cp() { set_cp(1200); reset_ansi(); }\n\nfunction char_codes(data) { var o = []; for(var i = 0, len = data.length; i < len; ++i) o[i] = data.charCodeAt(i); return o; }\n\nfunction utf16leread(data) {\n\tvar o = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i) + (data.charCodeAt(2*i+1)<<8));\n\treturn o.join(\"\");\n}\nfunction utf16beread(data) {\n\tvar o = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i+1) + (data.charCodeAt(2*i)<<8));\n\treturn o.join(\"\");\n}\n\nvar debom = function(data) {\n\tvar c1 = data.charCodeAt(0), c2 = data.charCodeAt(1);\n\tif(c1 == 0xFF && c2 == 0xFE) return utf16leread(data.slice(2));\n\tif(c1 == 0xFE && c2 == 0xFF) return utf16beread(data.slice(2));\n\tif(c1 == 0xFEFF) return data.slice(1);\n\treturn data;\n};\n\nvar _getchar = function _gc1(x) { return String.fromCharCode(x); };\nvar _getansi = function _ga1(x) { return String.fromCharCode(x); };\nif(typeof cptable !== 'undefined') {\n\tset_cp = function(cp) { current_codepage = cp; set_ansi(cp); };\n\tdebom = function(data) {\n\t\tif(data.charCodeAt(0) === 0xFF && data.charCodeAt(1) === 0xFE) { return cptable.utils.decode(1200, char_codes(data.slice(2))); }\n\t\treturn data;\n\t};\n\t_getchar = function _gc2(x) {\n\t\tif(current_codepage === 1200) return String.fromCharCode(x);\n\t\treturn cptable.utils.decode(current_codepage, [x&255,x>>8])[0];\n\t};\n\t_getansi = function _ga2(x) {\n\t\treturn cptable.utils.decode(current_ansi, [x])[0];\n\t};\n}\nvar DENSE = null;\nvar DIF_XL = true;\nvar Base64 = (function make_b64(){\n\tvar map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\treturn {\n\t\tencode: function(input) {\n\t\t\tvar o = \"\";\n\t\t\tvar c1=0, c2=0, c3=0, e1=0, e2=0, e3=0, e4=0;\n\t\t\tfor(var i = 0; i < input.length; ) {\n\t\t\t\tc1 = input.charCodeAt(i++);\n\t\t\t\te1 = (c1 >> 2);\n\n\t\t\t\tc2 = input.charCodeAt(i++);\n\t\t\t\te2 = ((c1 & 3) << 4) | (c2 >> 4);\n\n\t\t\t\tc3 = input.charCodeAt(i++);\n\t\t\t\te3 = ((c2 & 15) << 2) | (c3 >> 6);\n\t\t\t\te4 = (c3 & 63);\n\t\t\t\tif (isNaN(c2)) { e3 = e4 = 64; }\n\t\t\t\telse if (isNaN(c3)) { e4 = 64; }\n\t\t\t\to += map.charAt(e1) + map.charAt(e2) + map.charAt(e3) + map.charAt(e4);\n\t\t\t}\n\t\t\treturn o;\n\t\t},\n\t\tdecode: function b64_decode(input) {\n\t\t\tvar o = \"\";\n\t\t\tvar c1=0, c2=0, c3=0, e1=0, e2=0, e3=0, e4=0;\n\t\t\tinput = input.replace(/[^\\w\\+\\/\\=]/g, \"\");\n\t\t\tfor(var i = 0; i < input.length;) {\n\t\t\t\te1 = map.indexOf(input.charAt(i++));\n\t\t\t\te2 = map.indexOf(input.charAt(i++));\n\t\t\t\tc1 = (e1 << 2) | (e2 >> 4);\n\t\t\t\to += String.fromCharCode(c1);\n\n\t\t\t\te3 = map.indexOf(input.charAt(i++));\n\t\t\t\tc2 = ((e2 & 15) << 4) | (e3 >> 2);\n\t\t\t\tif (e3 !== 64) { o += String.fromCharCode(c2); }\n\n\t\t\t\te4 = map.indexOf(input.charAt(i++));\n\t\t\t\tc3 = ((e3 & 3) << 6) | e4;\n\t\t\t\tif (e4 !== 64) { o += String.fromCharCode(c3); }\n\t\t\t}\n\t\t\treturn o;\n\t\t}\n\t};\n})();\nvar has_buf = (typeof Buffer !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && !!process.versions.node);\n\nvar Buffer_from = function(){};\n\nif(typeof Buffer !== 'undefined') {\n\tvar nbfs = !Buffer.from;\n\tif(!nbfs) try { Buffer.from(\"foo\", \"utf8\"); } catch(e) { nbfs = true; }\n\tBuffer_from = nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);\n\t// $FlowIgnore\n\tif(!Buffer.alloc) Buffer.alloc = function(n) { return new Buffer(n); };\n\t// $FlowIgnore\n\tif(!Buffer.allocUnsafe) Buffer.allocUnsafe = function(n) { return new Buffer(n); };\n}\n\nfunction new_raw_buf(len) {\n\t/* jshint -W056 */\n\treturn has_buf ? Buffer.alloc(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nfunction new_unsafe_buf(len) {\n\t/* jshint -W056 */\n\treturn has_buf ? Buffer.allocUnsafe(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nvar s2a = function s2a(s) {\n\tif(has_buf) return Buffer_from(s, \"binary\");\n\treturn s.split(\"\").map(function(x){ return x.charCodeAt(0) & 0xff; });\n};\n\nfunction s2ab(s) {\n\tif(typeof ArrayBuffer === 'undefined') return s2a(s);\n\tvar buf = new ArrayBuffer(s.length), view = new Uint8Array(buf);\n\tfor (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;\n\treturn buf;\n}\n\nfunction a2s(data) {\n\tif(Array.isArray(data)) return data.map(function(c) { return String.fromCharCode(c); }).join(\"\");\n\tvar o = []; for(var i = 0; i < data.length; ++i) o[i] = String.fromCharCode(data[i]); return o.join(\"\");\n}\n\nfunction a2u(data) {\n\tif(typeof Uint8Array === 'undefined') throw new Error(\"Unsupported\");\n\treturn new Uint8Array(data);\n}\n\nfunction ab2a(data) {\n\tif(typeof ArrayBuffer == 'undefined') throw new Error(\"Unsupported\");\n\tif(data instanceof ArrayBuffer) return ab2a(new Uint8Array(data));\nvar o = new Array(data.length);\n\tfor(var i = 0; i < data.length; ++i) o[i] = data[i];\n\treturn o;\n}\n\nvar bconcat = function(bufs) { return [].concat.apply([], bufs); };\n\nvar chr0 = /\\u0000/g, chr1 = /[\\u0001-\\u0006]/g;\n/* ssf.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/*jshint -W041 */\nvar SSF = ({});\nvar make_ssf = function make_ssf(SSF){\nSSF.version = '0.11.2';\nfunction _strrev(x) { var o = \"\", i = x.length-1; while(i>=0) o += x.charAt(i--); return o; }\nfunction fill(c,l) { var o = \"\"; while(o.length < l) o+=c; return o; }\nfunction pad0(v,d){var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad_(v,d){var t=\"\"+v;return t.length>=d?t:fill(' ',d-t.length)+t;}\nfunction rpad_(v,d){var t=\"\"+v; return t.length>=d?t:t+fill(' ',d-t.length);}\nfunction pad0r1(v,d){var t=\"\"+Math.round(v); return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad0r2(v,d){var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nvar p2_32 = Math.pow(2,32);\nfunction pad0r(v,d){if(v>p2_32||v<-p2_32) return pad0r1(v,d); var i = Math.round(v); return pad0r2(i,d); }\nfunction isgeneral(s, i) { i = i || 0; return s.length >= 7 + i && (s.charCodeAt(i)|32) === 103 && (s.charCodeAt(i+1)|32) === 101 && (s.charCodeAt(i+2)|32) === 110 && (s.charCodeAt(i+3)|32) === 101 && (s.charCodeAt(i+4)|32) === 114 && (s.charCodeAt(i+5)|32) === 97 && (s.charCodeAt(i+6)|32) === 108; }\nvar days = [\n\t['Sun', 'Sunday'],\n\t['Mon', 'Monday'],\n\t['Tue', 'Tuesday'],\n\t['Wed', 'Wednesday'],\n\t['Thu', 'Thursday'],\n\t['Fri', 'Friday'],\n\t['Sat', 'Saturday']\n];\nvar months = [\n\t['J', 'Jan', 'January'],\n\t['F', 'Feb', 'February'],\n\t['M', 'Mar', 'March'],\n\t['A', 'Apr', 'April'],\n\t['M', 'May', 'May'],\n\t['J', 'Jun', 'June'],\n\t['J', 'Jul', 'July'],\n\t['A', 'Aug', 'August'],\n\t['S', 'Sep', 'September'],\n\t['O', 'Oct', 'October'],\n\t['N', 'Nov', 'November'],\n\t['D', 'Dec', 'December']\n];\nfunction init_table(t) {\n\tt[0]= 'General';\n\tt[1]= '0';\n\tt[2]= '0.00';\n\tt[3]= '#,##0';\n\tt[4]= '#,##0.00';\n\tt[9]= '0%';\n\tt[10]= '0.00%';\n\tt[11]= '0.00E+00';\n\tt[12]= '# ?/?';\n\tt[13]= '# ??/??';\n\tt[14]= 'm/d/yy';\n\tt[15]= 'd-mmm-yy';\n\tt[16]= 'd-mmm';\n\tt[17]= 'mmm-yy';\n\tt[18]= 'h:mm AM/PM';\n\tt[19]= 'h:mm:ss AM/PM';\n\tt[20]= 'h:mm';\n\tt[21]= 'h:mm:ss';\n\tt[22]= 'm/d/yy h:mm';\n\tt[37]= '#,##0 ;(#,##0)';\n\tt[38]= '#,##0 ;[Red](#,##0)';\n\tt[39]= '#,##0.00;(#,##0.00)';\n\tt[40]= '#,##0.00;[Red](#,##0.00)';\n\tt[45]= 'mm:ss';\n\tt[46]= '[h]:mm:ss';\n\tt[47]= 'mmss.0';\n\tt[48]= '##0.0E+0';\n\tt[49]= '@';\n\tt[56]= '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"';\n}\n\nvar table_fmt = {};\ninit_table(table_fmt);\n/* Defaults determined by systematically testing in Excel 2019 */\n\n/* These formats appear to default to other formats in the table */\nvar default_map = [];\nvar defi = 0;\n\n// 5 -> 37 ... 8 -> 40\nfor(defi = 5; defi <= 8; ++defi) default_map[defi] = 32 + defi;\n\n// 23 -> 0 ... 26 -> 0\nfor(defi = 23; defi <= 26; ++defi) default_map[defi] = 0;\n\n// 27 -> 14 ... 31 -> 14\nfor(defi = 27; defi <= 31; ++defi) default_map[defi] = 14;\n// 50 -> 14 ... 58 -> 14\nfor(defi = 50; defi <= 58; ++defi) default_map[defi] = 14;\n\n// 59 -> 1 ... 62 -> 4\nfor(defi = 59; defi <= 62; ++defi) default_map[defi] = defi - 58;\n// 67 -> 9 ... 68 -> 10\nfor(defi = 67; defi <= 68; ++defi) default_map[defi] = defi - 58;\n// 72 -> 14 ... 75 -> 17\nfor(defi = 72; defi <= 75; ++defi) default_map[defi] = defi - 58;\n\n// 69 -> 12 ... 71 -> 14\nfor(defi = 67; defi <= 68; ++defi) default_map[defi] = defi - 57;\n\n// 76 -> 20 ... 78 -> 22\nfor(defi = 76; defi <= 78; ++defi) default_map[defi] = defi - 56;\n\n// 79 -> 45 ... 81 -> 47\nfor(defi = 79; defi <= 81; ++defi) default_map[defi] = defi - 34;\n\n// 82 -> 0 ... 65536 -> 0 (omitted)\n\n/* These formats technically refer to Accounting formats with no equivalent */\nvar default_str = [];\n\n// 5 -- Currency, 0 decimal, black negative\ndefault_str[5] = default_str[63] = '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)';\n// 6 -- Currency, 0 decimal, red negative\ndefault_str[6] = default_str[64] = '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)';\n// 7 -- Currency, 2 decimal, black negative\ndefault_str[7] = default_str[65] = '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)';\n// 8 -- Currency, 2 decimal, red negative\ndefault_str[8] = default_str[66] = '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)';\n\n// 41 -- Accounting, 0 decimal, No Symbol\ndefault_str[41] = '_(* #,##0_);_(* \\\\(#,##0\\\\);_(* \"-\"_);_(@_)';\n// 42 -- Accounting, 0 decimal, $ Symbol\ndefault_str[42] = '_(\"$\"* #,##0_);_(\"$\"* \\\\(#,##0\\\\);_(\"$\"* \"-\"_);_(@_)';\n// 43 -- Accounting, 2 decimal, No Symbol\ndefault_str[43] = '_(* #,##0.00_);_(* \\\\(#,##0.00\\\\);_(* \"-\"??_);_(@_)';\n// 44 -- Accounting, 2 decimal, $ Symbol\ndefault_str[44] = '_(\"$\"* #,##0.00_);_(\"$\"* \\\\(#,##0.00\\\\);_(\"$\"* \"-\"??_);_(@_)';\nfunction frac(x, D, mixed) {\n\tvar sgn = x < 0 ? -1 : 1;\n\tvar B = x * sgn;\n\tvar P_2 = 0, P_1 = 1, P = 0;\n\tvar Q_2 = 1, Q_1 = 0, Q = 0;\n\tvar A = Math.floor(B);\n\twhile(Q_1 < D) {\n\t\tA = Math.floor(B);\n\t\tP = A * P_1 + P_2;\n\t\tQ = A * Q_1 + Q_2;\n\t\tif((B - A) < 0.00000005) break;\n\t\tB = 1 / (B - A);\n\t\tP_2 = P_1; P_1 = P;\n\t\tQ_2 = Q_1; Q_1 = Q;\n\t}\n\tif(Q > D) { if(Q_1 > D) { Q = Q_2; P = P_2; } else { Q = Q_1; P = P_1; } }\n\tif(!mixed) return [0, sgn * P, Q];\n\tvar q = Math.floor(sgn * P/Q);\n\treturn [q, sgn*P - q*Q, Q];\n}\nfunction parse_date_code(v,opts,b2) {\n\tif(v > 2958465 || v < 0) return null;\n\tvar date = (v|0), time = Math.floor(86400 * (v - date)), dow=0;\n\tvar dout=[];\n\tvar out={D:date, T:time, u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};\n\tif(Math.abs(out.u) < 1e-6) out.u = 0;\n\tif(opts && opts.date1904) date += 1462;\n\tif(out.u > 0.9999) {\n\t\tout.u = 0;\n\t\tif(++time == 86400) { out.T = time = 0; ++date; ++out.D; }\n\t}\n\tif(date === 60) {dout = b2 ? [1317,10,29] : [1900,2,29]; dow=3;}\n\telse if(date === 0) {dout = b2 ? [1317,8,29] : [1900,1,0]; dow=6;}\n\telse {\n\t\tif(date > 60) --date;\n\t\t/* 1 = Jan 1 1900 in Gregorian */\n\t\tvar d = new Date(1900, 0, 1);\n\t\td.setDate(d.getDate() + date - 1);\n\t\tdout = [d.getFullYear(), d.getMonth()+1,d.getDate()];\n\t\tdow = d.getDay();\n\t\tif(date < 60) dow = (dow + 6) % 7;\n\t\tif(b2) dow = fix_hijri(d, dout);\n\t}\n\tout.y = dout[0]; out.m = dout[1]; out.d = dout[2];\n\tout.S = time % 60; time = Math.floor(time / 60);\n\tout.M = time % 60; time = Math.floor(time / 60);\n\tout.H = time;\n\tout.q = dow;\n\treturn out;\n}\nSSF.parse_date_code = parse_date_code;\nvar basedate = new Date(1899, 11, 31, 0, 0, 0);\nvar dnthresh = basedate.getTime();\nvar base1904 = new Date(1900, 2, 1, 0, 0, 0);\nfunction datenum_local(v, date1904) {\n\tvar epoch = v.getTime();\n\tif(date1904) epoch -= 1461*24*60*60*1000;\n\telse if(v >= base1904) epoch += 24*60*60*1000;\n\treturn (epoch - (dnthresh + (v.getTimezoneOffset() - basedate.getTimezoneOffset()) * 60000)) / (24 * 60 * 60 * 1000);\n}\n/* The longest 32-bit integer text is \"-4294967296\", exactly 11 chars */\nfunction general_fmt_int(v) { return v.toString(10); }\nSSF._general_int = general_fmt_int;\n\n/* ECMA-376 18.8.30 numFmt*/\n/* Note: `toPrecision` uses standard form when prec > E and E >= -6 */\nvar general_fmt_num = (function make_general_fmt_num() {\n\tvar trailing_zeroes_and_decimal = /(?:\\.0*|(\\.\\d*[1-9])0+)$/;\n\tfunction strip_decimal(o) {\n\t\treturn (o.indexOf(\".\") == -1) ? o : o.replace(trailing_zeroes_and_decimal, \"$1\");\n\t}\n\n\t/* General Exponential always shows 2 digits exp and trims the mantissa */\n\tvar mantissa_zeroes_and_decimal = /(?:\\.0*|(\\.\\d*[1-9])0+)[Ee]/;\n\tvar exp_with_single_digit = /(E[+-])(\\d)$/;\n\tfunction normalize_exp(o) {\n\t\tif(o.indexOf(\"E\") == -1) return o;\n\t\treturn o.replace(mantissa_zeroes_and_decimal,\"$1E\").replace(exp_with_single_digit,\"$10$2\");\n\t}\n\n\t/* exponent >= -9 and <= 9 */\n\tfunction small_exp(v) {\n\t\tvar w = (v<0?12:11);\n\t\tvar o = strip_decimal(v.toFixed(12)); if(o.length <= w) return o;\n\t\to = v.toPrecision(10); if(o.length <= w) return o;\n\t\treturn v.toExponential(5);\n\t}\n\n\t/* exponent >= 11 or <= -10 likely exponential */\n\tfunction large_exp(v) {\n\t\tvar o = strip_decimal(v.toFixed(11));\n\t\treturn (o.length > (v<0?12:11) || o === \"0\" || o === \"-0\") ? v.toPrecision(6) : o;\n\t}\n\n\tfunction general_fmt_num_base(v) {\n\t\tvar V = Math.floor(Math.log(Math.abs(v))*Math.LOG10E), o;\n\n\t\tif(V >= -4 && V <= -1) o = v.toPrecision(10+V);\n\t\telse if(Math.abs(V) <= 9) o = small_exp(v);\n\t\telse if(V === 10) o = v.toFixed(10).substr(0,12);\n\t\telse o = large_exp(v);\n\n\t\treturn strip_decimal(normalize_exp(o.toUpperCase()));\n\t}\n\n\treturn general_fmt_num_base;\n})();\nSSF._general_num = general_fmt_num;\n\n/*\n\t\"General\" rules:\n\t- text is passed through (\"@\")\n\t- booleans are rendered as TRUE/FALSE\n\t- \"up to 11 characters\" displayed for numbers\n\t- Default date format (code 14) used for Dates\n\n\tTODO: technically the display depends on the width of the cell\n*/\nfunction general_fmt(v, opts) {\n\tswitch(typeof v) {\n\t\tcase 'string': return v;\n\t\tcase 'boolean': return v ? \"TRUE\" : \"FALSE\";\n\t\tcase 'number': return (v|0) === v ? v.toString(10) : general_fmt_num(v);\n\t\tcase 'undefined': return \"\";\n\t\tcase 'object':\n\t\t\tif(v == null) return \"\";\n\t\t\tif(v instanceof Date) return format(14, datenum_local(v, opts && opts.date1904), opts);\n\t}\n\tthrow new Error(\"unsupported value in General format: \" + v);\n}\nSSF._general = general_fmt;\nfunction fix_hijri(date, o) {\n /* TODO: properly adjust y/m/d and */\n o[0] -= 581;\n var dow = date.getDay();\n if(date < 60) dow = (dow + 6) % 7;\n return dow;\n}\n//var THAI_DIGITS = \"\\u0E50\\u0E51\\u0E52\\u0E53\\u0E54\\u0E55\\u0E56\\u0E57\\u0E58\\u0E59\".split(\"\");\n/*jshint -W086 */\nfunction write_date(type, fmt, val, ss0) {\n\tvar o=\"\", ss=0, tt=0, y = val.y, out, outl = 0;\n\tswitch(type) {\n\t\tcase 98: /* 'b' buddhist year */\n\t\t\ty = val.y + 543;\n\t\t\t/* falls through */\n\t\tcase 121: /* 'y' year */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = y % 100; outl = 2; break;\n\t\t\tdefault: out = y % 10000; outl = 4; break;\n\t\t} break;\n\t\tcase 109: /* 'm' month */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.m; outl = fmt.length; break;\n\t\t\tcase 3: return months[val.m-1][1];\n\t\t\tcase 5: return months[val.m-1][0];\n\t\t\tdefault: return months[val.m-1][2];\n\t\t} break;\n\t\tcase 100: /* 'd' day */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.d; outl = fmt.length; break;\n\t\t\tcase 3: return days[val.q][0];\n\t\t\tdefault: return days[val.q][1];\n\t\t} break;\n\t\tcase 104: /* 'h' 12-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = 1+(val.H+11)%12; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 72: /* 'H' 24-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.H; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 77: /* 'M' minutes */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.M; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad minute format: ' + fmt;\n\t\t} break;\n\t\tcase 115: /* 's' seconds */\n\t\t\tif(fmt != 's' && fmt != 'ss' && fmt != '.0' && fmt != '.00' && fmt != '.000') throw 'bad second format: ' + fmt;\n\t\t\tif(val.u === 0 && (fmt == \"s\" || fmt == \"ss\")) return pad0(val.S, fmt.length);\nif(ss0 >= 2) tt = ss0 === 3 ? 1000 : 100;\n\t\t\telse tt = ss0 === 1 ? 10 : 1;\n\t\t\tss = Math.round((tt)*(val.S + val.u));\n\t\t\tif(ss >= 60*tt) ss = 0;\n\t\t\tif(fmt === 's') return ss === 0 ? \"0\" : \"\"+ss/tt;\n\t\t\to = pad0(ss,2 + ss0);\n\t\t\tif(fmt === 'ss') return o.substr(0,2);\n\t\t\treturn \".\" + o.substr(2,fmt.length-1);\n\t\tcase 90: /* 'Z' absolute time */\n\t\tswitch(fmt) {\n\t\t\tcase '[h]': case '[hh]': out = val.D*24+val.H; break;\n\t\t\tcase '[m]': case '[mm]': out = (val.D*24+val.H)*60+val.M; break;\n\t\t\tcase '[s]': case '[ss]': out = ((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u); break;\n\t\t\tdefault: throw 'bad abstime format: ' + fmt;\n\t\t} outl = fmt.length === 3 ? 1 : 2; break;\n\t\tcase 101: /* 'e' era */\n\t\t\tout = y; outl = 1; break;\n\t}\n\tvar outstr = outl > 0 ? pad0(out, outl) : \"\";\n\treturn outstr;\n}\n/*jshint +W086 */\nfunction commaify(s) {\n\tvar w = 3;\n\tif(s.length <= w) return s;\n\tvar j = (s.length % w), o = s.substr(0,j);\n\tfor(; j!=s.length; j+=w) o+=(o.length > 0 ? \",\" : \"\") + s.substr(j,w);\n\treturn o;\n}\nvar write_num = (function make_write_num(){\nvar pct1 = /%/g;\nfunction write_num_pct(type, fmt, val){\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\nfunction write_num_cm(type, fmt, val){\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\nfunction write_num_exp(fmt, val){\n\tvar o;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tif(val == 0) return \"0.0E+0\";\n\t\telse if(val < 0) return \"-\" + write_num_exp(fmt, -val);\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(o.indexOf(\"e\") === -1) {\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\twhile(o.substr(0,2) === \"0.\") {\n\t\t\t\to = o.charAt(0) + o.substr(2,period) + \".\" + o.substr(2+period);\n\t\t\t\to = o.replace(/^0+([1-9])/,\"$1\").replace(/^0+\\./,\"0.\");\n\t\t\t}\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nvar frac1 = /# (\\?+)( ?)\\/( ?)(\\d+)/;\nfunction write_num_f1(r, aval, sign) {\n\tvar den = parseInt(r[4],10), rr = Math.round(aval * den), base = Math.floor(rr/den);\n\tvar myn = (rr - base*den), myd = den;\n\treturn sign + (base === 0 ? \"\" : \"\"+base) + \" \" + (myn === 0 ? fill(\" \", r[1].length + 1 + r[4].length) : pad_(myn,r[1].length) + r[2] + \"/\" + r[3] + pad0(myd,r[4].length));\n}\nfunction write_num_f2(r, aval, sign) {\n\treturn sign + (aval === 0 ? \"\" : \"\"+aval) + fill(\" \", r[1].length + 2 + r[4].length);\n}\nvar dec1 = /^#*0*\\.([0#]+)/;\nvar closeparen = /\\).*[0#]/;\nvar phone = /\\(###\\) ###\\\\?-####/;\nfunction hashq(str) {\n\tvar o = \"\", cc;\n\tfor(var i = 0; i != str.length; ++i) switch((cc=str.charCodeAt(i))) {\n\t\tcase 35: break;\n\t\tcase 63: o+= \" \"; break;\n\t\tcase 48: o+= \"0\"; break;\n\t\tdefault: o+= String.fromCharCode(cc);\n\t}\n\treturn o;\n}\nfunction rnd(val, d) { var dd = Math.pow(10,d); return \"\"+(Math.round(val * dd)/dd); }\nfunction dec(val, d) {\n\tvar _frac = val - Math.floor(val), dd = Math.pow(10,d);\n\tif (d < ('' + Math.round(_frac * dd)).length) return 0;\n\treturn Math.round(_frac * dd);\n}\nfunction carry(val, d) {\n\tif (d < ('' + Math.round((val-Math.floor(val))*Math.pow(10,d))).length) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\nfunction flr(val) {\n\tif(val < 2147483647 && val > -2147483648) return \"\"+(val >= 0 ? (val|0) : (val-1|0));\n\treturn \"\"+Math.floor(val);\n}\nfunction write_num_flt(type, fmt, val) {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_flt('n', ffmt, val);\n\t\treturn '(' + write_num_flt('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_flt(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0r(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = pad0r(val,0); if(o === \"0\") o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f1(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0r(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\to = rnd(val, r[1].length).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1])).replace(/\\.(\\d*)$/,function($$, $1) { return \".\" + $1 + fill(\"0\", hashq(r[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + rnd(aval, r[2].length).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify(pad0r(aval,0));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(\"\"+(Math.floor(val) + carry(val, r[1].length))) + \".\" + pad0(dec(val, r[1].length),r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_flt(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_flt(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri<o.length?o.charAt(ri++):x==='0'?'0':\"\";}));\n\t}\n\tif(fmt.match(phone)) {\n\t\to = write_num_flt(type, \"##########\", val);\n\t\treturn \"(\" + o.substr(0,3) + \") \" + o.substr(3, 3) + \"-\" + o.substr(6);\n\t}\n\tvar oa = \"\";\n\tif((r = fmt.match(/^([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(r[4].length,7);\n\t\tff = frac(aval, Math.pow(10,ri)-1, false);\n\t\to = \"\" + sign;\n\t\toa = write_num(\"n\", r[1], ff[1]);\n\t\tif(oa.charAt(oa.length-1) == \" \") oa = oa.substr(0,oa.length-1) + \"0\";\n\t\to += oa + r[2] + \"/\" + r[3];\n\t\toa = rpad_(ff[2],ri);\n\t\tif(oa.length < r[4].length) oa = hashq(r[4].substr(r[4].length-oa.length)) + oa;\n\t\to += oa;\n\t\treturn o;\n\t}\n\tif((r = fmt.match(/^# ([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(Math.max(r[1].length, r[4].length),7);\n\t\tff = frac(aval, Math.pow(10,ri)-1, true);\n\t\treturn sign + (ff[0]||(ff[1] ? \"\" : \"0\")) + \" \" + (ff[1] ? pad_(ff[1],ri) + r[2] + \"/\" + r[3] + rpad_(ff[2],ri): fill(\" \", 2*ri+1 + r[2].length + r[3].length));\n\t}\n\tif((r = fmt.match(/^[#0?]+$/))) {\n\t\to = pad0r(val, 0);\n\t\tif(fmt.length <= o.length) return o;\n\t\treturn hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(/^([#0?]+)\\.([#0]+)$/))) {\n\t\to = \"\" + val.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,\"$1\");\n\t\tri = o.indexOf(\".\");\n\t\tvar lres = fmt.indexOf(\".\") - ri, rres = fmt.length - o.length - lres;\n\t\treturn hashq(fmt.substr(0,lres) + o + fmt.substr(fmt.length-rres));\n\t}\n\tif((r = fmt.match(/^00,000\\.([#0]*0)$/))) {\n\t\tri = dec(val, r[1].length);\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(flr(val)).replace(/^\\d,\\d{3}$/,\"0$&\").replace(/^\\d*$/,function($$) { return \"00,\" + ($$.length < 3 ? pad0(0,3-$$.length) : \"\") + $$; }) + \".\" + pad0(ri,r[1].length);\n\t}\n\tswitch(fmt) {\n\t\tcase \"###,##0.00\": return write_num_flt(type, \"#,##0.00\", val);\n\t\tcase \"###,###\":\n\t\tcase \"##,###\":\n\t\tcase \"#,###\": var x = commaify(pad0r(aval,0)); return x !== \"0\" ? sign + x : \"\";\n\t\tcase \"###,###.00\": return write_num_flt(type, \"###,##0.00\",val).replace(/^0\\./,\".\");\n\t\tcase \"#,###.00\": return write_num_flt(type, \"#,##0.00\",val).replace(/^0\\./,\".\");\n\t\tdefault:\n\t}\n\tthrow new Error(\"unsupported format |\" + fmt + \"|\");\n}\nfunction write_num_cm2(type, fmt, val){\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\nfunction write_num_pct2(type, fmt, val){\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\nfunction write_num_exp2(fmt, val){\n\tvar o;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tif(val == 0) return \"0.0E+0\";\n\t\telse if(val < 0) return \"-\" + write_num_exp2(fmt, -val);\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(!o.match(/[Ee]/)) {\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nfunction write_num_int(type, fmt, val) {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_int('n', ffmt, val);\n\t\treturn '(' + write_num_int('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm2(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct2(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp2(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_int(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = (\"\"+val); if(val === 0) o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f2(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\no = (\"\"+val).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1]));\n\t\to = o.replace(/\\.(\\d*)$/,function($$, $1) {\nreturn \".\" + $1 + fill(\"0\", hashq(r[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + (\"\"+aval).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify((\"\"+aval));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify((\"\"+val)) + \".\" + fill('0',r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_int(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_int(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri<o.length?o.charAt(ri++):x==='0'?'0':\"\";}));\n\t}\n\tif(fmt.match(phone)) {\n\t\to = write_num_int(type, \"##########\", val);\n\t\treturn \"(\" + o.substr(0,3) + \") \" + o.substr(3, 3) + \"-\" + o.substr(6);\n\t}\n\tvar oa = \"\";\n\tif((r = fmt.match(/^([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(r[4].length,7);\n\t\tff = frac(aval, Math.pow(10,ri)-1, false);\n\t\to = \"\" + sign;\n\t\toa = write_num(\"n\", r[1], ff[1]);\n\t\tif(oa.charAt(oa.length-1) == \" \") oa = oa.substr(0,oa.length-1) + \"0\";\n\t\to += oa + r[2] + \"/\" + r[3];\n\t\toa = rpad_(ff[2],ri);\n\t\tif(oa.length < r[4].length) oa = hashq(r[4].substr(r[4].length-oa.length)) + oa;\n\t\to += oa;\n\t\treturn o;\n\t}\n\tif((r = fmt.match(/^# ([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(Math.max(r[1].length, r[4].length),7);\n\t\tff = frac(aval, Math.pow(10,ri)-1, true);\n\t\treturn sign + (ff[0]||(ff[1] ? \"\" : \"0\")) + \" \" + (ff[1] ? pad_(ff[1],ri) + r[2] + \"/\" + r[3] + rpad_(ff[2],ri): fill(\" \", 2*ri+1 + r[2].length + r[3].length));\n\t}\n\tif((r = fmt.match(/^[#0?]+$/))) {\n\t\to = \"\" + val;\n\t\tif(fmt.length <= o.length) return o;\n\t\treturn hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(/^([#0]+)\\.([#0]+)$/))) {\n\t\to = \"\" + val.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,\"$1\");\n\t\tri = o.indexOf(\".\");\n\t\tvar lres = fmt.indexOf(\".\") - ri, rres = fmt.length - o.length - lres;\n\t\treturn hashq(fmt.substr(0,lres) + o + fmt.substr(fmt.length-rres));\n\t}\n\tif((r = fmt.match(/^00,000\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify(\"\"+val).replace(/^\\d,\\d{3}$/,\"0$&\").replace(/^\\d*$/,function($$) { return \"00,\" + ($$.length < 3 ? pad0(0,3-$$.length) : \"\") + $$; }) + \".\" + pad0(0,r[1].length);\n\t}\n\tswitch(fmt) {\n\t\tcase \"###,###\":\n\t\tcase \"##,###\":\n\t\tcase \"#,###\": var x = commaify(\"\"+aval); return x !== \"0\" ? sign + x : \"\";\n\t\tdefault:\n\t\t\tif(fmt.match(/\\.[0#?]*$/)) return write_num_int(type, fmt.slice(0,fmt.lastIndexOf(\".\")), val) + hashq(fmt.slice(fmt.lastIndexOf(\".\")));\n\t}\n\tthrow new Error(\"unsupported format |\" + fmt + \"|\");\n}\nreturn function write_num(type, fmt, val) {\n\treturn (val|0) === val ? write_num_int(type, fmt, val) : write_num_flt(type, fmt, val);\n};})();\nfunction split_fmt(fmt) {\n\tvar out = [];\n\tvar in_str = false/*, cc*/;\n\tfor(var i = 0, j = 0; i < fmt.length; ++i) switch((/*cc=*/fmt.charCodeAt(i))) {\n\t\tcase 34: /* '\"' */\n\t\t\tin_str = !in_str; break;\n\t\tcase 95: case 42: case 92: /* '_' '*' '\\\\' */\n\t\t\t++i; break;\n\t\tcase 59: /* ';' */\n\t\t\tout[out.length] = fmt.substr(j,i-j);\n\t\t\tj = i+1;\n\t}\n\tout[out.length] = fmt.substr(j);\n\tif(in_str === true) throw new Error(\"Format |\" + fmt + \"| unterminated string \");\n\treturn out;\n}\nSSF._split = split_fmt;\nvar abstime = /\\[[HhMmSs\\u0E0A\\u0E19\\u0E17]*\\]/;\nfunction fmt_is_date(fmt) {\n\tvar i = 0, /*cc = 0,*/ c = \"\", o = \"\";\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': if(isgeneral(fmt, i)) i+= 6; i++; break;\n\t\t\tcase '\"': for(;(/*cc=*/fmt.charCodeAt(++i)) !== 34 && i < fmt.length;){/*empty*/} ++i; break;\n\t\t\tcase '\\\\': i+=2; break;\n\t\t\tcase '_': i+=2; break;\n\t\t\tcase '@': ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") return true;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g': return true;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"AM/PM\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"上午/下午\") return true;\n\t\t\t\t++i; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.match(abstime)) return true;\n\t\t\t\tbreak;\n\t\t\tcase '.':\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\twhile(i < fmt.length && (\"0#?.,E+-%\".indexOf(c=fmt.charAt(++i)) > -1 || (c=='\\\\' && fmt.charAt(i+1) == \"-\" && \"0#\".indexOf(fmt.charAt(i+2))>-1))){/* empty */}\n\t\t\t\tbreak;\n\t\t\tcase '?': while(fmt.charAt(++i) === c){/* empty */} break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break;\n\t\t\tcase '(': case ')': ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\twhile(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1){/* empty */} break;\n\t\t\tcase ' ': ++i; break;\n\t\t\tdefault: ++i; break;\n\t\t}\n\t}\n\treturn false;\n}\nSSF.is_date = fmt_is_date;\nfunction eval_fmt(fmt, v, opts, flen) {\n\tvar out = [], o = \"\", i = 0, c = \"\", lst='t', dt, j, cc;\n\tvar hr='H';\n\t/* Tokenize */\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': /* General */\n\t\t\t\tif(!isgeneral(fmt, i)) throw new Error('unrecognized character ' + c + ' in ' +fmt);\n\t\t\t\tout[out.length] = {t:'G', v:'General'}; i+=7; break;\n\t\t\tcase '\"': /* Literal text */\n\t\t\t\tfor(o=\"\";(cc=fmt.charCodeAt(++i)) !== 34 && i < fmt.length;) o += String.fromCharCode(cc);\n\t\t\t\tout[out.length] = {t:'t', v:o}; ++i; break;\n\t\t\tcase '\\\\': var w = fmt.charAt(++i), t = (w === \"(\" || w === \")\") ? w : 't';\n\t\t\t\tout[out.length] = {t:t, v:w}; ++i; break;\n\t\t\tcase '_': out[out.length] = {t:'t', v:\" \"}; i+=2; break;\n\t\t\tcase '@': /* Text Placeholder */\n\t\t\t\tout[out.length] = {t:'T', v:v}; ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") {\n\t\t\t\t\tif(dt==null) { dt=parse_date_code(v, opts, fmt.charAt(i+1) === \"2\"); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'X', v:fmt.substr(i,2)}; lst = c; i+=2; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\tc = c.toLowerCase();\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g':\n\t\t\t\tif(v < 0) return \"\";\n\t\t\t\tif(dt==null) { dt=parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\to = c; while(++i < fmt.length && fmt.charAt(i).toLowerCase() === c) o+=c;\n\t\t\t\tif(c === 'm' && lst.toLowerCase() === 'h') c = 'M';\n\t\t\t\tif(c === 'h') c = hr;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tvar q={t:c, v:c};\n\t\t\t\tif(dt==null) dt=parse_date_code(v, opts);\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") { if(dt!=null) q.v = dt.H >= 12 ? \"P\" : \"A\"; q.t = 'T'; hr='h';i+=3;}\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"AM/PM\") { if(dt!=null) q.v = dt.H >= 12 ? \"PM\" : \"AM\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"上午/下午\") { if(dt!=null) q.v = dt.H >= 12 ? \"下午\" : \"上午\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse { q.t = \"t\"; ++i; }\n\t\t\t\tif(dt==null && q.t === 'T') return \"\";\n\t\t\t\tout[out.length] = q; lst = c; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.slice(-1) !== ']') throw 'unterminated \"[\" block: |' + o + '|';\n\t\t\t\tif(o.match(abstime)) {\n\t\t\t\t\tif(dt==null) { dt=parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'Z', v:o.toLowerCase()};\n\t\t\t\t\tlst = o.charAt(1);\n\t\t\t\t} else if(o.indexOf(\"$\") > -1) {\n\t\t\t\t\to = (o.match(/\\$([^-\\[\\]]*)/)||[])[1]||\"$\";\n\t\t\t\t\tif(!fmt_is_date(fmt)) out[out.length] = {t:'t',v:o};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t/* Numbers */\n\t\t\tcase '.':\n\t\t\t\tif(dt != null) {\n\t\t\t\t\to = c; while(++i < fmt.length && (c=fmt.charAt(i)) === \"0\") o += c;\n\t\t\t\t\tout[out.length] = {t:'s', v:o}; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\to = c; while(++i < fmt.length && \"0#?.,E+-%\".indexOf(c=fmt.charAt(i)) > -1) o += c;\n\t\t\t\tout[out.length] = {t:'n', v:o}; break;\n\t\t\tcase '?':\n\t\t\t\to = c; while(fmt.charAt(++i) === c) o+=c;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break; // **\n\t\t\tcase '(': case ')': out[out.length] = {t:(flen===1?'t':c), v:c}; ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\to = c; while(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1) o+=fmt.charAt(i);\n\t\t\t\tout[out.length] = {t:'D', v:o}; break;\n\t\t\tcase ' ': out[out.length] = {t:c, v:c}; ++i; break;\n\t\t\tcase '$': out[out.length] = {t:'t', v:'$'}; ++i; break;\n\t\t\tdefault:\n\t\t\t\tif(\",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP\".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt);\n\t\t\t\tout[out.length] = {t:'t', v:c}; ++i; break;\n\t\t}\n\t}\n\n\t/* Scan for date/time parts */\n\tvar bt = 0, ss0 = 0, ssm;\n\tfor(i=out.length-1, lst='t'; i >= 0; --i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 'h': case 'H': out[i].t = hr; lst='h'; if(bt < 1) bt = 1; break;\n\t\t\tcase 's':\n\t\t\t\tif((ssm=out[i].v.match(/\\.0+$/))) ss0=Math.max(ss0,ssm[0].length-1);\n\t\t\t\tif(bt < 3) bt = 3;\n\t\t\t/* falls through */\n\t\t\tcase 'd': case 'y': case 'M': case 'e': lst=out[i].t; break;\n\t\t\tcase 'm': if(lst === 's') { out[i].t = 'M'; if(bt < 2) bt = 2; } break;\n\t\t\tcase 'X': /*if(out[i].v === \"B2\");*/\n\t\t\t\tbreak;\n\t\t\tcase 'Z':\n\t\t\t\tif(bt < 1 && out[i].v.match(/[Hh]/)) bt = 1;\n\t\t\t\tif(bt < 2 && out[i].v.match(/[Mm]/)) bt = 2;\n\t\t\t\tif(bt < 3 && out[i].v.match(/[Ss]/)) bt = 3;\n\t\t}\n\t}\n\t/* time rounding depends on presence of minute / second / usec fields */\n\tswitch(bt) {\n\t\tcase 0: break;\n\t\tcase 1:\nif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tif(dt.M >= 60) { dt.M = 0; ++dt.H; }\n\t\t\tbreak;\n\t\tcase 2:\nif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tbreak;\n\t}\n\n\t/* replace fields */\n\tvar nstr = \"\", jj;\n\tfor(i=0; i < out.length; ++i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 't': case 'T': case ' ': case 'D': break;\n\t\t\tcase 'X': out[i].v = \"\"; out[i].t = \";\"; break;\n\t\t\tcase 'd': case 'm': case 'y': case 'h': case 'H': case 'M': case 's': case 'e': case 'b': case 'Z':\nout[i].v = write_date(out[i].t.charCodeAt(0), out[i].v, dt, ss0);\n\t\t\t\tout[i].t = 't'; break;\n\t\t\tcase 'n': case '?':\n\t\t\t\tjj = i+1;\n\t\t\t\twhile(out[jj] != null && (\n\t\t\t\t\t(c=out[jj].t) === \"?\" || c === \"D\" ||\n\t\t\t\t\t((c === \" \" || c === \"t\") && out[jj+1] != null && (out[jj+1].t === '?' || out[jj+1].t === \"t\" && out[jj+1].v === '/')) ||\n\t\t\t\t\t(out[i].t === '(' && (c === ' ' || c === 'n' || c === ')')) ||\n\t\t\t\t\t(c === 't' && (out[jj].v === '/' || out[jj].v === ' ' && out[jj+1] != null && out[jj+1].t == '?'))\n\t\t\t\t)) {\n\t\t\t\t\tout[i].v += out[jj].v;\n\t\t\t\t\tout[jj] = {v:\"\", t:\";\"}; ++jj;\n\t\t\t\t}\n\t\t\t\tnstr += out[i].v;\n\t\t\t\ti = jj-1; break;\n\t\t\tcase 'G': out[i].t = 't'; out[i].v = general_fmt(v,opts); break;\n\t\t}\n\t}\n\tvar vv = \"\", myv, ostr;\n\tif(nstr.length > 0) {\n\t\tif(nstr.charCodeAt(0) == 40) /* '(' */ {\n\t\t\tmyv = (v<0&&nstr.charCodeAt(0) === 45 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t} else {\n\t\t\tmyv = (v<0 && flen > 1 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t\tif(myv < 0 && out[0] && out[0].t == 't') {\n\t\t\t\tostr = ostr.substr(1);\n\t\t\t\tout[0].v = \"-\" + out[0].v;\n\t\t\t}\n\t\t}\n\t\tjj=ostr.length-1;\n\t\tvar decpt = out.length;\n\t\tfor(i=0; i < out.length; ++i) if(out[i] != null && out[i].t != 't' && out[i].v.indexOf(\".\") > -1) { decpt = i; break; }\n\t\tvar lasti=out.length;\n\t\tif(decpt === out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tfor(i=out.length-1; i>= 0;--i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tif(jj>=out[i].v.length-1) { jj -= out[i].v.length; out[i].v = ostr.substr(jj+1, out[i].v.length); }\n\t\t\t\telse if(jj < 0) out[i].v = \"\";\n\t\t\t\telse { out[i].v = ostr.substr(0, jj+1); jj = -1; }\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti<out.length) out[lasti].v = ostr.substr(0,jj+1) + out[lasti].v;\n\t\t}\n\t\telse if(decpt !== out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tjj = ostr.indexOf(\".\")-1;\n\t\t\tfor(i=decpt; i>= 0; --i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")-1:out[i].v.length-1;\n\t\t\t\tvv = out[i].v.substr(j+1);\n\t\t\t\tfor(; j>=0; --j) {\n\t\t\t\t\tif(jj>=0 && (out[i].v.charAt(j) === \"0\" || out[i].v.charAt(j) === \"#\")) vv = ostr.charAt(jj--) + vv;\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti<out.length) out[lasti].v = ostr.substr(0,jj+1) + out[lasti].v;\n\t\t\tjj = ostr.indexOf(\".\")+1;\n\t\t\tfor(i=decpt; i<out.length; ++i) {\n\t\t\t\tif(out[i] == null || ('n?('.indexOf(out[i].t) === -1 && i !== decpt)) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")+1:0;\n\t\t\t\tvv = out[i].v.substr(0,j);\n\t\t\t\tfor(; j<out[i].v.length; ++j) {\n\t\t\t\t\tif(jj<ostr.length) vv += ostr.charAt(jj++);\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t}\n\t}\n\tfor(i=0; i<out.length; ++i) if(out[i] != null && 'n?'.indexOf(out[i].t)>-1) {\n\t\tmyv = (flen >1 && v < 0 && i>0 && out[i-1].v === \"-\" ? -v:v);\n\t\tout[i].v = write_num(out[i].t, out[i].v, myv);\n\t\tout[i].t = 't';\n\t}\n\tvar retval = \"\";\n\tfor(i=0; i !== out.length; ++i) if(out[i] != null) retval += out[i].v;\n\treturn retval;\n}\nSSF._eval = eval_fmt;\nvar cfregex = /\\[[=<>]/;\nvar cfregex2 = /\\[(=|>[=]?|<[>=]?)(-?\\d+(?:\\.\\d*)?)\\]/;\nfunction chkcond(v, rr) {\n\tif(rr == null) return false;\n\tvar thresh = parseFloat(rr[2]);\n\tswitch(rr[1]) {\n\t\tcase \"=\": if(v == thresh) return true; break;\n\t\tcase \">\": if(v > thresh) return true; break;\n\t\tcase \"<\": if(v < thresh) return true; break;\n\t\tcase \"<>\": if(v != thresh) return true; break;\n\t\tcase \">=\": if(v >= thresh) return true; break;\n\t\tcase \"<=\": if(v <= thresh) return true; break;\n\t}\n\treturn false;\n}\nfunction choose_fmt(f, v) {\n\tvar fmt = split_fmt(f);\n\tvar l = fmt.length, lat = fmt[l-1].indexOf(\"@\");\n\tif(l<4 && lat>-1) --l;\n\tif(fmt.length > 4) throw new Error(\"cannot find right format for |\" + fmt.join(\"|\") + \"|\");\n\tif(typeof v !== \"number\") return [4, fmt.length === 4 || lat>-1?fmt[fmt.length-1]:\"@\"];\n\tswitch(fmt.length) {\n\t\tcase 1: fmt = lat>-1 ? [\"General\", \"General\", \"General\", fmt[0]] : [fmt[0], fmt[0], fmt[0], \"@\"]; break;\n\t\tcase 2: fmt = lat>-1 ? [fmt[0], fmt[0], fmt[0], fmt[1]] : [fmt[0], fmt[1], fmt[0], \"@\"]; break;\n\t\tcase 3: fmt = lat>-1 ? [fmt[0], fmt[1], fmt[0], fmt[2]] : [fmt[0], fmt[1], fmt[2], \"@\"]; break;\n\t\tcase 4: break;\n\t}\n\tvar ff = v > 0 ? fmt[0] : v < 0 ? fmt[1] : fmt[2];\n\tif(fmt[0].indexOf(\"[\") === -1 && fmt[1].indexOf(\"[\") === -1) return [l, ff];\n\tif(fmt[0].match(cfregex) != null || fmt[1].match(cfregex) != null) {\n\t\tvar m1 = fmt[0].match(cfregex2);\n\t\tvar m2 = fmt[1].match(cfregex2);\n\t\treturn chkcond(v, m1) ? [l, fmt[0]] : chkcond(v, m2) ? [l, fmt[1]] : [l, fmt[m1 != null && m2 != null ? 2 : 1]];\n\t}\n\treturn [l, ff];\n}\nfunction format(fmt,v,o) {\n\tif(o == null) o = {};\n\tvar sfmt = \"\";\n\tswitch(typeof fmt) {\n\t\tcase \"string\":\n\t\t\tif(fmt == \"m/d/yy\" && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = fmt;\n\t\t\tbreak;\n\t\tcase \"number\":\n\t\t\tif(fmt == 14 && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = (o.table != null ? (o.table) : table_fmt)[fmt];\n\t\t\tif(sfmt == null) sfmt = (o.table && o.table[default_map[fmt]]) || table_fmt[default_map[fmt]];\n\t\t\tif(sfmt == null) sfmt = default_str[fmt] || \"General\";\n\t\t\tbreak;\n\t}\n\tif(isgeneral(sfmt,0)) return general_fmt(v, o);\n\tif(v instanceof Date) v = datenum_local(v, o.date1904);\n\tvar f = choose_fmt(sfmt, v);\n\tif(isgeneral(f[1])) return general_fmt(v, o);\n\tif(v === true) v = \"TRUE\"; else if(v === false) v = \"FALSE\";\n\telse if(v === \"\" || v == null) return \"\";\n\treturn eval_fmt(f[1], v, o, f[0]);\n}\nfunction load_entry(fmt, idx) {\n\tif(typeof idx != 'number') {\n\t\tidx = +idx || -1;\nfor(var i = 0; i < 0x0188; ++i) {\nif(table_fmt[i] == undefined) { if(idx < 0) idx = i; continue; }\n\t\t\tif(table_fmt[i] == fmt) { idx = i; break; }\n\t\t}\nif(idx < 0) idx = 0x187;\n\t}\ntable_fmt[idx] = fmt;\n\treturn idx;\n}\nSSF.load = load_entry;\nSSF._table = table_fmt;\nSSF.get_table = function get_table() { return table_fmt; };\nSSF.load_table = function load_table(tbl) {\n\tfor(var i=0; i!=0x0188; ++i)\n\t\tif(tbl[i] !== undefined) load_entry(tbl[i], i);\n};\nSSF.init_table = init_table;\nSSF.format = format;\n};\nmake_ssf(SSF);\n/* map from xlml named formats to SSF TODO: localize */\nvar XLMLFormatMap/*{[string]:string}*/ = ({\n\t\"General Number\": \"General\",\n\t\"General Date\": SSF._table[22],\n\t\"Long Date\": \"dddd, mmmm dd, yyyy\",\n\t\"Medium Date\": SSF._table[15],\n\t\"Short Date\": SSF._table[14],\n\t\"Long Time\": SSF._table[19],\n\t\"Medium Time\": SSF._table[18],\n\t\"Short Time\": SSF._table[20],\n\t\"Currency\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"Fixed\": SSF._table[2],\n\t\"Standard\": SSF._table[4],\n\t\"Percent\": SSF._table[10],\n\t\"Scientific\": SSF._table[11],\n\t\"Yes/No\": '\"Yes\";\"Yes\";\"No\";@',\n\t\"True/False\": '\"True\";\"True\";\"False\";@',\n\t\"On/Off\": '\"Yes\";\"Yes\";\"No\";@'\n});\n\nvar SSFImplicit/*{[number]:string}*/ = ({\n\t\"5\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"6\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"7\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"8\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"23\": 'General', \"24\": 'General', \"25\": 'General', \"26\": 'General',\n\t\"27\": 'm/d/yy', \"28\": 'm/d/yy', \"29\": 'm/d/yy', \"30\": 'm/d/yy', \"31\": 'm/d/yy',\n\t\"32\": 'h:mm:ss', \"33\": 'h:mm:ss', \"34\": 'h:mm:ss', \"35\": 'h:mm:ss',\n\t\"36\": 'm/d/yy',\n\t\"41\": '_(* #,##0_);_(* \\(#,##0\\);_(* \"-\"_);_(@_)',\n\t\"42\": '_(\"$\"* #,##0_);_(\"$\"* \\(#,##0\\);_(\"$\"* \"-\"_);_(@_)',\n\t\"43\": '_(* #,##0.00_);_(* \\(#,##0.00\\);_(* \"-\"??_);_(@_)',\n\t\"44\": '_(\"$\"* #,##0.00_);_(\"$\"* \\(#,##0.00\\);_(\"$\"* \"-\"??_);_(@_)',\n\t\"50\": 'm/d/yy', \"51\": 'm/d/yy', \"52\": 'm/d/yy', \"53\": 'm/d/yy', \"54\": 'm/d/yy',\n\t\"55\": 'm/d/yy', \"56\": 'm/d/yy', \"57\": 'm/d/yy', \"58\": 'm/d/yy',\n\t\"59\": '0',\n\t\"60\": '0.00',\n\t\"61\": '#,##0',\n\t\"62\": '#,##0.00',\n\t\"63\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"64\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"65\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"66\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"67\": '0%',\n\t\"68\": '0.00%',\n\t\"69\": '# ?/?',\n\t\"70\": '# ??/??',\n\t\"71\": 'm/d/yy',\n\t\"72\": 'm/d/yy',\n\t\"73\": 'd-mmm-yy',\n\t\"74\": 'd-mmm',\n\t\"75\": 'mmm-yy',\n\t\"76\": 'h:mm',\n\t\"77\": 'h:mm:ss',\n\t\"78\": 'm/d/yy h:mm',\n\t\"79\": 'mm:ss',\n\t\"80\": '[h]:mm:ss',\n\t\"81\": 'mmss.0'\n});\n\n/* dateNF parse TODO: move to SSF */\nvar dateNFregex = /[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;\nfunction dateNF_regex(dateNF) {\n\tvar fmt = typeof dateNF == \"number\" ? SSF._table[dateNF] : dateNF;\n\tfmt = fmt.replace(dateNFregex, \"(\\\\d+)\");\n\treturn new RegExp(\"^\" + fmt + \"$\");\n}\nfunction dateNF_fix(str, dateNF, match) {\n\tvar Y = -1, m = -1, d = -1, H = -1, M = -1, S = -1;\n\t(dateNF.match(dateNFregex)||[]).forEach(function(n, i) {\n\t\tvar v = parseInt(match[i+1], 10);\n\t\tswitch(n.toLowerCase().charAt(0)) {\n\t\t\tcase 'y': Y = v; break; case 'd': d = v; break;\n\t\t\tcase 'h': H = v; break; case 's': S = v; break;\n\t\t\tcase 'm': if(H >= 0) M = v; else m = v; break;\n\t\t}\n\t});\n\tif(S >= 0 && M == -1 && m >= 0) { M = m; m = -1; }\n\tvar datestr = ((\"\" + (Y>=0?Y: new Date().getFullYear())).slice(-4) + \"-\" + (\"00\" + (m>=1?m:1)).slice(-2) + \"-\" + (\"00\" + (d>=1?d:1)).slice(-2));\n\tif(datestr.length == 7) datestr = \"0\" + datestr;\n\tif(datestr.length == 8) datestr = \"20\" + datestr;\n\tvar timestr = ((\"00\" + (H>=0?H:0)).slice(-2) + \":\" + (\"00\" + (M>=0?M:0)).slice(-2) + \":\" + (\"00\" + (S>=0?S:0)).slice(-2));\n\tif(H == -1 && M == -1 && S == -1) return datestr;\n\tif(Y == -1 && m == -1 && d == -1) return timestr;\n\treturn datestr + \"T\" + timestr;\n}\n\nvar DO_NOT_EXPORT_CFB = true;\n/* cfb.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*jshint eqnull:true */\n/*exported CFB */\n/*global Uint8Array:false, Uint16Array:false */\n\n/* crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported CRC32 */\nvar CRC32;\n(function (factory) {\n\t/*jshint ignore:start */\n\t/*eslint-disable */\n\tfactory(CRC32 = {});\n\t/*eslint-enable */\n\t/*jshint ignore:end */\n}(function(CRC32) {\nCRC32.version = '1.2.0';\n/* see perf/crc32table.js */\n/*global Int32Array */\nfunction signed_crc_table() {\n\tvar c = 0, table = new Array(256);\n\n\tfor(var n =0; n != 256; ++n){\n\t\tc = n;\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\ttable[n] = c;\n\t}\n\n\treturn typeof Int32Array !== 'undefined' ? new Int32Array(table) : table;\n}\n\nvar T = signed_crc_table();\nfunction crc32_bstr(bstr, seed) {\n\tvar C = seed ^ -1, L = bstr.length - 1;\n\tfor(var i = 0; i < L;) {\n\t\tC = (C>>>8) ^ T[(C^bstr.charCodeAt(i++))&0xFF];\n\t\tC = (C>>>8) ^ T[(C^bstr.charCodeAt(i++))&0xFF];\n\t}\n\tif(i === L) C = (C>>>8) ^ T[(C ^ bstr.charCodeAt(i))&0xFF];\n\treturn C ^ -1;\n}\n\nfunction crc32_buf(buf, seed) {\n\tif(buf.length > 10000) return crc32_buf_8(buf, seed);\n\tvar C = seed ^ -1, L = buf.length - 3;\n\tfor(var i = 0; i < L;) {\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t}\n\twhile(i < L+3) C = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\treturn C ^ -1;\n}\n\nfunction crc32_buf_8(buf, seed) {\n\tvar C = seed ^ -1, L = buf.length - 7;\n\tfor(var i = 0; i < L;) {\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t}\n\twhile(i < L+7) C = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\treturn C ^ -1;\n}\n\nfunction crc32_str(str, seed) {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L=str.length, c, d; i < L;) {\n\t\tc = str.charCodeAt(i++);\n\t\tif(c < 0x80) {\n\t\t\tC = (C>>>8) ^ T[(C ^ c)&0xFF];\n\t\t} else if(c < 0x800) {\n\t\t\tC = (C>>>8) ^ T[(C ^ (192|((c>>6)&31)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|(c&63)))&0xFF];\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64; d = str.charCodeAt(i++)&1023;\n\t\t\tC = (C>>>8) ^ T[(C ^ (240|((c>>8)&7)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|((c>>2)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|((d>>6)&15)|((c&3)<<4)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|(d&63)))&0xFF];\n\t\t} else {\n\t\t\tC = (C>>>8) ^ T[(C ^ (224|((c>>12)&15)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|((c>>6)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|(c&63)))&0xFF];\n\t\t}\n\t}\n\treturn C ^ -1;\n}\nCRC32.table = T;\nCRC32.bstr = crc32_bstr;\nCRC32.buf = crc32_buf;\nCRC32.str = crc32_str;\n}));\n/* [MS-CFB] v20171201 */\nvar CFB = (function _CFB(){\nvar exports = {};\nexports.version = '1.1.4';\n/* [MS-CFB] 2.6.4 */\nfunction namecmp(l, r) {\n\tvar L = l.split(\"/\"), R = r.split(\"/\");\n\tfor(var i = 0, c = 0, Z = Math.min(L.length, R.length); i < Z; ++i) {\n\t\tif((c = L[i].length - R[i].length)) return c;\n\t\tif(L[i] != R[i]) return L[i] < R[i] ? -1 : 1;\n\t}\n\treturn L.length - R.length;\n}\nfunction dirname(p) {\n\tif(p.charAt(p.length - 1) == \"/\") return (p.slice(0,-1).indexOf(\"/\") === -1) ? p : dirname(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(0, c+1);\n}\n\nfunction filename(p) {\n\tif(p.charAt(p.length - 1) == \"/\") return filename(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(c+1);\n}\n/* -------------------------------------------------------------------------- */\n/* DOS Date format:\n high|YYYYYYYm.mmmddddd.HHHHHMMM.MMMSSSSS|low\n add 1980 to stored year\n stored second should be doubled\n*/\n\n/* write JS date to buf as a DOS date */\nfunction write_dos_date(buf, date) {\n\tif(typeof date === \"string\") date = new Date(date);\n\tvar hms = date.getHours();\n\thms = hms << 6 | date.getMinutes();\n\thms = hms << 5 | (date.getSeconds()>>>1);\n\tbuf.write_shift(2, hms);\n\tvar ymd = (date.getFullYear() - 1980);\n\tymd = ymd << 4 | (date.getMonth()+1);\n\tymd = ymd << 5 | date.getDate();\n\tbuf.write_shift(2, ymd);\n}\n\n/* read four bytes from buf and interpret as a DOS date */\nfunction parse_dos_date(buf) {\n\tvar hms = buf.read_shift(2) & 0xFFFF;\n\tvar ymd = buf.read_shift(2) & 0xFFFF;\n\tvar val = new Date();\n\tvar d = ymd & 0x1F; ymd >>>= 5;\n\tvar m = ymd & 0x0F; ymd >>>= 4;\n\tval.setMilliseconds(0);\n\tval.setFullYear(ymd + 1980);\n\tval.setMonth(m-1);\n\tval.setDate(d);\n\tvar S = hms & 0x1F; hms >>>= 5;\n\tvar M = hms & 0x3F; hms >>>= 6;\n\tval.setHours(hms);\n\tval.setMinutes(M);\n\tval.setSeconds(S<<1);\n\treturn val;\n}\nfunction parse_extra_field(blob) {\n\tprep_blob(blob, 0);\n\tvar o = {};\n\tvar flags = 0;\n\twhile(blob.l <= blob.length - 4) {\n\t\tvar type = blob.read_shift(2);\n\t\tvar sz = blob.read_shift(2), tgt = blob.l + sz;\n\t\tvar p = {};\n\t\tswitch(type) {\n\t\t\t/* UNIX-style Timestamps */\n\t\t\tcase 0x5455: {\n\t\t\t\tflags = blob.read_shift(1);\n\t\t\t\tif(flags & 1) p.mtime = blob.read_shift(4);\n\t\t\t\t/* for some reason, CD flag corresponds to LFH */\n\t\t\t\tif(sz > 5) {\n\t\t\t\t\tif(flags & 2) p.atime = blob.read_shift(4);\n\t\t\t\t\tif(flags & 4) p.ctime = blob.read_shift(4);\n\t\t\t\t}\n\t\t\t\tif(p.mtime) p.mt = new Date(p.mtime*1000);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tblob.l = tgt;\n\t\to[type] = p;\n\t}\n\treturn o;\n}\nvar fs;\nfunction get_fs() { return fs || (fs = require('fs')); }\nfunction parse(file, options) {\nif(file[0] == 0x50 && file[1] == 0x4b) return parse_zip(file, options);\nif(file.length < 512) throw new Error(\"CFB file size \" + file.length + \" < 512\");\nvar mver = 3;\nvar ssz = 512;\nvar nmfs = 0; // number of mini FAT sectors\nvar difat_sec_cnt = 0;\nvar dir_start = 0;\nvar minifat_start = 0;\nvar difat_start = 0;\n\nvar fat_addrs = []; // locations of FAT sectors\n\n/* [MS-CFB] 2.2 Compound File Header */\nvar blob = file.slice(0,512);\nprep_blob(blob, 0);\n\n/* major version */\nvar mv = check_get_mver(blob);\nmver = mv[0];\nswitch(mver) {\n\tcase 3: ssz = 512; break; case 4: ssz = 4096; break;\n\tcase 0: if(mv[1] == 0) return parse_zip(file, options);\n\t/* falls through */\n\tdefault: throw new Error(\"Major Version: Expected 3 or 4 saw \" + mver);\n}\n\n/* reprocess header */\nif(ssz !== 512) { blob = file.slice(0,ssz); prep_blob(blob, 28 /* blob.l */); }\n/* Save header for final object */\nvar header = file.slice(0,ssz);\n\ncheck_shifts(blob, mver);\n\n// Number of Directory Sectors\nvar dir_cnt = blob.read_shift(4, 'i');\nif(mver === 3 && dir_cnt !== 0) throw new Error('# Directory Sectors: Expected 0 saw ' + dir_cnt);\n\n// Number of FAT Sectors\nblob.l += 4;\n\n// First Directory Sector Location\ndir_start = blob.read_shift(4, 'i');\n\n// Transaction Signature\nblob.l += 4;\n\n// Mini Stream Cutoff Size\nblob.chk('00100000', 'Mini Stream Cutoff Size: ');\n\n// First Mini FAT Sector Location\nminifat_start = blob.read_shift(4, 'i');\n\n// Number of Mini FAT Sectors\nnmfs = blob.read_shift(4, 'i');\n\n// First DIFAT sector location\ndifat_start = blob.read_shift(4, 'i');\n\n// Number of DIFAT Sectors\ndifat_sec_cnt = blob.read_shift(4, 'i');\n\n// Grab FAT Sector Locations\nfor(var q = -1, j = 0; j < 109; ++j) { /* 109 = (512 - blob.l)>>>2; */\n\tq = blob.read_shift(4, 'i');\n\tif(q<0) break;\n\tfat_addrs[j] = q;\n}\n\n/** Break the file up into sectors */\nvar sectors = sectorify(file, ssz);\n\nsleuth_fat(difat_start, difat_sec_cnt, sectors, ssz, fat_addrs);\n\n/** Chains */\nvar sector_list = make_sector_list(sectors, dir_start, fat_addrs, ssz);\n\nsector_list[dir_start].name = \"!Directory\";\nif(nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = \"!MiniFAT\";\nsector_list[fat_addrs[0]].name = \"!FAT\";\nsector_list.fat_addrs = fat_addrs;\nsector_list.ssz = ssz;\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nvar files = {}, Paths = [], FileIndex = [], FullPaths = [];\nread_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, minifat_start);\n\nbuild_full_paths(FileIndex, FullPaths, Paths);\nPaths.shift();\n\nvar o = {\n\tFileIndex: FileIndex,\n\tFullPaths: FullPaths\n};\n\n// $FlowIgnore\nif(options && options.raw) o.raw = {header: header, sectors: sectors};\nreturn o;\n} // parse\n\n/* [MS-CFB] 2.2 Compound File Header -- read up to major version */\nfunction check_get_mver(blob) {\n\tif(blob[blob.l] == 0x50 && blob[blob.l + 1] == 0x4b) return [0, 0];\n\t// header signature 8\n\tblob.chk(HEADER_SIGNATURE, 'Header Signature: ');\n\n\t// clsid 16\n\t//blob.chk(HEADER_CLSID, 'CLSID: ');\n\tblob.l += 16;\n\n\t// minor version 2\n\tvar mver = blob.read_shift(2, 'u');\n\n\treturn [blob.read_shift(2,'u'), mver];\n}\nfunction check_shifts(blob, mver) {\n\tvar shift = 0x09;\n\n\t// Byte Order\n\t//blob.chk('feff', 'Byte Order: '); // note: some writers put 0xffff\n\tblob.l += 2;\n\n\t// Sector Shift\n\tswitch((shift = blob.read_shift(2))) {\n\t\tcase 0x09: if(mver != 3) throw new Error('Sector Shift: Expected 9 saw ' + shift); break;\n\t\tcase 0x0c: if(mver != 4) throw new Error('Sector Shift: Expected 12 saw ' + shift); break;\n\t\tdefault: throw new Error('Sector Shift: Expected 9 or 12 saw ' + shift);\n\t}\n\n\t// Mini Sector Shift\n\tblob.chk('0600', 'Mini Sector Shift: ');\n\n\t// Reserved\n\tblob.chk('000000000000', 'Reserved: ');\n}\n\n/** Break the file up into sectors */\nfunction sectorify(file, ssz) {\n\tvar nsectors = Math.ceil(file.length/ssz)-1;\n\tvar sectors = [];\n\tfor(var i=1; i < nsectors; ++i) sectors[i-1] = file.slice(i*ssz,(i+1)*ssz);\n\tsectors[nsectors-1] = file.slice(nsectors*ssz);\n\treturn sectors;\n}\n\n/* [MS-CFB] 2.6.4 Red-Black Tree */\nfunction build_full_paths(FI, FP, Paths) {\n\tvar i = 0, L = 0, R = 0, C = 0, j = 0, pl = Paths.length;\n\tvar dad = [], q = [];\n\n\tfor(; i < pl; ++i) { dad[i]=q[i]=i; FP[i]=Paths[i]; }\n\n\tfor(; j < q.length; ++j) {\n\t\ti = q[j];\n\t\tL = FI[i].L; R = FI[i].R; C = FI[i].C;\n\t\tif(dad[i] === i) {\n\t\t\tif(L !== -1 /*NOSTREAM*/ && dad[L] !== L) dad[i] = dad[L];\n\t\t\tif(R !== -1 && dad[R] !== R) dad[i] = dad[R];\n\t\t}\n\t\tif(C !== -1 /*NOSTREAM*/) dad[C] = i;\n\t\tif(L !== -1 && i != dad[i]) { dad[L] = dad[i]; if(q.lastIndexOf(L) < j) q.push(L); }\n\t\tif(R !== -1 && i != dad[i]) { dad[R] = dad[i]; if(q.lastIndexOf(R) < j) q.push(R); }\n\t}\n\tfor(i=1; i < pl; ++i) if(dad[i] === i) {\n\t\tif(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R];\n\t\telse if(L !== -1 && dad[L] !== L) dad[i] = dad[L];\n\t}\n\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type === 0 /* unknown */) continue;\n\t\tj = i;\n\t\tif(j != dad[j]) do {\n\t\t\tj = dad[j];\n\t\t\tFP[i] = FP[j] + \"/\" + FP[i];\n\t\t} while (j !== 0 && -1 !== dad[j] && j != dad[j]);\n\t\tdad[i] = -1;\n\t}\n\n\tFP[0] += \"/\";\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type !== 2 /* stream */) FP[i] += \"/\";\n\t}\n}\n\nfunction get_mfat_entry(entry, payload, mini) {\n\tvar start = entry.start, size = entry.size;\n\t//return (payload.slice(start*MSSZ, start*MSSZ + size));\n\tvar o = [];\n\tvar idx = start;\n\twhile(mini && size > 0 && idx >= 0) {\n\t\to.push(payload.slice(idx * MSSZ, idx * MSSZ + MSSZ));\n\t\tsize -= MSSZ;\n\t\tidx = __readInt32LE(mini, idx * 4);\n\t}\n\tif(o.length === 0) return (new_buf(0));\n\treturn (bconcat(o).slice(0, entry.size));\n}\n\n/** Chase down the rest of the DIFAT chain to build a comprehensive list\n DIFAT chains by storing the next sector number as the last 32 bits */\nfunction sleuth_fat(idx, cnt, sectors, ssz, fat_addrs) {\n\tvar q = ENDOFCHAIN;\n\tif(idx === ENDOFCHAIN) {\n\t\tif(cnt !== 0) throw new Error(\"DIFAT chain shorter than expected\");\n\t} else if(idx !== -1 /*FREESECT*/) {\n\t\tvar sector = sectors[idx], m = (ssz>>>2)-1;\n\t\tif(!sector) return;\n\t\tfor(var i = 0; i < m; ++i) {\n\t\t\tif((q = __readInt32LE(sector,i*4)) === ENDOFCHAIN) break;\n\t\t\tfat_addrs.push(q);\n\t\t}\n\t\tsleuth_fat(__readInt32LE(sector,ssz-4),cnt - 1, sectors, ssz, fat_addrs);\n\t}\n}\n\n/** Follow the linked list of sectors for a given starting point */\nfunction get_sector_list(sectors, start, fat_addrs, ssz, chkd) {\n\tvar buf = [], buf_chain = [];\n\tif(!chkd) chkd = [];\n\tvar modulus = ssz - 1, j = 0, jj = 0;\n\tfor(j=start; j>=0;) {\n\t\tchkd[j] = true;\n\t\tbuf[buf.length] = j;\n\t\tbuf_chain.push(sectors[j]);\n\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\tjj = ((j*4) & modulus);\n\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\tif(!sectors[addr]) break;\n\t\tj = __readInt32LE(sectors[addr], jj);\n\t}\n\treturn {nodes: buf, data:__toBuffer([buf_chain])};\n}\n\n/** Chase down the sector linked lists */\nfunction make_sector_list(sectors, dir_start, fat_addrs, ssz) {\n\tvar sl = sectors.length, sector_list = ([]);\n\tvar chkd = [], buf = [], buf_chain = [];\n\tvar modulus = ssz - 1, i=0, j=0, k=0, jj=0;\n\tfor(i=0; i < sl; ++i) {\n\t\tbuf = ([]);\n\t\tk = (i + dir_start); if(k >= sl) k-=sl;\n\t\tif(chkd[k]) continue;\n\t\tbuf_chain = [];\n\t\tvar seen = [];\n\t\tfor(j=k; j>=0;) {\n\t\t\tseen[j] = true;\n\t\t\tchkd[j] = true;\n\t\t\tbuf[buf.length] = j;\n\t\t\tbuf_chain.push(sectors[j]);\n\t\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\t\tjj = ((j*4) & modulus);\n\t\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\t\tif(!sectors[addr]) break;\n\t\t\tj = __readInt32LE(sectors[addr], jj);\n\t\t\tif(seen[j]) break;\n\t\t}\n\t\tsector_list[k] = ({nodes: buf, data:__toBuffer([buf_chain])});\n\t}\n\treturn sector_list;\n}\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nfunction read_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, mini) {\n\tvar minifat_store = 0, pl = (Paths.length?2:0);\n\tvar sector = sector_list[dir_start].data;\n\tvar i = 0, namelen = 0, name;\n\tfor(; i < sector.length; i+= 128) {\n\t\tvar blob = sector.slice(i, i+128);\n\t\tprep_blob(blob, 64);\n\t\tnamelen = blob.read_shift(2);\n\t\tname = __utf16le(blob,0,namelen-pl);\n\t\tPaths.push(name);\n\t\tvar o = ({\n\t\t\tname: name,\n\t\t\ttype: blob.read_shift(1),\n\t\t\tcolor: blob.read_shift(1),\n\t\t\tL: blob.read_shift(4, 'i'),\n\t\t\tR: blob.read_shift(4, 'i'),\n\t\t\tC: blob.read_shift(4, 'i'),\n\t\t\tclsid: blob.read_shift(16),\n\t\t\tstate: blob.read_shift(4, 'i'),\n\t\t\tstart: 0,\n\t\t\tsize: 0\n\t\t});\n\t\tvar ctime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(ctime !== 0) o.ct = read_date(blob, blob.l-8);\n\t\tvar mtime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(mtime !== 0) o.mt = read_date(blob, blob.l-8);\n\t\to.start = blob.read_shift(4, 'i');\n\t\to.size = blob.read_shift(4, 'i');\n\t\tif(o.size < 0 && o.start < 0) { o.size = o.type = 0; o.start = ENDOFCHAIN; o.name = \"\"; }\n\t\tif(o.type === 5) { /* root */\n\t\t\tminifat_store = o.start;\n\t\t\tif(nmfs > 0 && minifat_store !== ENDOFCHAIN) sector_list[minifat_store].name = \"!StreamData\";\n\t\t\t/*minifat_size = o.size;*/\n\t\t} else if(o.size >= 4096 /* MSCSZ */) {\n\t\t\to.storage = 'fat';\n\t\t\tif(sector_list[o.start] === undefined) sector_list[o.start] = get_sector_list(sectors, o.start, sector_list.fat_addrs, sector_list.ssz);\n\t\t\tsector_list[o.start].name = o.name;\n\t\t\to.content = (sector_list[o.start].data.slice(0,o.size));\n\t\t} else {\n\t\t\to.storage = 'minifat';\n\t\t\tif(o.size < 0) o.size = 0;\n\t\t\telse if(minifat_store !== ENDOFCHAIN && o.start !== ENDOFCHAIN && sector_list[minifat_store]) {\n\t\t\t\to.content = get_mfat_entry(o, sector_list[minifat_store].data, (sector_list[mini]||{}).data);\n\t\t\t}\n\t\t}\n\t\tif(o.content) prep_blob(o.content, 0);\n\t\tfiles[name] = o;\n\t\tFileIndex.push(o);\n\t}\n}\n\nfunction read_date(blob, offset) {\n\treturn new Date(( ( (__readUInt32LE(blob,offset+4)/1e7)*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7 ) - 11644473600)*1000);\n}\n\nfunction read_file(filename, options) {\n\tget_fs();\n\treturn parse(fs.readFileSync(filename), options);\n}\n\nfunction read(blob, options) {\n\tswitch(options && options.type || \"base64\") {\n\t\tcase \"file\": return read_file(blob, options);\n\t\tcase \"base64\": return parse(s2a(Base64.decode(blob)), options);\n\t\tcase \"binary\": return parse(s2a(blob), options);\n\t}\n\treturn parse(blob, options);\n}\n\nfunction init_cfb(cfb, opts) {\n\tvar o = opts || {}, root = o.root || \"Root Entry\";\n\tif(!cfb.FullPaths) cfb.FullPaths = [];\n\tif(!cfb.FileIndex) cfb.FileIndex = [];\n\tif(cfb.FullPaths.length !== cfb.FileIndex.length) throw new Error(\"inconsistent CFB structure\");\n\tif(cfb.FullPaths.length === 0) {\n\t\tcfb.FullPaths[0] = root + \"/\";\n\t\tcfb.FileIndex[0] = ({ name: root, type: 5 });\n\t}\n\tif(o.CLSID) cfb.FileIndex[0].clsid = o.CLSID;\n\tseed_cfb(cfb);\n}\nfunction seed_cfb(cfb) {\n\tvar nm = \"\\u0001Sh33tJ5\";\n\tif(CFB.find(cfb, \"/\" + nm)) return;\n\tvar p = new_buf(4); p[0] = 55; p[1] = p[3] = 50; p[2] = 54;\n\tcfb.FileIndex.push(({ name: nm, type: 2, content:p, size:4, L:69, R:69, C:69 }));\n\tcfb.FullPaths.push(cfb.FullPaths[0] + nm);\n\trebuild_cfb(cfb);\n}\nfunction rebuild_cfb(cfb, f) {\n\tinit_cfb(cfb);\n\tvar gc = false, s = false;\n\tfor(var i = cfb.FullPaths.length - 1; i >= 0; --i) {\n\t\tvar _file = cfb.FileIndex[i];\n\t\tswitch(_file.type) {\n\t\t\tcase 0:\n\t\t\t\tif(s) gc = true;\n\t\t\t\telse { cfb.FileIndex.pop(); cfb.FullPaths.pop(); }\n\t\t\t\tbreak;\n\t\t\tcase 1: case 2: case 5:\n\t\t\t\ts = true;\n\t\t\t\tif(isNaN(_file.R * _file.L * _file.C)) gc = true;\n\t\t\t\tif(_file.R > -1 && _file.L > -1 && _file.R == _file.L) gc = true;\n\t\t\t\tbreak;\n\t\t\tdefault: gc = true; break;\n\t\t}\n\t}\n\tif(!gc && !f) return;\n\n\tvar now = new Date(1987, 1, 19), j = 0;\n\tvar data = [];\n\tfor(i = 0; i < cfb.FullPaths.length; ++i) {\n\t\tif(cfb.FileIndex[i].type === 0) continue;\n\t\tdata.push([cfb.FullPaths[i], cfb.FileIndex[i]]);\n\t}\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar dad = dirname(data[i][0]);\n\t\ts = false;\n\t\tfor(j = 0; j < data.length; ++j) if(data[j][0] === dad) s = true;\n\t\tif(!s) data.push([dad, ({\n\t\t\tname: filename(dad).replace(\"/\",\"\"),\n\t\t\ttype: 1,\n\t\t\tclsid: HEADER_CLSID,\n\t\t\tct: now, mt: now,\n\t\t\tcontent: null\n\t\t})]);\n\t}\n\n\tdata.sort(function(x,y) { return namecmp(x[0], y[0]); });\n\tcfb.FullPaths = []; cfb.FileIndex = [];\n\tfor(i = 0; i < data.length; ++i) { cfb.FullPaths[i] = data[i][0]; cfb.FileIndex[i] = data[i][1]; }\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar elt = cfb.FileIndex[i];\n\t\tvar nm = cfb.FullPaths[i];\n\n\t\telt.name = filename(nm).replace(\"/\",\"\");\n\t\telt.L = elt.R = elt.C = -(elt.color = 1);\n\t\telt.size = elt.content ? elt.content.length : 0;\n\t\telt.start = 0;\n\t\telt.clsid = (elt.clsid || HEADER_CLSID);\n\t\tif(i === 0) {\n\t\t\telt.C = data.length > 1 ? 1 : -1;\n\t\t\telt.size = 0;\n\t\t\telt.type = 5;\n\t\t} else if(nm.slice(-1) == \"/\") {\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==nm) break;\n\t\t\telt.C = j >= data.length ? -1 : j;\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==dirname(nm)) break;\n\t\t\telt.R = j >= data.length ? -1 : j;\n\t\t\telt.type = 1;\n\t\t} else {\n\t\t\tif(dirname(cfb.FullPaths[i+1]||\"\") == dirname(nm)) elt.R = i + 1;\n\t\t\telt.type = 2;\n\t\t}\n\t}\n\n}\n\nfunction _write(cfb, options) {\n\tvar _opts = options || {};\n\trebuild_cfb(cfb);\n\tif(_opts.fileType == 'zip') return write_zip(cfb, _opts);\n\tvar L = (function(cfb){\n\t\tvar mini_size = 0, fat_size = 0;\n\t\tfor(var i = 0; i < cfb.FileIndex.length; ++i) {\n\t\t\tvar file = cfb.FileIndex[i];\n\t\t\tif(!file.content) continue;\nvar flen = file.content.length;\n\t\t\tif(flen > 0){\n\t\t\t\tif(flen < 0x1000) mini_size += (flen + 0x3F) >> 6;\n\t\t\t\telse fat_size += (flen + 0x01FF) >> 9;\n\t\t\t}\n\t\t}\n\t\tvar dir_cnt = (cfb.FullPaths.length +3) >> 2;\n\t\tvar mini_cnt = (mini_size + 7) >> 3;\n\t\tvar mfat_cnt = (mini_size + 0x7F) >> 7;\n\t\tvar fat_base = mini_cnt + fat_size + dir_cnt + mfat_cnt;\n\t\tvar fat_cnt = (fat_base + 0x7F) >> 7;\n\t\tvar difat_cnt = fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\twhile(((fat_base + fat_cnt + difat_cnt + 0x7F) >> 7) > fat_cnt) difat_cnt = ++fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\tvar L = [1, difat_cnt, fat_cnt, mfat_cnt, dir_cnt, fat_size, mini_size, 0];\n\t\tcfb.FileIndex[0].size = mini_size << 6;\n\t\tL[7] = (cfb.FileIndex[0].start=L[0]+L[1]+L[2]+L[3]+L[4]+L[5])+((L[6]+7) >> 3);\n\t\treturn L;\n\t})(cfb);\n\tvar o = new_buf(L[7] << 9);\n\tvar i = 0, T = 0;\n\t{\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(1, HEADER_SIG[i]);\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(2, 0);\n\t\to.write_shift(2, 0x003E);\n\t\to.write_shift(2, 0x0003);\n\t\to.write_shift(2, 0xFFFE);\n\t\to.write_shift(2, 0x0009);\n\t\to.write_shift(2, 0x0006);\n\t\tfor(i = 0; i < 3; ++i) o.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, L[2]);\n\t\to.write_shift(4, L[0] + L[1] + L[2] + L[3] - 1);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, 1<<12);\n\t\to.write_shift(4, L[3] ? L[0] + L[1] + L[2] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[3]);\n\t\to.write_shift(-4, L[1] ? L[0] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[1]);\n\t\tfor(i = 0; i < 109; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t}\n\tif(L[1]) {\n\t\tfor(T = 0; T < L[1]; ++T) {\n\t\t\tfor(; i < 236 + T * 127; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t\t\to.write_shift(-4, T === L[1] - 1 ? ENDOFCHAIN : T + 1);\n\t\t}\n\t}\n\tvar chainit = function(w) {\n\t\tfor(T += w; i<T-1; ++i) o.write_shift(-4, i+1);\n\t\tif(w) { ++i; o.write_shift(-4, ENDOFCHAIN); }\n\t};\n\tT = i = 0;\n\tfor(T+=L[1]; i<T; ++i) o.write_shift(-4, consts.DIFSECT);\n\tfor(T+=L[2]; i<T; ++i) o.write_shift(-4, consts.FATSECT);\n\tchainit(L[3]);\n\tchainit(L[4]);\n\tvar j = 0, flen = 0;\n\tvar file = cfb.FileIndex[0];\n\tfor(; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\nflen = file.content.length;\n\t\tif(flen < 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x01FF) >> 9);\n\t}\n\tchainit((L[6] + 7) >> 3);\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tT = i = 0;\n\tfor(j = 0; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\nflen = file.content.length;\n\t\tif(!flen || flen >= 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x3F) >> 6);\n\t}\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tfor(i = 0; i < L[4]<<2; ++i) {\n\t\tvar nm = cfb.FullPaths[i];\n\t\tif(!nm || nm.length === 0) {\n\t\t\tfor(j = 0; j < 17; ++j) o.write_shift(4, 0);\n\t\t\tfor(j = 0; j < 3; ++j) o.write_shift(4, -1);\n\t\t\tfor(j = 0; j < 12; ++j) o.write_shift(4, 0);\n\t\t\tcontinue;\n\t\t}\n\t\tfile = cfb.FileIndex[i];\n\t\tif(i === 0) file.start = file.size ? file.start - 1 : ENDOFCHAIN;\n\t\tvar _nm = (i === 0 && _opts.root) || file.name;\n\t\tflen = 2*(_nm.length+1);\n\t\to.write_shift(64, _nm, \"utf16le\");\n\t\to.write_shift(2, flen);\n\t\to.write_shift(1, file.type);\n\t\to.write_shift(1, file.color);\n\t\to.write_shift(-4, file.L);\n\t\to.write_shift(-4, file.R);\n\t\to.write_shift(-4, file.C);\n\t\tif(!file.clsid) for(j = 0; j < 4; ++j) o.write_shift(4, 0);\n\t\telse o.write_shift(16, file.clsid, \"hex\");\n\t\to.write_shift(4, file.state || 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, file.start);\n\t\to.write_shift(4, file.size); o.write_shift(4, 0);\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\nif(file.size >= 0x1000) {\n\t\t\to.l = (file.start+1) << 9;\n\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\tfor(; j & 0x1FF; ++j) o.write_shift(1, 0);\n\t\t}\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\nif(file.size > 0 && file.size < 0x1000) {\n\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\tfor(; j & 0x3F; ++j) o.write_shift(1, 0);\n\t\t}\n\t}\n\twhile(o.l < o.length) o.write_shift(1, 0);\n\treturn o;\n}\n/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */\nfunction find(cfb, path) {\n\tvar UCFullPaths = cfb.FullPaths.map(function(x) { return x.toUpperCase(); });\n\tvar UCPaths = UCFullPaths.map(function(x) { var y = x.split(\"/\"); return y[y.length - (x.slice(-1) == \"/\" ? 2 : 1)]; });\n\tvar k = false;\n\tif(path.charCodeAt(0) === 47 /* \"/\" */) { k = true; path = UCFullPaths[0].slice(0, -1) + path; }\n\telse k = path.indexOf(\"/\") !== -1;\n\tvar UCPath = path.toUpperCase();\n\tvar w = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);\n\tif(w !== -1) return cfb.FileIndex[w];\n\n\tvar m = !UCPath.match(chr1);\n\tUCPath = UCPath.replace(chr0,'');\n\tif(m) UCPath = UCPath.replace(chr1,'!');\n\tfor(w = 0; w < UCFullPaths.length; ++w) {\n\t\tif((m ? UCFullPaths[w].replace(chr1,'!') : UCFullPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t\tif((m ? UCPaths[w].replace(chr1,'!') : UCPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t}\n\treturn null;\n}\n/** CFB Constants */\nvar MSSZ = 64; /* Mini Sector Size = 1<<6 */\n//var MSCSZ = 4096; /* Mini Stream Cutoff Size */\n/* 2.1 Compound File Sector Numbers and Types */\nvar ENDOFCHAIN = -2;\n/* 2.2 Compound File Header */\nvar HEADER_SIGNATURE = 'd0cf11e0a1b11ae1';\nvar HEADER_SIG = [0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1];\nvar HEADER_CLSID = '00000000000000000000000000000000';\nvar consts = {\n\t/* 2.1 Compund File Sector Numbers and Types */\n\tMAXREGSECT: -6,\n\tDIFSECT: -4,\n\tFATSECT: -3,\n\tENDOFCHAIN: ENDOFCHAIN,\n\tFREESECT: -1,\n\t/* 2.2 Compound File Header */\n\tHEADER_SIGNATURE: HEADER_SIGNATURE,\n\tHEADER_MINOR_VERSION: '3e00',\n\tMAXREGSID: -6,\n\tNOSTREAM: -1,\n\tHEADER_CLSID: HEADER_CLSID,\n\t/* 2.6.1 Compound File Directory Entry */\n\tEntryTypes: ['unknown','storage','stream','lockbytes','property','root']\n};\n\nfunction write_file(cfb, filename, options) {\n\tget_fs();\n\tvar o = _write(cfb, options);\nfs.writeFileSync(filename, o);\n}\n\nfunction a2s(o) {\n\tvar out = new Array(o.length);\n\tfor(var i = 0; i < o.length; ++i) out[i] = String.fromCharCode(o[i]);\n\treturn out.join(\"\");\n}\n\nfunction write(cfb, options) {\n\tvar o = _write(cfb, options);\n\tswitch(options && options.type) {\n\t\tcase \"file\": get_fs(); fs.writeFileSync(options.filename, (o)); return o;\n\t\tcase \"binary\": return a2s(o);\n\t\tcase \"base64\": return Base64.encode(a2s(o));\n\t}\n\treturn o;\n}\n/* node < 8.1 zlib does not expose bytesRead, so default to pure JS */\nvar _zlib;\nfunction use_zlib(zlib) { try {\n\tvar InflateRaw = zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tInflRaw._processChunk(new Uint8Array([3, 0]), InflRaw._finishFlushFlag);\n\tif(InflRaw.bytesRead) _zlib = zlib;\n\telse throw new Error(\"zlib does not expose bytesRead\");\n} catch(e) {console.error(\"cannot use native zlib: \" + (e.message || e)); } }\n\nfunction _inflateRawSync(payload, usz) {\n\tif(!_zlib) return _inflate(payload, usz);\n\tvar InflateRaw = _zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tvar out = InflRaw._processChunk(payload.slice(payload.l), InflRaw._finishFlushFlag);\n\tpayload.l += InflRaw.bytesRead;\n\treturn out;\n}\n\nfunction _deflateRawSync(payload) {\n\treturn _zlib ? _zlib.deflateRawSync(payload) : _deflate(payload);\n}\nvar CLEN_ORDER = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n/* LEN_ID = [ 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285 ]; */\nvar LEN_LN = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13 , 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258 ];\n\n/* DST_ID = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 ]; */\nvar DST_LN = [ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 ];\n\nfunction bit_swap_8(n) { var t = (((((n<<1)|(n<<11)) & 0x22110) | (((n<<5)|(n<<15)) & 0x88440))); return ((t>>16) | (t>>8) |t)&0xFF; }\n\nvar use_typed_arrays = typeof Uint8Array !== 'undefined';\n\nvar bitswap8 = use_typed_arrays ? new Uint8Array(1<<8) : [];\nfor(var q = 0; q < (1<<8); ++q) bitswap8[q] = bit_swap_8(q);\n\nfunction bit_swap_n(n, b) {\n\tvar rev = bitswap8[n & 0xFF];\n\tif(b <= 8) return rev >>> (8-b);\n\trev = (rev << 8) | bitswap8[(n>>8)&0xFF];\n\tif(b <= 16) return rev >>> (16-b);\n\trev = (rev << 8) | bitswap8[(n>>16)&0xFF];\n\treturn rev >>> (24-b);\n}\n\n/* helpers for unaligned bit reads */\nfunction read_bits_2(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 6 ? 0 : buf[h+1]<<8))>>>w)& 0x03; }\nfunction read_bits_3(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 5 ? 0 : buf[h+1]<<8))>>>w)& 0x07; }\nfunction read_bits_4(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 4 ? 0 : buf[h+1]<<8))>>>w)& 0x0F; }\nfunction read_bits_5(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 3 ? 0 : buf[h+1]<<8))>>>w)& 0x1F; }\nfunction read_bits_7(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 1 ? 0 : buf[h+1]<<8))>>>w)& 0x7F; }\n\n/* works up to n = 3 * 8 + 1 = 25 */\nfunction read_bits_n(buf, bl, n) {\n\tvar w = (bl&7), h = (bl>>>3), f = ((1<<n)-1);\n\tvar v = buf[h] >>> w;\n\tif(n < 8 - w) return v & f;\n\tv |= buf[h+1]<<(8-w);\n\tif(n < 16 - w) return v & f;\n\tv |= buf[h+2]<<(16-w);\n\tif(n < 24 - w) return v & f;\n\tv |= buf[h+3]<<(24-w);\n\treturn v & f;\n}\n\n/* until ArrayBuffer#realloc is a thing, fake a realloc */\nfunction realloc(b, sz) {\n\tvar L = b.length, M = 2*L > sz ? 2*L : sz + 5, i = 0;\n\tif(L >= sz) return b;\n\tif(has_buf) {\n\t\tvar o = new_unsafe_buf(M);\n\t\t// $FlowIgnore\n\t\tif(b.copy) b.copy(o);\n\t\telse for(; i < b.length; ++i) o[i] = b[i];\n\t\treturn o;\n\t} else if(use_typed_arrays) {\n\t\tvar a = new Uint8Array(M);\n\t\tif(a.set) a.set(b);\n\t\telse for(; i < b.length; ++i) a[i] = b[i];\n\t\treturn a;\n\t}\n\tb.length = M;\n\treturn b;\n}\n\n/* zero-filled arrays for older browsers */\nfunction zero_fill_array(n) {\n\tvar o = new Array(n);\n\tfor(var i = 0; i < n; ++i) o[i] = 0;\n\treturn o;\n}var _deflate = (function() {\nvar _deflateRaw = (function() {\n\treturn function deflateRaw(data, out) {\n\t\tvar boff = 0;\n\t\twhile(boff < data.length) {\n\t\t\tvar L = Math.min(0xFFFF, data.length - boff);\n\t\t\tvar h = boff + L == data.length;\n\t\t\t/* TODO: this is only type 0 stored */\n\t\t\tout.write_shift(1, +h);\n\t\t\tout.write_shift(2, L);\n\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t}\n\t\treturn out.l;\n\t};\n})();\n\nreturn function(data) {\n\tvar buf = new_buf(50+Math.floor(data.length*1.1));\n\tvar off = _deflateRaw(data, buf);\n\treturn buf.slice(0, off);\n};\n})();\n/* modified inflate function also moves original read head */\n\n/* build tree (used for literals and lengths) */\nfunction build_tree(clens, cmap, MAX) {\n\tvar maxlen = 1, w = 0, i = 0, j = 0, ccode = 0, L = clens.length;\n\n\tvar bl_count = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\n\tfor(i = 0; i < 32; ++i) bl_count[i] = 0;\n\n\tfor(i = L; i < MAX; ++i) clens[i] = 0;\n\tL = clens.length;\n\n\tvar ctree = use_typed_arrays ? new Uint16Array(L) : zero_fill_array(L); // []\n\n\t/* build code tree */\n\tfor(i = 0; i < L; ++i) {\n\t\tbl_count[(w = clens[i])]++;\n\t\tif(maxlen < w) maxlen = w;\n\t\tctree[i] = 0;\n\t}\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) bl_count[i+16] = (ccode = (ccode + bl_count[i-1])<<1);\n\tfor(i = 0; i < L; ++i) {\n\t\tccode = clens[i];\n\t\tif(ccode != 0) ctree[i] = bl_count[ccode+16]++;\n\t}\n\n\t/* cmap[maxlen + 4 bits] = (off&15) + (lit<<4) reverse mapping */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bit_swap_n(ctree[i], maxlen)>>(maxlen-cleni);\n\t\t\tfor(j = (1<<(maxlen + 4 - cleni)) - 1; j>=0; --j)\n\t\t\t\tcmap[ccode|(j<<cleni)] = (cleni&15) | (i<<4);\n\t\t}\n\t}\n\treturn maxlen;\n}\n\nvar fix_lmap = use_typed_arrays ? new Uint16Array(512) : zero_fill_array(512);\nvar fix_dmap = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\nif(!use_typed_arrays) {\n\tfor(var i = 0; i < 512; ++i) fix_lmap[i] = 0;\n\tfor(i = 0; i < 32; ++i) fix_dmap[i] = 0;\n}\n(function() {\n\tvar dlens = [];\n\tvar i = 0;\n\tfor(;i<32; i++) dlens.push(5);\n\tbuild_tree(dlens, fix_dmap, 32);\n\n\tvar clens = [];\n\ti = 0;\n\tfor(; i<=143; i++) clens.push(8);\n\tfor(; i<=255; i++) clens.push(9);\n\tfor(; i<=279; i++) clens.push(7);\n\tfor(; i<=287; i++) clens.push(8);\n\tbuild_tree(clens, fix_lmap, 288);\n})();\n\nvar dyn_lmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_dmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_cmap = use_typed_arrays ? new Uint16Array(128) : zero_fill_array(128);\nvar dyn_len_1 = 1, dyn_len_2 = 1;\n\n/* 5.5.3 Expanding Huffman Codes */\nfunction dyn(data, boff) {\n\t/* nomenclature from RFC1951 refers to bit values; these are offset by the implicit constant */\n\tvar _HLIT = read_bits_5(data, boff) + 257; boff += 5;\n\tvar _HDIST = read_bits_5(data, boff) + 1; boff += 5;\n\tvar _HCLEN = read_bits_4(data, boff) + 4; boff += 4;\n\tvar w = 0;\n\n\t/* grab and store code lengths */\n\tvar clens = use_typed_arrays ? new Uint8Array(19) : zero_fill_array(19);\n\tvar ctree = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n\tvar maxlen = 1;\n\tvar bl_count = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar next_code = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar L = clens.length; /* 19 */\n\tfor(var i = 0; i < _HCLEN; ++i) {\n\t\tclens[CLEN_ORDER[i]] = w = read_bits_3(data, boff);\n\t\tif(maxlen < w) maxlen = w;\n\t\tbl_count[w]++;\n\t\tboff += 3;\n\t}\n\n\t/* build code tree */\n\tvar ccode = 0;\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) next_code[i] = ccode = (ccode + bl_count[i-1])<<1;\n\tfor(i = 0; i < L; ++i) if((ccode = clens[i]) != 0) ctree[i] = next_code[ccode]++;\n\t/* cmap[7 bits from stream] = (off&7) + (lit<<3) */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bitswap8[ctree[i]]>>(8-cleni);\n\t\t\tfor(var j = (1<<(7-cleni))-1; j>=0; --j) dyn_cmap[ccode|(j<<cleni)] = (cleni&7) | (i<<3);\n\t\t}\n\t}\n\n\t/* read literal and dist codes at once */\n\tvar hcodes = [];\n\tmaxlen = 1;\n\tfor(; hcodes.length < _HLIT + _HDIST;) {\n\t\tccode = dyn_cmap[read_bits_7(data, boff)];\n\t\tboff += ccode & 7;\n\t\tswitch((ccode >>>= 3)) {\n\t\t\tcase 16:\n\t\t\t\tw = 3 + read_bits_2(data, boff); boff += 2;\n\t\t\t\tccode = hcodes[hcodes.length - 1];\n\t\t\t\twhile(w-- > 0) hcodes.push(ccode);\n\t\t\t\tbreak;\n\t\t\tcase 17:\n\t\t\t\tw = 3 + read_bits_3(data, boff); boff += 3;\n\t\t\t\twhile(w-- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tcase 18:\n\t\t\t\tw = 11 + read_bits_7(data, boff); boff += 7;\n\t\t\t\twhile(w -- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\thcodes.push(ccode);\n\t\t\t\tif(maxlen < ccode) maxlen = ccode;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t/* build literal / length trees */\n\tvar h1 = hcodes.slice(0, _HLIT), h2 = hcodes.slice(_HLIT);\n\tfor(i = _HLIT; i < 286; ++i) h1[i] = 0;\n\tfor(i = _HDIST; i < 30; ++i) h2[i] = 0;\n\tdyn_len_1 = build_tree(h1, dyn_lmap, 286);\n\tdyn_len_2 = build_tree(h2, dyn_dmap, 30);\n\treturn boff;\n}\n\n/* return [ data, bytesRead ] */\nfunction inflate(data, usz) {\n\t/* shortcircuit for empty buffer [0x03, 0x00] */\n\tif(data[0] == 3 && !(data[1] & 0x3)) { return [new_raw_buf(usz), 2]; }\n\n\t/* bit offset */\n\tvar boff = 0;\n\n\t/* header includes final bit and type bits */\n\tvar header = 0;\n\n\tvar outbuf = new_unsafe_buf(usz ? usz : (1<<18));\n\tvar woff = 0;\n\tvar OL = outbuf.length>>>0;\n\tvar max_len_1 = 0, max_len_2 = 0;\n\n\twhile((header&1) == 0) {\n\t\theader = read_bits_3(data, boff); boff += 3;\n\t\tif((header >>> 1) == 0) {\n\t\t\t/* Stored block */\n\t\t\tif(boff & 7) boff += 8 - (boff&7);\n\t\t\t/* 2 bytes sz, 2 bytes bit inverse */\n\t\t\tvar sz = data[boff>>>3] | data[(boff>>>3)+1]<<8;\n\t\t\tboff += 32;\n\t\t\t/* push sz bytes */\n\t\t\tif(!usz && OL < woff + sz) { outbuf = realloc(outbuf, woff + sz); OL = outbuf.length; }\n\t\t\tif(typeof data.copy === 'function') {\n\t\t\t\t// $FlowIgnore\n\t\t\t\tdata.copy(outbuf, woff, boff>>>3, (boff>>>3)+sz);\n\t\t\t\twoff += sz; boff += 8*sz;\n\t\t\t} else while(sz-- > 0) { outbuf[woff++] = data[boff>>>3]; boff += 8; }\n\t\t\tcontinue;\n\t\t} else if((header >>> 1) == 1) {\n\t\t\t/* Fixed Huffman */\n\t\t\tmax_len_1 = 9; max_len_2 = 5;\n\t\t} else {\n\t\t\t/* Dynamic Huffman */\n\t\t\tboff = dyn(data, boff);\n\t\t\tmax_len_1 = dyn_len_1; max_len_2 = dyn_len_2;\n\t\t}\n\t\tif(!usz && (OL < woff + 32767)) { outbuf = realloc(outbuf, woff + 32767); OL = outbuf.length; }\n\t\tfor(;;) { // while(true) is apparently out of vogue in modern JS circles\n\t\t\t/* ingest code and move read head */\n\t\t\tvar bits = read_bits_n(data, boff, max_len_1);\n\t\t\tvar code = (header>>>1) == 1 ? fix_lmap[bits] : dyn_lmap[bits];\n\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t/* 0-255 are literals, 256 is end of block token, 257+ are copy tokens */\n\t\t\tif(((code>>>8)&0xFF) === 0) outbuf[woff++] = code;\n\t\t\telse if(code == 256) break;\n\t\t\telse {\n\t\t\t\tcode -= 257;\n\t\t\t\tvar len_eb = (code < 8) ? 0 : ((code-4)>>2); if(len_eb > 5) len_eb = 0;\n\t\t\t\tvar tgt = woff + LEN_LN[code];\n\t\t\t\t/* length extra bits */\n\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\ttgt += read_bits_n(data, boff, len_eb);\n\t\t\t\t\tboff += len_eb;\n\t\t\t\t}\n\n\t\t\t\t/* dist code */\n\t\t\t\tbits = read_bits_n(data, boff, max_len_2);\n\t\t\t\tcode = (header>>>1) == 1 ? fix_dmap[bits] : dyn_dmap[bits];\n\t\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t\tvar dst_eb = (code < 4 ? 0 : (code-2)>>1);\n\t\t\t\tvar dst = DST_LN[code];\n\t\t\t\t/* dist extra bits */\n\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\tdst += read_bits_n(data, boff, dst_eb);\n\t\t\t\t\tboff += dst_eb;\n\t\t\t\t}\n\n\t\t\t\t/* in the common case, manual byte copy is faster than TA set / Buffer copy */\n\t\t\t\tif(!usz && OL < tgt) { outbuf = realloc(outbuf, tgt); OL = outbuf.length; }\n\t\t\t\twhile(woff < tgt) { outbuf[woff] = outbuf[woff - dst]; ++woff; }\n\t\t\t}\n\t\t}\n\t}\n\treturn [usz ? outbuf : outbuf.slice(0, woff), (boff+7)>>>3];\n}\n\nfunction _inflate(payload, usz) {\n\tvar data = payload.slice(payload.l||0);\n\tvar out = inflate(data, usz);\n\tpayload.l += out[1];\n\treturn out[0];\n}\n\nfunction warn_or_throw(wrn, msg) {\n\tif(wrn) { if(typeof console !== 'undefined') console.error(msg); }\n\telse throw new Error(msg);\n}\n\nfunction parse_zip(file, options) {\n\tvar blob = file;\n\tprep_blob(blob, 0);\n\n\tvar FileIndex = [], FullPaths = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o, { root: options.root });\n\n\t/* find end of central directory, start just after signature */\n\tvar i = blob.length - 4;\n\twhile((blob[i] != 0x50 || blob[i+1] != 0x4b || blob[i+2] != 0x05 || blob[i+3] != 0x06) && i >= 0) --i;\n\tblob.l = i + 4;\n\n\t/* parse end of central directory */\n\tblob.l += 4;\n\tvar fcnt = blob.read_shift(2);\n\tblob.l += 6;\n\tvar start_cd = blob.read_shift(4);\n\n\t/* parse central directory */\n\tblob.l = start_cd;\n\n\tfor(i = 0; i < fcnt; ++i) {\n\t\t/* trust local file header instead of CD entry */\n\t\tblob.l += 20;\n\t\tvar csz = blob.read_shift(4);\n\t\tvar usz = blob.read_shift(4);\n\t\tvar namelen = blob.read_shift(2);\n\t\tvar efsz = blob.read_shift(2);\n\t\tvar fcsz = blob.read_shift(2);\n\t\tblob.l += 8;\n\t\tvar offset = blob.read_shift(4);\n\t\tvar EF = parse_extra_field(blob.slice(blob.l+namelen, blob.l+namelen+efsz));\n\t\tblob.l += namelen + efsz + fcsz;\n\n\t\tvar L = blob.l;\n\t\tblob.l = offset + 4;\n\t\tparse_local_file(blob, csz, usz, o, EF);\n\t\tblob.l = L;\n\t}\n\n\treturn o;\n}\n\n\n/* head starts just after local file header signature */\nfunction parse_local_file(blob, csz, usz, o, EF) {\n\t/* [local file header] */\n\tblob.l += 2;\n\tvar flags = blob.read_shift(2);\n\tvar meth = blob.read_shift(2);\n\tvar date = parse_dos_date(blob);\n\n\tif(flags & 0x2041) throw new Error(\"Unsupported ZIP encryption\");\n\tvar crc32 = blob.read_shift(4);\n\tvar _csz = blob.read_shift(4);\n\tvar _usz = blob.read_shift(4);\n\n\tvar namelen = blob.read_shift(2);\n\tvar efsz = blob.read_shift(2);\n\n\t// TODO: flags & (1<<11) // UTF8\n\tvar name = \"\"; for(var i = 0; i < namelen; ++i) name += String.fromCharCode(blob[blob.l++]);\n\tif(efsz) {\n\t\tvar ef = parse_extra_field(blob.slice(blob.l, blob.l + efsz));\n\t\tif((ef[0x5455]||{}).mt) date = ef[0x5455].mt;\n\t\tif(((EF||{})[0x5455]||{}).mt) date = EF[0x5455].mt;\n\t}\n\tblob.l += efsz;\n\n\t/* [encryption header] */\n\n\t/* [file data] */\n\tvar data = blob.slice(blob.l, blob.l + _csz);\n\tswitch(meth) {\n\t\tcase 8: data = _inflateRawSync(blob, _usz); break;\n\t\tcase 0: break;\n\t\tdefault: throw new Error(\"Unsupported ZIP Compression method \" + meth);\n\t}\n\n\t/* [data descriptor] */\n\tvar wrn = false;\n\tif(flags & 8) {\n\t\tcrc32 = blob.read_shift(4);\n\t\tif(crc32 == 0x08074b50) { crc32 = blob.read_shift(4); wrn = true; }\n\t\t_csz = blob.read_shift(4);\n\t\t_usz = blob.read_shift(4);\n\t}\n\n\tif(_csz != csz) warn_or_throw(wrn, \"Bad compressed size: \" + csz + \" != \" + _csz);\n\tif(_usz != usz) warn_or_throw(wrn, \"Bad uncompressed size: \" + usz + \" != \" + _usz);\n\tvar _crc32 = CRC32.buf(data, 0);\n\tif((crc32>>0) != (_crc32>>0)) warn_or_throw(wrn, \"Bad CRC32 checksum: \" + crc32 + \" != \" + _crc32);\n\tcfb_add(o, name, data, {unsafe: true, mt: date});\n}\nfunction write_zip(cfb, options) {\n\tvar _opts = options || {};\n\tvar out = [], cdirs = [];\n\tvar o = new_buf(1);\n\tvar method = (_opts.compression ? 8 : 0), flags = 0;\n\tvar desc = false;\n\tif(desc) flags |= 8;\n\tvar i = 0, j = 0;\n\n\tvar start_cd = 0, fcnt = 0;\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tvar crcs = [];\n\tvar sz_cd = 0;\n\n\tfor(i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length); fi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\t\tvar start = start_cd;\n\n\t\t/* TODO: CP437 filename */\n\t\tvar namebuf = new_buf(fp.length);\n\t\tfor(j = 0; j < fp.length; ++j) namebuf.write_shift(1, fp.charCodeAt(j) & 0x7F);\n\t\tnamebuf = namebuf.slice(0, namebuf.l);\n\t\tcrcs[fcnt] = CRC32.buf(fi.content, 0);\n\n\t\tvar outbuf = fi.content;\n\t\tif(method == 8) outbuf = _deflateRawSync(outbuf);\n\n\t\t/* local file header */\n\t\to = new_buf(30);\n\t\to.write_shift(4, 0x04034b50);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\t/* TODO: last mod file time/date */\n\t\tif(fi.mt) write_dos_date(o, fi.mt);\n\t\telse o.write_shift(4, 0);\n\t\to.write_shift(-4, (flags & 8) ? 0 : crcs[fcnt]);\n\t\to.write_shift(4, (flags & 8) ? 0 : outbuf.length);\n\t\to.write_shift(4, (flags & 8) ? 0 : fi.content.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\n\t\tstart_cd += o.length;\n\t\tout.push(o);\n\t\tstart_cd += namebuf.length;\n\t\tout.push(namebuf);\n\n\t\t/* TODO: encryption header ? */\n\t\tstart_cd += outbuf.length;\n\t\tout.push(outbuf);\n\n\t\t/* data descriptor */\n\t\tif(flags & 8) {\n\t\t\to = new_buf(12);\n\t\t\to.write_shift(-4, crcs[fcnt]);\n\t\t\to.write_shift(4, outbuf.length);\n\t\t\to.write_shift(4, fi.content.length);\n\t\t\tstart_cd += o.l;\n\t\t\tout.push(o);\n\t\t}\n\n\t\t/* central directory */\n\t\to = new_buf(46);\n\t\to.write_shift(4, 0x02014b50);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\to.write_shift(4, 0); /* TODO: last mod file time/date */\n\t\to.write_shift(-4, crcs[fcnt]);\n\n\t\to.write_shift(4, outbuf.length);\n\t\to.write_shift(4, fi.content.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, start);\n\n\t\tsz_cd += o.l;\n\t\tcdirs.push(o);\n\t\tsz_cd += namebuf.length;\n\t\tcdirs.push(namebuf);\n\t\t++fcnt;\n\t}\n\n\t/* end of central directory */\n\to = new_buf(22);\n\to.write_shift(4, 0x06054b50);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, fcnt);\n\to.write_shift(2, fcnt);\n\to.write_shift(4, sz_cd);\n\to.write_shift(4, start_cd);\n\to.write_shift(2, 0);\n\n\treturn bconcat(([bconcat((out)), bconcat(cdirs), o]));\n}\nfunction cfb_new(opts) {\n\tvar o = ({});\n\tinit_cfb(o, opts);\n\treturn o;\n}\n\nfunction cfb_add(cfb, name, content, opts) {\n\tvar unsafe = opts && opts.unsafe;\n\tif(!unsafe) init_cfb(cfb);\n\tvar file = !unsafe && CFB.find(cfb, name);\n\tif(!file) {\n\t\tvar fpath = cfb.FullPaths[0];\n\t\tif(name.slice(0, fpath.length) == fpath) fpath = name;\n\t\telse {\n\t\t\tif(fpath.slice(-1) != \"/\") fpath += \"/\";\n\t\t\tfpath = (fpath + name).replace(\"//\",\"/\");\n\t\t}\n\t\tfile = ({name: filename(name), type: 2});\n\t\tcfb.FileIndex.push(file);\n\t\tcfb.FullPaths.push(fpath);\n\t\tif(!unsafe) CFB.utils.cfb_gc(cfb);\n\t}\nfile.content = (content);\n\tfile.size = content ? content.length : 0;\n\tif(opts) {\n\t\tif(opts.CLSID) file.clsid = opts.CLSID;\n\t\tif(opts.mt) file.mt = opts.mt;\n\t\tif(opts.ct) file.ct = opts.ct;\n\t}\n\treturn file;\n}\n\nfunction cfb_del(cfb, name) {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex.splice(j, 1);\n\t\tcfb.FullPaths.splice(j, 1);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_mov(cfb, old_name, new_name) {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, old_name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex[j].name = filename(new_name);\n\t\tcfb.FullPaths[j] = new_name;\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_gc(cfb) { rebuild_cfb(cfb, true); }\n\nexports.find = find;\nexports.read = read;\nexports.parse = parse;\nexports.write = write;\nexports.writeFile = write_file;\nexports.utils = {\n\tcfb_new: cfb_new,\n\tcfb_add: cfb_add,\n\tcfb_del: cfb_del,\n\tcfb_mov: cfb_mov,\n\tcfb_gc: cfb_gc,\n\tReadShift: ReadShift,\n\tCheckField: CheckField,\n\tprep_blob: prep_blob,\n\tbconcat: bconcat,\n\tuse_zlib: use_zlib,\n\t_deflateRaw: _deflate,\n\t_inflateRaw: _inflate,\n\tconsts: consts\n};\n\nreturn exports;\n})();\n\nif(typeof require !== 'undefined' && typeof module !== 'undefined' && typeof DO_NOT_EXPORT_CFB === 'undefined') { module.exports = CFB; }\nvar _fs;\nif(typeof require !== 'undefined') try { _fs = require('fs'); } catch(e) {}\n\n/* normalize data for blob ctor */\nfunction blobify(data) {\n\tif(typeof data === \"string\") return s2ab(data);\n\tif(Array.isArray(data)) return a2u(data);\n\treturn data;\n}\n/* write or download file */\nfunction write_dl(fname, payload, enc) {\n\t/*global IE_SaveFile, Blob, navigator, saveAs, document, File, chrome */\n\tif(typeof _fs !== 'undefined' && _fs.writeFileSync) return enc ? _fs.writeFileSync(fname, payload, enc) : _fs.writeFileSync(fname, payload);\n\tvar data = (enc == \"utf8\") ? utf8write(payload) : payload;\nif(typeof IE_SaveFile !== 'undefined') return IE_SaveFile(data, fname);\n\tif(typeof Blob !== 'undefined') {\n\t\tvar blob = new Blob([blobify(data)], {type:\"application/octet-stream\"});\nif(typeof navigator !== 'undefined' && navigator.msSaveBlob) return navigator.msSaveBlob(blob, fname);\nif(typeof saveAs !== 'undefined') return saveAs(blob, fname);\n\t\tif(typeof URL !== 'undefined' && typeof document !== 'undefined' && document.createElement && URL.createObjectURL) {\n\t\t\tvar url = URL.createObjectURL(blob);\nif(typeof chrome === 'object' && typeof (chrome.downloads||{}).download == \"function\") {\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn chrome.downloads.download({ url: url, filename: fname, saveAs: true});\n\t\t\t}\n\t\t\tvar a = document.createElement(\"a\");\n\t\t\tif(a.download != null) {\na.download = fname; a.href = url; document.body.appendChild(a); a.click();\ndocument.body.removeChild(a);\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn url;\n\t\t\t}\n\t\t}\n\t}\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar out = File(fname); out.open(\"w\"); out.encoding = \"binary\";\n\t\tif(Array.isArray(payload)) payload = a2s(payload);\n\t\tout.write(payload); out.close(); return payload;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"cannot save file \" + fname);\n}\n\n/* read binary data from file */\nfunction read_binary(path) {\n\tif(typeof _fs !== 'undefined') return _fs.readFileSync(path);\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar infile = File(path); infile.open(\"r\"); infile.encoding = \"binary\";\n\t\tvar data = infile.read(); infile.close();\n\t\treturn data;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"Cannot access file \" + path);\n}\nfunction keys(o) {\n\tvar ks = Object.keys(o), o2 = [];\n\tfor(var i = 0; i < ks.length; ++i) if(Object.prototype.hasOwnProperty.call(o, ks[i])) o2.push(ks[i]);\n\treturn o2;\n}\n\nfunction evert_key(obj, key) {\n\tvar o = ([]), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) if(o[obj[K[i]][key]] == null) o[obj[K[i]][key]] = K[i];\n\treturn o;\n}\n\nfunction evert(obj) {\n\tvar o = ([]), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = K[i];\n\treturn o;\n}\n\nfunction evert_num(obj) {\n\tvar o = ([]), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = parseInt(K[i],10);\n\treturn o;\n}\n\nfunction evert_arr(obj) {\n\tvar o = ([]), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) {\n\t\tif(o[obj[K[i]]] == null) o[obj[K[i]]] = [];\n\t\to[obj[K[i]]].push(K[i]);\n\t}\n\treturn o;\n}\n\nvar basedate = new Date(1899, 11, 30, 0, 0, 0); // 2209161600000\nfunction datenum(v, date1904) {\n\tvar epoch = v.getTime();\n\tif(date1904) epoch -= 1462*24*60*60*1000;\n\tvar dnthresh = basedate.getTime() + (v.getTimezoneOffset() - basedate.getTimezoneOffset()) * 60000;\n\treturn (epoch - dnthresh) / (24 * 60 * 60 * 1000);\n}\nvar refdate = new Date();\nvar dnthresh = basedate.getTime() + (refdate.getTimezoneOffset() - basedate.getTimezoneOffset()) * 60000;\nvar refoffset = refdate.getTimezoneOffset();\nfunction numdate(v) {\n\tvar out = new Date();\n\tout.setTime(v * 24 * 60 * 60 * 1000 + dnthresh);\n\tif (out.getTimezoneOffset() !== refoffset) {\n\t\tout.setTime(out.getTime() + (out.getTimezoneOffset() - refoffset) * 60000);\n\t}\n\treturn out;\n}\n\n/* ISO 8601 Duration */\nfunction parse_isodur(s) {\n\tvar sec = 0, mt = 0, time = false;\n\tvar m = s.match(/P([0-9\\.]+Y)?([0-9\\.]+M)?([0-9\\.]+D)?T([0-9\\.]+H)?([0-9\\.]+M)?([0-9\\.]+S)?/);\n\tif(!m) throw new Error(\"|\" + s + \"| is not an ISO8601 Duration\");\n\tfor(var i = 1; i != m.length; ++i) {\n\t\tif(!m[i]) continue;\n\t\tmt = 1;\n\t\tif(i > 3) time = true;\n\t\tswitch(m[i].slice(m[i].length-1)) {\n\t\t\tcase 'Y':\n\t\t\t\tthrow new Error(\"Unsupported ISO Duration Field: \" + m[i].slice(m[i].length-1));\n\t\t\tcase 'D': mt *= 24;\n\t\t\t\t/* falls through */\n\t\t\tcase 'H': mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M':\n\t\t\t\tif(!time) throw new Error(\"Unsupported ISO Duration Field: M\");\n\t\t\t\telse mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'S': break;\n\t\t}\n\t\tsec += mt * parseInt(m[i], 10);\n\t}\n\treturn sec;\n}\n\nvar good_pd_date = new Date('2017-02-19T19:06:09.000Z');\nif(isNaN(good_pd_date.getFullYear())) good_pd_date = new Date('2/19/17');\nvar good_pd = good_pd_date.getFullYear() == 2017;\n/* parses a date as a local date */\nfunction parseDate(str, fixdate) {\n\tvar d = new Date(str);\n\tif(good_pd) {\nif(fixdate > 0) d.setTime(d.getTime() + d.getTimezoneOffset() * 60 * 1000);\n\t\telse if(fixdate < 0) d.setTime(d.getTime() - d.getTimezoneOffset() * 60 * 1000);\n\t\treturn d;\n\t}\n\tif(str instanceof Date) return str;\n\tif(good_pd_date.getFullYear() == 1917 && !isNaN(d.getFullYear())) {\n\t\tvar s = d.getFullYear();\n\t\tif(str.indexOf(\"\" + s) > -1) return d;\n\t\td.setFullYear(d.getFullYear() + 100); return d;\n\t}\n\tvar n = str.match(/\\d+/g)||[\"2017\",\"2\",\"19\",\"0\",\"0\",\"0\"];\n\tvar out = new Date(+n[0], +n[1] - 1, +n[2], (+n[3]||0), (+n[4]||0), (+n[5]||0));\n\tif(str.indexOf(\"Z\") > -1) out = new Date(out.getTime() - out.getTimezoneOffset() * 60 * 1000);\n\treturn out;\n}\n\nfunction cc2str(arr) {\n\tvar o = \"\";\n\tfor(var i = 0; i != arr.length; ++i) o += String.fromCharCode(arr[i]);\n\treturn o;\n}\n\nfunction dup(o) {\n\tif(typeof JSON != 'undefined' && !Array.isArray(o)) return JSON.parse(JSON.stringify(o));\n\tif(typeof o != 'object' || o == null) return o;\n\tif(o instanceof Date) return new Date(o.getTime());\n\tvar out = {};\n\tfor(var k in o) if(Object.prototype.hasOwnProperty.call(o, k)) out[k] = dup(o[k]);\n\treturn out;\n}\n\nfunction fill(c,l) { var o = \"\"; while(o.length < l) o+=c; return o; }\n\n/* TODO: stress test */\nfunction fuzzynum(s) {\n\tvar v = Number(s);\n\tif(!isNaN(v)) return v;\n\tif(!/\\d/.test(s)) return v;\n\tvar wt = 1;\n\tvar ss = s.replace(/([\\d]),([\\d])/g,\"$1$2\").replace(/[$]/g,\"\").replace(/[%]/g, function() { wt *= 100; return \"\";});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\tss = ss.replace(/[(](.*)[)]/,function($$, $1) { wt = -wt; return $1;});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\treturn v;\n}\nfunction fuzzydate(s) {\n\tvar o = new Date(s), n = new Date(NaN);\n\tvar y = o.getYear(), m = o.getMonth(), d = o.getDate();\n\tif(isNaN(d)) return n;\n\tif(y < 0 || y > 8099) return n;\n\tif((m > 0 || d > 1) && y != 101) return o;\n\tif(s.toLowerCase().match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)) return o;\n\tif(s.match(/[^-0-9:,\\/\\\\]/)) return n;\n\treturn o;\n}\n\nvar safe_split_regex = \"abacaba\".split(/(:?b)/i).length == 5;\nfunction split_regex(str, re, def) {\n\tif(safe_split_regex || typeof re == \"string\") return str.split(re);\n\tvar p = str.split(re), o = [p[0]];\n\tfor(var i = 1; i < p.length; ++i) { o.push(def); o.push(p[i]); }\n\treturn o;\n}\nfunction getdatastr(data) {\n\tif(!data) return null;\n\tif(data.data) return debom(data.data);\n\tif(data.asNodeBuffer && has_buf) return debom(data.asNodeBuffer().toString('binary'));\n\tif(data.asBinary) return debom(data.asBinary());\n\tif(data._data && data._data.getContent) return debom(cc2str(Array.prototype.slice.call(data._data.getContent(),0)));\n\tif(data.content && data.type) return debom(cc2str(data.content));\n\treturn null;\n}\n\nfunction getdatabin(data) {\n\tif(!data) return null;\n\tif(data.data) return char_codes(data.data);\n\tif(data.asNodeBuffer && has_buf) return data.asNodeBuffer();\n\tif(data._data && data._data.getContent) {\n\t\tvar o = data._data.getContent();\n\t\tif(typeof o == \"string\") return char_codes(o);\n\t\treturn Array.prototype.slice.call(o);\n\t}\n\tif(data.content && data.type) return data.content;\n\treturn null;\n}\n\nfunction getdata(data) { return (data && data.name.slice(-4) === \".bin\") ? getdatabin(data) : getdatastr(data); }\n\n/* Part 2 Section 10.1.2 \"Mapping Content Types\" Names are case-insensitive */\n/* OASIS does not comment on filename case sensitivity */\nfunction safegetzipfile(zip, file) {\n\tvar k = zip.FullPaths || keys(zip.files);\n\tvar f = file.toLowerCase(), g = f.replace(/\\//g,'\\\\');\n\tfor(var i=0; i<k.length; ++i) {\n\t\tvar n = k[i].toLowerCase();\n\t\tif(f == n || g == n) return zip.files[k[i]];\n\t}\n\treturn null;\n}\n\nfunction getzipfile(zip, file) {\n\tvar o = safegetzipfile(zip, file);\n\tif(o == null) throw new Error(\"Cannot find file \" + file + \" in zip\");\n\treturn o;\n}\n\nfunction getzipdata(zip, file, safe) {\n\tif(!safe) return getdata(getzipfile(zip, file));\n\tif(!file) return null;\n\ttry { return getzipdata(zip, file); } catch(e) { return null; }\n}\n\nfunction getzipstr(zip, file, safe) {\n\tif(!safe) return getdatastr(getzipfile(zip, file));\n\tif(!file) return null;\n\ttry { return getzipstr(zip, file); } catch(e) { return null; }\n}\n\nfunction zipentries(zip) {\n\tvar k = zip.FullPaths || keys(zip.files), o = [];\n\tfor(var i = 0; i < k.length; ++i) if(k[i].slice(-1) != '/') o.push(k[i]);\n\treturn o.sort();\n}\n\nfunction zip_add_file(zip, path, content) {\n\tif(zip.FullPaths) CFB.utils.cfb_add(zip, path, content);\n\telse zip.file(path, content);\n}\n\nvar jszip;\n/*global JSZipSync:true */\nif(typeof JSZipSync !== 'undefined') jszip = JSZipSync;\nif(typeof exports !== 'undefined') {\n\tif(typeof module !== 'undefined' && module.exports) {\n\t\tif(typeof jszip === 'undefined') jszip = require('./jszip.js');\n\t}\n}\n\nfunction zip_new() {\n\tif(!jszip) return CFB.utils.cfb_new();\n\treturn new jszip();\n}\n\nfunction zip_read(d, o) {\n\tvar zip;\n\tif(jszip) switch(o.type) {\n\t\tcase \"base64\": zip = new jszip(d, { base64:true }); break;\n\t\tcase \"binary\": case \"array\": zip = new jszip(d, { base64:false }); break;\n\t\tcase \"buffer\": zip = new jszip(d); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\telse switch(o.type) {\n\t\tcase \"base64\": zip = CFB.read(d, { type: \"base64\" }); break;\n\t\tcase \"binary\": zip = CFB.read(d, { type: \"binary\" }); break;\n\t\tcase \"buffer\": case \"array\": zip = CFB.read(d, { type: \"buffer\" }); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn zip;\n}\n\nfunction resolve_path(path, base) {\n\tif(path.charAt(0) == \"/\") return path.slice(1);\n\tvar result = base.split('/');\n\tif(base.slice(-1) != \"/\") result.pop(); // folder path\n\tvar target = path.split('/');\n\twhile (target.length !== 0) {\n\t\tvar step = target.shift();\n\t\tif (step === '..') result.pop();\n\t\telse if (step !== '.') result.push(step);\n\t}\n\treturn result.join('/');\n}\nvar XML_HEADER = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\\r\\n';\nvar attregexg=/([^\"\\s?>\\/]+)\\s*=\\s*((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:')|([^'\">\\s]+))/g;\nvar tagregex=/<[\\/\\?]?[a-zA-Z0-9:_-]+(?:\\s+[^\"\\s?>\\/]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^'\">\\s=]+))*\\s?[\\/\\?]?>/mg;\n\nif(!(XML_HEADER.match(tagregex))) tagregex = /<[^>]*>/g;\nvar nsregex=/<\\w*:/, nsregex2 = /<(\\/?)\\w+:/;\nfunction parsexmltag(tag, skip_root, skip_LC) {\n\tvar z = ({});\n\tvar eq = 0, c = 0;\n\tfor(; eq !== tag.length; ++eq) if((c = tag.charCodeAt(eq)) === 32 || c === 10 || c === 13) break;\n\tif(!skip_root) z[0] = tag.slice(0, eq);\n\tif(eq === tag.length) return z;\n\tvar m = tag.match(attregexg), j=0, v=\"\", i=0, q=\"\", cc=\"\", quot = 1;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\tcc = m[i];\n\t\tfor(c=0; c != cc.length; ++c) if(cc.charCodeAt(c) === 61) break;\n\t\tq = cc.slice(0,c).trim();\n\t\twhile(cc.charCodeAt(c+1) == 32) ++c;\n\t\tquot = ((eq=cc.charCodeAt(c+1)) == 34 || eq == 39) ? 1 : 0;\n\t\tv = cc.slice(c+1+quot, cc.length-quot);\n\t\tfor(j=0;j!=q.length;++j) if(q.charCodeAt(j) === 58) break;\n\t\tif(j===q.length) {\n\t\t\tif(q.indexOf(\"_\") > 0) q = q.slice(0, q.indexOf(\"_\")); // from ods\n\t\t\tz[q] = v;\n\t\t\tif(!skip_LC) z[q.toLowerCase()] = v;\n\t\t}\n\t\telse {\n\t\t\tvar k = (j===5 && q.slice(0,5)===\"xmlns\"?\"xmlns\":\"\")+q.slice(j+1);\n\t\t\tif(z[k] && q.slice(j-3,j) == \"ext\") continue; // from ods\n\t\t\tz[k] = v;\n\t\t\tif(!skip_LC) z[k.toLowerCase()] = v;\n\t\t}\n\t}\n\treturn z;\n}\nfunction strip_ns(x) { return x.replace(nsregex2, \"<$1\"); }\n\nvar encodings = {\n\t'"': '\"',\n\t''': \"'\",\n\t'>': '>',\n\t'<': '<',\n\t'&': '&'\n};\nvar rencoding = evert(encodings);\n//var rencstr = \"&<>'\\\"\".split(\"\");\n\n// TODO: CP remap (need to read file version to determine OS)\nvar unescapexml = (function() {\n\t/* 22.4.2.4 bstr (Basic String) */\n\tvar encregex = /&(?:quot|apos|gt|lt|amp|#x?([\\da-fA-F]+));/ig, coderegex = /_x([\\da-fA-F]{4})_/ig;\n\treturn function unescapexml(text) {\n\t\tvar s = text + '', i = s.indexOf(\"<![CDATA[\");\n\t\tif(i == -1) return s.replace(encregex, function($$, $1) { return encodings[$$]||String.fromCharCode(parseInt($1,$$.indexOf(\"x\")>-1?16:10))||$$; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));});\n\t\tvar j = s.indexOf(\"]]>\");\n\t\treturn unescapexml(s.slice(0, i)) + s.slice(i+9,j) + unescapexml(s.slice(j+3));\n\t};\n})();\n\nvar decregex=/[&<>'\"]/g, charegex = /[\\u0000-\\u0008\\u000b-\\u001f]/g;\nfunction escapexml(text){\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(charegex,function(s) { return \"_x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \"_\";});\n}\nfunction escapexmltag(text){ return escapexml(text).replace(/ /g,\"_x0020_\"); }\n\nvar htmlcharegex = /[\\u0000-\\u001f]/g;\nfunction escapehtml(text){\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(/\\n/g, \"<br/>\").replace(htmlcharegex,function(s) { return \"&#x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \";\"; });\n}\n\nfunction escapexlml(text){\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(htmlcharegex,function(s) { return \"&#x\" + (s.charCodeAt(0).toString(16)).toUpperCase() + \";\"; });\n}\n\n/* TODO: handle codepages */\nvar xlml_fixstr = (function() {\n\tvar entregex = /&#(\\d+);/g;\n\tfunction entrepl($$,$1) { return String.fromCharCode(parseInt($1,10)); }\n\treturn function xlml_fixstr(str) { return str.replace(entregex,entrepl); };\n})();\nvar xlml_unfixstr = (function() {\n\treturn function xlml_unfixstr(str) { return str.replace(/(\\r\\n|[\\r\\n])/g,\"\\ \"); };\n})();\n\nfunction parsexmlbool(value) {\n\tswitch(value) {\n\t\tcase 1: case true: case '1': case 'true': case 'TRUE': return true;\n\t\t/* case '0': case 'false': case 'FALSE':*/\n\t\tdefault: return false;\n\t}\n}\n\nvar utf8read = function utf8reada(orig) {\n\tvar out = \"\", i = 0, c = 0, d = 0, e = 0, f = 0, w = 0;\n\twhile (i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tif (c < 128) { out += String.fromCharCode(c); continue; }\n\t\td = orig.charCodeAt(i++);\n\t\tif (c>191 && c<224) { f = ((c & 31) << 6); f |= (d & 63); out += String.fromCharCode(f); continue; }\n\t\te = orig.charCodeAt(i++);\n\t\tif (c < 240) { out += String.fromCharCode(((c & 15) << 12) | ((d & 63) << 6) | (e & 63)); continue; }\n\t\tf = orig.charCodeAt(i++);\n\t\tw = (((c & 7) << 18) | ((d & 63) << 12) | ((e & 63) << 6) | (f & 63))-65536;\n\t\tout += String.fromCharCode(0xD800 + ((w>>>10)&1023));\n\t\tout += String.fromCharCode(0xDC00 + (w&1023));\n\t}\n\treturn out;\n};\n\nvar utf8write = function(orig) {\n\tvar out = [], i = 0, c = 0, d = 0;\n\twhile(i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tswitch(true) {\n\t\t\tcase c < 128: out.push(String.fromCharCode(c)); break;\n\t\t\tcase c < 2048:\n\t\t\t\tout.push(String.fromCharCode(192 + (c >> 6)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t\t\tbreak;\n\t\t\tcase c >= 55296 && c < 57344:\n\t\t\t\tc -= 55296; d = orig.charCodeAt(i++) - 56320 + (c<<10);\n\t\t\t\tout.push(String.fromCharCode(240 + ((d >>18) & 7)));\n\t\t\t\tout.push(String.fromCharCode(144 + ((d >>12) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((d >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (d & 63)));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tout.push(String.fromCharCode(224 + (c >> 12)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((c >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t}\n\t}\n\treturn out.join(\"\");\n};\n\nif(has_buf) {\n\tvar utf8readb = function utf8readb(data) {\n\t\tvar out = Buffer.alloc(2*data.length), w, i, j = 1, k = 0, ww=0, c;\n\t\tfor(i = 0; i < data.length; i+=j) {\n\t\t\tj = 1;\n\t\t\tif((c=data.charCodeAt(i)) < 128) w = c;\n\t\t\telse if(c < 224) { w = (c&31)*64+(data.charCodeAt(i+1)&63); j=2; }\n\t\t\telse if(c < 240) { w=(c&15)*4096+(data.charCodeAt(i+1)&63)*64+(data.charCodeAt(i+2)&63); j=3; }\n\t\t\telse { j = 4;\n\t\t\t\tw = (c & 7)*262144+(data.charCodeAt(i+1)&63)*4096+(data.charCodeAt(i+2)&63)*64+(data.charCodeAt(i+3)&63);\n\t\t\t\tw -= 65536; ww = 0xD800 + ((w>>>10)&1023); w = 0xDC00 + (w&1023);\n\t\t\t}\n\t\t\tif(ww !== 0) { out[k++] = ww&255; out[k++] = ww>>>8; ww = 0; }\n\t\t\tout[k++] = w%256; out[k++] = w>>>8;\n\t\t}\n\t\treturn out.slice(0,k).toString('ucs2');\n\t};\n\tvar corpus = \"foo bar baz\\u00e2\\u0098\\u0083\\u00f0\\u009f\\u008d\\u00a3\";\n\tif(utf8read(corpus) == utf8readb(corpus)) utf8read = utf8readb;\n\tvar utf8readc = function utf8readc(data) { return Buffer_from(data, 'binary').toString('utf8'); };\n\tif(utf8read(corpus) == utf8readc(corpus)) utf8read = utf8readc;\n\n\tutf8write = function(data) { return Buffer_from(data, 'utf8').toString(\"binary\"); };\n}\n\n// matches <foo>...</foo> extracts content\nvar matchtag = (function() {\n\tvar mtcache = ({});\n\treturn function matchtag(f,g) {\n\t\tvar t = f+\"|\"+(g||\"\");\n\t\tif(mtcache[t]) return mtcache[t];\n\t\treturn (mtcache[t] = new RegExp('<(?:\\\\w+:)?'+f+'(?: xml:space=\"preserve\")?(?:[^>]*)>([\\\\s\\\\S]*?)</(?:\\\\w+:)?'+f+'>',((g||\"\"))));\n\t};\n})();\n\nvar htmldecode = (function() {\n\tvar entities = [\n\t\t['nbsp', ' '], ['middot', '·'],\n\t\t['quot', '\"'], ['apos', \"'\"], ['gt', '>'], ['lt', '<'], ['amp', '&']\n\t].map(function(x) { return [new RegExp('&' + x[0] + ';', \"ig\"), x[1]]; });\n\treturn function htmldecode(str) {\n\t\tvar o = str\n\t\t\t\t// Remove new lines and spaces from start of content\n\t\t\t\t.replace(/^[\\t\\n\\r ]+/, \"\")\n\t\t\t\t// Remove new lines and spaces from end of content\n\t\t\t\t.replace(/[\\t\\n\\r ]+$/,\"\")\n\t\t\t\t// Added line which removes any white space characters after and before html tags\n\t\t\t\t.replace(/>\\s+/g,\">\").replace(/\\s+</g,\"<\")\n\t\t\t\t// Replace remaining new lines and spaces with space\n\t\t\t\t.replace(/[\\t\\n\\r ]+/g, \" \")\n\t\t\t\t// Replace <br> tags with new lines\n\t\t\t\t.replace(/<\\s*[bB][rR]\\s*\\/?>/g,\"\\n\")\n\t\t\t\t// Strip HTML elements\n\t\t\t\t.replace(/<[^>]*>/g,\"\");\n\t\tfor(var i = 0; i < entities.length; ++i) o = o.replace(entities[i][0], entities[i][1]);\n\t\treturn o;\n\t};\n})();\n\nvar vtregex = (function(){ var vt_cache = {};\n\treturn function vt_regex(bt) {\n\t\tif(vt_cache[bt] !== undefined) return vt_cache[bt];\n\t\treturn (vt_cache[bt] = new RegExp(\"<(?:vt:)?\" + bt + \">([\\\\s\\\\S]*?)</(?:vt:)?\" + bt + \">\", 'g') );\n};})();\nvar vtvregex = /<\\/?(?:vt:)?variant>/g, vtmregex = /<(?:vt:)([^>]*)>([\\s\\S]*)</;\nfunction parseVector(data, opts) {\n\tvar h = parsexmltag(data);\n\n\tvar matches = data.match(vtregex(h.baseType))||[];\n\tvar res = [];\n\tif(matches.length != h.size) {\n\t\tif(opts.WTF) throw new Error(\"unexpected vector length \" + matches.length + \" != \" + h.size);\n\t\treturn res;\n\t}\n\tmatches.forEach(function(x) {\n\t\tvar v = x.replace(vtvregex,\"\").match(vtmregex);\n\t\tif(v) res.push({v:utf8read(v[2]), t:v[1]});\n\t});\n\treturn res;\n}\n\nvar wtregex = /(^\\s|\\s$|\\n)/;\nfunction writetag(f,g) { return '<' + f + (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '</' + f + '>'; }\n\nfunction wxt_helper(h) { return keys(h).map(function(k) { return \" \" + k + '=\"' + h[k] + '\"';}).join(\"\"); }\nfunction writextag(f,g,h) { return '<' + f + ((h != null) ? wxt_helper(h) : \"\") + ((g != null) ? (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '</' + f : \"/\") + '>';}\n\nfunction write_w3cdtf(d, t) { try { return d.toISOString().replace(/\\.\\d*/,\"\"); } catch(e) { if(t) throw e; } return \"\"; }\n\nfunction write_vt(s, xlsx) {\n\tswitch(typeof s) {\n\t\tcase 'string':\n\t\t\tvar o = writextag('vt:lpwstr', escapexml(s));\n\t\t\tif(xlsx) o = o.replace(/"/g, \"_x0022_\");\n\t\t\treturn o;\n\t\tcase 'number': return writextag((s|0)==s?'vt:i4':'vt:r8', escapexml(String(s)));\n\t\tcase 'boolean': return writextag('vt:bool',s?'true':'false');\n\t}\n\tif(s instanceof Date) return writextag('vt:filetime', write_w3cdtf(s));\n\tthrow new Error(\"Unable to serialize \" + s);\n}\n\nvar XMLNS = ({\n\t'dc': 'http://purl.org/dc/elements/1.1/',\n\t'dcterms': 'http://purl.org/dc/terms/',\n\t'dcmitype': 'http://purl.org/dc/dcmitype/',\n\t'mx': 'http://schemas.microsoft.com/office/mac/excel/2008/main',\n\t'r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\n\t'sjs': 'http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties',\n\t'vt': 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes',\n\t'xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t'xsd': 'http://www.w3.org/2001/XMLSchema'\n});\n\nXMLNS.main = [\n\t'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n\t'http://purl.oclc.org/ooxml/spreadsheetml/main',\n\t'http://schemas.microsoft.com/office/excel/2006/main',\n\t'http://schemas.microsoft.com/office/excel/2006/2'\n];\n\nvar XLMLNS = ({\n\t'o': 'urn:schemas-microsoft-com:office:office',\n\t'x': 'urn:schemas-microsoft-com:office:excel',\n\t'ss': 'urn:schemas-microsoft-com:office:spreadsheet',\n\t'dt': 'uuid:C2F41010-65B3-11d1-A29F-00AA00C14882',\n\t'mv': 'http://macVmlSchemaUri',\n\t'v': 'urn:schemas-microsoft-com:vml',\n\t'html': 'http://www.w3.org/TR/REC-html40'\n});\nfunction read_double_le(b, idx) {\n\tvar s = 1 - 2 * (b[idx + 7] >>> 7);\n\tvar e = ((b[idx + 7] & 0x7f) << 4) + ((b[idx + 6] >>> 4) & 0x0f);\n\tvar m = (b[idx+6]&0x0f);\n\tfor(var i = 5; i >= 0; --i) m = m * 256 + b[idx + i];\n\tif(e == 0x7ff) return m == 0 ? (s * Infinity) : NaN;\n\tif(e == 0) e = -1022;\n\telse { e -= 1023; m += Math.pow(2,52); }\n\treturn s * Math.pow(2, e - 52) * m;\n}\n\nfunction write_double_le(b, v, idx) {\n\tvar bs = ((((v < 0) || (1/v == -Infinity)) ? 1 : 0) << 7), e = 0, m = 0;\n\tvar av = bs ? (-v) : v;\n\tif(!isFinite(av)) { e = 0x7ff; m = isNaN(v) ? 0x6969 : 0; }\n\telse if(av == 0) e = m = 0;\n\telse {\n\t\te = Math.floor(Math.log(av) / Math.LN2);\n\t\tm = av * Math.pow(2, 52 - e);\n\t\tif((e <= -1023) && (!isFinite(m) || (m < Math.pow(2,52)))) { e = -1022; }\n\t\telse { m -= Math.pow(2,52); e+=1023; }\n\t}\n\tfor(var i = 0; i <= 5; ++i, m/=256) b[idx + i] = m & 0xff;\n\tb[idx + 6] = ((e & 0x0f) << 4) | (m & 0xf);\n\tb[idx + 7] = (e >> 4) | bs;\n}\n\nvar __toBuffer = function(bufs) { var x=[],w=10240; for(var i=0;i<bufs[0].length;++i) if(bufs[0][i]) for(var j=0,L=bufs[0][i].length;j<L;j+=w) x.push.apply(x, bufs[0][i].slice(j,j+w)); return x; };\nvar ___toBuffer = __toBuffer;\nvar __utf16le = function(b,s,e) { var ss=[]; for(var i=s; i<e; i+=2) ss.push(String.fromCharCode(__readUInt16LE(b,i))); return ss.join(\"\").replace(chr0,''); };\nvar ___utf16le = __utf16le;\nvar __hexlify = function(b,s,l) { var ss=[]; for(var i=s; i<s+l; ++i) ss.push((\"0\" + b[i].toString(16)).slice(-2)); return ss.join(\"\"); };\nvar ___hexlify = __hexlify;\nvar __utf8 = function(b,s,e) { var ss=[]; for(var i=s; i<e; i++) ss.push(String.fromCharCode(__readUInt8(b,i))); return ss.join(\"\"); };\nvar ___utf8 = __utf8;\nvar __lpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar ___lpstr = __lpstr;\nvar __cpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar ___cpstr = __cpstr;\nvar __lpwstr = function(b,i) { var len = 2*__readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar ___lpwstr = __lpwstr;\nvar __lpp4, ___lpp4;\n__lpp4 = ___lpp4 = function lpp4_(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf16le(b, i+4,i+4+len) : \"\";};\nvar __8lpp4 = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len) : \"\";};\nvar ___8lpp4 = __8lpp4;\nvar __double, ___double;\n__double = ___double = function(b, idx) { return read_double_le(b, idx);};\nvar is_buf = function is_buf_a(a) { return Array.isArray(a); };\n\nif(has_buf) {\n\t__utf16le = function(b,s,e) { if(!Buffer.isBuffer(b)) return ___utf16le(b,s,e); return b.toString('utf16le',s,e).replace(chr0,'')/*.replace(chr1,'!')*/; };\n\t__hexlify = function(b,s,l) { return Buffer.isBuffer(b) ? b.toString('hex',s,s+l) : ___hexlify(b,s,l); };\n\t__lpstr = function lpstr_b(b, i) { if(!Buffer.isBuffer(b)) return ___lpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__cpstr = function cpstr_b(b, i) { if(!Buffer.isBuffer(b)) return ___cpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__lpwstr = function lpwstr_b(b, i) { if(!Buffer.isBuffer(b)) return ___lpwstr(b, i); var len = 2*b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len-1);};\n\t__lpp4 = function lpp4_b(b, i) { if(!Buffer.isBuffer(b)) return ___lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len);};\n\t__8lpp4 = function lpp4_8b(b, i) { if(!Buffer.isBuffer(b)) return ___8lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf8',i+4,i+4+len);};\n\t__utf8 = function utf8_b(b, s, e) { return (Buffer.isBuffer(b)) ? b.toString('utf8',s,e) : ___utf8(b,s,e); };\n\t__toBuffer = function(bufs) { return (bufs[0].length > 0 && Buffer.isBuffer(bufs[0][0])) ? Buffer.concat(bufs[0]) : ___toBuffer(bufs);};\n\tbconcat = function(bufs) { return Buffer.isBuffer(bufs[0]) ? Buffer.concat(bufs) : [].concat.apply([], bufs); };\n\t__double = function double_(b, i) { if(Buffer.isBuffer(b)) return b.readDoubleLE(i); return ___double(b,i); };\n\tis_buf = function is_buf_b(a) { return Buffer.isBuffer(a) || Array.isArray(a); };\n}\n\n/* from js-xls */\nif(typeof cptable !== 'undefined') {\n\t__utf16le = function(b,s,e) { return cptable.utils.decode(1200, b.slice(s,e)).replace(chr0, ''); };\n\t__utf8 = function(b,s,e) { return cptable.utils.decode(65001, b.slice(s,e)); };\n\t__lpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(current_ansi, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__cpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(current_codepage, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__lpwstr = function(b,i) { var len = 2*__readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(1200, b.slice(i+4,i+4+len-1)) : \"\";};\n\t__lpp4 = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(1200, b.slice(i+4,i+4+len)) : \"\";};\n\t__8lpp4 = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(65001, b.slice(i+4,i+4+len)) : \"\";};\n}\n\nvar __readUInt8 = function(b, idx) { return b[idx]; };\nvar __readUInt16LE = function(b, idx) { return (b[idx+1]*(1<<8))+b[idx]; };\nvar __readInt16LE = function(b, idx) { var u = (b[idx+1]*(1<<8))+b[idx]; return (u < 0x8000) ? u : ((0xffff - u + 1) * -1); };\nvar __readUInt32LE = function(b, idx) { return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]; };\nvar __readInt32LE = function(b, idx) { return (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx]; };\nvar __readInt32BE = function(b, idx) { return (b[idx]<<24)|(b[idx+1]<<16)|(b[idx+2]<<8)|b[idx+3]; };\n\nfunction ReadShift(size, t) {\n\tvar o=\"\", oI, oR, oo=[], w, vv, i, loc;\n\tswitch(t) {\n\t\tcase 'dbcs':\n\t\t\tloc = this.l;\n\t\t\tif(has_buf && Buffer.isBuffer(this)) o = this.slice(this.l, this.l+2*size).toString(\"utf16le\");\n\t\t\telse for(i = 0; i < size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; }\n\t\t\tsize *= 2;\n\t\t\tbreak;\n\n\t\tcase 'utf8': o = __utf8(this, this.l, this.l + size); break;\n\t\tcase 'utf16le': size *= 2; o = __utf16le(this, this.l, this.l + size); break;\n\n\t\tcase 'wstr':\n\t\t\tif(typeof cptable !== 'undefined') o = cptable.utils.decode(current_codepage, this.slice(this.l, this.l+2*size));\n\t\t\telse return ReadShift.call(this, size, 'dbcs');\n\t\t\tsize = 2 * size; break;\n\n\t\t/* [MS-OLEDS] 2.1.4 LengthPrefixedAnsiString */\n\t\tcase 'lpstr-ansi': o = __lpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\tcase 'lpstr-cp': o = __cpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OLEDS] 2.1.5 LengthPrefixedUnicodeString */\n\t\tcase 'lpwstr': o = __lpwstr(this, this.l); size = 4 + 2 * __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OFFCRYPTO] 2.1.2 Length-Prefixed Padded Unicode String (UNICODE-LP-P4) */\n\t\tcase 'lpp4': size = 4 + __readUInt32LE(this, this.l); o = __lpp4(this, this.l); if(size & 0x02) size += 2; break;\n\t\t/* [MS-OFFCRYPTO] 2.1.3 Length-Prefixed UTF-8 String (UTF-8-LP-P4) */\n\t\tcase '8lpp4': size = 4 + __readUInt32LE(this, this.l); o = __8lpp4(this, this.l); if(size & 0x03) size += 4 - (size & 0x03); break;\n\n\t\tcase 'cstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt8(this, this.l + size++))!==0) oo.push(_getchar(w));\n\t\t\to = oo.join(\"\"); break;\n\t\tcase '_wstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt16LE(this,this.l +size))!==0){oo.push(_getchar(w));size+=2;}\n\t\t\tsize+=2; o = oo.join(\"\"); break;\n\n\t\t/* sbcs and dbcs support continue records in the SST way TODO codepages */\n\t\tcase 'dbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i < size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt16LE(this, loc)));\n\t\t\t\tloc+=2;\n\t\t\t} o = oo.join(\"\"); size *= 2; break;\n\n\t\tcase 'cpstr':\n\t\t\tif(typeof cptable !== 'undefined') {\n\t\t\t\to = cptable.utils.decode(current_codepage, this.slice(this.l, this.l + size));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t/* falls through */\n\t\tcase 'sbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i != size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt8(this, loc)));\n\t\t\t\tloc+=1;\n\t\t\t} o = oo.join(\"\"); break;\n\n\t\tdefault:\n\tswitch(size) {\n\t\tcase 1: oI = __readUInt8(this, this.l); this.l++; return oI;\n\t\tcase 2: oI = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); this.l += 2; return oI;\n\t\tcase 4: case -4:\n\t\t\tif(t === 'i' || ((this[this.l+3] & 0x80)===0)) { oI = ((size > 0) ? __readInt32LE : __readInt32BE)(this, this.l); this.l += 4; return oI; }\n\t\t\telse { oR = __readUInt32LE(this, this.l); this.l += 4; } return oR;\n\t\tcase 8: case -8:\n\t\t\tif(t === 'f') {\n\t\t\t\tif(size == 8) oR = __double(this, this.l);\n\t\t\t\telse oR = __double([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]], 0);\n\t\t\t\tthis.l += 8; return oR;\n\t\t\t} else size = 8;\n\t\t/* falls through */\n\t\tcase 16: o = __hexlify(this, this.l, size); break;\n\t}}\n\tthis.l+=size; return o;\n}\n\nvar __writeUInt32LE = function(b, val, idx) { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); b[idx+2] = ((val >>> 16) & 0xFF); b[idx+3] = ((val >>> 24) & 0xFF); };\nvar __writeInt32LE = function(b, val, idx) { b[idx] = (val & 0xFF); b[idx+1] = ((val >> 8) & 0xFF); b[idx+2] = ((val >> 16) & 0xFF); b[idx+3] = ((val >> 24) & 0xFF); };\nvar __writeUInt16LE = function(b, val, idx) { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); };\n\nfunction WriteShift(t, val, f) {\n\tvar size = 0, i = 0;\n\tif(f === 'dbcs') {\nfor(i = 0; i != val.length; ++i) __writeUInt16LE(this, val.charCodeAt(i), this.l + 2 * i);\n\t\tsize = 2 * val.length;\n\t} else if(f === 'sbcs') {\n\t\tif(typeof cptable !== 'undefined' && current_ansi == 874) {\n\t\t\t/* TODO: use tables directly, don't encode */\nfor(i = 0; i != val.length; ++i) {\n\t\t\t\tvar cppayload = cptable.utils.encode(current_ansi, val.charAt(i));\n\t\t\t\tthis[this.l + i] = cppayload[0];\n\t\t\t}\n\t\t} else {\nval = val.replace(/[^\\x00-\\x7F]/g, \"_\");\nfor(i = 0; i != val.length; ++i) this[this.l + i] = (val.charCodeAt(i) & 0xFF);\n\t\t}\n\t\tsize = val.length;\n\t} else if(f === 'hex') {\n\t\tfor(; i < t; ++i) {\nthis[this.l++] = (parseInt(val.slice(2*i, 2*i+2), 16)||0);\n\t\t} return this;\n\t} else if(f === 'utf16le') {\nvar end = Math.min(this.l + t, this.length);\n\t\t\tfor(i = 0; i < Math.min(val.length, t); ++i) {\n\t\t\t\tvar cc = val.charCodeAt(i);\n\t\t\t\tthis[this.l++] = (cc & 0xff);\n\t\t\t\tthis[this.l++] = (cc >> 8);\n\t\t\t}\n\t\t\twhile(this.l < end) this[this.l++] = 0;\n\t\t\treturn this;\n\t} else switch(t) {\n\t\tcase 1: size = 1; this[this.l] = val&0xFF; break;\n\t\tcase 2: size = 2; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; break;\n\t\tcase 3: size = 3; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; val >>>= 8; this[this.l+2] = val&0xFF; break;\n\t\tcase 4: size = 4; __writeUInt32LE(this, val, this.l); break;\n\t\tcase 8: size = 8; if(f === 'f') { write_double_le(this, val, this.l); break; }\n\t\t/* falls through */\n\t\tcase 16: break;\n\t\tcase -4: size = 4; __writeInt32LE(this, val, this.l); break;\n\t}\n\tthis.l += size; return this;\n}\n\nfunction CheckField(hexstr, fld) {\n\tvar m = __hexlify(this,this.l,hexstr.length>>1);\n\tif(m !== hexstr) throw new Error(fld + 'Expected ' + hexstr + ' saw ' + m);\n\tthis.l += hexstr.length>>1;\n}\n\nfunction prep_blob(blob, pos) {\n\tblob.l = pos;\n\tblob.read_shift = ReadShift;\n\tblob.chk = CheckField;\n\tblob.write_shift = WriteShift;\n}\n\nfunction parsenoop(blob, length) { blob.l += length; }\n\nfunction new_buf(sz) {\n\tvar o = new_raw_buf(sz);\n\tprep_blob(o, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.1.4 Record */\nfunction recordhopper(data, cb, opts) {\n\tif(!data) return;\n\tvar tmpbyte, cntbyte, length;\n\tprep_blob(data, data.l || 0);\n\tvar L = data.length, RT = 0, tgt = 0;\n\twhile(data.l < L) {\n\t\tRT = data.read_shift(1);\n\t\tif(RT & 0x80) RT = (RT & 0x7F) + ((data.read_shift(1) & 0x7F)<<7);\n\t\tvar R = XLSBRecordEnum[RT] || XLSBRecordEnum[0xFFFF];\n\t\ttmpbyte = data.read_shift(1);\n\t\tlength = tmpbyte & 0x7F;\n\t\tfor(cntbyte = 1; cntbyte <4 && (tmpbyte & 0x80); ++cntbyte) length += ((tmpbyte = data.read_shift(1)) & 0x7F)<<(7*cntbyte);\n\t\ttgt = data.l + length;\n\t\tvar d = (R.f||parsenoop)(data, length, opts);\n\t\tdata.l = tgt;\n\t\tif(cb(d, R.n, RT)) return;\n\t}\n}\n\n/* control buffer usage for fixed-length buffers */\nfunction buf_array() {\n\tvar bufs = [], blksz = has_buf ? 256 : 2048;\n\tvar newblk = function ba_newblk(sz) {\n\t\tvar o = (new_buf(sz));\n\t\tprep_blob(o, 0);\n\t\treturn o;\n\t};\n\n\tvar curbuf = newblk(blksz);\n\n\tvar endbuf = function ba_endbuf() {\n\t\tif(!curbuf) return;\n\t\tif(curbuf.length > curbuf.l) { curbuf = curbuf.slice(0, curbuf.l); curbuf.l = curbuf.length; }\n\t\tif(curbuf.length > 0) bufs.push(curbuf);\n\t\tcurbuf = null;\n\t};\n\n\tvar next = function ba_next(sz) {\n\t\tif(curbuf && (sz < (curbuf.length - curbuf.l))) return curbuf;\n\t\tendbuf();\n\t\treturn (curbuf = newblk(Math.max(sz+1, blksz)));\n\t};\n\n\tvar end = function ba_end() {\n\t\tendbuf();\n\t\treturn __toBuffer([bufs]);\n\t};\n\n\tvar push = function ba_push(buf) { endbuf(); curbuf = buf; if(curbuf.l == null) curbuf.l = curbuf.length; next(blksz); };\n\n\treturn ({ next:next, push:push, end:end, _bufs:bufs });\n}\n\nfunction write_record(ba, type, payload, length) {\n\tvar t = +XLSBRE[type], l;\n\tif(isNaN(t)) return; // TODO: throw something here?\n\tif(!length) length = XLSBRecordEnum[t].p || (payload||[]).length || 0;\n\tl = 1 + (t >= 0x80 ? 1 : 0) + 1/* + length*/;\n\tif(length >= 0x80) ++l; if(length >= 0x4000) ++l; if(length >= 0x200000) ++l;\n\tvar o = ba.next(l);\n\tif(t <= 0x7F) o.write_shift(1, t);\n\telse {\n\t\to.write_shift(1, (t & 0x7F) + 0x80);\n\t\to.write_shift(1, (t >> 7));\n\t}\n\tfor(var i = 0; i != 4; ++i) {\n\t\tif(length >= 0x80) { o.write_shift(1, (length & 0x7F)+0x80); length >>= 7; }\n\t\telse { o.write_shift(1, length); break; }\n\t}\n\tif(length > 0 && is_buf(payload)) ba.push(payload);\n}\n/* XLS ranges enforced */\nfunction shift_cell_xls(cell, tgt, opts) {\n\tvar out = dup(cell);\n\tif(tgt.s) {\n\t\tif(out.cRel) out.c += tgt.s.c;\n\t\tif(out.rRel) out.r += tgt.s.r;\n\t} else {\n\t\tif(out.cRel) out.c += tgt.c;\n\t\tif(out.rRel) out.r += tgt.r;\n\t}\n\tif(!opts || opts.biff < 12) {\n\t\twhile(out.c >= 0x100) out.c -= 0x100;\n\t\twhile(out.r >= 0x10000) out.r -= 0x10000;\n\t}\n\treturn out;\n}\n\nfunction shift_range_xls(cell, range, opts) {\n\tvar out = dup(cell);\n\tout.s = shift_cell_xls(out.s, range.s, opts);\n\tout.e = shift_cell_xls(out.e, range.s, opts);\n\treturn out;\n}\n\nfunction encode_cell_xls(c, biff) {\n\tif(c.cRel && c.c < 0) { c = dup(c); while(c.c < 0) c.c += (biff > 8) ? 0x4000 : 0x100; }\n\tif(c.rRel && c.r < 0) { c = dup(c); while(c.r < 0) c.r += (biff > 8) ? 0x100000 : ((biff > 5) ? 0x10000 : 0x4000); }\n\tvar s = encode_cell(c);\n\tif(!c.cRel && c.cRel != null) s = fix_col(s);\n\tif(!c.rRel && c.rRel != null) s = fix_row(s);\n\treturn s;\n}\n\nfunction encode_range_xls(r, opts) {\n\tif(r.s.r == 0 && !r.s.rRel) {\n\t\tif(r.e.r == (opts.biff >= 12 ? 0xFFFFF : (opts.biff >= 8 ? 0x10000 : 0x4000)) && !r.e.rRel) {\n\t\t\treturn (r.s.cRel ? \"\" : \"$\") + encode_col(r.s.c) + \":\" + (r.e.cRel ? \"\" : \"$\") + encode_col(r.e.c);\n\t\t}\n\t}\n\tif(r.s.c == 0 && !r.s.cRel) {\n\t\tif(r.e.c == (opts.biff >= 12 ? 0x3FFF : 0xFF) && !r.e.cRel) {\n\t\t\treturn (r.s.rRel ? \"\" : \"$\") + encode_row(r.s.r) + \":\" + (r.e.rRel ? \"\" : \"$\") + encode_row(r.e.r);\n\t\t}\n\t}\n\treturn encode_cell_xls(r.s, opts.biff) + \":\" + encode_cell_xls(r.e, opts.biff);\n}\nvar OFFCRYPTO = {};\n\nvar make_offcrypto = function(O, _crypto) {\n\tvar crypto;\n\tif(typeof _crypto !== 'undefined') crypto = _crypto;\n\telse if(typeof require !== 'undefined') {\n\t\ttry { crypto = require('crypto'); }\n\t\tcatch(e) { crypto = null; }\n\t}\n\n\tO.rc4 = function(key, data) {\n\t\tvar S = new Array(256);\n\t\tvar c = 0, i = 0, j = 0, t = 0;\n\t\tfor(i = 0; i != 256; ++i) S[i] = i;\n\t\tfor(i = 0; i != 256; ++i) {\n\t\t\tj = (j + S[i] + (key[i%key.length]).charCodeAt(0))&255;\n\t\t\tt = S[i]; S[i] = S[j]; S[j] = t;\n\t\t}\n\t\t// $FlowIgnore\n\t\ti = j = 0; var out = new_raw_buf(data.length);\n\t\tfor(c = 0; c != data.length; ++c) {\n\t\t\ti = (i + 1)&255;\n\t\t\tj = (j + S[i])%256;\n\t\t\tt = S[i]; S[i] = S[j]; S[j] = t;\n\t\t\tout[c] = (data[c] ^ S[(S[i]+S[j])&255]);\n\t\t}\n\t\treturn out;\n\t};\n\n\tO.md5 = function(hex) {\n\t\tif(!crypto) throw new Error(\"Unsupported crypto\");\n\t\treturn crypto.createHash('md5').update(hex).digest('hex');\n\t};\n};\n/*global crypto:true */\nmake_offcrypto(OFFCRYPTO, typeof crypto !== \"undefined\" ? crypto : undefined);\n\nfunction decode_row(rowstr) { return parseInt(unfix_row(rowstr),10) - 1; }\nfunction encode_row(row) { return \"\" + (row + 1); }\nfunction fix_row(cstr) { return cstr.replace(/([A-Z]|^)(\\d+)$/,\"$1$$$2\"); }\nfunction unfix_row(cstr) { return cstr.replace(/\\$(\\d+)$/,\"$1\"); }\n\nfunction decode_col(colstr) { var c = unfix_col(colstr), d = 0, i = 0; for(; i !== c.length; ++i) d = 26*d + c.charCodeAt(i) - 64; return d - 1; }\nfunction encode_col(col) { if(col < 0) throw new Error(\"invalid column \" + col); var s=\"\"; for(++col; col; col=Math.floor((col-1)/26)) s = String.fromCharCode(((col-1)%26) + 65) + s; return s; }\nfunction fix_col(cstr) { return cstr.replace(/^([A-Z])/,\"$$$1\"); }\nfunction unfix_col(cstr) { return cstr.replace(/^\\$([A-Z])/,\"$1\"); }\n\nfunction split_cell(cstr) { return cstr.replace(/(\\$?[A-Z]*)(\\$?\\d*)/,\"$1,$2\").split(\",\"); }\n//function decode_cell(cstr) { var splt = split_cell(cstr); return { c:decode_col(splt[0]), r:decode_row(splt[1]) }; }\nfunction decode_cell(cstr) {\n\tvar R = 0, C = 0;\n\tfor(var i = 0; i < cstr.length; ++i) {\n\t\tvar cc = cstr.charCodeAt(i);\n\t\tif(cc >= 48 && cc <= 57) R = 10 * R + (cc - 48);\n\t\telse if(cc >= 65 && cc <= 90) C = 26 * C + (cc - 64);\n\t}\n\treturn { c: C - 1, r:R - 1 };\n}\n//function encode_cell(cell) { return encode_col(cell.c) + encode_row(cell.r); }\nfunction encode_cell(cell) {\n\tvar col = cell.c + 1;\n\tvar s=\"\";\n\tfor(; col; col=((col-1)/26)|0) s = String.fromCharCode(((col-1)%26) + 65) + s;\n\treturn s + (cell.r + 1);\n}\nfunction decode_range(range) {\n\tvar idx = range.indexOf(\":\");\n\tif(idx == -1) return { s: decode_cell(range), e: decode_cell(range) };\n\treturn { s: decode_cell(range.slice(0, idx)), e: decode_cell(range.slice(idx + 1)) };\n}\nfunction encode_range(cs,ce) {\n\tif(typeof ce === 'undefined' || typeof ce === 'number') {\nreturn encode_range(cs.s, cs.e);\n\t}\nif(typeof cs !== 'string') cs = encode_cell((cs));\n\tif(typeof ce !== 'string') ce = encode_cell((ce));\nreturn cs == ce ? cs : cs + \":\" + ce;\n}\n\nfunction safe_decode_range(range) {\n\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\tvar idx = 0, i = 0, cc = 0;\n\tvar len = range.length;\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.s.c = --idx;\n\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.s.r = --idx;\n\n\tif(i === len || range.charCodeAt(++i) === 58) { o.e.c=o.s.c; o.e.r=o.s.r; return o; }\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.e.c = --idx;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.e.r = --idx;\n\treturn o;\n}\n\nfunction safe_format_cell(cell, v) {\n\tvar q = (cell.t == 'd' && v instanceof Date);\n\tif(cell.z != null) try { return (cell.w = SSF.format(cell.z, q ? datenum(v) : v)); } catch(e) { }\n\ttry { return (cell.w = SSF.format((cell.XF||{}).numFmtId||(q ? 14 : 0), q ? datenum(v) : v)); } catch(e) { return ''+v; }\n}\n\nfunction format_cell(cell, v, o) {\n\tif(cell == null || cell.t == null || cell.t == 'z') return \"\";\n\tif(cell.w !== undefined) return cell.w;\n\tif(cell.t == 'd' && !cell.z && o && o.dateNF) cell.z = o.dateNF;\n\tif(v == undefined) return safe_format_cell(cell, cell.v);\n\treturn safe_format_cell(cell, v);\n}\n\nfunction sheet_to_workbook(sheet, opts) {\n\tvar n = opts && opts.sheet ? opts.sheet : \"Sheet1\";\n\tvar sheets = {}; sheets[n] = sheet;\n\treturn { SheetNames: [n], Sheets: sheets };\n}\n\nfunction sheet_add_aoa(_ws, data, opts) {\n\tvar o = opts || {};\n\tvar dense = _ws ? Array.isArray(_ws) : o.dense;\n\tif(DENSE != null && dense == null) dense = DENSE;\n\tvar ws = _ws || (dense ? ([]) : ({}));\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t\tif(!ws[\"!ref\"]) ws[\"!ref\"] = \"A1:A1\";\n\t}\n\tvar range = ({s: {c:10000000, r:10000000}, e: {c:0, r:0}});\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.s.c = _range.s.c;\n\t\trange.s.r = _range.s.r;\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) range.e.r = _R = _range.e.r + 1;\n\t}\n\tfor(var R = 0; R != data.length; ++R) {\n\t\tif(!data[R]) continue;\n\t\tif(!Array.isArray(data[R])) throw new Error(\"aoa_to_sheet expects an array of arrays\");\n\t\tfor(var C = 0; C != data[R].length; ++C) {\n\t\t\tif(typeof data[R][C] === 'undefined') continue;\n\t\t\tvar cell = ({v: data[R][C] });\n\t\t\tvar __R = _R + R, __C = _C + C;\n\t\t\tif(range.s.r > __R) range.s.r = __R;\n\t\t\tif(range.s.c > __C) range.s.c = __C;\n\t\t\tif(range.e.r < __R) range.e.r = __R;\n\t\t\tif(range.e.c < __C) range.e.c = __C;\n\t\t\tif(data[R][C] && typeof data[R][C] === 'object' && !Array.isArray(data[R][C]) && !(data[R][C] instanceof Date)) cell = data[R][C];\n\t\t\telse {\n\t\t\t\tif(Array.isArray(cell.v)) { cell.f = data[R][C][1]; cell.v = cell.v[0]; }\n\t\t\t\tif(cell.v === null) { if(cell.f) cell.t = 'n'; else if(!o.sheetStubs) continue; else cell.t = 'z'; }\n\t\t\t\telse if(typeof cell.v === 'number') cell.t = 'n';\n\t\t\t\telse if(typeof cell.v === 'boolean') cell.t = 'b';\n\t\t\t\telse if(cell.v instanceof Date) {\n\t\t\t\t\tcell.z = o.dateNF || SSF._table[14];\n\t\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.w = SSF.format(cell.z, datenum(cell.v)); }\n\t\t\t\t\telse { cell.t = 'n'; cell.v = datenum(cell.v); cell.w = SSF.format(cell.z, cell.v); }\n\t\t\t\t}\n\t\t\t\telse cell.t = 's';\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tif(!ws[__R]) ws[__R] = [];\n\t\t\t\tif(ws[__R][__C] && ws[__R][__C].z) cell.z = ws[__R][__C].z;\n\t\t\t\tws[__R][__C] = cell;\n\t\t\t} else {\n\t\t\t\tvar cell_ref = encode_cell(({c:__C,r:__R}));\n\t\t\t\tif(ws[cell_ref] && ws[cell_ref].z) cell.z = ws[cell_ref].z;\n\t\t\t\tws[cell_ref] = cell;\n\t\t\t}\n\t\t}\n\t}\n\tif(range.s.c < 10000000) ws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction aoa_to_sheet(data, opts) { return sheet_add_aoa(null, data, opts); }\n\nfunction write_UInt32LE(x, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(4, x);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.168 */\nfunction parse_XLWideString(data) {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLWideString(data, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(4 + 2 * data.length); }\n\to.write_shift(4, data.length);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.91 */\n//function parse_LPWideString(data) {\n//\tvar cchCharacters = data.read_shift(2);\n//\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, \"utf16le\");\n//}\n\n/* [MS-XLSB] 2.5.143 */\nfunction parse_StrRun(data) {\n\treturn { ich: data.read_shift(2), ifnt: data.read_shift(2) };\n}\nfunction write_StrRun(run, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(2, run.ich || 0);\n\to.write_shift(2, run.ifnt || 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.121 */\nfunction parse_RichStr(data, length) {\n\tvar start = data.l;\n\tvar flags = data.read_shift(1);\n\tvar str = parse_XLWideString(data);\n\tvar rgsStrRun = [];\n\tvar z = ({ t: str, h: str });\n\tif ((flags & 1) !== 0) { /* fRichStr */\n\t\t/* TODO: formatted string */\n\t\tvar dwSizeStrRun = data.read_shift(4);\n\t\tfor (var i = 0; i != dwSizeStrRun; ++i) rgsStrRun.push(parse_StrRun(data));\n\t\tz.r = rgsStrRun;\n\t}\n\telse z.r = [{ ich: 0, ifnt: 0 }];\n\t//if((flags & 2) !== 0) { /* fExtStr */\n\t//\t/* TODO: phonetic string */\n\t//}\n\tdata.l = start + length;\n\treturn z;\n}\nfunction write_RichStr(str, o) {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(15 + 4 * str.t.length); }\n\to.write_shift(1, 0);\n\twrite_XLWideString(str.t, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n/* [MS-XLSB] 2.4.328 BrtCommentText (RichStr w/1 run) */\nvar parse_BrtCommentText = parse_RichStr;\nfunction write_BrtCommentText(str, o) {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(23 + 4 * str.t.length); }\n\to.write_shift(1, 1);\n\twrite_XLWideString(str.t, o);\n\to.write_shift(4, 1);\n\twrite_StrRun({ ich: 0, ifnt: 0 }, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.9 */\nfunction parse_XLSBCell(data) {\n\tvar col = data.read_shift(4);\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) << 16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c: col, iStyleRef: iStyleRef };\n}\nfunction write_XLSBCell(cell, o) {\n\tif (o == null) o = new_buf(8);\n\to.write_shift(-4, cell.c);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.5.21 */\nvar parse_XLSBCodeName = parse_XLWideString;\nvar write_XLSBCodeName = write_XLWideString;\n\n/* [MS-XLSB] 2.5.166 */\nfunction parse_XLNullableWideString(data) {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 || cchCharacters === 0xFFFFFFFF ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLNullableWideString(data, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(127); }\n\to.write_shift(4, data.length > 0 ? data.length : 0xFFFFFFFF);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.165 */\nvar parse_XLNameWideString = parse_XLWideString;\n//var write_XLNameWideString = write_XLWideString;\n\n/* [MS-XLSB] 2.5.114 */\nvar parse_RelID = parse_XLNullableWideString;\nvar write_RelID = write_XLNullableWideString;\n\n\n/* [MS-XLS] 2.5.217 ; [MS-XLSB] 2.5.122 */\nfunction parse_RkNumber(data) {\n\tvar b = data.slice(data.l, data.l + 4);\n\tvar fX100 = (b[0] & 1), fInt = (b[0] & 2);\n\tdata.l += 4;\n\tb[0] &= 0xFC; // b[0] &= ~3;\n\tvar RK = fInt === 0 ? __double([0, 0, 0, 0, b[0], b[1], b[2], b[3]], 0) : __readInt32LE(b, 0) >> 2;\n\treturn fX100 ? (RK / 100) : RK;\n}\nfunction write_RkNumber(data, o) {\n\tif (o == null) o = new_buf(4);\n\tvar fX100 = 0, fInt = 0, d100 = data * 100;\n\tif ((data == (data | 0)) && (data >= -(1 << 29)) && (data < (1 << 29))) { fInt = 1; }\n\telse if ((d100 == (d100 | 0)) && (d100 >= -(1 << 29)) && (d100 < (1 << 29))) { fInt = 1; fX100 = 1; }\n\tif (fInt) o.write_shift(-4, ((fX100 ? d100 : data) << 2) + (fX100 + 2));\n\telse throw new Error(\"unsupported RkNumber \" + data); // TODO\n}\n\n\n/* [MS-XLSB] 2.5.117 RfX */\nfunction parse_RfX(data ) {\n\tvar cell = ({ s: {}, e: {} });\n\tcell.s.r = data.read_shift(4);\n\tcell.e.r = data.read_shift(4);\n\tcell.s.c = data.read_shift(4);\n\tcell.e.c = data.read_shift(4);\n\treturn cell;\n}\nfunction write_RfX(r, o) {\n\tif (!o) o = new_buf(16);\n\to.write_shift(4, r.s.r);\n\to.write_shift(4, r.e.r);\n\to.write_shift(4, r.s.c);\n\to.write_shift(4, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.153 UncheckedRfX */\nvar parse_UncheckedRfX = parse_RfX;\nvar write_UncheckedRfX = write_RfX;\n\n/* [MS-XLSB] 2.5.155 UncheckedSqRfX */\n//function parse_UncheckedSqRfX(data) {\n//\tvar cnt = data.read_shift(4);\n//\tvar out = [];\n//\tfor(var i = 0; i < cnt; ++i) {\n//\t\tvar rng = parse_UncheckedRfX(data);\n//\t\tout.push(encode_range(rng));\n//\t}\n//\treturn out.join(\",\");\n//}\n//function write_UncheckedSqRfX(sqrfx) {\n//\tvar parts = sqrfx.split(/\\s*,\\s*/);\n//\tvar o = new_buf(4); o.write_shift(4, parts.length);\n//\tvar out = [o];\n//\tparts.forEach(function(rng) {\n//\t\tout.push(write_UncheckedRfX(safe_decode_range(rng)));\n//\t});\n//\treturn bconcat(out);\n//}\n\n/* [MS-XLS] 2.5.342 ; [MS-XLSB] 2.5.171 */\n/* TODO: error checking, NaN and Infinity values are not valid Xnum */\nfunction parse_Xnum(data) { return data.read_shift(8, 'f'); }\nfunction write_Xnum(data, o) { return (o || new_buf(8)).write_shift(8, data, 'f'); }\n\n/* [MS-XLSB] 2.4.324 BrtColor */\nfunction parse_BrtColor(data) {\n\tvar out = {};\n\tvar d = data.read_shift(1);\n\n\t//var fValidRGB = d & 1;\n\tvar xColorType = d >>> 1;\n\n\tvar index = data.read_shift(1);\n\tvar nTS = data.read_shift(2, 'i');\n\tvar bR = data.read_shift(1);\n\tvar bG = data.read_shift(1);\n\tvar bB = data.read_shift(1);\n\tdata.l++; //var bAlpha = data.read_shift(1);\n\n\tswitch (xColorType) {\n\t\tcase 0: out.auto = 1; break;\n\t\tcase 1:\n\t\t\tout.index = index;\n\t\t\tvar icv = XLSIcv[index];\n\t\t\t/* automatic pseudo index 81 */\n\t\t\tif (icv) out.rgb = rgb2Hex(icv);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/* if(!fValidRGB) throw new Error(\"invalid\"); */\n\t\t\tout.rgb = rgb2Hex([bR, bG, bB]);\n\t\t\tbreak;\n\t\tcase 3: out.theme = index; break;\n\t}\n\tif (nTS != 0) out.tint = nTS > 0 ? nTS / 32767 : nTS / 32768;\n\n\treturn out;\n}\nfunction write_BrtColor(color, o) {\n\tif (!o) o = new_buf(8);\n\tif (!color || color.auto) { o.write_shift(4, 0); o.write_shift(4, 0); return o; }\n\tif (color.index != null) {\n\t\to.write_shift(1, 0x02);\n\t\to.write_shift(1, color.index);\n\t} else if (color.theme != null) {\n\t\to.write_shift(1, 0x06);\n\t\to.write_shift(1, color.theme);\n\t} else {\n\t\to.write_shift(1, 0x05);\n\t\to.write_shift(1, 0);\n\t}\n\tvar nTS = color.tint || 0;\n\tif (nTS > 0) nTS *= 32767;\n\telse if (nTS < 0) nTS *= 32768;\n\to.write_shift(2, nTS);\n\tif (!color.rgb || color.theme != null) {\n\t\to.write_shift(2, 0);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(1, 0);\n\t} else {\n\t\tvar rgb = (color.rgb || 'FFFFFF');\n\t\tif (typeof rgb == 'number') rgb = (\"000000\" + rgb.toString(16)).slice(-6);\n\t\to.write_shift(1, parseInt(rgb.slice(0, 2), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(2, 4), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(4, 6), 16));\n\t\to.write_shift(1, 0xFF);\n\t}\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.52 */\nfunction parse_FontFlags(data) {\n\tvar d = data.read_shift(1);\n\tdata.l++;\n\tvar out = {\n\t\tfBold: d & 0x01,\n\t\tfItalic: d & 0x02,\n\t\tfUnderline: d & 0x04,\n\t\tfStrikeout: d & 0x08,\n\t\tfOutline: d & 0x10,\n\t\tfShadow: d & 0x20,\n\t\tfCondense: d & 0x40,\n\t\tfExtend: d & 0x80\n\t};\n\treturn out;\n}\nfunction write_FontFlags(font, o) {\n\tif (!o) o = new_buf(2);\n\tvar grbit =\n\t\t(font.italic ? 0x02 : 0) |\n\t\t(font.strike ? 0x08 : 0) |\n\t\t(font.outline ? 0x10 : 0) |\n\t\t(font.shadow ? 0x20 : 0) |\n\t\t(font.condense ? 0x40 : 0) |\n\t\t(font.extend ? 0x80 : 0);\n\to.write_shift(1, grbit);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-OLEDS] 2.3.1 and 2.3.2 */\nfunction parse_ClipboardFormatOrString(o, w) {\n\t// $FlowIgnore\n\tvar ClipFmt = { 2: \"BITMAP\", 3: \"METAFILEPICT\", 8: \"DIB\", 14: \"ENHMETAFILE\" };\n\tvar m = o.read_shift(4);\n\tswitch (m) {\n\t\tcase 0x00000000: return \"\";\n\t\tcase 0xffffffff: case 0xfffffffe: return ClipFmt[o.read_shift(4)] || \"\";\n\t}\n\tif (m > 0x190) throw new Error(\"Unsupported Clipboard: \" + m.toString(16));\n\to.l -= 4;\n\treturn o.read_shift(0, w == 1 ? \"lpstr\" : \"lpwstr\");\n}\nfunction parse_ClipboardFormatOrAnsiString(o) { return parse_ClipboardFormatOrString(o, 1); }\nfunction parse_ClipboardFormatOrUnicodeString(o) { return parse_ClipboardFormatOrString(o, 2); }\n\n/* [MS-OLEPS] 2.2 PropertyType */\n//var VT_EMPTY = 0x0000;\n//var VT_NULL = 0x0001;\nvar VT_I2 = 0x0002;\nvar VT_I4 = 0x0003;\n//var VT_R4 = 0x0004;\n//var VT_R8 = 0x0005;\n//var VT_CY = 0x0006;\n//var VT_DATE = 0x0007;\n//var VT_BSTR = 0x0008;\n//var VT_ERROR = 0x000A;\nvar VT_BOOL = 0x000B;\nvar VT_VARIANT = 0x000C;\n//var VT_DECIMAL = 0x000E;\n//var VT_I1 = 0x0010;\n//var VT_UI1 = 0x0011;\n//var VT_UI2 = 0x0012;\nvar VT_UI4 = 0x0013;\n//var VT_I8 = 0x0014;\n//var VT_UI8 = 0x0015;\n//var VT_INT = 0x0016;\n//var VT_UINT = 0x0017;\nvar VT_LPSTR = 0x001E;\n//var VT_LPWSTR = 0x001F;\nvar VT_FILETIME = 0x0040;\nvar VT_BLOB = 0x0041;\n//var VT_STREAM = 0x0042;\n//var VT_STORAGE = 0x0043;\n//var VT_STREAMED_Object = 0x0044;\n//var VT_STORED_Object = 0x0045;\n//var VT_BLOB_Object = 0x0046;\nvar VT_CF = 0x0047;\n//var VT_CLSID = 0x0048;\n//var VT_VERSIONED_STREAM = 0x0049;\nvar VT_VECTOR = 0x1000;\n//var VT_ARRAY = 0x2000;\n\nvar VT_STRING = 0x0050; // 2.3.3.1.11 VtString\nvar VT_USTR = 0x0051; // 2.3.3.1.12 VtUnalignedString\nvar VT_CUSTOM = [VT_STRING, VT_USTR];\n\n/* [MS-OSHARED] 2.3.3.2.2.1 Document Summary Information PIDDSI */\nvar DocSummaryPIDDSI = {\n0x01: { n: 'CodePage', t: VT_I2 },\n0x02: { n: 'Category', t: VT_STRING },\n0x03: { n: 'PresentationFormat', t: VT_STRING },\n0x04: { n: 'ByteCount', t: VT_I4 },\n0x05: { n: 'LineCount', t: VT_I4 },\n0x06: { n: 'ParagraphCount', t: VT_I4 },\n0x07: { n: 'SlideCount', t: VT_I4 },\n0x08: { n: 'NoteCount', t: VT_I4 },\n0x09: { n: 'HiddenCount', t: VT_I4 },\n0x0a: { n: 'MultimediaClipCount', t: VT_I4 },\n0x0b: { n: 'ScaleCrop', t: VT_BOOL },\n0x0c: { n: 'HeadingPairs', t: VT_VECTOR | VT_VARIANT },\n0x0d: { n: 'TitlesOfParts', t: VT_VECTOR | VT_LPSTR },\n0x0e: { n: 'Manager', t: VT_STRING },\n0x0f: { n: 'Company', t: VT_STRING },\n0x10: { n: 'LinksUpToDate', t: VT_BOOL },\n0x11: { n: 'CharacterCount', t: VT_I4 },\n0x13: { n: 'SharedDoc', t: VT_BOOL },\n0x16: { n: 'HyperlinksChanged', t: VT_BOOL },\n0x17: { n: 'AppVersion', t: VT_I4, p: 'version' },\n0x18: { n: 'DigSig', t: VT_BLOB },\n0x1A: { n: 'ContentType', t: VT_STRING },\n0x1B: { n: 'ContentStatus', t: VT_STRING },\n0x1C: { n: 'Language', t: VT_STRING },\n0x1D: { n: 'Version', t: VT_STRING },\n0xFF: {}\n};\n\n/* [MS-OSHARED] 2.3.3.2.1.1 Summary Information Property Set PIDSI */\nvar SummaryPIDSI = {\n0x01: { n: 'CodePage', t: VT_I2 },\n0x02: { n: 'Title', t: VT_STRING },\n0x03: { n: 'Subject', t: VT_STRING },\n0x04: { n: 'Author', t: VT_STRING },\n0x05: { n: 'Keywords', t: VT_STRING },\n0x06: { n: 'Comments', t: VT_STRING },\n0x07: { n: 'Template', t: VT_STRING },\n0x08: { n: 'LastAuthor', t: VT_STRING },\n0x09: { n: 'RevNumber', t: VT_STRING },\n0x0A: { n: 'EditTime', t: VT_FILETIME },\n0x0B: { n: 'LastPrinted', t: VT_FILETIME },\n0x0C: { n: 'CreatedDate', t: VT_FILETIME },\n0x0D: { n: 'ModifiedDate', t: VT_FILETIME },\n0x0E: { n: 'PageCount', t: VT_I4 },\n0x0F: { n: 'WordCount', t: VT_I4 },\n0x10: { n: 'CharCount', t: VT_I4 },\n0x11: { n: 'Thumbnail', t: VT_CF },\n0x12: { n: 'Application', t: VT_STRING },\n0x13: { n: 'DocSecurity', t: VT_I4 },\n0xFF: {}\n};\n\n/* [MS-OLEPS] 2.18 */\nvar SpecialProperties = {\n0x80000000: { n: 'Locale', t: VT_UI4 },\n0x80000003: { n: 'Behavior', t: VT_UI4 },\n0x72627262: {}\n};\n\n(function() {\n\tfor(var y in SpecialProperties) if(Object.prototype.hasOwnProperty.call(SpecialProperties, y))\n\tDocSummaryPIDDSI[y] = SummaryPIDSI[y] = SpecialProperties[y];\n})();\n\nvar DocSummaryRE = evert_key(DocSummaryPIDDSI, \"n\");\nvar SummaryRE = evert_key(SummaryPIDSI, \"n\");\n\n/* [MS-XLS] 2.4.63 Country/Region codes */\nvar CountryEnum = {\n0x0001: \"US\", // United States\n0x0002: \"CA\", // Canada\n0x0003: \"\", // Latin America (except Brazil)\n0x0007: \"RU\", // Russia\n0x0014: \"EG\", // Egypt\n0x001E: \"GR\", // Greece\n0x001F: \"NL\", // Netherlands\n0x0020: \"BE\", // Belgium\n0x0021: \"FR\", // France\n0x0022: \"ES\", // Spain\n0x0024: \"HU\", // Hungary\n0x0027: \"IT\", // Italy\n0x0029: \"CH\", // Switzerland\n0x002B: \"AT\", // Austria\n0x002C: \"GB\", // United Kingdom\n0x002D: \"DK\", // Denmark\n0x002E: \"SE\", // Sweden\n0x002F: \"NO\", // Norway\n0x0030: \"PL\", // Poland\n0x0031: \"DE\", // Germany\n0x0034: \"MX\", // Mexico\n0x0037: \"BR\", // Brazil\n0x003d: \"AU\", // Australia\n0x0040: \"NZ\", // New Zealand\n0x0042: \"TH\", // Thailand\n0x0051: \"JP\", // Japan\n0x0052: \"KR\", // Korea\n0x0054: \"VN\", // Viet Nam\n0x0056: \"CN\", // China\n0x005A: \"TR\", // Turkey\n0x0069: \"JS\", // Ramastan\n0x00D5: \"DZ\", // Algeria\n0x00D8: \"MA\", // Morocco\n0x00DA: \"LY\", // Libya\n0x015F: \"PT\", // Portugal\n0x0162: \"IS\", // Iceland\n0x0166: \"FI\", // Finland\n0x01A4: \"CZ\", // Czech Republic\n0x0376: \"TW\", // Taiwan\n0x03C1: \"LB\", // Lebanon\n0x03C2: \"JO\", // Jordan\n0x03C3: \"SY\", // Syria\n0x03C4: \"IQ\", // Iraq\n0x03C5: \"KW\", // Kuwait\n0x03C6: \"SA\", // Saudi Arabia\n0x03CB: \"AE\", // United Arab Emirates\n0x03CC: \"IL\", // Israel\n0x03CE: \"QA\", // Qatar\n0x03D5: \"IR\", // Iran\n0xFFFF: \"US\" // United States\n};\n\n/* [MS-XLS] 2.5.127 */\nvar XLSFillPattern = [\n\tnull,\n\t'solid',\n\t'mediumGray',\n\t'darkGray',\n\t'lightGray',\n\t'darkHorizontal',\n\t'darkVertical',\n\t'darkDown',\n\t'darkUp',\n\t'darkGrid',\n\t'darkTrellis',\n\t'lightHorizontal',\n\t'lightVertical',\n\t'lightDown',\n\t'lightUp',\n\t'lightGrid',\n\t'lightTrellis',\n\t'gray125',\n\t'gray0625'\n];\n\nfunction rgbify(arr) { return arr.map(function(x) { return [(x>>16)&255,(x>>8)&255,x&255]; }); }\n\n/* [MS-XLS] 2.5.161 */\n/* [MS-XLSB] 2.5.75 Icv */\nvar _XLSIcv = rgbify([\n\t/* Color Constants */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t/* Overridable Defaults */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t0x800000,\n\t0x008000,\n\t0x000080,\n\t0x808000,\n\t0x800080,\n\t0x008080,\n\t0xC0C0C0,\n\t0x808080,\n\t0x9999FF,\n\t0x993366,\n\t0xFFFFCC,\n\t0xCCFFFF,\n\t0x660066,\n\t0xFF8080,\n\t0x0066CC,\n\t0xCCCCFF,\n\n\t0x000080,\n\t0xFF00FF,\n\t0xFFFF00,\n\t0x00FFFF,\n\t0x800080,\n\t0x800000,\n\t0x008080,\n\t0x0000FF,\n\t0x00CCFF,\n\t0xCCFFFF,\n\t0xCCFFCC,\n\t0xFFFF99,\n\t0x99CCFF,\n\t0xFF99CC,\n\t0xCC99FF,\n\t0xFFCC99,\n\n\t0x3366FF,\n\t0x33CCCC,\n\t0x99CC00,\n\t0xFFCC00,\n\t0xFF9900,\n\t0xFF6600,\n\t0x666699,\n\t0x969696,\n\t0x003366,\n\t0x339966,\n\t0x003300,\n\t0x333300,\n\t0x993300,\n\t0x993366,\n\t0x333399,\n\t0x333333,\n\n\t/* Other entries to appease BIFF8/12 */\n\t0xFFFFFF, /* 0x40 icvForeground ?? */\n\t0x000000, /* 0x41 icvBackground ?? */\n\t0x000000, /* 0x42 icvFrame ?? */\n\t0x000000, /* 0x43 icv3D ?? */\n\t0x000000, /* 0x44 icv3DText ?? */\n\t0x000000, /* 0x45 icv3DHilite ?? */\n\t0x000000, /* 0x46 icv3DShadow ?? */\n\t0x000000, /* 0x47 icvHilite ?? */\n\t0x000000, /* 0x48 icvCtlText ?? */\n\t0x000000, /* 0x49 icvCtlScrl ?? */\n\t0x000000, /* 0x4A icvCtlInv ?? */\n\t0x000000, /* 0x4B icvCtlBody ?? */\n\t0x000000, /* 0x4C icvCtlFrame ?? */\n\t0x000000, /* 0x4D icvCtlFore ?? */\n\t0x000000, /* 0x4E icvCtlBack ?? */\n\t0x000000, /* 0x4F icvCtlNeutral */\n\t0x000000, /* 0x50 icvInfoBk ?? */\n\t0x000000 /* 0x51 icvInfoText ?? */\n]);\nvar XLSIcv = dup(_XLSIcv);\n\n/* [MS-XLSB] 2.5.97.2 */\nvar BErr = {\n0x00: \"#NULL!\",\n0x07: \"#DIV/0!\",\n0x0F: \"#VALUE!\",\n0x17: \"#REF!\",\n0x1D: \"#NAME?\",\n0x24: \"#NUM!\",\n0x2A: \"#N/A\",\n0x2B: \"#GETTING_DATA\",\n0xFF: \"#WTF?\"\n};\nvar RBErr = evert_num(BErr);\n/* Parts enumerated in OPC spec, MS-XLSB and MS-XLSX */\n/* 12.3 Part Summary <SpreadsheetML> */\n/* 14.2 Part Summary <DrawingML> */\n/* [MS-XLSX] 2.1 Part Enumerations ; [MS-XLSB] 2.1.7 Part Enumeration */\nvar ct2type/*{[string]:string}*/ = ({\n\t/* Workbook */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": \"workbooks\",\n\n\t/* Worksheet */\n\t\"application/vnd.ms-excel.binIndexWs\": \"TODO\", /* Binary Index */\n\n\t/* Macrosheet */\n\t\"application/vnd.ms-excel.intlmacrosheet\": \"TODO\",\n\t\"application/vnd.ms-excel.binIndexMs\": \"TODO\", /* Binary Index */\n\n\t/* File Properties */\n\t\"application/vnd.openxmlformats-package.core-properties+xml\": \"coreprops\",\n\t\"application/vnd.openxmlformats-officedocument.custom-properties+xml\": \"custprops\",\n\t\"application/vnd.openxmlformats-officedocument.extended-properties+xml\": \"extprops\",\n\n\t/* Custom Data Properties */\n\t\"application/vnd.openxmlformats-officedocument.customXmlProperties+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty\": \"TODO\",\n\n\t/* PivotTable */\n\t\"application/vnd.ms-excel.pivotTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml\": \"TODO\",\n\n\t/* Chart Objects */\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": \"TODO\",\n\n\t/* Chart Colors */\n\t\"application/vnd.ms-office.chartcolorstyle+xml\": \"TODO\",\n\n\t/* Chart Style */\n\t\"application/vnd.ms-office.chartstyle+xml\": \"TODO\",\n\n\t/* Chart Advanced */\n\t\"application/vnd.ms-office.chartex+xml\": \"TODO\",\n\n\t/* Calculation Chain */\n\t\"application/vnd.ms-excel.calcChain\": \"calcchains\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml\": \"calcchains\",\n\n\t/* Printer Settings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings\": \"TODO\",\n\n\t/* ActiveX */\n\t\"application/vnd.ms-office.activeX\": \"TODO\",\n\t\"application/vnd.ms-office.activeX+xml\": \"TODO\",\n\n\t/* Custom Toolbars */\n\t\"application/vnd.ms-excel.attachedToolbars\": \"TODO\",\n\n\t/* External Data Connections */\n\t\"application/vnd.ms-excel.connections\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": \"TODO\",\n\n\t/* External Links */\n\t\"application/vnd.ms-excel.externalLink\": \"links\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml\": \"links\",\n\n\t/* Metadata */\n\t\"application/vnd.ms-excel.sheetMetadata\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\": \"TODO\",\n\n\t/* PivotCache */\n\t\"application/vnd.ms-excel.pivotCacheDefinition\": \"TODO\",\n\t\"application/vnd.ms-excel.pivotCacheRecords\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml\": \"TODO\",\n\n\t/* Query Table */\n\t\"application/vnd.ms-excel.queryTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml\": \"TODO\",\n\n\t/* Shared Workbook */\n\t\"application/vnd.ms-excel.userNames\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionHeaders\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionLog\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml\": \"TODO\",\n\n\t/* Single Cell Table */\n\t\"application/vnd.ms-excel.tableSingleCells\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml\": \"TODO\",\n\n\t/* Slicer */\n\t\"application/vnd.ms-excel.slicer\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache\": \"TODO\",\n\t\"application/vnd.ms-excel.slicer+xml\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache+xml\": \"TODO\",\n\n\t/* Sort Map */\n\t\"application/vnd.ms-excel.wsSortMap\": \"TODO\",\n\n\t/* Table */\n\t\"application/vnd.ms-excel.table\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": \"TODO\",\n\n\t/* Themes */\n\t\"application/vnd.openxmlformats-officedocument.theme+xml\": \"themes\",\n\n\t/* Theme Override */\n\t\"application/vnd.openxmlformats-officedocument.themeOverride+xml\": \"TODO\",\n\n\t/* Timeline */\n\t\"application/vnd.ms-excel.Timeline+xml\": \"TODO\", /* verify */\n\t\"application/vnd.ms-excel.TimelineCache+xml\": \"TODO\", /* verify */\n\n\t/* VBA */\n\t\"application/vnd.ms-office.vbaProject\": \"vba\",\n\t\"application/vnd.ms-office.vbaProjectSignature\": \"vba\",\n\n\t/* Volatile Dependencies */\n\t\"application/vnd.ms-office.volatileDependencies\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml\": \"TODO\",\n\n\t/* Control Properties */\n\t\"application/vnd.ms-excel.controlproperties+xml\": \"TODO\",\n\n\t/* Data Model */\n\t\"application/vnd.openxmlformats-officedocument.model+data\": \"TODO\",\n\n\t/* Survey */\n\t\"application/vnd.ms-excel.Survey+xml\": \"TODO\",\n\n\t/* Drawing */\n\t\"application/vnd.openxmlformats-officedocument.drawing+xml\": \"drawings\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml\": \"TODO\",\n\n\t/* VML */\n\t\"application/vnd.openxmlformats-officedocument.vmlDrawing\": \"TODO\",\n\n\t\"application/vnd.openxmlformats-package.relationships+xml\": \"rels\",\n\t\"application/vnd.openxmlformats-officedocument.oleObject\": \"TODO\",\n\n\t/* Image */\n\t\"image/png\": \"TODO\",\n\n\t\"sheet\": \"js\"\n});\n\nvar CT_LIST = (function(){\n\tvar o = {\n\t\tworkbooks: {\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\",\n\t\t\txlsm: \"application/vnd.ms-excel.sheet.macroEnabled.main+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sheet.binary.macroEnabled.main\",\n\t\t\txlam: \"application/vnd.ms-excel.addin.macroEnabled.main+xml\",\n\t\t\txltx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\"\n\t\t},\n\t\tstrs: { /* Shared Strings */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sharedStrings\"\n\t\t},\n\t\tcomments: { /* Comments */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.comments\"\n\t\t},\n\t\tsheets: { /* Worksheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.worksheet\"\n\t\t},\n\t\tcharts: { /* Chartsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.chartsheet\"\n\t\t},\n\t\tdialogs: { /* Dialogsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.dialogsheet\"\n\t\t},\n\t\tmacros: { /* Macrosheet (Excel 4.0 Macros) */\n\t\t\txlsx: \"application/vnd.ms-excel.macrosheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.macrosheet\"\n\t\t},\n\t\tstyles: { /* Styles */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.styles\"\n\t\t}\n\t};\n\tkeys(o).forEach(function(k) { [\"xlsm\", \"xlam\"].forEach(function(v) { if(!o[k][v]) o[k][v] = o[k].xlsx; }); });\n\tkeys(o).forEach(function(k){ keys(o[k]).forEach(function(v) { ct2type[o[k][v]] = k; }); });\n\treturn o;\n})();\n\nvar type2ct/*{[string]:Array<string>}*/ = evert_arr(ct2type);\n\nXMLNS.CT = 'http://schemas.openxmlformats.org/package/2006/content-types';\n\nfunction new_ct() {\n\treturn ({\n\t\tworkbooks:[], sheets:[], charts:[], dialogs:[], macros:[],\n\t\trels:[], strs:[], comments:[], links:[],\n\t\tcoreprops:[], extprops:[], custprops:[], themes:[], styles:[],\n\t\tcalcchains:[], vba: [], drawings: [],\n\t\tTODO:[], xmlns: \"\" });\n}\n\nfunction parse_ct(data) {\n\tvar ct = new_ct();\n\tif(!data || !data.match) return ct;\n\tvar ctext = {};\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0].replace(nsregex,\"<\")) {\n\t\t\tcase '<?xml': break;\n\t\t\tcase '<Types': ct.xmlns = y['xmlns' + (y[0].match(/<(\\w+):/)||[\"\",\"\"])[1] ]; break;\n\t\t\tcase '<Default': ctext[y.Extension] = y.ContentType; break;\n\t\t\tcase '<Override':\n\t\t\t\tif(ct[ct2type[y.ContentType]] !== undefined) ct[ct2type[y.ContentType]].push(y.PartName);\n\t\t\t\tbreak;\n\t\t}\n\t});\n\tif(ct.xmlns !== XMLNS.CT) throw new Error(\"Unknown Namespace: \" + ct.xmlns);\n\tct.calcchain = ct.calcchains.length > 0 ? ct.calcchains[0] : \"\";\n\tct.sst = ct.strs.length > 0 ? ct.strs[0] : \"\";\n\tct.style = ct.styles.length > 0 ? ct.styles[0] : \"\";\n\tct.defaults = ctext;\n\tdelete ct.calcchains;\n\treturn ct;\n}\n\nvar CTYPE_XML_ROOT = writextag('Types', null, {\n\t'xmlns': XMLNS.CT,\n\t'xmlns:xsd': XMLNS.xsd,\n\t'xmlns:xsi': XMLNS.xsi\n});\n\nvar CTYPE_DEFAULTS = [\n\t['xml', 'application/xml'],\n\t['bin', 'application/vnd.ms-excel.sheet.binary.macroEnabled.main'],\n\t['vml', 'application/vnd.openxmlformats-officedocument.vmlDrawing'],\n\t['data', 'application/vnd.openxmlformats-officedocument.model+data'],\n\t/* from test files */\n\t['bmp', 'image/bmp'],\n\t['png', 'image/png'],\n\t['gif', 'image/gif'],\n\t['emf', 'image/x-emf'],\n\t['wmf', 'image/x-wmf'],\n\t['jpg', 'image/jpeg'], ['jpeg', 'image/jpeg'],\n\t['tif', 'image/tiff'], ['tiff', 'image/tiff'],\n\t['pdf', 'application/pdf'],\n\t['rels', type2ct.rels[0]]\n].map(function(x) {\n\treturn writextag('Default', null, {'Extension':x[0], 'ContentType': x[1]});\n});\n\nfunction write_ct(ct, opts) {\n\tvar o = [], v;\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (CTYPE_XML_ROOT);\n\to = o.concat(CTYPE_DEFAULTS);\n\n\t/* only write first instance */\n\tvar f1 = function(w) {\n\t\tif(ct[w] && ct[w].length > 0) {\n\t\t\tv = ct[w][0];\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType || 'xlsx']\n\t\t\t}));\n\t\t}\n\t};\n\n\t/* book type-specific */\n\tvar f2 = function(w) {\n\t\t(ct[w]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType || 'xlsx']\n\t\t\t}));\n\t\t});\n\t};\n\n\t/* standard type */\n\tvar f3 = function(t) {\n\t\t(ct[t]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': type2ct[t][0]\n\t\t\t}));\n\t\t});\n\t};\n\n\tf1('workbooks');\n\tf2('sheets');\n\tf2('charts');\n\tf3('themes');\n\t['strs', 'styles'].forEach(f1);\n\t['coreprops', 'extprops', 'custprops'].forEach(f3);\n\tf3('vba');\n\tf3('comments');\n\tf3('drawings');\n\tif(o.length>2){ o[o.length] = ('</Types>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 9.3 Relationships */\nvar RELS = ({\n\tWB: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tSHEET: \"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tHLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\",\n\tVML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing\",\n\tXPATH: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath\",\n\tXMISS: \"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing\",\n\tXLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink\",\n\tCXML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml\",\n\tCXMLP: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps\",\n\tVBA: \"http://schemas.microsoft.com/office/2006/relationships/vbaProject\"\n});\n\n/* 9.3.3 Representing Relationships */\nfunction get_rels_path(file) {\n\tvar n = file.lastIndexOf(\"/\");\n\treturn file.slice(0,n+1) + '_rels/' + file.slice(n+1) + \".rels\";\n}\n\nfunction parse_rels(data, currentFilePath) {\n\tvar rels = {\"!id\":{}};\n\tif (!data) return rels;\n\tif (currentFilePath.charAt(0) !== '/') {\n\t\tcurrentFilePath = '/'+currentFilePath;\n\t}\n\tvar hash = {};\n\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\t/* 9.3.2.2 OPC_Relationships */\n\t\tif (y[0] === '<Relationship') {\n\t\t\tvar rel = {}; rel.Type = y.Type; rel.Target = y.Target; rel.Id = y.Id; rel.TargetMode = y.TargetMode;\n\t\t\tvar canonictarget = y.TargetMode === 'External' ? y.Target : resolve_path(y.Target, currentFilePath);\n\t\t\trels[canonictarget] = rel;\n\t\t\thash[y.Id] = rel;\n\t\t}\n\t});\n\trels[\"!id\"] = hash;\n\treturn rels;\n}\n\nXMLNS.RELS = 'http://schemas.openxmlformats.org/package/2006/relationships';\n\nvar RELS_ROOT = writextag('Relationships', null, {\n\t//'xmlns:ns0': XMLNS.RELS,\n\t'xmlns': XMLNS.RELS\n});\n\n/* TODO */\nfunction write_rels(rels) {\n\tvar o = [XML_HEADER, RELS_ROOT];\n\tkeys(rels['!id']).forEach(function(rid) {\n\t\to[o.length] = (writextag('Relationship', null, rels['!id'][rid]));\n\t});\n\tif(o.length>2){ o[o.length] = ('</Relationships>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\nvar RELS_EXTERN = [RELS.HLINK, RELS.XPATH, RELS.XMISS];\nfunction add_rels(rels, rId, f, type, relobj, targetmode) {\n\tif(!relobj) relobj = {};\n\tif(!rels['!id']) rels['!id'] = {};\n\tif(rId < 0) for(rId = 1; rels['!id']['rId' + rId]; ++rId){/* empty */}\n\trelobj.Id = 'rId' + rId;\n\trelobj.Type = type;\n\trelobj.Target = f;\n\tif(targetmode) relobj.TargetMode = targetmode;\n\telse if(RELS_EXTERN.indexOf(relobj.Type) > -1) relobj.TargetMode = \"External\";\n\tif(rels['!id'][relobj.Id]) throw new Error(\"Cannot rewrite rId \" + rId);\n\trels['!id'][relobj.Id] = relobj;\n\trels[('/' + relobj.Target).replace(\"//\",\"/\")] = relobj;\n\treturn rId;\n}\n/* Open Document Format for Office Applications (OpenDocument) Version 1.2 */\n/* Part 3 Section 4 Manifest File */\nvar CT_ODS = \"application/vnd.oasis.opendocument.spreadsheet\";\nfunction parse_manifest(d, opts) {\n\tvar str = xlml_normalize(d);\n\tvar Rn;\n\tvar FEtag;\n\twhile((Rn = xlmlregex.exec(str))) switch(Rn[3]) {\n\t\tcase 'manifest': break; // 4.2 <manifest:manifest>\n\t\tcase 'file-entry': // 4.3 <manifest:file-entry>\n\t\t\tFEtag = parsexmltag(Rn[0], false);\n\t\t\tif(FEtag.path == '/' && FEtag.type !== CT_ODS) throw new Error(\"This OpenDocument is not a spreadsheet\");\n\t\t\tbreak;\n\t\tcase 'encryption-data': // 4.4 <manifest:encryption-data>\n\t\tcase 'algorithm': // 4.5 <manifest:algorithm>\n\t\tcase 'start-key-generation': // 4.6 <manifest:start-key-generation>\n\t\tcase 'key-derivation': // 4.7 <manifest:key-derivation>\n\t\t\tthrow new Error(\"Unsupported ODS Encryption\");\n\t\tdefault: if(opts && opts.WTF) throw Rn;\n\t}\n}\n\nfunction write_manifest(manifest) {\n\tvar o = [XML_HEADER];\n\to.push('<manifest:manifest xmlns:manifest=\"urn:oasis:names:tc:opendocument:xmlns:manifest:1.0\" manifest:version=\"1.2\">\\n');\n\to.push(' <manifest:file-entry manifest:full-path=\"/\" manifest:version=\"1.2\" manifest:media-type=\"application/vnd.oasis.opendocument.spreadsheet\"/>\\n');\n\tfor(var i = 0; i < manifest.length; ++i) o.push(' <manifest:file-entry manifest:full-path=\"' + manifest[i][0] + '\" manifest:media-type=\"' + manifest[i][1] + '\"/>\\n');\n\to.push('</manifest:manifest>');\n\treturn o.join(\"\");\n}\n\n/* Part 3 Section 6 Metadata Manifest File */\nfunction write_rdf_type(file, res, tag) {\n\treturn [\n\t\t' <rdf:Description rdf:about=\"' + file + '\">\\n',\n\t\t' <rdf:type rdf:resource=\"http://docs.oasis-open.org/ns/office/1.2/meta/' + (tag || \"odf\") + '#' + res + '\"/>\\n',\n\t\t' </rdf:Description>\\n'\n\t].join(\"\");\n}\nfunction write_rdf_has(base, file) {\n\treturn [\n\t\t' <rdf:Description rdf:about=\"' + base + '\">\\n',\n\t\t' <ns0:hasPart xmlns:ns0=\"http://docs.oasis-open.org/ns/office/1.2/meta/pkg#\" rdf:resource=\"' + file + '\"/>\\n',\n\t\t' </rdf:Description>\\n'\n\t].join(\"\");\n}\nfunction write_rdf(rdf) {\n\tvar o = [XML_HEADER];\n\to.push('<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\\n');\n\tfor(var i = 0; i != rdf.length; ++i) {\n\t\to.push(write_rdf_type(rdf[i][0], rdf[i][1]));\n\t\to.push(write_rdf_has(\"\",rdf[i][0]));\n\t}\n\to.push(write_rdf_type(\"\",\"Document\", \"pkg\"));\n\to.push('</rdf:RDF>');\n\treturn o.join(\"\");\n}\n/* TODO: pull properties */\nvar write_meta_ods = (function() {\n\tvar payload = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><office:document-meta xmlns:office=\"urn:oasis:names:tc:opendocument:xmlns:office:1.0\" xmlns:meta=\"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" office:version=\"1.2\"><office:meta><meta:generator>Sheet' + 'JS ' + XLSX.version + '</meta:generator></office:meta></office:document-meta>';\n\treturn function wmo() {\n\t\treturn payload;\n\t};\n})();\n\n/* ECMA-376 Part II 11.1 Core Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar CORE_PROPS = [\n\t[\"cp:category\", \"Category\"],\n\t[\"cp:contentStatus\", \"ContentStatus\"],\n\t[\"cp:keywords\", \"Keywords\"],\n\t[\"cp:lastModifiedBy\", \"LastAuthor\"],\n\t[\"cp:lastPrinted\", \"LastPrinted\"],\n\t[\"cp:revision\", \"RevNumber\"],\n\t[\"cp:version\", \"Version\"],\n\t[\"dc:creator\", \"Author\"],\n\t[\"dc:description\", \"Comments\"],\n\t[\"dc:identifier\", \"Identifier\"],\n\t[\"dc:language\", \"Language\"],\n\t[\"dc:subject\", \"Subject\"],\n\t[\"dc:title\", \"Title\"],\n\t[\"dcterms:created\", \"CreatedDate\", 'date'],\n\t[\"dcterms:modified\", \"ModifiedDate\", 'date']\n];\n\nXMLNS.CORE_PROPS = \"http://schemas.openxmlformats.org/package/2006/metadata/core-properties\";\nRELS.CORE_PROPS = 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties';\n\nvar CORE_PROPS_REGEX = (function() {\n\tvar r = new Array(CORE_PROPS.length);\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar g = \"(?:\"+ f[0].slice(0,f[0].indexOf(\":\")) +\":)\"+ f[0].slice(f[0].indexOf(\":\")+1);\n\t\tr[i] = new RegExp(\"<\" + g + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + g + \">\");\n\t}\n\treturn r;\n})();\n\nfunction parse_core_props(data) {\n\tvar p = {};\n\tdata = utf8read(data);\n\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i], cur = data.match(CORE_PROPS_REGEX[i]);\n\t\tif(cur != null && cur.length > 0) p[f[1]] = unescapexml(cur[1]);\n\t\tif(f[2] === 'date' && p[f[1]]) p[f[1]] = parseDate(p[f[1]]);\n\t}\n\n\treturn p;\n}\n\nvar CORE_PROPS_XML_ROOT = writextag('cp:coreProperties', null, {\n\t//'xmlns': XMLNS.CORE_PROPS,\n\t'xmlns:cp': XMLNS.CORE_PROPS,\n\t'xmlns:dc': XMLNS.dc,\n\t'xmlns:dcterms': XMLNS.dcterms,\n\t'xmlns:dcmitype': XMLNS.dcmitype,\n\t'xmlns:xsi': XMLNS.xsi\n});\n\nfunction cp_doit(f, g, h, o, p) {\n\tif(p[f] != null || g == null || g === \"\") return;\n\tp[f] = g;\n\tg = escapexml(g);\n\to[o.length] = (h ? writextag(f,g,h) : writetag(f,g));\n}\n\nfunction write_core_props(cp, _opts) {\n\tvar opts = _opts || {};\n\tvar o = [XML_HEADER, CORE_PROPS_XML_ROOT], p = {};\n\tif(!cp && !opts.Props) return o.join(\"\");\n\n\tif(cp) {\n\t\tif(cp.CreatedDate != null) cp_doit(\"dcterms:created\", typeof cp.CreatedDate === \"string\" ? cp.CreatedDate : write_w3cdtf(cp.CreatedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t\tif(cp.ModifiedDate != null) cp_doit(\"dcterms:modified\", typeof cp.ModifiedDate === \"string\" ? cp.ModifiedDate : write_w3cdtf(cp.ModifiedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t}\n\n\tfor(var i = 0; i != CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar v = opts.Props && opts.Props[f[1]] != null ? opts.Props[f[1]] : cp ? cp[f[1]] : null;\n\t\tif(v === true) v = \"1\";\n\t\telse if(v === false) v = \"0\";\n\t\telse if(typeof v == \"number\") v = String(v);\n\t\tif(v != null) cp_doit(f[0], v, null, o, p);\n\t}\n\tif(o.length>2){ o[o.length] = ('</cp:coreProperties>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.3 Extended File Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar EXT_PROPS = [\n\t[\"Application\", \"Application\", \"string\"],\n\t[\"AppVersion\", \"AppVersion\", \"string\"],\n\t[\"Company\", \"Company\", \"string\"],\n\t[\"DocSecurity\", \"DocSecurity\", \"string\"],\n\t[\"Manager\", \"Manager\", \"string\"],\n\t[\"HyperlinksChanged\", \"HyperlinksChanged\", \"bool\"],\n\t[\"SharedDoc\", \"SharedDoc\", \"bool\"],\n\t[\"LinksUpToDate\", \"LinksUpToDate\", \"bool\"],\n\t[\"ScaleCrop\", \"ScaleCrop\", \"bool\"],\n\t[\"HeadingPairs\", \"HeadingPairs\", \"raw\"],\n\t[\"TitlesOfParts\", \"TitlesOfParts\", \"raw\"]\n];\n\nXMLNS.EXT_PROPS = \"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\";\nRELS.EXT_PROPS = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties';\n\nvar PseudoPropsPairs = [\n\t\"Worksheets\", \"SheetNames\",\n\t\"NamedRanges\", \"DefinedNames\",\n\t\"Chartsheets\", \"ChartNames\"\n];\nfunction load_props_pairs(HP, TOP, props, opts) {\n\tvar v = [];\n\tif(typeof HP == \"string\") v = parseVector(HP, opts);\n\telse for(var j = 0; j < HP.length; ++j) v = v.concat(HP[j].map(function(hp) { return {v:hp}; }));\n\tvar parts = (typeof TOP == \"string\") ? parseVector(TOP, opts).map(function (x) { return x.v; }) : TOP;\n\tvar idx = 0, len = 0;\n\tif(parts.length > 0) for(var i = 0; i !== v.length; i += 2) {\n\t\tlen = +(v[i+1].v);\n\t\tswitch(v[i].v) {\n\t\t\tcase \"Worksheets\":\n\t\t\tcase \"工作表\":\n\t\t\tcase \"Листы\":\n\t\t\tcase \"أوراق العمل\":\n\t\t\tcase \"ワークシート\":\n\t\t\tcase \"גליונות עבודה\":\n\t\t\tcase \"Arbeitsblätter\":\n\t\t\tcase \"Çalışma Sayfaları\":\n\t\t\tcase \"Feuilles de calcul\":\n\t\t\tcase \"Fogli di lavoro\":\n\t\t\tcase \"Folhas de cálculo\":\n\t\t\tcase \"Planilhas\":\n\t\t\tcase \"Regneark\":\n\t\t\tcase \"Hojas de cálculo\":\n\t\t\tcase \"Werkbladen\":\n\t\t\t\tprops.Worksheets = len;\n\t\t\t\tprops.SheetNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Named Ranges\":\n\t\t\tcase \"Rangos con nombre\":\n\t\t\tcase \"名前付き一覧\":\n\t\t\tcase \"Benannte Bereiche\":\n\t\t\tcase \"Navngivne områder\":\n\t\t\t\tprops.NamedRanges = len;\n\t\t\t\tprops.DefinedNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Charts\":\n\t\t\tcase \"Diagramme\":\n\t\t\t\tprops.Chartsheets = len;\n\t\t\t\tprops.ChartNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\t\t}\n\t\tidx += len;\n\t}\n}\n\nfunction parse_ext_props(data, p, opts) {\n\tvar q = {}; if(!p) p = {};\n\tdata = utf8read(data);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tvar xml = (data.match(matchtag(f[0]))||[])[1];\n\t\tswitch(f[2]) {\n\t\t\tcase \"string\": if(xml) p[f[1]] = unescapexml(xml); break;\n\t\t\tcase \"bool\": p[f[1]] = xml === \"true\"; break;\n\t\t\tcase \"raw\":\n\t\t\t\tvar cur = data.match(new RegExp(\"<\" + f[0] + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + f[0] + \">\"));\n\t\t\t\tif(cur && cur.length > 0) q[f[1]] = cur[1];\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\tif(q.HeadingPairs && q.TitlesOfParts) load_props_pairs(q.HeadingPairs, q.TitlesOfParts, p, opts);\n\n\treturn p;\n}\n\nvar EXT_PROPS_XML_ROOT = writextag('Properties', null, {\n\t'xmlns': XMLNS.EXT_PROPS,\n\t'xmlns:vt': XMLNS.vt\n});\n\nfunction write_ext_props(cp) {\n\tvar o = [], W = writextag;\n\tif(!cp) cp = {};\n\tcp.Application = \"SheetJS\";\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (EXT_PROPS_XML_ROOT);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tif(cp[f[1]] === undefined) return;\n\t\tvar v;\n\t\tswitch(f[2]) {\n\t\t\tcase 'string': v = escapexml(String(cp[f[1]])); break;\n\t\t\tcase 'bool': v = cp[f[1]] ? 'true' : 'false'; break;\n\t\t}\n\t\tif(v !== undefined) o[o.length] = (W(f[0], v));\n\t});\n\n\t/* TODO: HeadingPairs, TitlesOfParts */\n\to[o.length] = (W('HeadingPairs', W('vt:vector', W('vt:variant', '<vt:lpstr>Worksheets</vt:lpstr>')+W('vt:variant', W('vt:i4', String(cp.Worksheets))), {size:2, baseType:\"variant\"})));\n\to[o.length] = (W('TitlesOfParts', W('vt:vector', cp.SheetNames.map(function(s) { return \"<vt:lpstr>\" + escapexml(s) + \"</vt:lpstr>\"; }).join(\"\"), {size: cp.Worksheets, baseType:\"lpstr\"})));\n\tif(o.length>2){ o[o.length] = ('</Properties>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.2 Custom File Properties Part */\nXMLNS.CUST_PROPS = \"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\";\nRELS.CUST_PROPS = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties';\n\nvar custregex = /<[^>]+>[^<]*/g;\nfunction parse_cust_props(data, opts) {\n\tvar p = {}, name = \"\";\n\tvar m = data.match(custregex);\n\tif(m) for(var i = 0; i != m.length; ++i) {\n\t\tvar x = m[i], y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '<?xml': break;\n\t\t\tcase '<Properties': break;\n\t\t\tcase '<property': name = unescapexml(y.name); break;\n\t\t\tcase '</property>': name = null; break;\n\t\t\tdefault: if (x.indexOf('<vt:') === 0) {\n\t\t\t\tvar toks = x.split('>');\n\t\t\t\tvar type = toks[0].slice(4), text = toks[1];\n\t\t\t\t/* 22.4.2.32 (CT_Variant). Omit the binary types from 22.4 (Variant Types) */\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase 'lpstr': case 'bstr': case 'lpwstr':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'bool':\n\t\t\t\t\t\tp[name] = parsexmlbool(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'i1': case 'i2': case 'i4': case 'i8': case 'int': case 'uint':\n\t\t\t\t\t\tp[name] = parseInt(text, 10);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'r4': case 'r8': case 'decimal':\n\t\t\t\t\t\tp[name] = parseFloat(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'filetime': case 'date':\n\t\t\t\t\t\tp[name] = parseDate(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'cy': case 'error':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif(type.slice(-1) == '/') break;\n\t\t\t\t\t\tif(opts.WTF && typeof console !== 'undefined') console.warn('Unexpected', x, type, toks);\n\t\t\t\t}\n\t\t\t} else if(x.slice(0,2) === \"</\") {/* empty */\n\t\t\t} else if(opts.WTF) throw new Error(x);\n\t\t}\n\t}\n\treturn p;\n}\n\nvar CUST_PROPS_XML_ROOT = writextag('Properties', null, {\n\t'xmlns': XMLNS.CUST_PROPS,\n\t'xmlns:vt': XMLNS.vt\n});\n\nfunction write_cust_props(cp) {\n\tvar o = [XML_HEADER, CUST_PROPS_XML_ROOT];\n\tif(!cp) return o.join(\"\");\n\tvar pid = 1;\n\tkeys(cp).forEach(function custprop(k) { ++pid;\n\t\to[o.length] = (writextag('property', write_vt(cp[k], true), {\n\t\t\t'fmtid': '{D5CDD505-2E9C-101B-9397-08002B2CF9AE}',\n\t\t\t'pid': pid,\n\t\t\t'name': escapexml(k)\n\t\t}));\n\t});\n\tif(o.length>2){ o[o.length] = '</Properties>'; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* Common Name -> XLML Name */\nvar XLMLDocPropsMap = {\n\tTitle: 'Title',\n\tSubject: 'Subject',\n\tAuthor: 'Author',\n\tKeywords: 'Keywords',\n\tComments: 'Description',\n\tLastAuthor: 'LastAuthor',\n\tRevNumber: 'Revision',\n\tApplication: 'AppName',\n\t/* TotalTime: 'TotalTime', */\n\tLastPrinted: 'LastPrinted',\n\tCreatedDate: 'Created',\n\tModifiedDate: 'LastSaved',\n\t/* Pages */\n\t/* Words */\n\t/* Characters */\n\tCategory: 'Category',\n\t/* PresentationFormat */\n\tManager: 'Manager',\n\tCompany: 'Company',\n\t/* Guid */\n\t/* HyperlinkBase */\n\t/* Bytes */\n\t/* Lines */\n\t/* Paragraphs */\n\t/* CharactersWithSpaces */\n\tAppVersion: 'Version',\n\n\tContentStatus: 'ContentStatus', /* NOTE: missing from schema */\n\tIdentifier: 'Identifier', /* NOTE: missing from schema */\n\tLanguage: 'Language' /* NOTE: missing from schema */\n};\nvar evert_XLMLDPM = evert(XLMLDocPropsMap);\n\nfunction xlml_set_prop(Props, tag, val) {\n\ttag = evert_XLMLDPM[tag] || tag;\n\tProps[tag] = val;\n}\n\nfunction xlml_write_docprops(Props, opts) {\n\tvar o = [];\n\tkeys(XLMLDocPropsMap).map(function(m) {\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(CORE_PROPS[i][1] == m) return CORE_PROPS[i];\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(EXT_PROPS[i][1] == m) return EXT_PROPS[i];\n\t\tthrow m;\n\t}).forEach(function(p) {\n\t\tif(Props[p[1]] == null) return;\n\t\tvar m = opts && opts.Props && opts.Props[p[1]] != null ? opts.Props[p[1]] : Props[p[1]];\n\t\tswitch(p[2]) {\n\t\t\tcase 'date': m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"Z\"); break;\n\t\t}\n\t\tif(typeof m == 'number') m = String(m);\n\t\telse if(m === true || m === false) { m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"\");\n\t\to.push(writetag(XLMLDocPropsMap[p[1]] || p[1], m));\n\t});\n\treturn writextag('DocumentProperties', o.join(\"\"), {xmlns:XLMLNS.o });\n}\nfunction xlml_write_custprops(Props, Custprops) {\n\tvar BLACKLIST = [\"Worksheets\",\"SheetNames\"];\n\tvar T = 'CustomDocumentProperties';\n\tvar o = [];\n\tif(Props) keys(Props).forEach(function(k) {\nif(!Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(k == CORE_PROPS[i][1]) return;\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(k == EXT_PROPS[i][1]) return;\n\t\tfor(i = 0; i < BLACKLIST.length; ++i) if(k == BLACKLIST[i]) return;\n\n\t\tvar m = Props[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\tif(Custprops) keys(Custprops).forEach(function(k) {\nif(!Object.prototype.hasOwnProperty.call(Custprops, k)) return;\n\t\tif(Props && Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tvar m = Custprops[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) { t = \"dateTime.tz\"; m = m.toISOString(); }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\treturn '<' + T + ' xmlns=\"' + XLMLNS.o + '\">' + o.join(\"\") + '</' + T + '>';\n}\n/* [MS-DTYP] 2.3.3 FILETIME */\n/* [MS-OLEDS] 2.1.3 FILETIME (Packet Version) */\n/* [MS-OLEPS] 2.8 FILETIME (Packet Version) */\nfunction parse_FILETIME(blob) {\n\tvar dwLowDateTime = blob.read_shift(4), dwHighDateTime = blob.read_shift(4);\n\treturn new Date(((dwHighDateTime/1e7*Math.pow(2,32) + dwLowDateTime/1e7) - 11644473600)*1000).toISOString().replace(/\\.000/,\"\");\n}\nfunction write_FILETIME(time) {\n\tvar date = (typeof time == \"string\") ? new Date(Date.parse(time)) : time;\n\tvar t = date.getTime() / 1000 + 11644473600;\n\tvar l = t % Math.pow(2,32), h = (t - l) / Math.pow(2,32);\n\tl *= 1e7; h *= 1e7;\n\tvar w = (l / Math.pow(2,32)) | 0;\n\tif(w > 0) { l = l % Math.pow(2,32); h += w; }\n\tvar o = new_buf(8); o.write_shift(4, l); o.write_shift(4, h); return o;\n}\n\n/* [MS-OSHARED] 2.3.3.1.4 Lpstr */\nfunction parse_lpstr(blob, type, pad) {\n\tvar start = blob.l;\n\tvar str = blob.read_shift(0, 'lpstr-cp');\n\tif(pad) while((blob.l - start) & 3) ++blob.l;\n\treturn str;\n}\n\n/* [MS-OSHARED] 2.3.3.1.6 Lpwstr */\nfunction parse_lpwstr(blob, type, pad) {\n\tvar str = blob.read_shift(0, 'lpwstr');\n\tif(pad) blob.l += (4 - ((str.length+1) & 3)) & 3;\n\treturn str;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.11 VtString */\n/* [MS-OSHARED] 2.3.3.1.12 VtUnalignedString */\nfunction parse_VtStringBase(blob, stringType, pad) {\n\tif(stringType === 0x1F /*VT_LPWSTR*/) return parse_lpwstr(blob);\n\treturn parse_lpstr(blob, stringType, pad);\n}\n\nfunction parse_VtString(blob, t, pad) { return parse_VtStringBase(blob, t, pad === false ? 0: 4); }\nfunction parse_VtUnalignedString(blob, t) { if(!t) throw new Error(\"VtUnalignedString must have positive length\"); return parse_VtStringBase(blob, t, 0); }\n\n/* [MS-OSHARED] 2.3.3.1.9 VtVecUnalignedLpstrValue */\nfunction parse_VtVecUnalignedLpstrValue(blob) {\n\tvar length = blob.read_shift(4);\n\tvar ret = [];\n\tfor(var i = 0; i != length; ++i) ret[i] = blob.read_shift(0, 'lpstr-cp').replace(chr0,'');\n\treturn ret;\n}\n\n/* [MS-OSHARED] 2.3.3.1.10 VtVecUnalignedLpstr */\nfunction parse_VtVecUnalignedLpstr(blob) {\n\treturn parse_VtVecUnalignedLpstrValue(blob);\n}\n\n/* [MS-OSHARED] 2.3.3.1.13 VtHeadingPair */\nfunction parse_VtHeadingPair(blob) {\n\tvar headingString = parse_TypedPropertyValue(blob, VT_USTR);\n\tvar headerParts = parse_TypedPropertyValue(blob, VT_I4);\n\treturn [headingString, headerParts];\n}\n\n/* [MS-OSHARED] 2.3.3.1.14 VtVecHeadingPairValue */\nfunction parse_VtVecHeadingPairValue(blob) {\n\tvar cElements = blob.read_shift(4);\n\tvar out = [];\n\tfor(var i = 0; i != cElements / 2; ++i) out.push(parse_VtHeadingPair(blob));\n\treturn out;\n}\n\n/* [MS-OSHARED] 2.3.3.1.15 VtVecHeadingPair */\nfunction parse_VtVecHeadingPair(blob) {\n\t// NOTE: When invoked, wType & padding were already consumed\n\treturn parse_VtVecHeadingPairValue(blob);\n}\n\n/* [MS-OLEPS] 2.18.1 Dictionary (uses 2.17, 2.16) */\nfunction parse_dictionary(blob,CodePage) {\n\tvar cnt = blob.read_shift(4);\n\tvar dict = ({});\n\tfor(var j = 0; j != cnt; ++j) {\n\t\tvar pid = blob.read_shift(4);\n\t\tvar len = blob.read_shift(4);\n\t\tdict[pid] = blob.read_shift(len, (CodePage === 0x4B0 ?'utf16le':'utf8')).replace(chr0,'').replace(chr1,'!');\n\t\tif(CodePage === 0x4B0 && (len % 2)) blob.l += 2;\n\t}\n\tif(blob.l & 3) blob.l = (blob.l>>2+1)<<2;\n\treturn dict;\n}\n\n/* [MS-OLEPS] 2.9 BLOB */\nfunction parse_BLOB(blob) {\n\tvar size = blob.read_shift(4);\n\tvar bytes = blob.slice(blob.l,blob.l+size);\n\tblob.l += size;\n\tif((size & 3) > 0) blob.l += (4 - (size & 3)) & 3;\n\treturn bytes;\n}\n\n/* [MS-OLEPS] 2.11 ClipboardData */\nfunction parse_ClipboardData(blob) {\n\t// TODO\n\tvar o = {};\n\to.Size = blob.read_shift(4);\n\t//o.Format = blob.read_shift(4);\n\tblob.l += o.Size + 3 - (o.Size - 1) % 4;\n\treturn o;\n}\n\n/* [MS-OLEPS] 2.15 TypedPropertyValue */\nfunction parse_TypedPropertyValue(blob, type, _opts) {\n\tvar t = blob.read_shift(2), ret, opts = _opts||{};\n\tblob.l += 2;\n\tif(type !== VT_VARIANT)\n\tif(t !== type && VT_CUSTOM.indexOf(type)===-1) throw new Error('Expected type ' + type + ' saw ' + t);\n\tswitch(type === VT_VARIANT ? t : type) {\n\t\tcase 0x02 /*VT_I2*/: ret = blob.read_shift(2, 'i'); if(!opts.raw) blob.l += 2; return ret;\n\t\tcase 0x03 /*VT_I4*/: ret = blob.read_shift(4, 'i'); return ret;\n\t\tcase 0x0B /*VT_BOOL*/: return blob.read_shift(4) !== 0x0;\n\t\tcase 0x13 /*VT_UI4*/: ret = blob.read_shift(4); return ret;\n\t\tcase 0x1E /*VT_LPSTR*/: return parse_lpstr(blob, t, 4).replace(chr0,'');\n\t\tcase 0x1F /*VT_LPWSTR*/: return parse_lpwstr(blob);\n\t\tcase 0x40 /*VT_FILETIME*/: return parse_FILETIME(blob);\n\t\tcase 0x41 /*VT_BLOB*/: return parse_BLOB(blob);\n\t\tcase 0x47 /*VT_CF*/: return parse_ClipboardData(blob);\n\t\tcase 0x50 /*VT_STRING*/: return parse_VtString(blob, t, !opts.raw).replace(chr0,'');\n\t\tcase 0x51 /*VT_USTR*/: return parse_VtUnalignedString(blob, t/*, 4*/).replace(chr0,'');\n\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: return parse_VtVecHeadingPair(blob);\n\t\tcase 0x101E /*VT_LPSTR*/: return parse_VtVecUnalignedLpstr(blob);\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + t);\n\t}\n}\nfunction write_TypedPropertyValue(type, value) {\n\tvar o = new_buf(4), p = new_buf(4);\n\to.write_shift(4, type == 0x50 ? 0x1F : type);\n\tswitch(type) {\n\t\tcase 0x03 /*VT_I4*/: p.write_shift(-4, value); break;\n\t\tcase 0x05 /*VT_I4*/: p = new_buf(8); p.write_shift(8, value, 'f'); break;\n\t\tcase 0x0B /*VT_BOOL*/: p.write_shift(4, value ? 0x01 : 0x00); break;\n\t\tcase 0x40 /*VT_FILETIME*/: p = write_FILETIME(value); break;\n\t\tcase 0x1F /*VT_LPWSTR*/:\n\t\tcase 0x50 /*VT_STRING*/:\np = new_buf(4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tp.write_shift(4, value.length + 1);\n\t\t\tp.write_shift(0, value, \"dbcs\");\n\t\t\twhile(p.l != p.length) p.write_shift(1, 0);\n\t\t\tbreak;\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + value);\n\t}\n\treturn bconcat([o, p]);\n}\n\n/* [MS-OLEPS] 2.20 PropertySet */\nfunction parse_PropertySet(blob, PIDSI) {\n\tvar start_addr = blob.l;\n\tvar size = blob.read_shift(4);\n\tvar NumProps = blob.read_shift(4);\n\tvar Props = [], i = 0;\n\tvar CodePage = 0;\n\tvar Dictionary = -1, DictObj = ({});\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tvar PropID = blob.read_shift(4);\n\t\tvar Offset = blob.read_shift(4);\n\t\tProps[i] = [PropID, Offset + start_addr];\n\t}\n\tProps.sort(function(x,y) { return x[1] - y[1]; });\n\tvar PropH = {};\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tif(blob.l !== Props[i][1]) {\n\t\t\tvar fail = true;\n\t\t\tif(i>0 && PIDSI) switch(PIDSI[Props[i-1][0]].t) {\n\t\t\t\tcase 0x02 /*VT_I2*/: if(blob.l+2 === Props[i][1]) { blob.l+=2; fail = false; } break;\n\t\t\t\tcase 0x50 /*VT_STRING*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t}\n\t\t\tif((!PIDSI||i==0) && blob.l <= Props[i][1]) { fail=false; blob.l = Props[i][1]; }\n\t\t\tif(fail) throw new Error(\"Read Error: Expected address \" + Props[i][1] + ' at ' + blob.l + ' :' + i);\n\t\t}\n\t\tif(PIDSI) {\n\t\t\tvar piddsi = PIDSI[Props[i][0]];\n\t\t\tPropH[piddsi.n] = parse_TypedPropertyValue(blob, piddsi.t, {raw:true});\n\t\t\tif(piddsi.p === 'version') PropH[piddsi.n] = String(PropH[piddsi.n] >> 16) + \".\" + (\"0000\" + String(PropH[piddsi.n] & 0xFFFF)).slice(-4);\n\t\t\tif(piddsi.n == \"CodePage\") switch(PropH[piddsi.n]) {\n\t\t\t\tcase 0: PropH[piddsi.n] = 1252;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 874:\n\t\t\t\tcase 932:\n\t\t\t\tcase 936:\n\t\t\t\tcase 949:\n\t\t\t\tcase 950:\n\t\t\t\tcase 1250:\n\t\t\t\tcase 1251:\n\t\t\t\tcase 1253:\n\t\t\t\tcase 1254:\n\t\t\t\tcase 1255:\n\t\t\t\tcase 1256:\n\t\t\t\tcase 1257:\n\t\t\t\tcase 1258:\n\t\t\t\tcase 10000:\n\t\t\t\tcase 1200:\n\t\t\t\tcase 1201:\n\t\t\t\tcase 1252:\n\t\t\t\tcase 65000: case -536:\n\t\t\t\tcase 65001: case -535:\n\t\t\t\t\tset_cp(CodePage = (PropH[piddsi.n]>>>0) & 0xFFFF); break;\n\t\t\t\tdefault: throw new Error(\"Unsupported CodePage: \" + PropH[piddsi.n]);\n\t\t\t}\n\t\t} else {\n\t\t\tif(Props[i][0] === 0x1) {\n\t\t\t\tCodePage = PropH.CodePage = (parse_TypedPropertyValue(blob, VT_I2));\n\t\t\t\tset_cp(CodePage);\n\t\t\t\tif(Dictionary !== -1) {\n\t\t\t\t\tvar oldpos = blob.l;\n\t\t\t\t\tblob.l = Props[Dictionary][1];\n\t\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t\t\tblob.l = oldpos;\n\t\t\t\t}\n\t\t\t} else if(Props[i][0] === 0) {\n\t\t\t\tif(CodePage === 0) { Dictionary = i; blob.l = Props[i+1][1]; continue; }\n\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t} else {\n\t\t\t\tvar name = DictObj[Props[i][0]];\n\t\t\t\tvar val;\n\t\t\t\t/* [MS-OSHARED] 2.3.3.2.3.1.2 + PROPVARIANT */\n\t\t\t\tswitch(blob[blob.l]) {\n\t\t\t\t\tcase 0x41 /*VT_BLOB*/: blob.l += 4; val = parse_BLOB(blob); break;\n\t\t\t\t\tcase 0x1E /*VT_LPSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x1F /*VT_LPWSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x03 /*VT_I4*/: blob.l += 4; val = blob.read_shift(4, 'i'); break;\n\t\t\t\t\tcase 0x13 /*VT_UI4*/: blob.l += 4; val = blob.read_shift(4); break;\n\t\t\t\t\tcase 0x05 /*VT_R8*/: blob.l += 4; val = blob.read_shift(8, 'f'); break;\n\t\t\t\t\tcase 0x0B /*VT_BOOL*/: blob.l += 4; val = parsebool(blob, 4); break;\n\t\t\t\t\tcase 0x40 /*VT_FILETIME*/: blob.l += 4; val = parseDate(parse_FILETIME(blob)); break;\n\t\t\t\t\tdefault: throw new Error(\"unparsed value: \" + blob[blob.l]);\n\t\t\t\t}\n\t\t\t\tPropH[name] = val;\n\t\t\t}\n\t\t}\n\t}\n\tblob.l = start_addr + size; /* step ahead to skip padding */\n\treturn PropH;\n}\nvar XLSPSSkip = [ \"CodePage\", \"Thumbnail\", \"_PID_LINKBASE\", \"_PID_HLINKS\", \"SystemIdentifier\", \"FMTID\" ].concat(PseudoPropsPairs);\nfunction guess_property_type(val) {\n\tswitch(typeof val) {\n\t\tcase \"boolean\": return 0x0B;\n\t\tcase \"number\": return ((val|0)==val) ? 0x03 : 0x05;\n\t\tcase \"string\": return 0x1F;\n\t\tcase \"object\": if(val instanceof Date) return 0x40; break;\n\t}\n\treturn -1;\n}\nfunction write_PropertySet(entries, RE, PIDSI) {\n\tvar hdr = new_buf(8), piao = [], prop = [];\n\tvar sz = 8, i = 0;\n\n\tvar pr = new_buf(8), pio = new_buf(8);\n\tpr.write_shift(4, 0x0002);\n\tpr.write_shift(4, 0x04B0);\n\tpio.write_shift(4, 0x0001);\n\tprop.push(pr); piao.push(pio);\n\tsz += 8 + pr.length;\n\n\tif(!RE) {\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, 0);\n\t\tpiao.unshift(pio);\n\n\t\tvar bufs = [new_buf(4)];\n\t\tbufs[0].write_shift(4, entries.length);\n\t\tfor(i = 0; i < entries.length; ++i) {\n\t\t\tvar value = entries[i][0];\n\t\t\tpr = new_buf(4 + 4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tpr.write_shift(4, i+2);\n\t\t\tpr.write_shift(4, value.length + 1);\n\t\t\tpr.write_shift(0, value, \"dbcs\");\n\t\t\twhile(pr.l != pr.length) pr.write_shift(1, 0);\n\t\t\tbufs.push(pr);\n\t\t}\n\t\tpr = bconcat(bufs);\n\t\tprop.unshift(pr);\n\t\tsz += 8 + pr.length;\n\t}\n\n\tfor(i = 0; i < entries.length; ++i) {\n\t\tif(RE && !RE[entries[i][0]]) continue;\n\t\tif(XLSPSSkip.indexOf(entries[i][0]) > -1) continue;\n\t\tif(entries[i][1] == null) continue;\n\n\t\tvar val = entries[i][1], idx = 0;\n\t\tif(RE) {\n\t\t\tidx = +RE[entries[i][0]];\n\t\t\tvar pinfo = (PIDSI)[idx];\n\t\t\tif(pinfo.p == \"version\" && typeof val == \"string\") {\nvar arr = val.split(\".\");\n\t\t\t\tval = ((+arr[0])<<16) + ((+arr[1])||0);\n\t\t\t}\n\t\t\tpr = write_TypedPropertyValue(pinfo.t, val);\n\t\t} else {\n\t\t\tvar T = guess_property_type(val);\n\t\t\tif(T == -1) { T = 0x1F; val = String(val); }\n\t\t\tpr = write_TypedPropertyValue(T, val);\n\t\t}\n\t\tprop.push(pr);\n\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, !RE ? 2+i : idx);\n\t\tpiao.push(pio);\n\n\t\tsz += 8 + pr.length;\n\t}\n\n\tvar w = 8 * (prop.length + 1);\n\tfor(i = 0; i < prop.length; ++i) { piao[i].write_shift(4, w); w += prop[i].length; }\n\thdr.write_shift(4, sz);\n\thdr.write_shift(4, prop.length);\n\treturn bconcat([hdr].concat(piao).concat(prop));\n}\n\n/* [MS-OLEPS] 2.21 PropertySetStream */\nfunction parse_PropertySetStream(file, PIDSI, clsid) {\n\tvar blob = file.content;\n\tif(!blob) return ({});\n\tprep_blob(blob, 0);\n\n\tvar NumSets, FMTID0, FMTID1, Offset0, Offset1 = 0;\n\tblob.chk('feff', 'Byte Order: ');\n\n\t/*var vers = */blob.read_shift(2); // TODO: check version\n\tvar SystemIdentifier = blob.read_shift(4);\n\tvar CLSID = blob.read_shift(16);\n\tif(CLSID !== CFB.utils.consts.HEADER_CLSID && CLSID !== clsid) throw new Error(\"Bad PropertySet CLSID \" + CLSID);\n\tNumSets = blob.read_shift(4);\n\tif(NumSets !== 1 && NumSets !== 2) throw new Error(\"Unrecognized #Sets: \" + NumSets);\n\tFMTID0 = blob.read_shift(16); Offset0 = blob.read_shift(4);\n\n\tif(NumSets === 1 && Offset0 !== blob.l) throw new Error(\"Length mismatch: \" + Offset0 + \" !== \" + blob.l);\n\telse if(NumSets === 2) { FMTID1 = blob.read_shift(16); Offset1 = blob.read_shift(4); }\n\tvar PSet0 = parse_PropertySet(blob, PIDSI);\n\n\tvar rval = ({ SystemIdentifier: SystemIdentifier });\n\tfor(var y in PSet0) rval[y] = PSet0[y];\n\t//rval.blob = blob;\n\trval.FMTID = FMTID0;\n\t//rval.PSet0 = PSet0;\n\tif(NumSets === 1) return rval;\n\tif(Offset1 - blob.l == 2) blob.l += 2;\n\tif(blob.l !== Offset1) throw new Error(\"Length mismatch 2: \" + blob.l + \" !== \" + Offset1);\n\tvar PSet1;\n\ttry { PSet1 = parse_PropertySet(blob, null); } catch(e) {/* empty */}\n\tfor(y in PSet1) rval[y] = PSet1[y];\n\trval.FMTID = [FMTID0, FMTID1]; // TODO: verify FMTID0/1\n\treturn rval;\n}\nfunction write_PropertySetStream(entries, clsid, RE, PIDSI, entries2, clsid2) {\n\tvar hdr = new_buf(entries2 ? 68 : 48);\n\tvar bufs = [hdr];\n\thdr.write_shift(2, 0xFFFE);\n\thdr.write_shift(2, 0x0000); /* TODO: type 1 props */\n\thdr.write_shift(4, 0x32363237);\n\thdr.write_shift(16, CFB.utils.consts.HEADER_CLSID, \"hex\");\n\thdr.write_shift(4, (entries2 ? 2 : 1));\n\thdr.write_shift(16, clsid, \"hex\");\n\thdr.write_shift(4, (entries2 ? 68 : 48));\n\tvar ps0 = write_PropertySet(entries, RE, PIDSI);\n\tbufs.push(ps0);\n\n\tif(entries2) {\n\t\tvar ps1 = write_PropertySet(entries2, null, null);\n\t\thdr.write_shift(16, clsid2, \"hex\");\n\t\thdr.write_shift(4, 68 + ps0.length);\n\t\tbufs.push(ps1);\n\t}\n\treturn bconcat(bufs);\n}\n\nfunction parsenoop2(blob, length) { blob.read_shift(length); return null; }\nfunction writezeroes(n, o) { if(!o) o=new_buf(n); for(var j=0; j<n; ++j) o.write_shift(1, 0); return o; }\n\nfunction parslurp(blob, length, cb) {\n\tvar arr = [], target = blob.l + length;\n\twhile(blob.l < target) arr.push(cb(blob, target - blob.l));\n\tif(target !== blob.l) throw new Error(\"Slurp error\");\n\treturn arr;\n}\n\nfunction parsebool(blob, length) { return blob.read_shift(length) === 0x1; }\nfunction writebool(v, o) { if(!o) o=new_buf(2); o.write_shift(2, +!!v); return o; }\n\nfunction parseuint16(blob) { return blob.read_shift(2, 'u'); }\nfunction writeuint16(v, o) { if(!o) o=new_buf(2); o.write_shift(2, v); return o; }\nfunction parseuint16a(blob, length) { return parslurp(blob,length,parseuint16);}\n\n/* --- 2.5 Structures --- */\n\n/* [MS-XLS] 2.5.10 Bes (boolean or error) */\nfunction parse_Bes(blob) {\n\tvar v = blob.read_shift(1), t = blob.read_shift(1);\n\treturn t === 0x01 ? v : v === 0x01;\n}\nfunction write_Bes(v, t, o) {\n\tif(!o) o = new_buf(2);\n\to.write_shift(1, +v);\n\to.write_shift(1, ((t == 'e') ? 1 : 0));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.240 ShortXLUnicodeString */\nfunction parse_ShortXLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff >= 12 ? 2 : 1);\n\tvar encoding = 'sbcs-cont';\n\tvar cp = current_codepage;\n\tif(opts && opts.biff >= 8) current_codepage = 1200;\n\tif(!opts || opts.biff == 8 ) {\n\t\tvar fHighByte = blob.read_shift(1);\n\t\tif(fHighByte) { encoding = 'dbcs-cont'; }\n\t} else if(opts.biff == 12) {\n\t\tencoding = 'wstr';\n\t}\n\tif(opts.biff >= 2 && opts.biff <= 5) encoding = 'cpstr';\n\tvar o = cch ? blob.read_shift(cch, encoding) : \"\";\n\tcurrent_codepage = cp;\n\treturn o;\n}\n\n/* 2.5.293 XLUnicodeRichExtendedString */\nfunction parse_XLUnicodeRichExtendedString(blob) {\n\tvar cp = current_codepage;\n\tcurrent_codepage = 1200;\n\tvar cch = blob.read_shift(2), flags = blob.read_shift(1);\n\tvar /*fHighByte = flags & 0x1,*/ fExtSt = flags & 0x4, fRichSt = flags & 0x8;\n\tvar width = 1 + (flags & 0x1); // 0x0 -> utf8, 0x1 -> dbcs\n\tvar cRun = 0, cbExtRst;\n\tvar z = {};\n\tif(fRichSt) cRun = blob.read_shift(2);\n\tif(fExtSt) cbExtRst = blob.read_shift(4);\n\tvar encoding = width == 2 ? 'dbcs-cont' : 'sbcs-cont';\n\tvar msg = cch === 0 ? \"\" : blob.read_shift(cch, encoding);\n\tif(fRichSt) blob.l += 4 * cRun; //TODO: parse this\n\tif(fExtSt) blob.l += cbExtRst; //TODO: parse this\n\tz.t = msg;\n\tif(!fRichSt) { z.raw = \"<t>\" + z.t + \"</t>\"; z.r = z.t; }\n\tcurrent_codepage = cp;\n\treturn z;\n}\nfunction write_XLUnicodeRichExtendedString(xlstr) {\n\tvar str = (xlstr.t||\"\"), nfmts = 1;\n\n\tvar hdr = new_buf(3 + (nfmts > 1 ? 2 : 0));\n\thdr.write_shift(2, str.length);\n\thdr.write_shift(1, (nfmts > 1 ? 0x08 : 0x00) | 0x01);\n\tif(nfmts > 1) hdr.write_shift(2, nfmts);\n\n\tvar otext = new_buf(2 * str.length);\n\totext.write_shift(2 * str.length, str, 'utf16le');\n\n\tvar out = [hdr, otext];\n\n\treturn bconcat(out);\n}\n\n/* 2.5.296 XLUnicodeStringNoCch */\nfunction parse_XLUnicodeStringNoCch(blob, cch, opts) {\n\tvar retval;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return blob.read_shift(cch, 'cpstr');\n\t\tif(opts.biff >= 12) return blob.read_shift(cch, 'dbcs-cont');\n\t}\n\tvar fHighByte = blob.read_shift(1);\n\tif(fHighByte===0) { retval = blob.read_shift(cch, 'sbcs-cont'); }\n\telse { retval = blob.read_shift(cch, 'dbcs-cont'); }\n\treturn retval;\n}\n\n/* 2.5.294 XLUnicodeString */\nfunction parse_XLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn parse_XLUnicodeStringNoCch(blob, cch, opts);\n}\n/* BIFF5 override */\nfunction parse_XLUnicodeString2(blob, length, opts) {\n\tif(opts.biff > 5) return parse_XLUnicodeString(blob, length, opts);\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, (opts.biff <= 4 || !blob.lens ) ? 'cpstr' : 'sbcs-cont');\n}\n/* TODO: BIFF5 and lower, codepage awareness */\nfunction write_XLUnicodeString(str, opts, o) {\n\tif(!o) o = new_buf(3 + 2 * str.length);\n\to.write_shift(2, str.length);\n\to.write_shift(1, 1);\n\to.write_shift(31, str, 'utf16le');\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.61 ControlInfo */\nfunction parse_ControlInfo(blob) {\n\tvar flags = blob.read_shift(1);\n\tblob.l++;\n\tvar accel = blob.read_shift(2);\n\tblob.l += 2;\n\treturn [flags, accel];\n}\n\n/* [MS-OSHARED] 2.3.7.6 URLMoniker TODO: flags */\nfunction parse_URLMoniker(blob) {\n\tvar len = blob.read_shift(4), start = blob.l;\n\tvar extra = false;\n\tif(len > 24) {\n\t\t/* look ahead */\n\t\tblob.l += len - 24;\n\t\tif(blob.read_shift(16) === \"795881f43b1d7f48af2c825dc4852763\") extra = true;\n\t\tblob.l = start;\n\t}\n\tvar url = blob.read_shift((extra?len-24:len)>>1, 'utf16le').replace(chr0,\"\");\n\tif(extra) blob.l += 24;\n\treturn url;\n}\n\n/* [MS-OSHARED] 2.3.7.8 FileMoniker TODO: all fields */\nfunction parse_FileMoniker(blob) {\n\tblob.l += 2; //var cAnti = blob.read_shift(2);\n\tvar ansiPath = blob.read_shift(0, 'lpstr-ansi');\n\tblob.l += 2; //var endServer = blob.read_shift(2);\n\tif(blob.read_shift(2) != 0xDEAD) throw new Error(\"Bad FileMoniker\");\n\tvar sz = blob.read_shift(4);\n\tif(sz === 0) return ansiPath.replace(/\\\\/g,\"/\");\n\tvar bytes = blob.read_shift(4);\n\tif(blob.read_shift(2) != 3) throw new Error(\"Bad FileMoniker\");\n\tvar unicodePath = blob.read_shift(bytes>>1, 'utf16le').replace(chr0,\"\");\n\treturn unicodePath;\n}\n\n/* [MS-OSHARED] 2.3.7.2 HyperlinkMoniker TODO: all the monikers */\nfunction parse_HyperlinkMoniker(blob, length) {\n\tvar clsid = blob.read_shift(16); length -= 16;\n\tswitch(clsid) {\n\t\tcase \"e0c9ea79f9bace118c8200aa004ba90b\": return parse_URLMoniker(blob, length);\n\t\tcase \"0303000000000000c000000000000046\": return parse_FileMoniker(blob, length);\n\t\tdefault: throw new Error(\"Unsupported Moniker \" + clsid);\n\t}\n}\n\n/* [MS-OSHARED] 2.3.7.9 HyperlinkString */\nfunction parse_HyperlinkString(blob) {\n\tvar len = blob.read_shift(4);\n\tvar o = len > 0 ? blob.read_shift(len, 'utf16le').replace(chr0, \"\") : \"\";\n\treturn o;\n}\n\n/* [MS-OSHARED] 2.3.7.1 Hyperlink Object */\nfunction parse_Hyperlink(blob, length) {\n\tvar end = blob.l + length;\n\tvar sVer = blob.read_shift(4);\n\tif(sVer !== 2) throw new Error(\"Unrecognized streamVersion: \" + sVer);\n\tvar flags = blob.read_shift(2);\n\tblob.l += 2;\n\tvar displayName, targetFrameName, moniker, oleMoniker, Loc=\"\", guid, fileTime;\n\tif(flags & 0x0010) displayName = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0080) targetFrameName = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0101) moniker = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0001) oleMoniker = parse_HyperlinkMoniker(blob, end - blob.l);\n\tif(flags & 0x0008) Loc = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0020) guid = blob.read_shift(16);\n\tif(flags & 0x0040) fileTime = parse_FILETIME(blob/*, 8*/);\n\tblob.l = end;\n\tvar target = targetFrameName||moniker||oleMoniker||\"\";\n\tif(target && Loc) target+=\"#\"+Loc;\n\tif(!target) target = \"#\" + Loc;\n\tvar out = ({Target:target});\n\tif(guid) out.guid = guid;\n\tif(fileTime) out.time = fileTime;\n\tif(displayName) out.Tooltip = displayName;\n\treturn out;\n}\nfunction write_Hyperlink(hl) {\n\tvar out = new_buf(512), i = 0;\n\tvar Target = hl.Target;\n\tvar F = Target.indexOf(\"#\") > -1 ? 0x1f : 0x17;\n\tswitch(Target.charAt(0)) { case \"#\": F=0x1c; break; case \".\": F&=~2; break; }\n\tout.write_shift(4,2); out.write_shift(4, F);\n\tvar data = [8,6815827,6619237,4849780,83]; for(i = 0; i < data.length; ++i) out.write_shift(4, data[i]);\n\tif(F == 0x1C) {\n\t\tTarget = Target.slice(1);\n\t\tout.write_shift(4, Target.length + 1);\n\t\tfor(i = 0; i < Target.length; ++i) out.write_shift(2, Target.charCodeAt(i));\n\t\tout.write_shift(2, 0);\n\t} else if(F & 0x02) {\n\t\tdata = \"e0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tout.write_shift(4, 2*(Target.length + 1));\n\t\tfor(i = 0; i < Target.length; ++i) out.write_shift(2, Target.charCodeAt(i));\n\t\tout.write_shift(2, 0);\n\t} else {\n\t\tdata = \"03 03 00 00 00 00 00 00 c0 00 00 00 00 00 00 46\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar P = 0;\n\t\twhile(Target.slice(P*3,P*3+3)==\"../\"||Target.slice(P*3,P*3+3)==\"..\\\\\") ++P;\n\t\tout.write_shift(2, P);\n\t\tout.write_shift(4, Target.length + 1);\n\t\tfor(i = 0; i < Target.length; ++i) out.write_shift(1, Target.charCodeAt(i) & 0xFF);\n\t\tout.write_shift(1, 0);\n\t\tout.write_shift(2, 0xFFFF);\n\t\tout.write_shift(2, 0xDEAD);\n\t\tfor(i = 0; i < 6; ++i) out.write_shift(4, 0);\n\t}\n\treturn out.slice(0, out.l);\n}\n\n/* 2.5.178 LongRGBA */\nfunction parse_LongRGBA(blob) { var r = blob.read_shift(1), g = blob.read_shift(1), b = blob.read_shift(1), a = blob.read_shift(1); return [r,g,b,a]; }\n\n/* 2.5.177 LongRGB */\nfunction parse_LongRGB(blob, length) { var x = parse_LongRGBA(blob, length); x[3] = 0; return x; }\n\n\n/* [MS-XLS] 2.5.19 */\nfunction parse_XLSCell(blob) {\n\tvar rw = blob.read_shift(2); // 0-indexed\n\tvar col = blob.read_shift(2);\n\tvar ixfe = blob.read_shift(2);\n\treturn ({r:rw, c:col, ixfe:ixfe});\n}\nfunction write_XLSCell(R, C, ixfe, o) {\n\tif(!o) o = new_buf(6);\n\to.write_shift(2, R);\n\to.write_shift(2, C);\n\to.write_shift(2, ixfe||0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.134 */\nfunction parse_frtHeader(blob) {\n\tvar rt = blob.read_shift(2);\n\tvar flags = blob.read_shift(2); // TODO: parse these flags\n\tblob.l += 8;\n\treturn {type: rt, flags: flags};\n}\n\n\n\nfunction parse_OptXLUnicodeString(blob, length, opts) { return length === 0 ? \"\" : parse_XLUnicodeString2(blob, length, opts); }\n\n/* [MS-XLS] 2.5.344 */\nfunction parse_XTI(blob, length, opts) {\n\tvar w = opts.biff > 8 ? 4 : 2;\n\tvar iSupBook = blob.read_shift(w), itabFirst = blob.read_shift(w,'i'), itabLast = blob.read_shift(w,'i');\n\treturn [iSupBook, itabFirst, itabLast];\n}\n\n/* [MS-XLS] 2.5.218 */\nfunction parse_RkRec(blob) {\n\tvar ixfe = blob.read_shift(2);\n\tvar RK = parse_RkNumber(blob);\n\treturn [ixfe, RK];\n}\n\n/* [MS-XLS] 2.5.1 */\nfunction parse_AddinUdf(blob, length, opts) {\n\tblob.l += 4; length -= 4;\n\tvar l = blob.l + length;\n\tvar udfName = parse_ShortXLUnicodeString(blob, length, opts);\n\tvar cb = blob.read_shift(2);\n\tl -= blob.l;\n\tif(cb !== l) throw new Error(\"Malformed AddinUdf: padding = \" + l + \" != \" + cb);\n\tblob.l += cb;\n\treturn udfName;\n}\n\n/* [MS-XLS] 2.5.209 TODO: Check sizes */\nfunction parse_Ref8U(blob) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(2);\n\tvar colLast = blob.read_shift(2);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\nfunction write_Ref8U(r, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(2, r.s.r);\n\to.write_shift(2, r.e.r);\n\to.write_shift(2, r.s.c);\n\to.write_shift(2, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.211 */\nfunction parse_RefU(blob) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(1);\n\tvar colLast = blob.read_shift(1);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\n\n/* [MS-XLS] 2.5.207 */\nvar parse_Ref = parse_RefU;\n\n/* [MS-XLS] 2.5.143 */\nfunction parse_FtCmo(blob) {\n\tblob.l += 4;\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tblob.l+=12;\n\treturn [id, ot, flags];\n}\n\n/* [MS-XLS] 2.5.149 */\nfunction parse_FtNts(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.l += 16; // GUID TODO\n\tout.fSharedNote = blob.read_shift(2);\n\tblob.l += 4;\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.142 */\nfunction parse_FtCf(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.cf = blob.read_shift(2);\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.140 - 2.5.154 and friends */\nfunction parse_FtSkip(blob) { blob.l += 2; blob.l += blob.read_shift(2); }\nvar FtTab = {\n0x00: parse_FtSkip, /* FtEnd */\n0x04: parse_FtSkip, /* FtMacro */\n0x05: parse_FtSkip, /* FtButton */\n0x06: parse_FtSkip, /* FtGmo */\n0x07: parse_FtCf, /* FtCf */\n0x08: parse_FtSkip, /* FtPioGrbit */\n0x09: parse_FtSkip, /* FtPictFmla */\n0x0A: parse_FtSkip, /* FtCbls */\n0x0B: parse_FtSkip, /* FtRbo */\n0x0C: parse_FtSkip, /* FtSbs */\n0x0D: parse_FtNts, /* FtNts */\n0x0E: parse_FtSkip, /* FtSbsFmla */\n0x0F: parse_FtSkip, /* FtGboData */\n0x10: parse_FtSkip, /* FtEdoData */\n0x11: parse_FtSkip, /* FtRboData */\n0x12: parse_FtSkip, /* FtCblsData */\n0x13: parse_FtSkip, /* FtLbsData */\n0x14: parse_FtSkip, /* FtCblsFmla */\n0x15: parse_FtCmo\n};\nfunction parse_FtArray(blob, length) {\n\tvar tgt = blob.l + length;\n\tvar fts = [];\n\twhile(blob.l < tgt) {\n\t\tvar ft = blob.read_shift(2);\n\t\tblob.l-=2;\n\t\ttry {\n\t\t\tfts.push(FtTab[ft](blob, tgt - blob.l));\n\t\t} catch(e) { blob.l = tgt; return fts; }\n\t}\n\tif(blob.l != tgt) blob.l = tgt; //throw new Error(\"bad Object Ft-sequence\");\n\treturn fts;\n}\n\n/* --- 2.4 Records --- */\n\n/* [MS-XLS] 2.4.21 */\nfunction parse_BOF(blob, length) {\n\tvar o = {BIFFVer:0, dt:0};\n\to.BIFFVer = blob.read_shift(2); length -= 2;\n\tif(length >= 2) { o.dt = blob.read_shift(2); blob.l -= 2; }\n\tswitch(o.BIFFVer) {\n\t\tcase 0x0600: /* BIFF8 */\n\t\tcase 0x0500: /* BIFF5 */\n\t\tcase 0x0400: /* BIFF4 */\n\t\tcase 0x0300: /* BIFF3 */\n\t\tcase 0x0200: /* BIFF2 */\n\t\tcase 0x0002: case 0x0007: /* BIFF2 */\n\t\t\tbreak;\n\t\tdefault: if(length > 6) throw new Error(\"Unexpected BIFF Ver \" + o.BIFFVer);\n\t}\n\n\tblob.read_shift(length);\n\treturn o;\n}\nfunction write_BOF(wb, t, o) {\n\tvar h = 0x0600, w = 16;\n\tswitch(o.bookType) {\n\t\tcase 'biff8': break;\n\t\tcase 'biff5': h = 0x0500; w = 8; break;\n\t\tcase 'biff4': h = 0x0004; w = 6; break;\n\t\tcase 'biff3': h = 0x0003; w = 6; break;\n\t\tcase 'biff2': h = 0x0002; w = 4; break;\n\t\tcase 'xla': break;\n\t\tdefault: throw new Error(\"unsupported BIFF version\");\n\t}\n\tvar out = new_buf(w);\n\tout.write_shift(2, h);\n\tout.write_shift(2, t);\n\tif(w > 4) out.write_shift(2, 0x7262);\n\tif(w > 6) out.write_shift(2, 0x07CD);\n\tif(w > 8) {\n\t\tout.write_shift(2, 0xC009);\n\t\tout.write_shift(2, 0x0001);\n\t\tout.write_shift(2, 0x0706);\n\t\tout.write_shift(2, 0x0000);\n\t}\n\treturn out;\n}\n\n\n/* [MS-XLS] 2.4.146 */\nfunction parse_InterfaceHdr(blob, length) {\n\tif(length === 0) return 0x04b0;\n\tif((blob.read_shift(2))!==0x04b0){/* empty */}\n\treturn 0x04b0;\n}\n\n\n/* [MS-XLS] 2.4.349 */\nfunction parse_WriteAccess(blob, length, opts) {\n\tif(opts.enc) { blob.l += length; return \"\"; }\n\tvar l = blob.l;\n\t// TODO: make sure XLUnicodeString doesnt overrun\n\tvar UserName = parse_XLUnicodeString2(blob, 0, opts);\n\tblob.read_shift(length + l - blob.l);\n\treturn UserName;\n}\nfunction write_WriteAccess(s, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(b8 ? 112 : 54);\n\to.write_shift(opts.biff == 8 ? 2 : 1, 7);\n\tif(b8) o.write_shift(1, 0);\n\to.write_shift(4, 0x33336853);\n\to.write_shift(4, (0x00534A74 | (b8 ? 0 : 0x20000000)));\n\twhile(o.l < o.length) o.write_shift(1, (b8 ? 0 : 32));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.351 */\nfunction parse_WsBool(blob, length, opts) {\n\tvar flags = opts && opts.biff == 8 || length == 2 ? blob.read_shift(2) : (blob.l += length, 0);\n\treturn { fDialog: flags & 0x10 };\n}\n\n/* [MS-XLS] 2.4.28 */\nfunction parse_BoundSheet8(blob, length, opts) {\n\tvar pos = blob.read_shift(4);\n\tvar hidden = blob.read_shift(1) & 0x03;\n\tvar dt = blob.read_shift(1);\n\tswitch(dt) {\n\t\tcase 0: dt = 'Worksheet'; break;\n\t\tcase 1: dt = 'Macrosheet'; break;\n\t\tcase 2: dt = 'Chartsheet'; break;\n\t\tcase 6: dt = 'VBAModule'; break;\n\t}\n\tvar name = parse_ShortXLUnicodeString(blob, 0, opts);\n\tif(name.length === 0) name = \"Sheet1\";\n\treturn { pos:pos, hs:hidden, dt:dt, name:name };\n}\nfunction write_BoundSheet8(data, opts) {\n\tvar w = (!opts || opts.biff >= 8 ? 2 : 1);\n\tvar o = new_buf(8 + w * data.name.length);\n\to.write_shift(4, data.pos);\n\to.write_shift(1, data.hs || 0);\n\to.write_shift(1, data.dt);\n\to.write_shift(1, data.name.length);\n\tif(opts.biff >= 8) o.write_shift(1, 1);\n\to.write_shift(w * data.name.length, data.name, opts.biff < 8 ? 'sbcs' : 'utf16le');\n\tvar out = o.slice(0, o.l);\n\tout.l = o.l; return out;\n}\n\n/* [MS-XLS] 2.4.265 TODO */\nfunction parse_SST(blob, length) {\n\tvar end = blob.l + length;\n\tvar cnt = blob.read_shift(4);\n\tvar ucnt = blob.read_shift(4);\n\tvar strs = ([]);\n\tfor(var i = 0; i != ucnt && blob.l < end; ++i) {\n\t\tstrs.push(parse_XLUnicodeRichExtendedString(blob));\n\t}\n\tstrs.Count = cnt; strs.Unique = ucnt;\n\treturn strs;\n}\nfunction write_SST(sst, opts) {\n\tvar header = new_buf(8);\n\theader.write_shift(4, sst.Count);\n\theader.write_shift(4, sst.Unique);\n\tvar strs = [];\n\tfor(var j = 0; j < sst.length; ++j) strs[j] = write_XLUnicodeRichExtendedString(sst[j], opts);\n\tvar o = bconcat([header].concat(strs));\no.parts = [header.length].concat(strs.map(function(str) { return str.length; }));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.107 */\nfunction parse_ExtSST(blob, length) {\n\tvar extsst = {};\n\textsst.dsst = blob.read_shift(2);\n\tblob.l += length-2;\n\treturn extsst;\n}\n\n\n/* [MS-XLS] 2.4.221 TODO: check BIFF2-4 */\nfunction parse_Row(blob) {\n\tvar z = ({});\n\tz.r = blob.read_shift(2);\n\tz.c = blob.read_shift(2);\n\tz.cnt = blob.read_shift(2) - z.c;\n\tvar miyRw = blob.read_shift(2);\n\tblob.l += 4; // reserved(2), unused(2)\n\tvar flags = blob.read_shift(1); // various flags\n\tblob.l += 3; // reserved(8), ixfe(12), flags(4)\n\tif(flags & 0x07) z.level = flags & 0x07;\n\t// collapsed: flags & 0x10\n\tif(flags & 0x20) z.hidden = true;\n\tif(flags & 0x40) z.hpt = miyRw / 20;\n\treturn z;\n}\n\n\n/* [MS-XLS] 2.4.125 */\nfunction parse_ForceFullCalculation(blob) {\n\tvar header = parse_frtHeader(blob);\n\tif(header.type != 0x08A3) throw new Error(\"Invalid Future Record \" + header.type);\n\tvar fullcalc = blob.read_shift(4);\n\treturn fullcalc !== 0x0;\n}\n\n\n\n\n\n/* [MS-XLS] 2.4.215 rt */\nfunction parse_RecalcId(blob) {\n\tblob.read_shift(2);\n\treturn blob.read_shift(4);\n}\n\n/* [MS-XLS] 2.4.87 */\nfunction parse_DefaultRowHeight(blob, length, opts) {\n\tvar f = 0;\n\tif(!(opts && opts.biff == 2)) {\n\t\tf = blob.read_shift(2);\n\t}\n\tvar miyRw = blob.read_shift(2);\n\tif((opts && opts.biff == 2)) {\n\t\tf = 1 - (miyRw >> 15); miyRw &= 0x7fff;\n\t}\n\tvar fl = {Unsynced:f&1,DyZero:(f&2)>>1,ExAsc:(f&4)>>2,ExDsc:(f&8)>>3};\n\treturn [fl, miyRw];\n}\n\n/* [MS-XLS] 2.4.345 TODO */\nfunction parse_Window1(blob) {\n\tvar xWn = blob.read_shift(2), yWn = blob.read_shift(2), dxWn = blob.read_shift(2), dyWn = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), iTabCur = blob.read_shift(2), iTabFirst = blob.read_shift(2);\n\tvar ctabSel = blob.read_shift(2), wTabRatio = blob.read_shift(2);\n\treturn { Pos: [xWn, yWn], Dim: [dxWn, dyWn], Flags: flags, CurTab: iTabCur,\n\t\tFirstTab: iTabFirst, Selected: ctabSel, TabRatio: wTabRatio };\n}\nfunction write_Window1() {\n\tvar o = new_buf(18);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0x7260);\n\to.write_shift(2, 0x44c0);\n\to.write_shift(2, 0x38);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 1);\n\to.write_shift(2, 0x01f4);\n\treturn o;\n}\n/* [MS-XLS] 2.4.346 TODO */\nfunction parse_Window2(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff < 5) return {};\n\tvar f = blob.read_shift(2);\n\treturn { RTL: f & 0x40 };\n}\nfunction write_Window2(view) {\n\tvar o = new_buf(18), f = 0x6b6;\n\tif(view && view.RTL) f |= 0x40;\n\to.write_shift(2, f);\n\to.write_shift(4, 0);\n\to.write_shift(4, 64);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.189 TODO */\nfunction parse_Pane(/*blob, length, opts*/) {\n}\n\n/* [MS-XLS] 2.4.122 TODO */\nfunction parse_Font(blob, length, opts) {\n\tvar o = {\n\t\tdyHeight: blob.read_shift(2),\n\t\tfl: blob.read_shift(2)\n\t};\n\tswitch((opts && opts.biff) || 8) {\n\t\tcase 2: break;\n\t\tcase 3: case 4: blob.l += 2; break;\n\t\tdefault: blob.l += 10; break;\n\t}\n\to.name = parse_ShortXLUnicodeString(blob, 0, opts);\n\treturn o;\n}\nfunction write_Font(data, opts) {\n\tvar name = data.name || \"Arial\";\n\tvar b5 = (opts && (opts.biff == 5)), w = (b5 ? (15 + name.length) : (16 + 2 * name.length));\n\tvar o = new_buf(w);\n\to.write_shift(2, (data.sz || 12) * 20);\n\to.write_shift(4, 0);\n\to.write_shift(2, 400);\n\to.write_shift(4, 0);\n\to.write_shift(2, 0);\n\to.write_shift(1, name.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * name.length, name, (b5 ? \"sbcs\" : \"utf16le\"));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.149 */\nfunction parse_LabelSst(blob) {\n\tvar cell = parse_XLSCell(blob);\n\tcell.isst = blob.read_shift(4);\n\treturn cell;\n}\nfunction write_LabelSst(R, C, v, os ) {\n\tvar o = new_buf(10);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(4, v);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.148 */\nfunction parse_Label(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) blob.l++;\n\tvar str = parse_XLUnicodeString(blob, target - blob.l, opts);\n\tcell.val = str;\n\treturn cell;\n}\nfunction write_Label(R, C, v, os, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(6 + 2 + (+b8) + (1 + b8) * v.length);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(2, v.length);\n\tif(b8) o.write_shift(1, 1);\n\to.write_shift((1 + b8) * v.length, v, b8 ? 'utf16le' : 'sbcs');\n\treturn o;\n}\n\n\n/* [MS-XLS] 2.4.126 Number Formats */\nfunction parse_Format(blob, length, opts) {\n\tvar numFmtId = blob.read_shift(2);\n\tvar fmtstr = parse_XLUnicodeString2(blob, 0, opts);\n\treturn [numFmtId, fmtstr];\n}\nfunction write_Format(i, f, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? (3 + f.length) : (5 + 2 * f.length));\n\to.write_shift(2, i);\n\to.write_shift((b5 ? 1 : 2), f.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * f.length, f, (b5 ? 'sbcs' : 'utf16le'));\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(out.l == null) out.l = out.length;\n\treturn out;\n}\nvar parse_BIFF2Format = parse_XLUnicodeString2;\n\n/* [MS-XLS] 2.4.90 */\nfunction parse_Dimensions(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar r = blob.read_shift(w), R = blob.read_shift(w);\n\tvar c = blob.read_shift(2), C = blob.read_shift(2);\n\tblob.l = end;\n\treturn {s: {r:r, c:c}, e: {r:R, c:C}};\n}\nfunction write_Dimensions(range, opts) {\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar o = new_buf(2*w + 6);\n\to.write_shift(w, range.s.r);\n\to.write_shift(w, range.e.r + 1);\n\to.write_shift(2, range.s.c);\n\to.write_shift(2, range.e.c + 1);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.220 */\nfunction parse_RK(blob) {\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrec = parse_RkRec(blob);\n\treturn {r:rw, c:col, ixfe:rkrec[0], rknum:rkrec[1]};\n}\n\n/* [MS-XLS] 2.4.175 */\nfunction parse_MulRk(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrecs = [];\n\twhile(blob.l < target) rkrecs.push(parse_RkRec(blob));\n\tif(blob.l !== target) throw new Error(\"MulRK read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(rkrecs.length != lastcol - col + 1) throw new Error(\"MulRK length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, rkrec:rkrecs};\n}\n/* [MS-XLS] 2.4.174 */\nfunction parse_MulBlank(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar ixfes = [];\n\twhile(blob.l < target) ixfes.push(blob.read_shift(2));\n\tif(blob.l !== target) throw new Error(\"MulBlank read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(ixfes.length != lastcol - col + 1) throw new Error(\"MulBlank length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, ixfe:ixfes};\n}\n\n/* [MS-XLS] 2.5.20 2.5.249 TODO: interpret values here */\nfunction parse_CellStyleXF(blob, length, style, opts) {\n\tvar o = {};\n\tvar a = blob.read_shift(4), b = blob.read_shift(4);\n\tvar c = blob.read_shift(4), d = blob.read_shift(2);\n\to.patternType = XLSFillPattern[c >> 26];\n\n\tif(!opts.cellStyles) return o;\n\to.alc = a & 0x07;\n\to.fWrap = (a >> 3) & 0x01;\n\to.alcV = (a >> 4) & 0x07;\n\to.fJustLast = (a >> 7) & 0x01;\n\to.trot = (a >> 8) & 0xFF;\n\to.cIndent = (a >> 16) & 0x0F;\n\to.fShrinkToFit = (a >> 20) & 0x01;\n\to.iReadOrder = (a >> 22) & 0x02;\n\to.fAtrNum = (a >> 26) & 0x01;\n\to.fAtrFnt = (a >> 27) & 0x01;\n\to.fAtrAlc = (a >> 28) & 0x01;\n\to.fAtrBdr = (a >> 29) & 0x01;\n\to.fAtrPat = (a >> 30) & 0x01;\n\to.fAtrProt = (a >> 31) & 0x01;\n\n\to.dgLeft = b & 0x0F;\n\to.dgRight = (b >> 4) & 0x0F;\n\to.dgTop = (b >> 8) & 0x0F;\n\to.dgBottom = (b >> 12) & 0x0F;\n\to.icvLeft = (b >> 16) & 0x7F;\n\to.icvRight = (b >> 23) & 0x7F;\n\to.grbitDiag = (b >> 30) & 0x03;\n\n\to.icvTop = c & 0x7F;\n\to.icvBottom = (c >> 7) & 0x7F;\n\to.icvDiag = (c >> 14) & 0x7F;\n\to.dgDiag = (c >> 21) & 0x0F;\n\n\to.icvFore = d & 0x7F;\n\to.icvBack = (d >> 7) & 0x7F;\n\to.fsxButton = (d >> 14) & 0x01;\n\treturn o;\n}\n//function parse_CellXF(blob, length, opts) {return parse_CellStyleXF(blob,length,0, opts);}\n//function parse_StyleXF(blob, length, opts) {return parse_CellStyleXF(blob,length,1, opts);}\n\n/* [MS-XLS] 2.4.353 TODO: actually do this right */\nfunction parse_XF(blob, length, opts) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(2); o.numFmtId = blob.read_shift(2); o.flags = blob.read_shift(2);\n\to.fStyle = (o.flags >> 2) & 0x01;\n\tlength -= 6;\n\to.data = parse_CellStyleXF(blob, length, o.fStyle, opts);\n\treturn o;\n}\nfunction write_XF(data, ixfeP, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? 16 : 20);\n\to.write_shift(2, 0);\n\tif(data.style) {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, 0xFFF4);\n\t} else {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, (ixfeP<<4));\n\t}\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\tif(!b5) o.write_shift(4, 0);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.134 */\nfunction parse_Guts(blob) {\n\tblob.l += 4;\n\tvar out = [blob.read_shift(2), blob.read_shift(2)];\n\tif(out[0] !== 0) out[0]--;\n\tif(out[1] !== 0) out[1]--;\n\tif(out[0] > 7 || out[1] > 7) throw new Error(\"Bad Gutters: \" + out.join(\"|\"));\n\treturn out;\n}\nfunction write_Guts(guts) {\n\tvar o = new_buf(8);\n\to.write_shift(4, 0);\n\to.write_shift(2, guts[0] ? guts[0] + 1 : 0);\n\to.write_shift(2, guts[1] ? guts[1] + 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.24 */\nfunction parse_BoolErr(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) ++blob.l;\n\tvar val = parse_Bes(blob, 2);\n\tcell.val = val;\n\tcell.t = (val === true || val === false) ? 'b' : 'e';\n\treturn cell;\n}\nfunction write_BoolErr(R, C, v, os, opts, t) {\n\tvar o = new_buf(8);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Bes(v, t, o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.180 Number */\nfunction parse_Number(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar xnum = parse_Xnum(blob, 8);\n\tcell.val = xnum;\n\treturn cell;\n}\nfunction write_Number(R, C, v, os) {\n\tvar o = new_buf(14);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Xnum(v, o);\n\treturn o;\n}\n\nvar parse_XLHeaderFooter = parse_OptXLUnicodeString; // TODO: parse 2.4.136\n\n/* [MS-XLS] 2.4.271 */\nfunction parse_SupBook(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar ctab = blob.read_shift(2);\n\tvar cch = blob.read_shift(2);\n\topts.sbcch = cch;\n\tif(cch == 0x0401 || cch == 0x3A01) return [cch, ctab];\n\tif(cch < 0x01 || cch >0xff) throw new Error(\"Unexpected SupBook type: \"+cch);\n\tvar virtPath = parse_XLUnicodeStringNoCch(blob, cch);\n\t/* TODO: 2.5.277 Virtual Path */\n\tvar rgst = [];\n\twhile(end > blob.l) rgst.push(parse_XLUnicodeString(blob));\n\treturn [cch, ctab, virtPath, rgst];\n}\n\n/* [MS-XLS] 2.4.105 TODO */\nfunction parse_ExternName(blob, length, opts) {\n\tvar flags = blob.read_shift(2);\n\tvar body;\n\tvar o = ({\n\t\tfBuiltIn: flags & 0x01,\n\t\tfWantAdvise: (flags >>> 1) & 0x01,\n\t\tfWantPict: (flags >>> 2) & 0x01,\n\t\tfOle: (flags >>> 3) & 0x01,\n\t\tfOleLink: (flags >>> 4) & 0x01,\n\t\tcf: (flags >>> 5) & 0x3FF,\n\t\tfIcon: flags >>> 15 & 0x01\n\t});\n\tif(opts.sbcch === 0x3A01) body = parse_AddinUdf(blob, length-2, opts);\n\t//else throw new Error(\"unsupported SupBook cch: \" + opts.sbcch);\n\to.body = body || blob.read_shift(length-2);\n\tif(typeof body === \"string\") o.Name = body;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.150 TODO */\nvar XLSLblBuiltIn = [\n\t\"_xlnm.Consolidate_Area\",\n\t\"_xlnm.Auto_Open\",\n\t\"_xlnm.Auto_Close\",\n\t\"_xlnm.Extract\",\n\t\"_xlnm.Database\",\n\t\"_xlnm.Criteria\",\n\t\"_xlnm.Print_Area\",\n\t\"_xlnm.Print_Titles\",\n\t\"_xlnm.Recorder\",\n\t\"_xlnm.Data_Form\",\n\t\"_xlnm.Auto_Activate\",\n\t\"_xlnm.Auto_Deactivate\",\n\t\"_xlnm.Sheet_Title\",\n\t\"_xlnm._FilterDatabase\"\n];\nfunction parse_Lbl(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar flags = blob.read_shift(2);\n\tvar chKey = blob.read_shift(1);\n\tvar cch = blob.read_shift(1);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar itab = 0;\n\tif(!opts || opts.biff >= 5) {\n\t\tif(opts.biff != 5) blob.l += 2;\n\t\titab = blob.read_shift(2);\n\t\tif(opts.biff == 5) blob.l += 2;\n\t\tblob.l += 4;\n\t}\n\tvar name = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tif(flags & 0x20) name = XLSLblBuiltIn[name.charCodeAt(0)];\n\tvar npflen = target - blob.l; if(opts && opts.biff == 2) --npflen;\n\tvar rgce = target == blob.l || cce === 0 ? [] : parse_NameParsedFormula(blob, npflen, opts, cce);\n\treturn {\n\t\tchKey: chKey,\n\t\tName: name,\n\t\titab: itab,\n\t\trgce: rgce\n\t};\n}\n\n/* [MS-XLS] 2.4.106 TODO: verify filename encoding */\nfunction parse_ExternSheet(blob, length, opts) {\n\tif(opts.biff < 8) return parse_BIFF5ExternSheet(blob, length, opts);\n\tvar o = [], target = blob.l + length, len = blob.read_shift(opts.biff > 8 ? 4 : 2);\n\twhile(len-- !== 0) o.push(parse_XTI(blob, opts.biff > 8 ? 12 : 6, opts));\n\t\t// [iSupBook, itabFirst, itabLast];\n\tif(blob.l != target) throw new Error(\"Bad ExternSheet: \" + blob.l + \" != \" + target);\n\treturn o;\n}\nfunction parse_BIFF5ExternSheet(blob, length, opts) {\n\tif(blob[blob.l + 1] == 0x03) blob[blob.l]++;\n\tvar o = parse_ShortXLUnicodeString(blob, length, opts);\n\treturn o.charCodeAt(0) == 0x03 ? o.slice(1) : o;\n}\n\n/* [MS-XLS] 2.4.176 TODO: check older biff */\nfunction parse_NameCmt(blob, length, opts) {\n\tif(opts.biff < 8) { blob.l += length; return; }\n\tvar cchName = blob.read_shift(2);\n\tvar cchComment = blob.read_shift(2);\n\tvar name = parse_XLUnicodeStringNoCch(blob, cchName, opts);\n\tvar comment = parse_XLUnicodeStringNoCch(blob, cchComment, opts);\n\treturn [name, comment];\n}\n\n/* [MS-XLS] 2.4.260 */\nfunction parse_ShrFmla(blob, length, opts) {\n\tvar ref = parse_RefU(blob, 6);\n\tblob.l++;\n\tvar cUse = blob.read_shift(1);\n\tlength -= 8;\n\treturn [parse_SharedParsedFormula(blob, length, opts), cUse, ref];\n}\n\n/* [MS-XLS] 2.4.4 TODO */\nfunction parse_Array(blob, length, opts) {\n\tvar ref = parse_Ref(blob, 6);\n\t/* TODO: fAlwaysCalc */\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l ++; length -= 7; break;\n\t\tcase 3: case 4: blob.l += 2; length -= 8; break;\n\t\tdefault: blob.l += 6; length -= 12;\n\t}\n\treturn [ref, parse_ArrayParsedFormula(blob, length, opts, ref)];\n}\n\n/* [MS-XLS] 2.4.173 */\nfunction parse_MTRSettings(blob) {\n\tvar fMTREnabled = blob.read_shift(4) !== 0x00;\n\tvar fUserSetThreadCount = blob.read_shift(4) !== 0x00;\n\tvar cUserThreadCount = blob.read_shift(4);\n\treturn [fMTREnabled, fUserSetThreadCount, cUserThreadCount];\n}\n\n/* [MS-XLS] 2.5.186 TODO: BIFF5 */\nfunction parse_NoteSh(blob, length, opts) {\n\tif(opts.biff < 8) return;\n\tvar row = blob.read_shift(2), col = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), idObj = blob.read_shift(2);\n\tvar stAuthor = parse_XLUnicodeString2(blob, 0, opts);\n\tif(opts.biff < 8) blob.read_shift(1);\n\treturn [{r:row,c:col}, stAuthor, idObj, flags];\n}\n\n/* [MS-XLS] 2.4.179 */\nfunction parse_Note(blob, length, opts) {\n\t/* TODO: Support revisions */\n\treturn parse_NoteSh(blob, length, opts);\n}\n\n/* [MS-XLS] 2.4.168 */\nfunction parse_MergeCells(blob, length) {\n\tvar merges = [];\n\tvar cmcs = blob.read_shift(2);\n\twhile (cmcs--) merges.push(parse_Ref8U(blob,length));\n\treturn merges;\n}\nfunction write_MergeCells(merges) {\n\tvar o = new_buf(2 + merges.length * 8);\n\to.write_shift(2, merges.length);\n\tfor(var i = 0; i < merges.length; ++i) write_Ref8U(merges[i], o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.181 TODO: parse all the things! */\nfunction parse_Obj(blob, length, opts) {\n\tif(opts && opts.biff < 8) return parse_BIFF5Obj(blob, length, opts);\n\tvar cmo = parse_FtCmo(blob, 22); // id, ot, flags\n\tvar fts = parse_FtArray(blob, length-22, cmo[1]);\n\treturn { cmo: cmo, ft:fts };\n}\n/* from older spec */\nvar parse_BIFF5OT = [];\nparse_BIFF5OT[0x08] = function(blob, length) {\n\tvar tgt = blob.l + length;\n\tblob.l += 10; // todo\n\tvar cf = blob.read_shift(2);\n\tblob.l += 4;\n\tblob.l += 2; //var cbPictFmla = blob.read_shift(2);\n\tblob.l += 2;\n\tblob.l += 2; //var grbit = blob.read_shift(2);\n\tblob.l += 4;\n\tvar cchName = blob.read_shift(1);\n\tblob.l += cchName; // TODO: stName\n\tblob.l = tgt; // TODO: fmla\n\treturn { fmt:cf };\n};\n\nfunction parse_BIFF5Obj(blob, length, opts) {\n\tblob.l += 4; //var cnt = blob.read_shift(4);\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar grbit = blob.read_shift(2);\n\tblob.l += 2; //var colL = blob.read_shift(2);\n\tblob.l += 2; //var dxL = blob.read_shift(2);\n\tblob.l += 2; //var rwT = blob.read_shift(2);\n\tblob.l += 2; //var dyT = blob.read_shift(2);\n\tblob.l += 2; //var colR = blob.read_shift(2);\n\tblob.l += 2; //var dxR = blob.read_shift(2);\n\tblob.l += 2; //var rwB = blob.read_shift(2);\n\tblob.l += 2; //var dyB = blob.read_shift(2);\n\tblob.l += 2; //var cbMacro = blob.read_shift(2);\n\tblob.l += 6;\n\tlength -= 36;\n\tvar fts = [];\n\tfts.push((parse_BIFF5OT[ot]||parsenoop)(blob, length, opts));\n\treturn { cmo: [id, ot, grbit], ft:fts };\n}\n\n/* [MS-XLS] 2.4.329 TODO: parse properly */\nfunction parse_TxO(blob, length, opts) {\n\tvar s = blob.l;\n\tvar texts = \"\";\ntry {\n\tblob.l += 4;\n\tvar ot = (opts.lastobj||{cmo:[0,0]}).cmo[1];\n\tvar controlInfo; // eslint-disable-line no-unused-vars\n\tif([0,5,7,11,12,14].indexOf(ot) == -1) blob.l += 6;\n\telse controlInfo = parse_ControlInfo(blob, 6, opts);\n\tvar cchText = blob.read_shift(2);\n\t/*var cbRuns = */blob.read_shift(2);\n\t/*var ifntEmpty = */parseuint16(blob, 2);\n\tvar len = blob.read_shift(2);\n\tblob.l += len;\n\t//var fmla = parse_ObjFmla(blob, s + length - blob.l);\n\n\tfor(var i = 1; i < blob.lens.length-1; ++i) {\n\t\tif(blob.l-s != blob.lens[i]) throw new Error(\"TxO: bad continue record\");\n\t\tvar hdr = blob[blob.l];\n\t\tvar t = parse_XLUnicodeStringNoCch(blob, blob.lens[i+1]-blob.lens[i]-1);\n\t\ttexts += t;\n\t\tif(texts.length >= (hdr ? cchText : 2*cchText)) break;\n\t}\n\tif(texts.length !== cchText && texts.length !== cchText*2) {\n\t\tthrow new Error(\"cchText: \" + cchText + \" != \" + texts.length);\n\t}\n\n\tblob.l = s + length;\n\t/* [MS-XLS] 2.5.272 TxORuns */\n//\tvar rgTxoRuns = [];\n//\tfor(var j = 0; j != cbRuns/8-1; ++j) blob.l += 8;\n//\tvar cchText2 = blob.read_shift(2);\n//\tif(cchText2 !== cchText) throw new Error(\"TxOLastRun mismatch: \" + cchText2 + \" \" + cchText);\n//\tblob.l += 6;\n//\tif(s + length != blob.l) throw new Error(\"TxO \" + (s + length) + \", at \" + blob.l);\n\treturn { t: texts };\n} catch(e) { blob.l = s + length; return { t: texts }; }\n}\n\n/* [MS-XLS] 2.4.140 */\nfunction parse_HLink(blob, length) {\n\tvar ref = parse_Ref8U(blob, 8);\n\tblob.l += 16; /* CLSID */\n\tvar hlink = parse_Hyperlink(blob, length-24);\n\treturn [ref, hlink];\n}\nfunction write_HLink(hl) {\n\tvar O = new_buf(24);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tvar clsid = \"d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\tfor(var i = 0; i < 16; ++i) O.write_shift(1, parseInt(clsid[i], 16));\n\treturn bconcat([O, write_Hyperlink(hl[1])]);\n}\n\n\n/* [MS-XLS] 2.4.141 */\nfunction parse_HLinkTooltip(blob, length) {\n\tblob.read_shift(2);\n\tvar ref = parse_Ref8U(blob, 8);\n\tvar wzTooltip = blob.read_shift((length-10)/2, 'dbcs-cont');\n\twzTooltip = wzTooltip.replace(chr0,\"\");\n\treturn [ref, wzTooltip];\n}\nfunction write_HLinkTooltip(hl) {\n\tvar TT = hl[1].Tooltip;\n\tvar O = new_buf(10 + 2 * (TT.length + 1));\n\tO.write_shift(2, 0x0800);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tfor(var i = 0; i < TT.length; ++i) O.write_shift(2, TT.charCodeAt(i));\n\tO.write_shift(2, 0);\n\treturn O;\n}\n\n/* [MS-XLS] 2.4.63 */\nfunction parse_Country(blob) {\n\tvar o = [0,0], d;\n\td = blob.read_shift(2); o[0] = CountryEnum[d] || d;\n\td = blob.read_shift(2); o[1] = CountryEnum[d] || d;\n\treturn o;\n}\nfunction write_Country(o) {\n\tif(!o) o = new_buf(4);\n\to.write_shift(2, 0x01);\n\to.write_shift(2, 0x01);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.50 ClrtClient */\nfunction parse_ClrtClient(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.188 */\nfunction parse_Palette(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.354 */\nfunction parse_XFCRC(blob) {\n\tblob.l += 2;\n\tvar o = {cxfs:0, crc:0};\n\to.cxfs = blob.read_shift(2);\n\to.crc = blob.read_shift(4);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.53 TODO: parse flags */\n/* [MS-XLSB] 2.4.323 TODO: parse flags */\nfunction parse_ColInfo(blob, length, opts) {\n\tif(!opts.cellStyles) return parsenoop(blob, length);\n\tvar w = opts && opts.biff >= 12 ? 4 : 2;\n\tvar colFirst = blob.read_shift(w);\n\tvar colLast = blob.read_shift(w);\n\tvar coldx = blob.read_shift(w);\n\tvar ixfe = blob.read_shift(w);\n\tvar flags = blob.read_shift(2);\n\tif(w == 2) blob.l += 2;\n\tvar o = ({s:colFirst, e:colLast, w:coldx, ixfe:ixfe, flags:flags});\n\tif(opts.biff >= 5 || !opts.biff) o.level = (flags >> 8) & 0x7;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.257 */\nfunction parse_Setup(blob, length) {\n\tvar o = {};\n\tif(length < 32) return o;\n\tblob.l += 16;\n\to.header = parse_Xnum(blob, 8);\n\to.footer = parse_Xnum(blob, 8);\n\tblob.l += 2;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.261 */\nfunction parse_ShtProps(blob, length, opts) {\n\tvar def = {area:false};\n\tif(opts.biff != 5) { blob.l += length; return def; }\n\tvar d = blob.read_shift(1); blob.l += 3;\n\tif((d & 0x10)) def.area = true;\n\treturn def;\n}\n\n/* [MS-XLS] 2.4.241 */\nfunction write_RRTabId(n) {\n\tvar out = new_buf(2 * n);\n\tfor(var i = 0; i < n; ++i) out.write_shift(2, i+1);\n\treturn out;\n}\n\nvar parse_Blank = parse_XLSCell; /* [MS-XLS] 2.4.20 Just the cell */\nvar parse_Scl = parseuint16a; /* [MS-XLS] 2.4.247 num, den */\nvar parse_String = parse_XLUnicodeString; /* [MS-XLS] 2.4.268 */\n\n/* --- Specific to versions before BIFF8 --- */\nfunction parse_ImData(blob) {\n\tvar cf = blob.read_shift(2);\n\tvar env = blob.read_shift(2);\n\tvar lcb = blob.read_shift(4);\n\tvar o = {fmt:cf, env:env, len:lcb, data:blob.slice(blob.l,blob.l+lcb)};\n\tblob.l += lcb;\n\treturn o;\n}\n\n/* BIFF2_??? where ??? is the name from [XLS] */\nfunction parse_BIFF2STR(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar str = parse_XLUnicodeString2(blob, length-7, opts);\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n\nfunction parse_BIFF2NUM(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = parse_Xnum(blob, 8);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2NUM(r, c, val) {\n\tvar out = new_buf(15);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(8, val, 'f');\n\treturn out;\n}\n\nfunction parse_BIFF2INT(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = blob.read_shift(2);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2INT(r, c, val) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(2, val);\n\treturn out;\n}\n\nfunction parse_BIFF2STRING(blob) {\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, 'sbcs-cont');\n}\n\n/* TODO: convert to BIFF8 font struct */\nfunction parse_BIFF2FONTXTRA(blob, length) {\n\tblob.l += 6; // unknown\n\tblob.l += 2; // font weight \"bls\"\n\tblob.l += 1; // charset\n\tblob.l += 3; // unknown\n\tblob.l += 1; // font family\n\tblob.l += length - 13;\n}\n\n/* TODO: parse rich text runs */\nfunction parse_RString(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar cch = blob.read_shift(2);\n\tvar str = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tblob.l = end;\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n/* from js-harb (C) 2014-present SheetJS */\nvar DBF = (function() {\nvar dbf_codepage_map = {\n\t/* Code Pages Supported by Visual FoxPro */\n0x01: 437, 0x02: 850,\n0x03: 1252, 0x04: 10000,\n0x64: 852, 0x65: 866,\n0x66: 865, 0x67: 861,\n0x68: 895, 0x69: 620,\n0x6A: 737, 0x6B: 857,\n0x78: 950, 0x79: 949,\n0x7A: 936, 0x7B: 932,\n0x7C: 874, 0x7D: 1255,\n0x7E: 1256, 0x96: 10007,\n0x97: 10029, 0x98: 10006,\n0xC8: 1250, 0xC9: 1251,\n0xCA: 1254, 0xCB: 1253,\n\n\t/* shapefile DBF extension */\n0x00: 20127, 0x08: 865,\n0x09: 437, 0x0A: 850,\n0x0B: 437, 0x0D: 437,\n0x0E: 850, 0x0F: 437,\n0x10: 850, 0x11: 437,\n0x12: 850, 0x13: 932,\n0x14: 850, 0x15: 437,\n0x16: 850, 0x17: 865,\n0x18: 437, 0x19: 437,\n0x1A: 850, 0x1B: 437,\n0x1C: 863, 0x1D: 850,\n0x1F: 852, 0x22: 852,\n0x23: 852, 0x24: 860,\n0x25: 850, 0x26: 866,\n0x37: 850, 0x40: 852,\n0x4D: 936, 0x4E: 949,\n0x4F: 950, 0x50: 874,\n0x57: 1252, 0x58: 1252,\n0x59: 1252,\n\n0xFF: 16969\n};\nvar dbf_reverse_map = evert({\n0x01: 437, 0x02: 850,\n0x03: 1252, 0x04: 10000,\n0x64: 852, 0x65: 866,\n0x66: 865, 0x67: 861,\n0x68: 895, 0x69: 620,\n0x6A: 737, 0x6B: 857,\n0x78: 950, 0x79: 949,\n0x7A: 936, 0x7B: 932,\n0x7C: 874, 0x7D: 1255,\n0x7E: 1256, 0x96: 10007,\n0x97: 10029, 0x98: 10006,\n0xC8: 1250, 0xC9: 1251,\n0xCA: 1254, 0xCB: 1253,\n0x00: 20127\n});\nvar DBF_SUPPORTED_VERSIONS = [0x02, 0x03, 0x30, 0x31, 0x83, 0x8B, 0x8C, 0xF5];\n/* TODO: find an actual specification */\nfunction dbf_to_aoa(buf, opts) {\n\tvar out = [];\n\t/* TODO: browser based */\n\tvar d = (new_raw_buf(1));\n\tswitch(opts.type) {\n\t\tcase 'base64': d = s2a(Base64.decode(buf)); break;\n\t\tcase 'binary': d = s2a(buf); break;\n\t\tcase 'buffer':\n\t\tcase 'array': d = buf; break;\n\t}\n\tprep_blob(d, 0);\n\t/* header */\n\tvar ft = d.read_shift(1);\n\tvar memo = false;\n\tvar vfp = false, l7 = false;\n\tswitch(ft) {\n\t\tcase 0x02: case 0x03: break;\n\t\tcase 0x30: vfp = true; memo = true; break;\n\t\tcase 0x31: vfp = true; break;\n\t\tcase 0x83: memo = true; break;\n\t\tcase 0x8B: memo = true; break;\n\t\tcase 0x8C: memo = true; l7 = true; break;\n\t\tcase 0xF5: memo = true; break;\n\t\tdefault: throw new Error(\"DBF Unsupported Version: \" + ft.toString(16));\n\t}\n\tvar /*filedate = new Date(),*/ nrow = 0, fpos = 0;\n\tif(ft == 0x02) nrow = d.read_shift(2);\n\t/*filedate = new Date(d.read_shift(1) + 1900, d.read_shift(1) - 1, d.read_shift(1));*/d.l += 3;\n\tif(ft != 0x02) nrow = d.read_shift(4);\n\tif(ft != 0x02) fpos = d.read_shift(2);\n\tvar rlen = d.read_shift(2);\n\n\tvar /*flags = 0,*/ current_cp = 1252;\n\tif(ft != 0x02) {\n\td.l+=16;\n\t/*flags = */d.read_shift(1);\n\t//if(memo && ((flags & 0x02) === 0)) throw new Error(\"DBF Flags \" + flags.toString(16) + \" ft \" + ft.toString(16));\n\n\t/* codepage present in FoxPro */\n\tif(d[d.l] !== 0) current_cp = dbf_codepage_map[d[d.l]];\n\td.l+=1;\n\n\td.l+=2;\n\t}\n\tif(l7) d.l += 36;\nvar fields = [], field = ({});\n\tvar hend = fpos - 10 - (vfp ? 264 : 0), ww = l7 ? 32 : 11;\n\twhile(ft == 0x02 ? d.l < d.length && d[d.l] != 0x0d: d.l < hend) {\n\t\tfield = ({});\n\t\tfield.name = cptable.utils.decode(current_cp, d.slice(d.l, d.l+ww)).replace(/[\\u0000\\r\\n].*$/g,\"\");\n\t\td.l += ww;\n\t\tfield.type = String.fromCharCode(d.read_shift(1));\n\t\tif(ft != 0x02 && !l7) field.offset = d.read_shift(4);\n\t\tfield.len = d.read_shift(1);\n\t\tif(ft == 0x02) field.offset = d.read_shift(2);\n\t\tfield.dec = d.read_shift(1);\n\t\tif(field.name.length) fields.push(field);\n\t\tif(ft != 0x02) d.l += l7 ? 13 : 14;\n\t\tswitch(field.type) {\n\t\t\tcase 'B': // VFP Double\n\t\t\t\tif((!vfp || field.len != 8) && opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase 'G': // General\n\t\t\tcase 'P': // Picture\n\t\t\t\tif(opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase 'C': // character\n\t\t\tcase 'D': // date\n\t\t\tcase 'F': // floating point\n\t\t\tcase 'I': // long\n\t\t\tcase 'L': // boolean\n\t\t\tcase 'M': // memo\n\t\t\tcase 'N': // number\n\t\t\tcase 'O': // double\n\t\t\tcase 'T': // datetime\n\t\t\tcase 'Y': // currency\n\t\t\tcase '0': // VFP _NullFlags\n\t\t\tcase '@': // timestamp\n\t\t\tcase '+': // autoincrement\n\t\t\t\tbreak;\n\t\t\tdefault: throw new Error('Unknown Field Type: ' + field.type);\n\t\t}\n\t}\n\tif(d[d.l] !== 0x0D) d.l = fpos-1;\n\telse if(ft == 0x02) d.l = 0x209;\n\tif(ft != 0x02) {\n\t\tif(d.read_shift(1) !== 0x0D) throw new Error(\"DBF Terminator not found \" + d.l + \" \" + d[d.l]);\n\t\td.l = fpos;\n\t}\n\t/* data */\n\tvar R = 0, C = 0;\n\tout[0] = [];\n\tfor(C = 0; C != fields.length; ++C) out[0][C] = fields[C].name;\n\twhile(nrow-- > 0) {\n\t\tif(d[d.l] === 0x2A) { d.l+=rlen; continue; }\n\t\t++d.l;\n\t\tout[++R] = []; C = 0;\n\t\tfor(C = 0; C != fields.length; ++C) {\n\t\t\tvar dd = d.slice(d.l, d.l+fields[C].len); d.l+=fields[C].len;\n\t\t\tprep_blob(dd, 0);\n\t\t\tvar s = cptable.utils.decode(current_cp, dd);\n\t\t\tswitch(fields[C].type) {\n\t\t\t\tcase 'C':\n\t\t\t\t\tout[R][C] = cptable.utils.decode(current_cp, dd);\n\t\t\t\t\tout[R][C] = out[R][C].trim();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(s.length === 8) out[R][C] = new Date(+s.slice(0,4), +s.slice(4,6)-1, +s.slice(6,8));\n\t\t\t\t\telse out[R][C] = s;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'F': out[R][C] = parseFloat(s.trim()); break;\n\t\t\t\tcase '+': case 'I': out[R][C] = l7 ? dd.read_shift(-4, 'i') ^ 0x80000000 : dd.read_shift(4, 'i'); break;\n\t\t\t\tcase 'L': switch(s.toUpperCase()) {\n\t\t\t\t\tcase 'Y': case 'T': out[R][C] = true; break;\n\t\t\t\t\tcase 'N': case 'F': out[R][C] = false; break;\n\t\t\t\t\tcase ' ': case '?': out[R][C] = false; break; /* NOTE: technically uninitialized */\n\t\t\t\t\tdefault: throw new Error(\"DBF Unrecognized L:|\" + s + \"|\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'M': /* TODO: handle memo files */\n\t\t\t\t\tif(!memo) throw new Error(\"DBF Unexpected MEMO for type \" + ft.toString(16));\n\t\t\t\t\tout[R][C] = \"##MEMO##\" + (l7 ? parseInt(s.trim(), 10): dd.read_shift(4));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'N': out[R][C] = +s.replace(/\\u0000/g,\"\").trim(); break;\n\t\t\t\tcase '@': out[R][C] = new Date(dd.read_shift(-8, 'f') - 0x388317533400); break;\n\t\t\t\tcase 'T': out[R][C] = new Date((dd.read_shift(4) - 0x253D8C) * 0x5265C00 + dd.read_shift(4)); break;\n\t\t\t\tcase 'Y': out[R][C] = dd.read_shift(4,'i')/1e4; break;\n\t\t\t\tcase 'O': out[R][C] = -dd.read_shift(-8, 'f'); break;\n\t\t\t\tcase 'B': if(vfp && fields[C].len == 8) { out[R][C] = dd.read_shift(8,'f'); break; }\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'G': case 'P': dd.l += fields[C].len; break;\n\t\t\t\tcase '0':\n\t\t\t\t\tif(fields[C].name === '_NullFlags') break;\n\t\t\t\t\t/* falls through */\n\t\t\t\tdefault: throw new Error(\"DBF Unsupported data type \" + fields[C].type);\n\t\t\t}\n\t\t}\n\t}\n\tif(ft != 0x02) if(d.l < d.length && d[d.l++] != 0x1A) throw new Error(\"DBF EOF Marker missing \" + (d.l-1) + \" of \" + d.length + \" \" + d[d.l-1].toString(16));\n\tif(opts && opts.sheetRows) out = out.slice(0, opts.sheetRows);\n\treturn out;\n}\n\nfunction dbf_to_sheet(buf, opts) {\n\tvar o = opts || {};\n\tif(!o.dateNF) o.dateNF = \"yyyymmdd\";\n\treturn aoa_to_sheet(dbf_to_aoa(buf, o), o);\n}\n\nfunction dbf_to_workbook(buf, opts) {\n\ttry { return sheet_to_workbook(dbf_to_sheet(buf, opts), opts); }\n\tcatch(e) { if(opts && opts.WTF) throw e; }\n\treturn ({SheetNames:[],Sheets:{}});\n}\n\nvar _RLEN = { 'B': 8, 'C': 250, 'L': 1, 'D': 8, '?': 0, '': 0 };\nfunction sheet_to_dbf(ws, opts) {\n\tvar o = opts || {};\n\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\tif(o.type == \"string\") throw new Error(\"Cannot write DBF to JS string\");\n\tvar ba = buf_array();\n\tvar aoa = sheet_to_json(ws, {header:1, raw:true, cellDates:true});\n\tvar headers = aoa[0], data = aoa.slice(1);\n\tvar i = 0, j = 0, hcnt = 0, rlen = 1;\n\tfor(i = 0; i < headers.length; ++i) {\n\t\tif(i == null) continue;\n\t\t++hcnt;\n\t\tif(typeof headers[i] === 'number') headers[i] = headers[i].toString(10);\n\t\tif(typeof headers[i] !== 'string') throw new Error(\"DBF Invalid column name \" + headers[i] + \" |\" + (typeof headers[i]) + \"|\");\n\t\tif(headers.indexOf(headers[i]) !== i) for(j=0; j<1024;++j)\n\t\t\tif(headers.indexOf(headers[i] + \"_\" + j) == -1) { headers[i] += \"_\" + j; break; }\n\t}\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar coltypes = [];\n\tfor(i = 0; i <= range.e.c - range.s.c; ++i) {\n\t\tvar col = [];\n\t\tfor(j=0; j < data.length; ++j) {\n\t\t\tif(data[j][i] != null) col.push(data[j][i]);\n\t\t}\n\t\tif(col.length == 0 || headers[i] == null) { coltypes[i] = '?'; continue; }\n\t\tvar guess = '', _guess = '';\n\t\tfor(j = 0; j < col.length; ++j) {\n\t\t\tswitch(typeof col[j]) {\n\t\t\t\t/* TODO: check if L2 compat is desired */\n\t\t\t\tcase 'number': _guess = 'B'; break;\n\t\t\t\tcase 'string': _guess = 'C'; break;\n\t\t\t\tcase 'boolean': _guess = 'L'; break;\n\t\t\t\tcase 'object': _guess = col[j] instanceof Date ? 'D' : 'C'; break;\n\t\t\t\tdefault: _guess = 'C';\n\t\t\t}\n\t\t\tguess = guess && guess != _guess ? 'C' : _guess;\n\t\t\tif(guess == 'C') break;\n\t\t}\n\t\trlen += _RLEN[guess] || 0;\n\t\tcoltypes[i] = guess;\n\t}\n\n\tvar h = ba.next(32);\n\th.write_shift(4, 0x13021130);\n\th.write_shift(4, data.length);\n\th.write_shift(2, 296 + 32 * hcnt);\n\th.write_shift(2, rlen);\n\tfor(i=0; i < 4; ++i) h.write_shift(4, 0);\n\th.write_shift(4, 0x00000000 | ((+dbf_reverse_map[current_ansi] || 0x03)<<8));\n\n\tfor(i = 0, j = 0; i < headers.length; ++i) {\n\t\tif(headers[i] == null) continue;\n\t\tvar hf = ba.next(32);\n\t\tvar _f = (headers[i].slice(-10) + \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\").slice(0, 11);\n\t\thf.write_shift(1, _f, \"sbcs\");\n\t\thf.write_shift(1, coltypes[i] == '?' ? 'C' : coltypes[i], \"sbcs\");\n\t\thf.write_shift(4, j);\n\t\thf.write_shift(1, _RLEN[coltypes[i]] || 0);\n\t\thf.write_shift(1, 0);\n\t\thf.write_shift(1, 0x02);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(1, 0);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(4, 0);\n\t\tj += _RLEN[coltypes[i]] || 0;\n\t}\n\n\tvar hb = ba.next(264);\n\thb.write_shift(4, 0x0000000D);\n\tfor(i=0; i < 65;++i) hb.write_shift(4, 0x00000000);\n\tfor(i=0; i < data.length; ++i) {\n\t\tvar rout = ba.next(rlen);\n\t\trout.write_shift(1, 0);\n\t\tfor(j=0; j<headers.length; ++j) {\n\t\t\tif(headers[j] == null) continue;\n\t\t\tswitch(coltypes[j]) {\n\t\t\t\tcase 'L': rout.write_shift(1, data[i][j] == null ? 0x3F : data[i][j] ? 0x54 : 0x46); break;\n\t\t\t\tcase 'B': rout.write_shift(8, data[i][j]||0, 'f'); break;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(!data[i][j]) rout.write_shift(8, \"00000000\", \"sbcs\");\n\t\t\t\t\telse {\n\t\t\t\t\t\trout.write_shift(4, (\"0000\"+data[i][j].getFullYear()).slice(-4), \"sbcs\");\n\t\t\t\t\t\trout.write_shift(2, (\"00\"+(data[i][j].getMonth()+1)).slice(-2), \"sbcs\");\n\t\t\t\t\t\trout.write_shift(2, (\"00\"+data[i][j].getDate()).slice(-2), \"sbcs\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'C':\n\t\t\t\t\tvar _s = String(data[i][j]||\"\");\n\t\t\t\t\trout.write_shift(1, _s, \"sbcs\");\n\t\t\t\t\tfor(hcnt=0; hcnt < 250-_s.length; ++hcnt) rout.write_shift(1, 0x20); break;\n\t\t\t}\n\t\t}\n\t\t// data\n\t}\n\tba.next(1).write_shift(1, 0x1A);\n\treturn ba.end();\n}\n\treturn {\n\t\tversions: DBF_SUPPORTED_VERSIONS,\n\t\tto_workbook: dbf_to_workbook,\n\t\tto_sheet: dbf_to_sheet,\n\t\tfrom_sheet: sheet_to_dbf\n\t};\n})();\n\nvar SYLK = (function() {\n\t/* TODO: stress test sequences */\n\tvar sylk_escapes = ({\n\t\tAA:'À', BA:'Á', CA:'Â', DA:195, HA:'Ä', JA:197,\n\t\tAE:'È', BE:'É', CE:'Ê', HE:'Ë',\n\t\tAI:'Ì', BI:'Í', CI:'Î', HI:'Ï',\n\t\tAO:'Ò', BO:'Ó', CO:'Ô', DO:213, HO:'Ö',\n\t\tAU:'Ù', BU:'Ú', CU:'Û', HU:'Ü',\n\t\tAa:'à', Ba:'á', Ca:'â', Da:227, Ha:'ä', Ja:229,\n\t\tAe:'è', Be:'é', Ce:'ê', He:'ë',\n\t\tAi:'ì', Bi:'í', Ci:'î', Hi:'ï',\n\t\tAo:'ò', Bo:'ó', Co:'ô', Do:245, Ho:'ö',\n\t\tAu:'ù', Bu:'ú', Cu:'û', Hu:'ü',\n\t\tKC:'Ç', Kc:'ç', q:'æ', z:'œ', a:'Æ', j:'Œ',\n\t\tDN:209, Dn:241, Hy:255,\n\t\tS:169, c:170, R:174, B:180,\n0:176, 1:177, 2:178,\n3:179, 5:181, 6:182,\n7:183, Q:185, k:186, b:208, i:216, l:222, s:240, y:248,\n\t\t\"!\":161, '\"':162, \"#\":163, \"(\":164, \"%\":165, \"'\":167, \"H \":168,\n\t\t\"+\":171, \";\":187, \"<\":188, \"=\":189, \">\":190, \"?\":191, \"{\":223\n\t});\n\tvar sylk_char_regex = new RegExp(\"\\u001BN(\" + keys(sylk_escapes).join(\"|\").replace(/\\|\\|\\|/, \"|\\\\||\").replace(/([?()+])/g,\"\\\\$1\") + \"|\\\\|)\", \"gm\");\n\tvar sylk_char_fn = function(_, $1){ var o = sylk_escapes[$1]; return typeof o == \"number\" ? _getansi(o) : o; };\n\tvar decode_sylk_char = function($$, $1, $2) { var newcc = (($1.charCodeAt(0) - 0x20)<<4) | ($2.charCodeAt(0) - 0x30); return newcc == 59 ? $$ : _getansi(newcc); };\n\tsylk_escapes[\"|\"] = 254;\n\t/* TODO: find an actual specification */\n\tfunction sylk_to_aoa(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return sylk_to_aoa_str(Base64.decode(d), opts);\n\t\t\tcase 'binary': return sylk_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return sylk_to_aoa_str(d.toString('binary'), opts);\n\t\t\tcase 'array': return sylk_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction sylk_to_aoa_str(str, opts) {\n\t\tvar records = str.split(/[\\n\\r]+/), R = -1, C = -1, ri = 0, rj = 0, arr = [];\n\t\tvar formats = [];\n\t\tvar next_cell_format = null;\n\t\tvar sht = {}, rowinfo = [], colinfo = [], cw = [];\n\t\tvar Mval = 0, j;\n\t\tif(+opts.codepage >= 0) set_cp(+opts.codepage);\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tMval = 0;\n\t\t\tvar rstr=records[ri].trim().replace(/\\x1B([\\x20-\\x2F])([\\x30-\\x3F])/g, decode_sylk_char).replace(sylk_char_regex, sylk_char_fn);\n\t\t\tvar record=rstr.replace(/;;/g, \"\\u0000\").split(\";\").map(function(x) { return x.replace(/\\u0000/g, \";\"); });\n\t\t\tvar RT=record[0], val;\n\t\t\tif(rstr.length > 0) switch(RT) {\n\t\t\tcase 'ID': break; /* header */\n\t\t\tcase 'E': break; /* EOF */\n\t\t\tcase 'B': break; /* dimensions */\n\t\t\tcase 'O': break; /* options? */\n\t\t\tcase 'P':\n\t\t\t\tif(record[1].charAt(0) == 'P')\n\t\t\t\t\tformats.push(rstr.slice(3).replace(/;;/g, \";\"));\n\t\t\t\tbreak;\n\t\t\tcase 'C':\n\t\t\tvar C_seen_K = false, C_seen_X = false;\n\t\t\tfor(rj=1; rj<record.length; ++rj) switch(record[rj].charAt(0)) {\n\t\t\t\tcase 'X': C = parseInt(record[rj].slice(1))-1; C_seen_X = true; break;\n\t\t\t\tcase 'Y':\n\t\t\t\t\tR = parseInt(record[rj].slice(1))-1; if(!C_seen_X) C = 0;\n\t\t\t\t\tfor(j = arr.length; j <= R; ++j) arr[j] = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'K':\n\t\t\t\t\tval = record[rj].slice(1);\n\t\t\t\t\tif(val.charAt(0) === '\"') val = val.slice(1,val.length - 1);\n\t\t\t\t\telse if(val === 'TRUE') val = true;\n\t\t\t\t\telse if(val === 'FALSE') val = false;\n\t\t\t\t\telse if(!isNaN(fuzzynum(val))) {\n\t\t\t\t\t\tval = fuzzynum(val);\n\t\t\t\t\t\tif(next_cell_format !== null && SSF.is_date(next_cell_format)) val = numdate(val);\n\t\t\t\t\t} else if(!isNaN(fuzzydate(val).getDate())) {\n\t\t\t\t\t\tval = parseDate(val);\n\t\t\t\t\t}\n\t\t\t\t\tif(typeof cptable !== 'undefined' && typeof val == \"string\" && ((opts||{}).type != \"string\") && (opts||{}).codepage) val = cptable.utils.decode(opts.codepage, val);\n\t\t\t\t\tC_seen_K = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'E':\n\t\t\t\t\tvar formula = rc_to_a1(record[rj].slice(1), {r:R,c:C});\n\t\t\t\t\tarr[R][C] = [arr[R][C], formula];\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(C_seen_K) { arr[R][C] = val; next_cell_format = null; }\n\t\t\tbreak;\n\t\t\tcase 'F':\n\t\t\tvar F_seen = 0;\n\t\t\tfor(rj=1; rj<record.length; ++rj) switch(record[rj].charAt(0)) {\n\t\t\t\tcase 'X': C = parseInt(record[rj].slice(1))-1; ++F_seen; break;\n\t\t\t\tcase 'Y':\n\t\t\t\t\tR = parseInt(record[rj].slice(1))-1; /*C = 0;*/\n\t\t\t\t\tfor(j = arr.length; j <= R; ++j) arr[j] = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'M': Mval = parseInt(record[rj].slice(1)) / 20; break;\n\t\t\t\tcase 'F': break; /* ??? */\n\t\t\t\tcase 'G': break; /* hide grid */\n\t\t\t\tcase 'P':\n\t\t\t\t\tnext_cell_format = formats[parseInt(record[rj].slice(1))];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'S': break; /* cell style */\n\t\t\t\tcase 'D': break; /* column */\n\t\t\t\tcase 'N': break; /* font */\n\t\t\t\tcase 'W':\n\t\t\t\t\tcw = record[rj].slice(1).split(\" \");\n\t\t\t\t\tfor(j = parseInt(cw[0], 10); j <= parseInt(cw[1], 10); ++j) {\n\t\t\t\t\t\tMval = parseInt(cw[2], 10);\n\t\t\t\t\t\tcolinfo[j-1] = Mval === 0 ? {hidden:true}: {wch:Mval}; process_col(colinfo[j-1]);\n\t\t\t\t\t} break;\n\t\t\t\tcase 'C': /* default column format */\n\t\t\t\t\tC = parseInt(record[rj].slice(1))-1;\n\t\t\t\t\tif(!colinfo[C]) colinfo[C] = {};\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'R': /* row properties */\n\t\t\t\t\tR = parseInt(record[rj].slice(1))-1;\n\t\t\t\t\tif(!rowinfo[R]) rowinfo[R] = {};\n\t\t\t\t\tif(Mval > 0) { rowinfo[R].hpt = Mval; rowinfo[R].hpx = pt2px(Mval); }\n\t\t\t\t\telse if(Mval === 0) rowinfo[R].hidden = true;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(F_seen < 1) next_cell_format = null; break;\n\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t}\n\t\tif(rowinfo.length > 0) sht['!rows'] = rowinfo;\n\t\tif(colinfo.length > 0) sht['!cols'] = colinfo;\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn [arr, sht];\n\t}\n\n\tfunction sylk_to_sheet(d, opts) {\n\t\tvar aoasht = sylk_to_aoa(d, opts);\n\t\tvar aoa = aoasht[0], ws = aoasht[1];\n\t\tvar o = aoa_to_sheet(aoa, opts);\n\t\tkeys(ws).forEach(function(k) { o[k] = ws[k]; });\n\t\treturn o;\n\t}\n\n\tfunction sylk_to_workbook(d, opts) { return sheet_to_workbook(sylk_to_sheet(d, opts), opts); }\n\n\tfunction write_ws_cell_sylk(cell, ws, R, C) {\n\t\tvar o = \"C;Y\" + (R+1) + \";X\" + (C+1) + \";K\";\n\t\tswitch(cell.t) {\n\t\t\tcase 'n':\n\t\t\t\to += (cell.v||0);\n\t\t\t\tif(cell.f && !cell.F) o += \";E\" + a1_to_rc(cell.f, {r:R, c:C}); break;\n\t\t\tcase 'b': o += cell.v ? \"TRUE\" : \"FALSE\"; break;\n\t\t\tcase 'e': o += cell.w || cell.v; break;\n\t\t\tcase 'd': o += '\"' + (cell.w || cell.v) + '\"'; break;\n\t\t\tcase 's': o += '\"' + cell.v.replace(/\"/g,\"\") + '\"'; break;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction write_ws_cols_sylk(out, cols) {\n\t\tcols.forEach(function(col, i) {\n\t\t\tvar rec = \"F;W\" + (i+1) + \" \" + (i+1) + \" \";\n\t\t\tif(col.hidden) rec += \"0\";\n\t\t\telse {\n\t\t\t\tif(typeof col.width == 'number') col.wpx = width2px(col.width);\n\t\t\t\tif(typeof col.wpx == 'number') col.wch = px2char(col.wpx);\n\t\t\t\tif(typeof col.wch == 'number') rec += Math.round(col.wch);\n\t\t\t}\n\t\t\tif(rec.charAt(rec.length - 1) != \" \") out.push(rec);\n\t\t});\n\t}\n\n\tfunction write_ws_rows_sylk(out, rows) {\n\t\trows.forEach(function(row, i) {\n\t\t\tvar rec = \"F;\";\n\t\t\tif(row.hidden) rec += \"M0;\";\n\t\t\telse if(row.hpt) rec += \"M\" + 20 * row.hpt + \";\";\n\t\t\telse if(row.hpx) rec += \"M\" + 20 * px2pt(row.hpx) + \";\";\n\t\t\tif(rec.length > 2) out.push(rec + \"R\" + (i+1));\n\t\t});\n\t}\n\n\tfunction sheet_to_sylk(ws, opts) {\n\t\tvar preamble = [\"ID;PWXL;N;E\"], o = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\tvar dense = Array.isArray(ws);\n\t\tvar RS = \"\\r\\n\";\n\n\t\tpreamble.push(\"P;PGeneral\");\n\t\tpreamble.push(\"F;P0;DG0G8;M255\");\n\t\tif(ws['!cols']) write_ws_cols_sylk(preamble, ws['!cols']);\n\t\tif(ws['!rows']) write_ws_rows_sylk(preamble, ws['!rows']);\n\n\t\tpreamble.push(\"B;Y\" + (r.e.r - r.s.r + 1) + \";X\" + (r.e.c - r.s.c + 1) + \";D\" + [r.s.c,r.s.r,r.e.c,r.e.r].join(\" \"));\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || (cell.v == null && (!cell.f || cell.F))) continue;\n\t\t\t\to.push(write_ws_cell_sylk(cell, ws, R, C, opts));\n\t\t\t}\n\t\t}\n\t\treturn preamble.join(RS) + RS + o.join(RS) + RS + \"E\" + RS;\n\t}\n\n\treturn {\n\t\tto_workbook: sylk_to_workbook,\n\t\tto_sheet: sylk_to_sheet,\n\t\tfrom_sheet: sheet_to_sylk\n\t};\n})();\n\nvar DIF = (function() {\n\tfunction dif_to_aoa(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return dif_to_aoa_str(Base64.decode(d), opts);\n\t\t\tcase 'binary': return dif_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return dif_to_aoa_str(d.toString('binary'), opts);\n\t\t\tcase 'array': return dif_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction dif_to_aoa_str(str, opts) {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tif (records[ri].trim() === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\tif (R < 0) continue;\n\t\t\tvar metadata = records[ri].trim().split(\",\");\n\t\t\tvar type = metadata[0], value = metadata[1];\n\t\t\t++ri;\n\t\t\tvar data = records[ri].trim();\n\t\t\tswitch (+type) {\n\t\t\t\tcase -1:\n\t\t\t\t\tif (data === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\t\t\telse if (data !== 'EOD') throw new Error(\"Unrecognized DIF special command \" + data);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0:\n\t\t\t\t\tif(data === 'TRUE') arr[R][C] = true;\n\t\t\t\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\t\t\t\telse if(!isNaN(fuzzynum(value))) arr[R][C] = fuzzynum(value);\n\t\t\t\t\telse if(!isNaN(fuzzydate(value).getDate())) arr[R][C] = parseDate(value);\n\t\t\t\t\telse arr[R][C] = value;\n\t\t\t\t\t++C; break;\n\t\t\t\tcase 1:\n\t\t\t\t\tdata = data.slice(1,data.length-1);\n\t\t\t\t\tarr[R][C++] = data !== '' ? data : null;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (data === 'EOD') break;\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction dif_to_sheet(str, opts) { return aoa_to_sheet(dif_to_aoa(str, opts), opts); }\n\tfunction dif_to_workbook(str, opts) { return sheet_to_workbook(dif_to_sheet(str, opts), opts); }\n\n\tvar sheet_to_dif = (function() {\n\t\tvar push_field = function pf(o, topic, v, n, s) {\n\t\t\to.push(topic);\n\t\t\to.push(v + \",\" + n);\n\t\t\to.push('\"' + s.replace(/\"/g,'\"\"') + '\"');\n\t\t};\n\t\tvar push_value = function po(o, type, v, s) {\n\t\t\to.push(type + \",\" + v);\n\t\t\to.push(type == 1 ? '\"' + s.replace(/\"/g,'\"\"') + '\"' : s);\n\t\t};\n\t\treturn function sheet_to_dif(ws) {\n\t\t\tvar o = [];\n\t\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\t\tvar dense = Array.isArray(ws);\n\t\t\tpush_field(o, \"TABLE\", 0, 1, \"sheetjs\");\n\t\t\tpush_field(o, \"VECTORS\", 0, r.e.r - r.s.r + 1,\"\");\n\t\t\tpush_field(o, \"TUPLES\", 0, r.e.c - r.s.c + 1,\"\");\n\t\t\tpush_field(o, \"DATA\", 0, 0,\"\");\n\t\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\t\tpush_value(o, -1, 0, \"BOT\");\n\t\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\t\tif(!cell) { push_value(o, 1, 0, \"\"); continue;}\n\t\t\t\t\tswitch(cell.t) {\n\t\t\t\t\t\tcase 'n':\n\t\t\t\t\t\t\tvar val = DIF_XL ? cell.w : cell.v;\n\t\t\t\t\t\t\tif(!val && cell.v != null) val = cell.v;\n\t\t\t\t\t\t\tif(val == null) {\n\t\t\t\t\t\t\t\tif(DIF_XL && cell.f && !cell.F) push_value(o, 1, 0, \"=\" + cell.f);\n\t\t\t\t\t\t\t\telse push_value(o, 1, 0, \"\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse push_value(o, 0, val, \"V\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\tpush_value(o, 0, cell.v ? 1 : 0, cell.v ? \"TRUE\" : \"FALSE\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 's':\n\t\t\t\t\t\t\tpush_value(o, 1, 0, (!DIF_XL || isNaN(cell.v)) ? cell.v : '=\"' + cell.v + '\"');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'd':\n\t\t\t\t\t\t\tif(!cell.w) cell.w = SSF.format(cell.z || SSF._table[14], datenum(parseDate(cell.v)));\n\t\t\t\t\t\t\tif(DIF_XL) push_value(o, 0, cell.w, \"V\");\n\t\t\t\t\t\t\telse push_value(o, 1, 0, cell.w);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault: push_value(o, 1, 0, \"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tpush_value(o, -1, 0, \"EOD\");\n\t\t\tvar RS = \"\\r\\n\";\n\t\t\tvar oo = o.join(RS);\n\t\t\t//while((oo.length & 0x7F) != 0) oo += \"\\0\";\n\t\t\treturn oo;\n\t\t};\n\t})();\n\treturn {\n\t\tto_workbook: dif_to_workbook,\n\t\tto_sheet: dif_to_sheet,\n\t\tfrom_sheet: sheet_to_dif\n\t};\n})();\n\nvar ETH = (function() {\n\tfunction decode(s) { return s.replace(/\\\\b/g,\"\\\\\").replace(/\\\\c/g,\":\").replace(/\\\\n/g,\"\\n\"); }\n\tfunction encode(s) { return s.replace(/\\\\/g, \"\\\\b\").replace(/:/g, \"\\\\c\").replace(/\\n/g,\"\\\\n\"); }\n\n\tfunction eth_to_aoa(str, opts) {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tvar record = records[ri].trim().split(\":\");\n\t\t\tif(record[0] !== 'cell') continue;\n\t\t\tvar addr = decode_cell(record[1]);\n\t\t\tif(arr.length <= addr.r) for(R = arr.length; R <= addr.r; ++R) if(!arr[R]) arr[R] = [];\n\t\t\tR = addr.r; C = addr.c;\n\t\t\tswitch(record[2]) {\n\t\t\t\tcase 't': arr[R][C] = decode(record[3]); break;\n\t\t\t\tcase 'v': arr[R][C] = +record[3]; break;\n\t\t\t\tcase 'vtf': var _f = record[record.length - 1];\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'vtc':\n\t\t\t\t\tswitch(record[3]) {\n\t\t\t\t\t\tcase 'nl': arr[R][C] = +record[4] ? true : false; break;\n\t\t\t\t\t\tdefault: arr[R][C] = +record[4]; break;\n\t\t\t\t\t}\n\t\t\t\t\tif(record[2] == 'vtf') arr[R][C] = [arr[R][C], _f];\n\t\t\t}\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction eth_to_sheet(d, opts) { return aoa_to_sheet(eth_to_aoa(d, opts), opts); }\n\tfunction eth_to_workbook(d, opts) { return sheet_to_workbook(eth_to_sheet(d, opts), opts); }\n\n\tvar header = [\n\t\t\"socialcalc:version:1.5\",\n\t\t\"MIME-Version: 1.0\",\n\t\t\"Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave\"\n\t].join(\"\\n\");\n\n\tvar sep = [\n\t\t\"--SocialCalcSpreadsheetControlSave\",\n\t\t\"Content-type: text/plain; charset=UTF-8\"\n\t].join(\"\\n\") + \"\\n\";\n\n\t/* TODO: the other parts */\n\tvar meta = [\n\t\t\"# SocialCalc Spreadsheet Control Save\",\n\t\t\"part:sheet\"\n\t].join(\"\\n\");\n\n\tvar end = \"--SocialCalcSpreadsheetControlSave--\";\n\n\tfunction sheet_to_eth_data(ws) {\n\t\tif(!ws || !ws['!ref']) return \"\";\n\t\tvar o = [], oo = [], cell, coord = \"\";\n\t\tvar r = decode_range(ws['!ref']);\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tcoord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null || cell.t === 'z') continue;\n\t\t\t\too = [\"cell\", coord, 't'];\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 's': case 'str': oo.push(encode(cell.v)); break;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tif(!cell.f) { oo[2]='v'; oo[3]=cell.v; }\n\t\t\t\t\t\telse { oo[2]='vtf'; oo[3]='n'; oo[4]=cell.v; oo[5]=encode(cell.f); }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\too[2] = 'vt'+(cell.f?'f':'c'); oo[3]='nl'; oo[4]=cell.v?\"1\":\"0\";\n\t\t\t\t\t\too[5] = encode(cell.f||(cell.v?'TRUE':'FALSE'));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\tvar t = datenum(parseDate(cell.v));\n\t\t\t\t\t\too[2] = 'vtc'; oo[3] = 'nd'; oo[4] = \"\"+t;\n\t\t\t\t\t\too[5] = cell.w || SSF.format(cell.z || SSF._table[14], t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'e': continue;\n\t\t\t\t}\n\t\t\t\to.push(oo.join(\":\"));\n\t\t\t}\n\t\t}\n\t\to.push(\"sheet:c:\" + (r.e.c-r.s.c+1) + \":r:\" + (r.e.r-r.s.r+1) + \":tvf:1\");\n\t\to.push(\"valueformat:1:text-wiki\");\n\t\t//o.push(\"copiedfrom:\" + ws['!ref']); // clipboard only\n\t\treturn o.join(\"\\n\");\n\t}\n\n\tfunction sheet_to_eth(ws) {\n\t\treturn [header, sep, meta, sep, sheet_to_eth_data(ws), end].join(\"\\n\");\n\t\t// return [\"version:1.5\", sheet_to_eth_data(ws)].join(\"\\n\"); // clipboard form\n\t}\n\n\treturn {\n\t\tto_workbook: eth_to_workbook,\n\t\tto_sheet: eth_to_sheet,\n\t\tfrom_sheet: sheet_to_eth\n\t};\n})();\n\nvar PRN = (function() {\n\tfunction set_text_arr(data, arr, R, C, o) {\n\t\tif(o.raw) arr[R][C] = data;\n\t\telse if(data === 'TRUE') arr[R][C] = true;\n\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\telse if(data === \"\"){/* empty */}\n\t\telse if(!isNaN(fuzzynum(data))) arr[R][C] = fuzzynum(data);\n\t\telse if(!isNaN(fuzzydate(data).getDate())) arr[R][C] = parseDate(data);\n\t\telse arr[R][C] = data;\n\t}\n\n\tfunction prn_to_aoa_str(f, opts) {\n\t\tvar o = opts || {};\n\t\tvar arr = ([]);\n\t\tif(!f || f.length === 0) return arr;\n\t\tvar lines = f.split(/[\\r\\n]/);\n\t\tvar L = lines.length - 1;\n\t\twhile(L >= 0 && lines[L].length === 0) --L;\n\t\tvar start = 10, idx = 0;\n\t\tvar R = 0;\n\t\tfor(; R <= L; ++R) {\n\t\t\tidx = lines[R].indexOf(\" \");\n\t\t\tif(idx == -1) idx = lines[R].length; else idx++;\n\t\t\tstart = Math.max(start, idx);\n\t\t}\n\t\tfor(R = 0; R <= L; ++R) {\n\t\t\tarr[R] = [];\n\t\t\t/* TODO: confirm that widths are always 10 */\n\t\t\tvar C = 0;\n\t\t\tset_text_arr(lines[R].slice(0, start).trim(), arr, R, C, o);\n\t\t\tfor(C = 1; C <= (lines[R].length - start)/10 + 1; ++C)\n\t\t\t\tset_text_arr(lines[R].slice(start+(C-1)*10,start+C*10).trim(),arr,R,C,o);\n\t\t}\n\t\tif(o.sheetRows) arr = arr.slice(0, o.sheetRows);\n\t\treturn arr;\n\t}\n\n\t// List of accepted CSV separators\n\tvar guess_seps = {\n0x2C: ',',\n0x09: \"\\t\",\n0x3B: ';'\n\t};\n\n\t// CSV separator weights to be used in case of equal numbers\n\tvar guess_sep_weights = {\n0x2C: 3,\n0x09: 2,\n0x3B: 1\n\t};\n\n\tfunction guess_sep(str) {\n\t\tvar cnt = {}, instr = false, end = 0, cc = 0;\n\t\tfor(;end < str.length;++end) {\n\t\t\tif((cc=str.charCodeAt(end)) == 0x22) instr = !instr;\n\t\t\telse if(!instr && cc in guess_seps) cnt[cc] = (cnt[cc]||0)+1;\n\t\t}\n\n\t\tcc = [];\n\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\tcc.push([ cnt[end], end ]);\n\t\t}\n\n\t\tif ( !cc.length ) {\n\t\t\tcnt = guess_sep_weights;\n\t\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\t\tcc.push([ cnt[end], end ]);\n\t\t\t}\n\t\t}\n\n\t\tcc.sort(function(a, b) { return a[0] - b[0] || guess_sep_weights[a[1]] - guess_sep_weights[b[1]]; });\n\n\t\treturn guess_seps[cc.pop()[1]];\n\t}\n\n\tfunction dsv_to_sheet_str(str, opts) {\n\t\tvar o = opts || {};\n\t\tvar sep = \"\";\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar ws = o.dense ? ([]) : ({});\n\t\tvar range = ({s: {c:0, r:0}, e: {c:0, r:0}});\n\n\t\tif(str.slice(0,4) == \"sep=\") {\n\t\t\t// If the line ends in \\r\\n\n\t\t\tif(str.charCodeAt(5) == 13 && str.charCodeAt(6) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(7);\n\t\t\t}\n\t\t\t// If line ends in \\r OR \\n\n\t\t\telse if(str.charCodeAt(5) == 13 || str.charCodeAt(5) == 10 ) {\n\t\t\t\t//\n\t\t\t\tsep = str.charAt(4); str = str.slice(6);\n\t\t\t}\n\t\t}\n\t\telse sep = guess_sep(str.slice(0,1024));\n\t\tvar R = 0, C = 0, v = 0;\n\t\tvar start = 0, end = 0, sepcc = sep.charCodeAt(0), instr = false, cc=0;\n\t\tstr = str.replace(/\\r\\n/mg, \"\\n\");\n\t\tvar _re = o.dateNF != null ? dateNF_regex(o.dateNF) : null;\n\t\tfunction finish_cell() {\n\t\t\tvar s = str.slice(start, end);\n\t\t\tvar cell = ({});\n\t\t\tif(s.charAt(0) == '\"' && s.charAt(s.length - 1) == '\"') s = s.slice(1,-1).replace(/\"\"/g,'\"');\n\t\t\tif(s.length === 0) cell.t = 'z';\n\t\t\telse if(o.raw) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.trim().length === 0) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.charCodeAt(0) == 0x3D) {\n\t\t\t\tif(s.charCodeAt(1) == 0x22 && s.charCodeAt(s.length - 1) == 0x22) { cell.t = 's'; cell.v = s.slice(2,-1).replace(/\"\"/g,'\"'); }\n\t\t\t\telse if(fuzzyfmla(s)) { cell.t = 'n'; cell.f = s.slice(1); }\n\t\t\t\telse { cell.t = 's'; cell.v = s; } }\n\t\t\telse if(s == \"TRUE\") { cell.t = 'b'; cell.v = true; }\n\t\t\telse if(s == \"FALSE\") { cell.t = 'b'; cell.v = false; }\n\t\t\telse if(!isNaN(v = fuzzynum(s))) { cell.t = 'n'; if(o.cellText !== false) cell.w = s; cell.v = v; }\n\t\t\telse if(!isNaN(fuzzydate(s).getDate()) || _re && s.match(_re)) {\n\t\t\t\tcell.z = o.dateNF || SSF._table[14];\n\t\t\t\tvar k = 0;\n\t\t\t\tif(_re && s.match(_re)){ s=dateNF_fix(s, o.dateNF, (s.match(_re)||[])); k=1; }\n\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.v = parseDate(s, k); }\n\t\t\t\telse { cell.t = 'n'; cell.v = datenum(parseDate(s, k)); }\n\t\t\t\tif(o.cellText !== false) cell.w = SSF.format(cell.z, cell.v instanceof Date ? datenum(cell.v):cell.v);\n\t\t\t\tif(!o.cellNF) delete cell.z;\n\t\t\t} else {\n\t\t\t\tcell.t = 's';\n\t\t\t\tcell.v = s;\n\t\t\t}\n\t\t\tif(cell.t == 'z'){}\n\t\t\telse if(o.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = cell; }\n\t\t\telse ws[encode_cell({c:C,r:R})] = cell;\n\t\t\tstart = end+1;\n\t\t\tif(range.e.c < C) range.e.c = C;\n\t\t\tif(range.e.r < R) range.e.r = R;\n\t\t\tif(cc == sepcc) ++C; else { C = 0; ++R; if(o.sheetRows && o.sheetRows <= R) return true; }\n\t\t}\n\t\touter: for(;end < str.length;++end) switch((cc=str.charCodeAt(end))) {\n\t\t\tcase 0x22: instr = !instr; break;\n\t\t\tcase sepcc: case 0x0a: case 0x0d: if(!instr && finish_cell()) break outer; break;\n\t\t\tdefault: break;\n\t\t}\n\t\tif(end - start > 0) finish_cell();\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction prn_to_sheet_str(str, opts) {\n\t\tif(!(opts && opts.PRN)) return dsv_to_sheet_str(str, opts);\n\t\tif(str.slice(0,4) == \"sep=\") return dsv_to_sheet_str(str, opts);\n\t\tif(str.indexOf(\"\\t\") >= 0 || str.indexOf(\",\") >= 0 || str.indexOf(\";\") >= 0) return dsv_to_sheet_str(str, opts);\n\t\treturn aoa_to_sheet(prn_to_aoa_str(str, opts), opts);\n\t}\n\n\tfunction prn_to_sheet(d, opts) {\n\t\tvar str = \"\", bytes = opts.type == 'string' ? [0,0,0,0] : firstbyte(d, opts);\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': str = Base64.decode(d); break;\n\t\t\tcase 'binary': str = d; break;\n\t\t\tcase 'buffer':\n\t\t\t\tif(opts.codepage == 65001) str = d.toString('utf8');\n\t\t\t\telse if(opts.codepage && typeof cptable !== 'undefined') str = cptable.utils.decode(opts.codepage, d);\n\t\t\t\telse str = d.toString('binary');\n\t\t\t\tbreak;\n\t\t\tcase 'array': str = cc2str(d); break;\n\t\t\tcase 'string': str = d; break;\n\t\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t\t}\n\t\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str.slice(3));\n\t\telse if((opts.type == 'binary') && typeof cptable !== 'undefined' && opts.codepage) str = cptable.utils.decode(opts.codepage, cptable.utils.encode(1252,str));\n\t\tif(str.slice(0,19) == \"socialcalc:version:\") return ETH.to_sheet(opts.type == 'string' ? str : utf8read(str), opts);\n\t\treturn prn_to_sheet_str(str, opts);\n\t}\n\n\tfunction prn_to_workbook(d, opts) { return sheet_to_workbook(prn_to_sheet(d, opts), opts); }\n\n\tfunction sheet_to_prn(ws) {\n\t\tvar o = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tvar oo = [];\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null) { oo.push(\" \"); continue; }\n\t\t\t\tvar w = (cell.w || (format_cell(cell), cell.w) || \"\").slice(0,10);\n\t\t\t\twhile(w.length < 10) w += \" \";\n\t\t\t\too.push(w + (C === 0 ? \" \" : \"\"));\n\t\t\t}\n\t\t\to.push(oo.join(\"\"));\n\t\t}\n\t\treturn o.join(\"\\n\");\n\t}\n\n\treturn {\n\t\tto_workbook: prn_to_workbook,\n\t\tto_sheet: prn_to_sheet,\n\t\tfrom_sheet: sheet_to_prn\n\t};\n})();\n\n/* Excel defaults to SYLK but warns if data is not valid */\nfunction read_wb_ID(d, opts) {\n\tvar o = opts || {}, OLD_WTF = !!o.WTF; o.WTF = true;\n\ttry {\n\t\tvar out = SYLK.to_workbook(d, o);\n\t\to.WTF = OLD_WTF;\n\t\treturn out;\n\t} catch(e) {\n\t\to.WTF = OLD_WTF;\n\t\tif(!e.message.match(/SYLK bad record ID/) && OLD_WTF) throw e;\n\t\treturn PRN.to_workbook(d, opts);\n\t}\n}\n\nvar WK_ = (function() {\n\tfunction lotushopper(data, cb, opts) {\n\t\tif(!data) return;\n\t\tprep_blob(data, data.l || 0);\n\t\tvar Enum = opts.Enum || WK1Enum;\n\t\twhile(data.l < data.length) {\n\t\t\tvar RT = data.read_shift(2);\n\t\t\tvar R = Enum[RT] || Enum[0xFF];\n\t\t\tvar length = data.read_shift(2);\n\t\t\tvar tgt = data.l + length;\n\t\t\tvar d = (R.f||parsenoop)(data, length, opts);\n\t\t\tdata.l = tgt;\n\t\t\tif(cb(d, R.n, RT)) return;\n\t\t}\n\t}\n\n\tfunction lotus_to_workbook(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return lotus_to_workbook_buf(s2a(Base64.decode(d)), opts);\n\t\t\tcase 'binary': return lotus_to_workbook_buf(s2a(d), opts);\n\t\t\tcase 'buffer':\n\t\t\tcase 'array': return lotus_to_workbook_buf(d, opts);\n\t\t}\n\t\tthrow \"Unsupported type \" + opts.type;\n\t}\n\n\tfunction lotus_to_workbook_buf(d, opts) {\n\t\tif(!d) return d;\n\t\tvar o = opts || {};\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar s = ((o.dense ? [] : {})), n = \"Sheet1\", sidx = 0;\n\t\tvar sheets = {}, snames = [n];\n\n\t\tvar refguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\tvar sheetRows = o.sheetRows || 0;\n\n\t\tif(d[2] == 0x02) o.Enum = WK1Enum;\n\t\telse if(d[2] == 0x1a) o.Enum = WK3Enum;\n\t\telse if(d[2] == 0x0e) { o.Enum = WK3Enum; o.qpro = true; d.l = 0; }\n\t\telse throw new Error(\"Unrecognized LOTUS BOF \" + d[2]);\n\t\tlotushopper(d, function(val, Rn, RT) {\n\t\t\tif(d[2] == 0x02) switch(RT) {\n\t\t\t\tcase 0x00:\n\t\t\t\t\to.vers = val;\n\t\t\t\t\tif(val >= 0x1000) o.qpro = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x06: refguess = val; break; /* RANGE */\n\t\t\t\tcase 0x0F: /* LABEL */\n\t\t\t\t\tif(!o.qpro) val[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x0D: /* INTEGER */\n\t\t\t\tcase 0x0E: /* NUMBER */\n\t\t\t\tcase 0x10: /* FORMULA */\n\t\t\t\tcase 0x33: /* STRING */\n\t\t\t\t\t/* TODO: actual translation of the format code */\n\t\t\t\t\tif(RT == 0x0E && (val[2] & 0x70) == 0x70 && (val[2] & 0x0F) > 1 && (val[2] & 0x0F) < 15) {\n\t\t\t\t\t\tval[1].z = o.dateNF || SSF._table[14];\n\t\t\t\t\t\tif(o.cellDates) { val[1].t = 'd'; val[1].v = numdate(val[1].v); }\n\t\t\t\t\t}\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tbreak;\n\t\t\t} else switch(RT) {\n\t\t\t\tcase 0x16: /* LABEL16 */\n\t\t\t\t\tval[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x17: /* NUMBER17 */\n\t\t\t\tcase 0x18: /* NUMBER18 */\n\t\t\t\tcase 0x19: /* FORMULA19 */\n\t\t\t\tcase 0x25: /* NUMBER25 */\n\t\t\t\tcase 0x27: /* NUMBER27 */\n\t\t\t\tcase 0x28: /* FORMULA28 */\n\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\ts = (o.dense ? [] : {});\n\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\tsidx = val[3]; n = \"Sheet\" + (sidx + 1);\n\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t}\n\t\t\t\t\tif(sheetRows > 0 && val[0].r >= sheetRows) break;\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tif(refguess.e.c < val[0].c) refguess.e.c = val[0].c;\n\t\t\t\t\tif(refguess.e.r < val[0].r) refguess.e.r = val[0].r;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: break;\n\t\t\t}\n\t\t}, o);\n\n\t\ts[\"!ref\"] = encode_range(refguess);\n\t\tsheets[n] = s;\n\t\treturn { SheetNames: snames, Sheets:sheets };\n\t}\n\n\tfunction parse_RANGE(blob) {\n\t\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\t\to.s.c = blob.read_shift(2);\n\t\to.s.r = blob.read_shift(2);\n\t\to.e.c = blob.read_shift(2);\n\t\to.e.r = blob.read_shift(2);\n\t\tif(o.s.c == 0xFFFF) o.s.c = o.e.c = o.s.r = o.e.r = 0;\n\t\treturn o;\n\t}\n\n\tfunction parse_cell(blob, length, opts) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0];\n\t\tif(opts.qpro && opts.vers != 0x5120) {\n\t\t\to[0].c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to[0].r = blob.read_shift(2);\n\t\t\tblob.l+=2;\n\t\t} else {\n\t\t\to[2] = blob.read_shift(1);\n\t\t\to[0].c = blob.read_shift(2); o[0].r = blob.read_shift(2);\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].t = 's';\n\t\tif(opts.vers == 0x5120) {\n\t\t\tblob.l++;\n\t\t\tvar len = blob.read_shift(1);\n\t\t\to[1].v = blob.read_shift(len, 'utf8');\n\t\t\treturn o;\n\t\t}\n\t\tif(opts.qpro) blob.l++;\n\t\to[1].v = blob.read_shift(tgt - blob.l, 'cstr');\n\t\treturn o;\n\t}\n\n\tfunction parse_INTEGER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(2, 'i');\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\t/* TODO: formula */\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\tif(opts.qpro) blob.l = tgt;\n\t\telse {\n\t\t\tvar flen = blob.read_shift(2);\n\t\t\tblob.l += flen;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction parse_cell_3(blob) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0];\n\t\to[0].r = blob.read_shift(2); o[3] = blob[blob.l++]; o[0].c = blob[blob.l++];\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL_16(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].t = 's';\n\t\to[1].v = blob.read_shift(length - 4, 'cstr');\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_18(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].v = blob.read_shift(2);\n\t\tvar v = o[1].v >> 1;\n\t\t/* TODO: figure out all of the corner cases */\n\t\tif(o[1].v & 0x1) {\n\t\t\tswitch(v & 0x07) {\n\t\t\t\tcase 1: v = (v >> 3) * 500; break;\n\t\t\t\tcase 2: v = (v >> 3) / 20; break;\n\t\t\t\tcase 4: v = (v >> 3) / 2000; break;\n\t\t\t\tcase 6: v = (v >> 3) / 16; break;\n\t\t\t\tcase 7: v = (v >> 3) / 64; break;\n\t\t\t\tdefault: throw \"unknown NUMBER_18 encoding \" + (v & 0x07);\n\t\t\t}\n\t\t}\n\t\to[1].v = v;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_17(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\tvar v2 = blob.read_shift(4);\n\t\tvar e = blob.read_shift(2);\n\t\tif(e == 0xFFFF) { o[1].v = 0; return o; }\n\t\tvar s = e & 0x8000; e = (e&0x7FFF) - 16446;\n\t\to[1].v = (s*2 - 1) * ((e > 0 ? (v2 << e) : (v2 >>> -e)) + (e > -32 ? (v1 << (e + 32)) : (v1 >>> -(e + 32))));\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_19(blob, length) {\n\t\tvar o = parse_NUMBER_17(blob, 14);\n\t\tblob.l += length - 14; /* TODO: formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_25(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\to[1].v = v1 >> 6;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_27(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(8,'f');\n\t\to[1].v = v1;\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_28(blob, length) {\n\t\tvar o = parse_NUMBER_27(blob, 14);\n\t\tblob.l += length - 10; /* TODO: formula */\n\t\treturn o;\n\t}\n\n\tvar WK1Enum = {\n0x0000: { n:\"BOF\", f:parseuint16 },\n0x0001: { n:\"EOF\" },\n0x0002: { n:\"CALCMODE\" },\n0x0003: { n:\"CALCORDER\" },\n0x0004: { n:\"SPLIT\" },\n0x0005: { n:\"SYNC\" },\n0x0006: { n:\"RANGE\", f:parse_RANGE },\n0x0007: { n:\"WINDOW1\" },\n0x0008: { n:\"COLW1\" },\n0x0009: { n:\"WINTWO\" },\n0x000A: { n:\"COLW2\" },\n0x000B: { n:\"NAME\" },\n0x000C: { n:\"BLANK\" },\n0x000D: { n:\"INTEGER\", f:parse_INTEGER },\n0x000E: { n:\"NUMBER\", f:parse_NUMBER },\n0x000F: { n:\"LABEL\", f:parse_LABEL },\n0x0010: { n:\"FORMULA\", f:parse_FORMULA },\n0x0018: { n:\"TABLE\" },\n0x0019: { n:\"ORANGE\" },\n0x001A: { n:\"PRANGE\" },\n0x001B: { n:\"SRANGE\" },\n0x001C: { n:\"FRANGE\" },\n0x001D: { n:\"KRANGE1\" },\n0x0020: { n:\"HRANGE\" },\n0x0023: { n:\"KRANGE2\" },\n0x0024: { n:\"PROTEC\" },\n0x0025: { n:\"FOOTER\" },\n0x0026: { n:\"HEADER\" },\n0x0027: { n:\"SETUP\" },\n0x0028: { n:\"MARGINS\" },\n0x0029: { n:\"LABELFMT\" },\n0x002A: { n:\"TITLES\" },\n0x002B: { n:\"SHEETJS\" },\n0x002D: { n:\"GRAPH\" },\n0x002E: { n:\"NGRAPH\" },\n0x002F: { n:\"CALCCOUNT\" },\n0x0030: { n:\"UNFORMATTED\" },\n0x0031: { n:\"CURSORW12\" },\n0x0032: { n:\"WINDOW\" },\n0x0033: { n:\"STRING\", f:parse_LABEL },\n0x0037: { n:\"PASSWORD\" },\n0x0038: { n:\"LOCKED\" },\n0x003C: { n:\"QUERY\" },\n0x003D: { n:\"QUERYNAME\" },\n0x003E: { n:\"PRINT\" },\n0x003F: { n:\"PRINTNAME\" },\n0x0040: { n:\"GRAPH2\" },\n0x0041: { n:\"GRAPHNAME\" },\n0x0042: { n:\"ZOOM\" },\n0x0043: { n:\"SYMSPLIT\" },\n0x0044: { n:\"NSROWS\" },\n0x0045: { n:\"NSCOLS\" },\n0x0046: { n:\"RULER\" },\n0x0047: { n:\"NNAME\" },\n0x0048: { n:\"ACOMM\" },\n0x0049: { n:\"AMACRO\" },\n0x004A: { n:\"PARSE\" },\n0x00FF: { n:\"\", f:parsenoop }\n\t};\n\n\tvar WK3Enum = {\n0x0000: { n:\"BOF\" },\n0x0001: { n:\"EOF\" },\n0x0003: { n:\"??\" },\n0x0004: { n:\"??\" },\n0x0005: { n:\"??\" },\n0x0006: { n:\"??\" },\n0x0007: { n:\"??\" },\n0x0009: { n:\"??\" },\n0x000a: { n:\"??\" },\n0x000b: { n:\"??\" },\n0x000c: { n:\"??\" },\n0x000e: { n:\"??\" },\n0x000f: { n:\"??\" },\n0x0010: { n:\"??\" },\n0x0011: { n:\"??\" },\n0x0012: { n:\"??\" },\n0x0013: { n:\"??\" },\n0x0015: { n:\"??\" },\n0x0016: { n:\"LABEL16\", f:parse_LABEL_16},\n0x0017: { n:\"NUMBER17\", f:parse_NUMBER_17 },\n0x0018: { n:\"NUMBER18\", f:parse_NUMBER_18 },\n0x0019: { n:\"FORMULA19\", f:parse_FORMULA_19},\n0x001a: { n:\"??\" },\n0x001b: { n:\"??\" },\n0x001c: { n:\"??\" },\n0x001d: { n:\"??\" },\n0x001e: { n:\"??\" },\n0x001f: { n:\"??\" },\n0x0021: { n:\"??\" },\n0x0025: { n:\"NUMBER25\", f:parse_NUMBER_25 },\n0x0027: { n:\"NUMBER27\", f:parse_NUMBER_27 },\n0x0028: { n:\"FORMULA28\", f:parse_FORMULA_28 },\n0x00FF: { n:\"\", f:parsenoop }\n\t};\n\treturn {\n\t\tto_workbook: lotus_to_workbook\n\t};\n})();\n/* 18.4.7 rPr CT_RPrElt */\nfunction parse_rpr(rpr) {\n\tvar font = {}, m = rpr.match(tagregex), i = 0;\n\tvar pass = false;\n\tif(m) for(;i!=m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(y[0].replace(/\\w*:/g,\"\")) {\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '<condense': break;\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '<extend': break;\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '<shadow':\n\t\t\t\tif(!y.val) break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<shadow>':\n\t\t\tcase '<shadow/>': font.shadow = 1; break;\n\t\t\tcase '</shadow>': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty TODO */\n\t\t\tcase '<charset':\n\t\t\t\tif(y.val == '1') break;\n\t\t\t\tfont.cp = CS2CP[parseInt(y.val, 10)];\n\t\t\t\tbreak;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty TODO */\n\t\t\tcase '<outline':\n\t\t\t\tif(!y.val) break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<outline>':\n\t\t\tcase '<outline/>': font.outline = 1; break;\n\t\t\tcase '</outline>': break;\n\n\t\t\t/* 18.4.5 rFont CT_FontName */\n\t\t\tcase '<rFont': font.name = y.val; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '<sz': font.sz = y.val; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '<strike':\n\t\t\t\tif(!y.val) break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<strike>':\n\t\t\tcase '<strike/>': font.strike = 1; break;\n\t\t\tcase '</strike>': break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '<u':\n\t\t\t\tif(!y.val) break;\n\t\t\t\tswitch(y.val) {\n\t\t\t\t\tcase 'double': font.uval = \"double\"; break;\n\t\t\t\t\tcase 'singleAccounting': font.uval = \"single-accounting\"; break;\n\t\t\t\t\tcase 'doubleAccounting': font.uval = \"double-accounting\"; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '<u>':\n\t\t\tcase '<u/>': font.u = 1; break;\n\t\t\tcase '</u>': break;\n\n\t\t\t/* 18.8.2 b */\n\t\t\tcase '<b':\n\t\t\t\tif(y.val == '0') break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<b>':\n\t\t\tcase '<b/>': font.b = 1; break;\n\t\t\tcase '</b>': break;\n\n\t\t\t/* 18.8.26 i */\n\t\t\tcase '<i':\n\t\t\t\tif(y.val == '0') break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<i>':\n\t\t\tcase '<i/>': font.i = 1; break;\n\t\t\tcase '</i>': break;\n\n\t\t\t/* 18.3.1.15 color CT_Color TODO: tint, theme, auto, indexed */\n\t\t\tcase '<color':\n\t\t\t\tif(y.rgb) font.color = y.rgb.slice(2,8);\n\t\t\t\tbreak;\n\n\t\t\t/* 18.8.18 family ST_FontFamily */\n\t\t\tcase '<family': font.family = y.val; break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty TODO */\n\t\t\tcase '<vertAlign': font.valign = y.val; break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme TODO */\n\t\t\tcase '<scheme': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault:\n\t\t\t\tif(y[0].charCodeAt(1) !== 47 && !pass) throw new Error('Unrecognized rich format ' + y[0]);\n\t\t}\n\t}\n\treturn font;\n}\n\nvar parse_rs = (function() {\n\tvar tregex = matchtag(\"t\"), rpregex = matchtag(\"rPr\");\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = r.match(tregex)/*, cp = 65001*/;\n\t\tif(!t) return {t:\"s\", v:\"\"};\n\n\t\tvar o = ({t:'s', v:unescapexml(t[1])});\n\t\tvar rpr = r.match(rpregex);\n\t\tif(rpr) o.s = parse_rpr(rpr[1]);\n\t\treturn o;\n\t}\n\tvar rregex = /<(?:\\w+:)?r>/g, rend = /<\\/(?:\\w+:)?r>/;\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).filter(function(r) { return r.v; });\n\t};\n})();\n\n\n/* Parse a list of <r> tags */\nvar rs_to_html = (function parse_rs_factory() {\n\tvar nlregex = /(\\r\\n|\\n)/g;\n\tfunction parse_rpr2(font, intro, outro) {\n\t\tvar style = [];\n\n\t\tif(font.u) style.push(\"text-decoration: underline;\");\n\t\tif(font.uval) style.push(\"text-underline-style:\" + font.uval + \";\");\n\t\tif(font.sz) style.push(\"font-size:\" + font.sz + \"pt;\");\n\t\tif(font.outline) style.push(\"text-effect: outline;\");\n\t\tif(font.shadow) style.push(\"text-shadow: auto;\");\n\t\tintro.push('<span style=\"' + style.join(\"\") + '\">');\n\n\t\tif(font.b) { intro.push(\"<b>\"); outro.push(\"</b>\"); }\n\t\tif(font.i) { intro.push(\"<i>\"); outro.push(\"</i>\"); }\n\t\tif(font.strike) { intro.push(\"<s>\"); outro.push(\"</s>\"); }\n\n\t\tvar align = font.valign || \"\";\n\t\tif(align == \"superscript\" || align == \"super\") align = \"sup\";\n\t\telse if(align == \"subscript\") align = \"sub\";\n\t\tif(align != \"\") { intro.push(\"<\" + align + \">\"); outro.push(\"</\" + align + \">\"); }\n\n\t\toutro.push(\"</span>\");\n\t\treturn font;\n\t}\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction r_to_html(r) {\n\t\tvar terms = [[],r.v,[]];\n\t\tif(!r.v) return \"\";\n\n\t\tif(r.s) parse_rpr2(r.s, terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'<br/>') + terms[2].join(\"\");\n\t}\n\n\treturn function parse_rs(rs) {\n\t\treturn rs.map(r_to_html).join(\"\");\n\t};\n})();\n\n/* 18.4.8 si CT_Rst */\nvar sitregex = /<(?:\\w+:)?t[^>]*>([^<]*)<\\/(?:\\w+:)?t>/g, sirregex = /<(?:\\w+:)?r>/;\nvar sirphregex = /<(?:\\w+:)?rPh.*?>([\\s\\S]*?)<\\/(?:\\w+:)?rPh>/g;\nfunction parse_si(x, opts) {\n\tvar html = opts ? opts.cellHTML : true;\n\tvar z = {};\n\tif(!x) return { t: \"\" };\n\t//var y;\n\t/* 18.4.12 t ST_Xstring (Plaintext String) */\n\t// TODO: is whitespace actually valid here?\n\tif(x.match(/^\\s*<(?:\\w+:)?t[^>]*>/)) {\n\t\tz.t = unescapexml(utf8read(x.slice(x.indexOf(\">\")+1).split(/<\\/(?:\\w+:)?t>/)[0]||\"\"));\n\t\tz.r = utf8read(x);\n\t\tif(html) z.h = escapehtml(z.t);\n\t}\n\t/* 18.4.4 r CT_RElt (Rich Text Run) */\n\telse if((/*y = */x.match(sirregex))) {\n\t\tz.r = utf8read(x);\n\t\tz.t = unescapexml(utf8read((x.replace(sirphregex, '').match(sitregex)||[]).join(\"\").replace(tagregex,\"\")));\n\t\tif(html) z.h = rs_to_html(parse_rs(z.r));\n\t}\n\t/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */\n\t/* 18.4.6 rPh CT_PhoneticRun (TODO: needed for Asian support) */\n\treturn z;\n}\n\n/* 18.4 Shared String Table */\nvar sstr0 = /<(?:\\w+:)?sst([^>]*)>([\\s\\S]*)<\\/(?:\\w+:)?sst>/;\nvar sstr1 = /<(?:\\w+:)?(?:si|sstItem)>/g;\nvar sstr2 = /<\\/(?:\\w+:)?(?:si|sstItem)>/;\nfunction parse_sst_xml(data, opts) {\n\tvar s = ([]), ss = \"\";\n\tif(!data) return s;\n\t/* 18.4.9 sst CT_Sst */\n\tvar sst = data.match(sstr0);\n\tif(sst) {\n\t\tss = sst[2].replace(sstr1,\"\").split(sstr2);\n\t\tfor(var i = 0; i != ss.length; ++i) {\n\t\t\tvar o = parse_si(ss[i].trim(), opts);\n\t\t\tif(o != null) s[s.length] = o;\n\t\t}\n\t\tsst = parsexmltag(sst[1]); s.Count = sst.count; s.Unique = sst.uniqueCount;\n\t}\n\treturn s;\n}\n\nRELS.SST = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\";\nvar straywsregex = /^\\s|\\s$|[\\t\\n\\r]/;\nfunction write_sst_xml(sst, opts) {\n\tif(!opts.bookSST) return \"\";\n\tvar o = [XML_HEADER];\n\to[o.length] = (writextag('sst', null, {\n\t\txmlns: XMLNS.main[0],\n\t\tcount: sst.Count,\n\t\tuniqueCount: sst.Unique\n\t}));\n\tfor(var i = 0; i != sst.length; ++i) { if(sst[i] == null) continue;\n\t\tvar s = sst[i];\n\t\tvar sitag = \"<si>\";\n\t\tif(s.r) sitag += s.r;\n\t\telse {\n\t\t\tsitag += \"<t\";\n\t\t\tif(!s.t) s.t = \"\";\n\t\t\tif(s.t.match(straywsregex)) sitag += ' xml:space=\"preserve\"';\n\t\t\tsitag += \">\" + escapexml(s.t) + \"</t>\";\n\t\t}\n\t\tsitag += \"</si>\";\n\t\to[o.length] = (sitag);\n\t}\n\tif(o.length>2){ o[o.length] = ('</sst>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.221 BrtBeginSst */\nfunction parse_BrtBeginSst(data) {\n\treturn [data.read_shift(4), data.read_shift(4)];\n}\n\n/* [MS-XLSB] 2.1.7.45 Shared Strings */\nfunction parse_sst_bin(data, opts) {\n\tvar s = ([]);\n\tvar pass = false;\n\trecordhopper(data, function hopper_sst(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009F: /* 'BrtBeginSst' */\n\t\t\t\ts.Count = val[0]; s.Unique = val[1]; break;\n\t\t\tcase 0x0013: /* 'BrtSSTItem' */\n\t\t\t\ts.push(val); break;\n\t\t\tcase 0x00A0: /* 'BrtEndSst' */\n\t\t\t\treturn true;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R_n.indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if(R_n.indexOf(\"End\") > 0){/* empty */}\n\t\t\t\tif(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn s;\n}\n\nfunction write_BrtBeginSst(sst, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(4, sst.Count);\n\to.write_shift(4, sst.Unique);\n\treturn o;\n}\n\nvar write_BrtSSTItem = write_RichStr;\n\nfunction write_sst_bin(sst) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginSst\", write_BrtBeginSst(sst));\n\tfor(var i = 0; i < sst.length; ++i) write_record(ba, \"BrtSSTItem\", write_BrtSSTItem(sst[i]));\n\t/* FRTSST */\n\twrite_record(ba, \"BrtEndSst\");\n\treturn ba.end();\n}\nfunction _JS2ANSI(str) {\n\tif(typeof cptable !== 'undefined') return cptable.utils.encode(current_ansi, str);\n\tvar o = [], oo = str.split(\"\");\n\tfor(var i = 0; i < oo.length; ++i) o[i] = oo[i].charCodeAt(0);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.4 Version */\nfunction parse_CRYPTOVersion(blob, length) {\n\tvar o = {};\n\to.Major = blob.read_shift(2);\n\to.Minor = blob.read_shift(2);\nif(length >= 4) blob.l += length - 4;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.5 DataSpaceVersionInfo */\nfunction parse_DataSpaceVersionInfo(blob) {\n\tvar o = {};\n\to.id = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6.1 DataSpaceMapEntry Structure */\nfunction parse_DataSpaceMapEntry(blob) {\n\tvar len = blob.read_shift(4);\n\tvar end = blob.l + len - 4;\n\tvar o = {};\n\tvar cnt = blob.read_shift(4);\n\tvar comps = [];\n\t/* [MS-OFFCRYPTO] 2.1.6.2 DataSpaceReferenceComponent Structure */\n\twhile(cnt-- > 0) comps.push({ t: blob.read_shift(4), v: blob.read_shift(0, 'lpp4') });\n\to.name = blob.read_shift(0, 'lpp4');\n\to.comps = comps;\n\tif(blob.l != end) throw new Error(\"Bad DataSpaceMapEntry: \" + blob.l + \" != \" + end);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6 DataSpaceMap */\nfunction parse_DataSpaceMap(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(parse_DataSpaceMapEntry(blob));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.7 DataSpaceDefinition */\nfunction parse_DataSpaceDefinition(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(blob.read_shift(0, 'lpp4'));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.8 DataSpaceDefinition */\nfunction parse_TransformInfoHeader(blob) {\n\tvar o = {};\n\t/*var len = */blob.read_shift(4);\n\tblob.l += 4; // must be 0x1\n\to.id = blob.read_shift(0, 'lpp4');\n\to.name = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\nfunction parse_Primary(blob) {\n\t/* [MS-OFFCRYPTO] 2.2.6 IRMDSTransformInfo */\n\tvar hdr = parse_TransformInfoHeader(blob);\n\t/* [MS-OFFCRYPTO] 2.1.9 EncryptionTransformInfo */\n\thdr.ename = blob.read_shift(0, '8lpp4');\n\thdr.blksz = blob.read_shift(4);\n\thdr.cmode = blob.read_shift(4);\n\tif(blob.read_shift(4) != 0x04) throw new Error(\"Bad !Primary record\");\n\treturn hdr;\n}\n\n/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */\nfunction parse_EncryptionHeader(blob, length) {\n\tvar tgt = blob.l + length;\n\tvar o = {};\n\to.Flags = (blob.read_shift(4) & 0x3F);\n\tblob.l += 4;\n\to.AlgID = blob.read_shift(4);\n\tvar valid = false;\n\tswitch(o.AlgID) {\n\t\tcase 0x660E: case 0x660F: case 0x6610: valid = (o.Flags == 0x24); break;\n\t\tcase 0x6801: valid = (o.Flags == 0x04); break;\n\t\tcase 0: valid = (o.Flags == 0x10 || o.Flags == 0x04 || o.Flags == 0x24); break;\n\t\tdefault: throw 'Unrecognized encryption algorithm: ' + o.AlgID;\n\t}\n\tif(!valid) throw new Error(\"Encryption Flags/AlgID mismatch\");\n\to.AlgIDHash = blob.read_shift(4);\n\to.KeySize = blob.read_shift(4);\n\to.ProviderType = blob.read_shift(4);\n\tblob.l += 8;\n\to.CSPName = blob.read_shift((tgt-blob.l)>>1, 'utf16le');\n\tblob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */\nfunction parse_EncryptionVerifier(blob, length) {\n\tvar o = {}, tgt = blob.l + length;\n\tblob.l += 4; // SaltSize must be 0x10\n\to.Salt = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\to.Verifier = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\t/*var sz = */blob.read_shift(4);\n\to.VerifierHash = blob.slice(blob.l, tgt); blob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.* EncryptionInfo Stream */\nfunction parse_EncryptionInfo(blob) {\n\tvar vers = parse_CRYPTOVersion(blob);\n\tswitch(vers.Minor) {\n\t\tcase 0x02: return [vers.Minor, parse_EncInfoStd(blob, vers)];\n\t\tcase 0x03: return [vers.Minor, parse_EncInfoExt(blob, vers)];\n\t\tcase 0x04: return [vers.Minor, parse_EncInfoAgl(blob, vers)];\n\t}\n\tthrow new Error(\"ECMA-376 Encrypted file unrecognized Version: \" + vers.Minor);\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.5 EncryptionInfo Stream (Standard Encryption) */\nfunction parse_EncInfoStd(blob) {\n\tvar flags = blob.read_shift(4);\n\tif((flags & 0x3F) != 0x24) throw new Error(\"EncryptionInfo mismatch\");\n\tvar sz = blob.read_shift(4);\n\t//var tgt = blob.l + sz;\n\tvar hdr = parse_EncryptionHeader(blob, sz);\n\tvar verifier = parse_EncryptionVerifier(blob, blob.length - blob.l);\n\treturn { t:\"Std\", h:hdr, v:verifier };\n}\n/* [MS-OFFCRYPTO] 2.3.4.6 EncryptionInfo Stream (Extensible Encryption) */\nfunction parse_EncInfoExt() { throw new Error(\"File is password-protected: ECMA-376 Extensible\"); }\n/* [MS-OFFCRYPTO] 2.3.4.10 EncryptionInfo Stream (Agile Encryption) */\nfunction parse_EncInfoAgl(blob) {\n\tvar KeyData = [\"saltSize\",\"blockSize\",\"keyBits\",\"hashSize\",\"cipherAlgorithm\",\"cipherChaining\",\"hashAlgorithm\",\"saltValue\"];\n\tblob.l+=4;\n\tvar xml = blob.read_shift(blob.length - blob.l, 'utf8');\n\tvar o = {};\n\txml.replace(tagregex, function xml_agile(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\t\t\tcase '<encryption': case '</encryption>': break;\n\t\t\tcase '<keyData': KeyData.forEach(function(k) { o[k] = y[k]; }); break;\n\t\t\tcase '<dataIntegrity': o.encryptedHmacKey = y.encryptedHmacKey; o.encryptedHmacValue = y.encryptedHmacValue; break;\n\t\t\tcase '<keyEncryptors>': case '<keyEncryptors': o.encs = []; break;\n\t\t\tcase '</keyEncryptors>': break;\n\n\t\t\tcase '<keyEncryptor': o.uri = y.uri; break;\n\t\t\tcase '</keyEncryptor>': break;\n\t\t\tcase '<encryptedKey': o.encs.push(y); break;\n\t\t\tdefault: throw y[0];\n\t\t}\n\t});\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.5.1 RC4 CryptoAPI Encryption Header */\nfunction parse_RC4CryptoHeader(blob, length) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4); length -= 4;\n\tif(vers.Minor != 2) throw new Error('unrecognized minor version code: ' + vers.Minor);\n\tif(vers.Major > 4 || vers.Major < 2) throw new Error('unrecognized major version code: ' + vers.Major);\n\to.Flags = blob.read_shift(4); length -= 4;\n\tvar sz = blob.read_shift(4); length -= 4;\n\to.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz;\n\to.EncryptionVerifier = parse_EncryptionVerifier(blob, length);\n\treturn o;\n}\n/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */\nfunction parse_RC4Header(blob) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4);\n\tif(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor;\n\to.Salt = blob.read_shift(16);\n\to.EncryptedVerifier = blob.read_shift(16);\n\to.EncryptedVerifierHash = blob.read_shift(16);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */\nfunction crypto_CreatePasswordVerifier_Method1(Password) {\n\tvar Verifier = 0x0000, PasswordArray;\n\tvar PasswordDecoded = _JS2ANSI(Password);\n\tvar len = PasswordDecoded.length + 1, i, PasswordByte;\n\tvar Intermediate1, Intermediate2, Intermediate3;\n\tPasswordArray = new_raw_buf(len);\n\tPasswordArray[0] = PasswordDecoded.length;\n\tfor(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1];\n\tfor(i = len-1; i >= 0; --i) {\n\t\tPasswordByte = PasswordArray[i];\n\t\tIntermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1;\n\t\tIntermediate2 = (Verifier << 1) & 0x7FFF;\n\t\tIntermediate3 = Intermediate1 | Intermediate2;\n\t\tVerifier = Intermediate3 ^ PasswordByte;\n\t}\n\treturn Verifier ^ 0xCE4B;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */\nvar crypto_CreateXorArray_Method1 = (function() {\n\tvar PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00];\n\tvar InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3];\n\tvar XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4];\n\tvar Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; };\n\tvar XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); };\n\tvar CreateXorKey_Method1 = function(Password) {\n\t\tvar XorKey = InitialCode[Password.length - 1];\n\t\tvar CurrentElement = 0x68;\n\t\tfor(var i = Password.length-1; i >= 0; --i) {\n\t\t\tvar Char = Password[i];\n\t\t\tfor(var j = 0; j != 7; ++j) {\n\t\t\t\tif(Char & 0x40) XorKey ^= XorMatrix[CurrentElement];\n\t\t\t\tChar *= 2; --CurrentElement;\n\t\t\t}\n\t\t}\n\t\treturn XorKey;\n\t};\n\treturn function(password) {\n\t\tvar Password = _JS2ANSI(password);\n\t\tvar XorKey = CreateXorKey_Method1(Password);\n\t\tvar Index = Password.length;\n\t\tvar ObfuscationArray = new_raw_buf(16);\n\t\tfor(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00;\n\t\tvar Temp, PasswordLastChar, PadIndex;\n\t\tif((Index & 1) === 1) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[0], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tPasswordLastChar = Password[Password.length - 1];\n\t\t\tObfuscationArray[Index] = XorRor(PasswordLastChar, Temp);\n\t\t}\n\t\twhile(Index > 0) {\n\t\t\t--Index;\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t}\n\t\tIndex = 15;\n\t\tPadIndex = 15 - Password.length;\n\t\twhile(PadIndex > 0) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t}\n\t\treturn ObfuscationArray;\n\t};\n})();\n\n/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */\nvar crypto_DecryptData_Method1 = function(password, Data, XorArrayIndex, XorArray, O) {\n\t/* If XorArray is set, use it; if O is not set, make changes in-place */\n\tif(!O) O = Data;\n\tif(!XorArray) XorArray = crypto_CreateXorArray_Method1(password);\n\tvar Index, Value;\n\tfor(Index = 0; Index != Data.length; ++Index) {\n\t\tValue = Data[Index];\n\t\tValue ^= XorArray[XorArrayIndex];\n\t\tValue = ((Value>>5) | (Value<<3)) & 0xFF;\n\t\tO[Index] = Value;\n\t\t++XorArrayIndex;\n\t}\n\treturn [O, XorArrayIndex, XorArray];\n};\n\nvar crypto_MakeXorDecryptor = function(password) {\n\tvar XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password);\n\treturn function(Data) {\n\t\tvar O = crypto_DecryptData_Method1(\"\", Data, XorArrayIndex, XorArray);\n\t\tXorArrayIndex = O[1];\n\t\treturn O[0];\n\t};\n};\n\n/* 2.5.343 */\nfunction parse_XORObfuscation(blob, length, opts, out) {\n\tvar o = ({ key: parseuint16(blob), verificationBytes: parseuint16(blob) });\n\tif(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password);\n\tout.valid = o.verificationBytes === o.verifier;\n\tif(out.valid) out.insitu = crypto_MakeXorDecryptor(opts.password);\n\treturn o;\n}\n\n/* 2.4.117 */\nfunction parse_FilePassHeader(blob, length, oo) {\n\tvar o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2;\n\tif(o.Info === 1) o.Data = parse_RC4Header(blob, length);\n\telse o.Data = parse_RC4CryptoHeader(blob, length);\n\treturn o;\n}\nfunction parse_FilePass(blob, length, opts) {\n\tvar o = ({ Type: opts.biff >= 8 ? blob.read_shift(2) : 0 }); /* wEncryptionType */\n\tif(o.Type) parse_FilePassHeader(blob, length-2, o);\n\telse parse_XORObfuscation(blob, opts.biff >= 8 ? length : length - 2, opts, o);\n\treturn o;\n}\n\n\nvar RTF = (function() {\n\tfunction rtf_to_sheet(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return rtf_to_sheet_str(Base64.decode(d), opts);\n\t\t\tcase 'binary': return rtf_to_sheet_str(d, opts);\n\t\t\tcase 'buffer': return rtf_to_sheet_str(d.toString('binary'), opts);\n\t\t\tcase 'array': return rtf_to_sheet_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\n\tfunction rtf_to_sheet_str(str, opts) {\n\t\tvar o = opts || {};\n\t\tvar ws = o.dense ? ([]) : ({});\n\t\tvar range = ({s: {c:0, r:0}, e: {c:0, r:0}});\n\n\t\t// TODO: parse\n\t\tif(!str.match(/\\\\trowd/)) throw new Error(\"RTF missing table\");\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction rtf_to_workbook(d, opts) { return sheet_to_workbook(rtf_to_sheet(d, opts), opts); }\n\n\t/* TODO: this is a stub */\n\tfunction sheet_to_rtf(ws) {\n\t\tvar o = [\"{\\\\rtf1\\\\ansi\"];\n\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\to.push(\"\\\\trowd\\\\trautofit1\");\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) o.push(\"\\\\cellx\" + (C+1));\n\t\t\to.push(\"\\\\pard\\\\intbl\");\n\t\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || cell.v == null && (!cell.f || cell.F)) continue;\n\t\t\t\to.push(\" \" + (cell.w || (format_cell(cell), cell.w)));\n\t\t\t\to.push(\"\\\\cell\");\n\t\t\t}\n\t\t\to.push(\"\\\\pard\\\\intbl\\\\row\");\n\t\t}\n\t\treturn o.join(\"\") + \"}\";\n\t}\n\n\treturn {\n\t\tto_workbook: rtf_to_workbook,\n\t\tto_sheet: rtf_to_sheet,\n\t\tfrom_sheet: sheet_to_rtf\n\t};\n})();\nfunction hex2RGB(h) {\n\tvar o = h.slice(h[0]===\"#\"?1:0).slice(0,6);\n\treturn [parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16)];\n}\nfunction rgb2Hex(rgb) {\n\tfor(var i=0,o=1; i!=3; ++i) o = o*256 + (rgb[i]>255?255:rgb[i]<0?0:rgb[i]);\n\treturn o.toString(16).toUpperCase().slice(1);\n}\n\nfunction rgb2HSL(rgb) {\n\tvar R = rgb[0]/255, G = rgb[1]/255, B=rgb[2]/255;\n\tvar M = Math.max(R, G, B), m = Math.min(R, G, B), C = M - m;\n\tif(C === 0) return [0, 0, R];\n\n\tvar H6 = 0, S = 0, L2 = (M + m);\n\tS = C / (L2 > 1 ? 2 - L2 : L2);\n\tswitch(M){\n\t\tcase R: H6 = ((G - B) / C + 6)%6; break;\n\t\tcase G: H6 = ((B - R) / C + 2); break;\n\t\tcase B: H6 = ((R - G) / C + 4); break;\n\t}\n\treturn [H6 / 6, S, L2 / 2];\n}\n\nfunction hsl2RGB(hsl){\n\tvar H = hsl[0], S = hsl[1], L = hsl[2];\n\tvar C = S * 2 * (L < 0.5 ? L : 1 - L), m = L - C/2;\n\tvar rgb = [m,m,m], h6 = 6*H;\n\n\tvar X;\n\tif(S !== 0) switch(h6|0) {\n\t\tcase 0: case 6: X = C * h6; rgb[0] += C; rgb[1] += X; break;\n\t\tcase 1: X = C * (2 - h6); rgb[0] += X; rgb[1] += C; break;\n\t\tcase 2: X = C * (h6 - 2); rgb[1] += C; rgb[2] += X; break;\n\t\tcase 3: X = C * (4 - h6); rgb[1] += X; rgb[2] += C; break;\n\t\tcase 4: X = C * (h6 - 4); rgb[2] += C; rgb[0] += X; break;\n\t\tcase 5: X = C * (6 - h6); rgb[2] += X; rgb[0] += C; break;\n\t}\n\tfor(var i = 0; i != 3; ++i) rgb[i] = Math.round(rgb[i]*255);\n\treturn rgb;\n}\n\n/* 18.8.3 bgColor tint algorithm */\nfunction rgb_tint(hex, tint) {\n\tif(tint === 0) return hex;\n\tvar hsl = rgb2HSL(hex2RGB(hex));\n\tif (tint < 0) hsl[2] = hsl[2] * (1 + tint);\n\telse hsl[2] = 1 - (1 - hsl[2]) * (1 - tint);\n\treturn rgb2Hex(hsl2RGB(hsl));\n}\n\n/* 18.3.1.13 width calculations */\n/* [MS-OI29500] 2.1.595 Column Width & Formatting */\nvar DEF_MDW = 6, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;\nfunction width2px(width) { return Math.floor(( width + (Math.round(128/MDW))/256 )* MDW ); }\nfunction px2char(px) { return (Math.floor((px - 5)/MDW * 100 + 0.5))/100; }\nfunction char2width(chr) { return (Math.round((chr * MDW + 5)/MDW*256))/256; }\n//function px2char_(px) { return (((px - 5)/MDW * 100 + 0.5))/100; }\n//function char2width_(chr) { return (((chr * MDW + 5)/MDW*256))/256; }\nfunction cycle_width(collw) { return char2width(px2char(width2px(collw))); }\n/* XLSX/XLSB/XLS specify width in units of MDW */\nfunction find_mdw_colw(collw) {\n\tvar delta = Math.abs(collw - cycle_width(collw)), _MDW = MDW;\n\tif(delta > 0.005) for(MDW=MIN_MDW; MDW<MAX_MDW; ++MDW) if(Math.abs(collw - cycle_width(collw)) <= delta) { delta = Math.abs(collw - cycle_width(collw)); _MDW = MDW; }\n\tMDW = _MDW;\n}\n/* XLML specifies width in terms of pixels */\n/*function find_mdw_wpx(wpx) {\n\tvar delta = Infinity, guess = 0, _MDW = MIN_MDW;\n\tfor(MDW=MIN_MDW; MDW<MAX_MDW; ++MDW) {\n\t\tguess = char2width_(px2char_(wpx))*256;\n\t\tguess = (guess) % 1;\n\t\tif(guess > 0.5) guess--;\n\t\tif(Math.abs(guess) < delta) { delta = Math.abs(guess); _MDW = MDW; }\n\t}\n\tMDW = _MDW;\n}*/\n\nfunction process_col(coll) {\n\tif(coll.width) {\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.MDW = MDW;\n\t} else if(coll.wpx) {\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.MDW = MDW;\n\t} else if(typeof coll.wch == 'number') {\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.MDW = MDW;\n\t}\n\tif(coll.customWidth) delete coll.customWidth;\n}\n\nvar DEF_PPI = 96, PPI = DEF_PPI;\nfunction px2pt(px) { return px * 96 / PPI; }\nfunction pt2px(pt) { return pt * PPI / 96; }\n\n/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */\nvar XLMLPatternTypeMap = {\n\t\"None\": \"none\",\n\t\"Solid\": \"solid\",\n\t\"Gray50\": \"mediumGray\",\n\t\"Gray75\": \"darkGray\",\n\t\"Gray25\": \"lightGray\",\n\t\"HorzStripe\": \"darkHorizontal\",\n\t\"VertStripe\": \"darkVertical\",\n\t\"ReverseDiagStripe\": \"darkDown\",\n\t\"DiagStripe\": \"darkUp\",\n\t\"DiagCross\": \"darkGrid\",\n\t\"ThickDiagCross\": \"darkTrellis\",\n\t\"ThinHorzStripe\": \"lightHorizontal\",\n\t\"ThinVertStripe\": \"lightVertical\",\n\t\"ThinReverseDiagStripe\": \"lightDown\",\n\t\"ThinHorzCross\": \"lightGrid\"\n};\n\n/* 18.8.5 borders CT_Borders */\nfunction parse_borders(t, styles, themes, opts) {\n\tstyles.Borders = [];\n\tvar border = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<borders': case '<borders>': case '</borders>': break;\n\n\t\t\t/* 18.8.4 border CT_Border */\n\t\t\tcase '<border': case '<border>': case '<border/>':\n\t\t\t\tborder = {};\n\t\t\t\tif(y.diagonalUp) border.diagonalUp = parsexmlbool(y.diagonalUp);\n\t\t\t\tif(y.diagonalDown) border.diagonalDown = parsexmlbool(y.diagonalDown);\n\t\t\t\tstyles.Borders.push(border);\n\t\t\t\tbreak;\n\t\t\tcase '</border>': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '<left/>': break;\n\t\t\tcase '<left': case '<left>': break;\n\t\t\tcase '</left>': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '<right/>': break;\n\t\t\tcase '<right': case '<right>': break;\n\t\t\tcase '</right>': break;\n\n\t\t\t/* 18.8.43 top CT_BorderPr */\n\t\t\tcase '<top/>': break;\n\t\t\tcase '<top': case '<top>': break;\n\t\t\tcase '</top>': break;\n\n\t\t\t/* 18.8.6 bottom CT_BorderPr */\n\t\t\tcase '<bottom/>': break;\n\t\t\tcase '<bottom': case '<bottom>': break;\n\t\t\tcase '</bottom>': break;\n\n\t\t\t/* 18.8.13 diagonal CT_BorderPr */\n\t\t\tcase '<diagonal': case '<diagonal>': case '<diagonal/>': break;\n\t\t\tcase '</diagonal>': break;\n\n\t\t\t/* 18.8.25 horizontal CT_BorderPr */\n\t\t\tcase '<horizontal': case '<horizontal>': case '<horizontal/>': break;\n\t\t\tcase '</horizontal>': break;\n\n\t\t\t/* 18.8.44 vertical CT_BorderPr */\n\t\t\tcase '<vertical': case '<vertical>': case '<vertical/>': break;\n\t\t\tcase '</vertical>': break;\n\n\t\t\t/* 18.8.37 start CT_BorderPr */\n\t\t\tcase '<start': case '<start>': case '<start/>': break;\n\t\t\tcase '</start>': break;\n\n\t\t\t/* 18.8.16 end CT_BorderPr */\n\t\t\tcase '<end': case '<end>': case '<end/>': break;\n\t\t\tcase '</end>': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '<color': case '<color>':\n\t\t\t\tbreak;\n\t\t\tcase '<color/>': case '</color>': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in borders');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.21 fills CT_Fills */\nfunction parse_fills(t, styles, themes, opts) {\n\tstyles.Fills = [];\n\tvar fill = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<fills': case '<fills>': case '</fills>': break;\n\n\t\t\t/* 18.8.20 fill CT_Fill */\n\t\t\tcase '<fill>': case '<fill': case '<fill/>':\n\t\t\t\tfill = {}; styles.Fills.push(fill); break;\n\t\t\tcase '</fill>': break;\n\n\t\t\t/* 18.8.24 gradientFill CT_GradientFill */\n\t\t\tcase '<gradientFill>': break;\n\t\t\tcase '<gradientFill':\n\t\t\tcase '</gradientFill>': styles.Fills.push(fill); fill = {}; break;\n\n\t\t\t/* 18.8.32 patternFill CT_PatternFill */\n\t\t\tcase '<patternFill': case '<patternFill>':\n\t\t\t\tif(y.patternType) fill.patternType = y.patternType;\n\t\t\t\tbreak;\n\t\t\tcase '<patternFill/>': case '</patternFill>': break;\n\n\t\t\t/* 18.8.3 bgColor CT_Color */\n\t\t\tcase '<bgColor':\n\t\t\t\tif(!fill.bgColor) fill.bgColor = {};\n\t\t\t\tif(y.indexed) fill.bgColor.indexed = parseInt(y.indexed, 10);\n\t\t\t\tif(y.theme) fill.bgColor.theme = parseInt(y.theme, 10);\n\t\t\t\tif(y.tint) fill.bgColor.tint = parseFloat(y.tint);\n\t\t\t\t/* Excel uses ARGB strings */\n\t\t\t\tif(y.rgb) fill.bgColor.rgb = y.rgb.slice(-6);\n\t\t\t\tbreak;\n\t\t\tcase '<bgColor/>': case '</bgColor>': break;\n\n\t\t\t/* 18.8.19 fgColor CT_Color */\n\t\t\tcase '<fgColor':\n\t\t\t\tif(!fill.fgColor) fill.fgColor = {};\n\t\t\t\tif(y.theme) fill.fgColor.theme = parseInt(y.theme, 10);\n\t\t\t\tif(y.tint) fill.fgColor.tint = parseFloat(y.tint);\n\t\t\t\t/* Excel uses ARGB strings */\n\t\t\t\tif(y.rgb != null) fill.fgColor.rgb = y.rgb.slice(-6);\n\t\t\t\tbreak;\n\t\t\tcase '<fgColor/>': case '</fgColor>': break;\n\n\t\t\t/* 18.8.38 stop CT_GradientStop */\n\t\t\tcase '<stop': case '<stop/>': break;\n\t\t\tcase '</stop>': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '<color': case '<color/>': break;\n\t\t\tcase '</color>': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fills');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.23 fonts CT_Fonts */\nfunction parse_fonts(t, styles, themes, opts) {\n\tstyles.Fonts = [];\n\tvar font = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<fonts': case '<fonts>': case '</fonts>': break;\n\n\t\t\t/* 18.8.22 font CT_Font */\n\t\t\tcase '<font': case '<font>': break;\n\t\t\tcase '</font>': case '<font/>':\n\t\t\t\tstyles.Fonts.push(font);\n\t\t\t\tfont = {};\n\t\t\t\tbreak;\n\n\t\t\t/* 18.8.29 name CT_FontName */\n\t\t\tcase '<name': if(y.val) font.name = utf8read(y.val); break;\n\t\t\tcase '<name/>': case '</name>': break;\n\n\t\t\t/* 18.8.2 b CT_BooleanProperty */\n\t\t\tcase '<b': font.bold = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<b/>': font.bold = 1; break;\n\n\t\t\t/* 18.8.26 i CT_BooleanProperty */\n\t\t\tcase '<i': font.italic = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<i/>': font.italic = 1; break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '<u':\n\t\t\t\tswitch(y.val) {\n\t\t\t\t\tcase \"none\": font.underline = 0x00; break;\n\t\t\t\t\tcase \"single\": font.underline = 0x01; break;\n\t\t\t\t\tcase \"double\": font.underline = 0x02; break;\n\t\t\t\t\tcase \"singleAccounting\": font.underline = 0x21; break;\n\t\t\t\t\tcase \"doubleAccounting\": font.underline = 0x22; break;\n\t\t\t\t} break;\n\t\t\tcase '<u/>': font.underline = 1; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '<strike': font.strike = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<strike/>': font.strike = 1; break;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty */\n\t\t\tcase '<outline': font.outline = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<outline/>': font.outline = 1; break;\n\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\tcase '<shadow': font.shadow = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<shadow/>': font.shadow = 1; break;\n\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\tcase '<condense': font.condense = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<condense/>': font.condense = 1; break;\n\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\tcase '<extend': font.extend = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<extend/>': font.extend = 1; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '<sz': if(y.val) font.sz = +y.val; break;\n\t\t\tcase '<sz/>': case '</sz>': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty */\n\t\t\tcase '<vertAlign': if(y.val) font.vertAlign = y.val; break;\n\t\t\tcase '<vertAlign/>': case '</vertAlign>': break;\n\n\t\t\t/* 18.8.18 family CT_FontFamily */\n\t\t\tcase '<family': if(y.val) font.family = parseInt(y.val,10); break;\n\t\t\tcase '<family/>': case '</family>': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme */\n\t\t\tcase '<scheme': if(y.val) font.scheme = y.val; break;\n\t\t\tcase '<scheme/>': case '</scheme>': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty */\n\t\t\tcase '<charset':\n\t\t\t\tif(y.val == '1') break;\n\t\t\t\ty.codepage = CS2CP[parseInt(y.val, 10)];\n\t\t\t\tbreak;\n\n\t\t\t/* 18.?.? color CT_Color */\n\t\t\tcase '<color':\n\t\t\t\tif(!font.color) font.color = {};\n\t\t\t\tif(y.auto) font.color.auto = parsexmlbool(y.auto);\n\n\t\t\t\tif(y.rgb) font.color.rgb = y.rgb.slice(-6);\n\t\t\t\telse if(y.indexed) {\n\t\t\t\t\tfont.color.index = parseInt(y.indexed, 10);\n\t\t\t\t\tvar icv = XLSIcv[font.color.index];\n\t\t\t\t\tif(font.color.index == 81) icv = XLSIcv[1];\n\t\t\t\t\tif(!icv) throw new Error(x);\n\t\t\t\t\tfont.color.rgb = icv[0].toString(16) + icv[1].toString(16) + icv[2].toString(16);\n\t\t\t\t} else if(y.theme) {\n\t\t\t\t\tfont.color.theme = parseInt(y.theme, 10);\n\t\t\t\t\tif(y.tint) font.color.tint = parseFloat(y.tint);\n\t\t\t\t\tif(y.theme && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\t\tfont.color.rgb = rgb_tint(themes.themeElements.clrScheme[font.color.theme].rgb, font.color.tint || 0);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase '<color/>': case '</color>': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '<AlternateContent': pass = true; break;\n\t\t\tcase '</AlternateContent>': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fonts');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.31 numFmts CT_NumFmts */\nfunction parse_numFmts(t, styles, opts) {\n\tstyles.NumberFmt = [];\n\tvar k/*Array<number>*/ = (keys(SSF._table));\n\tfor(var i=0; i < k.length; ++i) styles.NumberFmt[k[i]] = SSF._table[k[i]];\n\tvar m = t[0].match(tagregex);\n\tif(!m) return;\n\tfor(i=0; i < m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<numFmts': case '</numFmts>': case '<numFmts/>': case '<numFmts>': break;\n\t\t\tcase '<numFmt': {\n\t\t\t\tvar f=unescapexml(utf8read(y.formatCode)), j=parseInt(y.numFmtId,10);\n\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\tif(j>0) {\n\t\t\t\t\tif(j > 0x188) {\n\t\t\t\t\t\tfor(j = 0x188; j > 0x3c; --j) if(styles.NumberFmt[j] == null) break;\n\t\t\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\t\t}\n\t\t\t\t\tSSF.load(f,j);\n\t\t\t\t}\n\t\t\t} break;\n\t\t\tcase '</numFmt>': break;\n\t\t\tdefault: if(opts.WTF) throw new Error('unrecognized ' + y[0] + ' in numFmts');\n\t\t}\n\t}\n}\n\nfunction write_numFmts(NF) {\n\tvar o = [\"<numFmts>\"];\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) o[o.length] = (writextag('numFmt',null,{numFmtId:i,formatCode:escapexml(NF[i])}));\n\t});\n\tif(o.length === 1) return \"\";\n\to[o.length] = (\"</numFmts>\");\n\to[0] = writextag('numFmts', null, { count:o.length-2 }).replace(\"/>\", \">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8.10 cellXfs CT_CellXfs */\nvar cellXF_uint = [ \"numFmtId\", \"fillId\", \"fontId\", \"borderId\", \"xfId\" ];\nvar cellXF_bool = [ \"applyAlignment\", \"applyBorder\", \"applyFill\", \"applyFont\", \"applyNumberFormat\", \"applyProtection\", \"pivotButton\", \"quotePrefix\" ];\nfunction parse_cellXfs(t, styles, opts) {\n\tstyles.CellXf = [];\n\tvar xf;\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x), i = 0;\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<cellXfs': case '<cellXfs>': case '<cellXfs/>': case '</cellXfs>': break;\n\n\t\t\t/* 18.8.45 xf CT_Xf */\n\t\t\tcase '<xf': case '<xf/>':\n\t\t\t\txf = y;\n\t\t\t\tdelete xf[0];\n\t\t\t\tfor(i = 0; i < cellXF_uint.length; ++i) if(xf[cellXF_uint[i]])\n\t\t\t\t\txf[cellXF_uint[i]] = parseInt(xf[cellXF_uint[i]], 10);\n\t\t\t\tfor(i = 0; i < cellXF_bool.length; ++i) if(xf[cellXF_bool[i]])\n\t\t\t\t\txf[cellXF_bool[i]] = parsexmlbool(xf[cellXF_bool[i]]);\n\t\t\t\tif(xf.numFmtId > 0x188) {\n\t\t\t\t\tfor(i = 0x188; i > 0x3c; --i) if(styles.NumberFmt[xf.numFmtId] == styles.NumberFmt[i]) { xf.numFmtId = i; break; }\n\t\t\t\t}\n\t\t\t\tstyles.CellXf.push(xf); break;\n\t\t\tcase '</xf>': break;\n\n\t\t\t/* 18.8.1 alignment CT_CellAlignment */\n\t\t\tcase '<alignment': case '<alignment/>':\n\t\t\t\tvar alignment = {};\n\t\t\t\tif(y.vertical) alignment.vertical = y.vertical;\n\t\t\t\tif(y.horizontal) alignment.horizontal = y.horizontal;\n\t\t\t\tif(y.textRotation != null) alignment.textRotation = y.textRotation;\n\t\t\t\tif(y.indent) alignment.indent = y.indent;\n\t\t\t\tif(y.wrapText) alignment.wrapText = parsexmlbool(y.wrapText);\n\t\t\t\txf.alignment = alignment;\n\t\t\t\tbreak;\n\t\t\tcase '</alignment>': break;\n\n\t\t\t/* 18.8.33 protection CT_CellProtection */\n\t\t\tcase '<protection':\n\t\t\t\tbreak;\n\t\t\tcase '</protection>': case '<protection/>': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '<AlternateContent': pass = true; break;\n\t\t\tcase '</AlternateContent>': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in cellXfs');\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction write_cellXfs(cellXfs) {\n\tvar o = [];\n\to[o.length] = (writextag('cellXfs',null));\n\tcellXfs.forEach(function(c) {\n\t\to[o.length] = (writextag('xf', null, c));\n\t});\n\to[o.length] = (\"</cellXfs>\");\n\tif(o.length === 2) return \"\";\n\to[0] = writextag('cellXfs',null, {count:o.length-2}).replace(\"/>\",\">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8 Styles CT_Stylesheet*/\nvar parse_sty_xml= (function make_pstyx() {\nvar numFmtRegex = /<(?:\\w+:)?numFmts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?numFmts>/;\nvar cellXfRegex = /<(?:\\w+:)?cellXfs([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?cellXfs>/;\nvar fillsRegex = /<(?:\\w+:)?fills([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fills>/;\nvar fontsRegex = /<(?:\\w+:)?fonts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fonts>/;\nvar bordersRegex = /<(?:\\w+:)?borders([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?borders>/;\n\nreturn function parse_sty_xml(data, themes, opts) {\n\tvar styles = {};\n\tif(!data) return styles;\n\tdata = data.replace(/<!--([\\s\\S]*?)-->/mg,\"\").replace(/<!DOCTYPE[^\\[]*\\[[^\\]]*\\]>/gm,\"\");\n\t/* 18.8.39 styleSheet CT_Stylesheet */\n\tvar t;\n\n\t/* 18.8.31 numFmts CT_NumFmts ? */\n\tif((t=data.match(numFmtRegex))) parse_numFmts(t, styles, opts);\n\n\t/* 18.8.23 fonts CT_Fonts ? */\n\tif((t=data.match(fontsRegex))) parse_fonts(t, styles, themes, opts);\n\n\t/* 18.8.21 fills CT_Fills ? */\n\tif((t=data.match(fillsRegex))) parse_fills(t, styles, themes, opts);\n\n\t/* 18.8.5 borders CT_Borders ? */\n\tif((t=data.match(bordersRegex))) parse_borders(t, styles, themes, opts);\n\n\t/* 18.8.9 cellStyleXfs CT_CellStyleXfs ? */\n\t/* 18.8.8 cellStyles CT_CellStyles ? */\n\n\t/* 18.8.10 cellXfs CT_CellXfs ? */\n\tif((t=data.match(cellXfRegex))) parse_cellXfs(t, styles, opts);\n\n\t/* 18.8.15 dxfs CT_Dxfs ? */\n\t/* 18.8.42 tableStyles CT_TableStyles ? */\n\t/* 18.8.11 colors CT_Colors ? */\n\t/* 18.2.10 extLst CT_ExtensionList ? */\n\n\treturn styles;\n};\n})();\n\nvar STYLES_XML_ROOT = writextag('styleSheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:vt': XMLNS.vt\n});\n\nRELS.STY = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\";\n\nfunction write_sty_xml(wb, opts) {\n\tvar o = [XML_HEADER, STYLES_XML_ROOT], w;\n\tif(wb.SSF && (w = write_numFmts(wb.SSF)) != null) o[o.length] = w;\n\to[o.length] = ('<fonts count=\"1\"><font><sz val=\"12\"/><color theme=\"1\"/><name val=\"Calibri\"/><family val=\"2\"/><scheme val=\"minor\"/></font></fonts>');\n\to[o.length] = ('<fills count=\"2\"><fill><patternFill patternType=\"none\"/></fill><fill><patternFill patternType=\"gray125\"/></fill></fills>');\n\to[o.length] = ('<borders count=\"1\"><border><left/><right/><top/><bottom/><diagonal/></border></borders>');\n\to[o.length] = ('<cellStyleXfs count=\"1\"><xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\"/></cellStyleXfs>');\n\tif((w = write_cellXfs(opts.cellXfs))) o[o.length] = (w);\n\to[o.length] = ('<cellStyles count=\"1\"><cellStyle name=\"Normal\" xfId=\"0\" builtinId=\"0\"/></cellStyles>');\n\to[o.length] = ('<dxfs count=\"0\"/>');\n\to[o.length] = ('<tableStyles count=\"0\" defaultTableStyle=\"TableStyleMedium9\" defaultPivotStyle=\"PivotStyleMedium4\"/>');\n\n\tif(o.length>2){ o[o.length] = ('</styleSheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.657 BrtFmt */\nfunction parse_BrtFmt(data, length) {\n\tvar numFmtId = data.read_shift(2);\n\tvar stFmtCode = parse_XLWideString(data,length-2);\n\treturn [numFmtId, stFmtCode];\n}\nfunction write_BrtFmt(i, f, o) {\n\tif(!o) o = new_buf(6 + 4 * f.length);\n\to.write_shift(2, i);\n\twrite_XLWideString(f, o);\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(o.l == null) o.l = o.length;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.4.659 BrtFont TODO */\nfunction parse_BrtFont(data, length, opts) {\n\tvar out = ({});\n\n\tout.sz = data.read_shift(2) / 20;\n\n\tvar grbit = parse_FontFlags(data, 2, opts);\n\tif(grbit.fItalic) out.italic = 1;\n\tif(grbit.fCondense) out.condense = 1;\n\tif(grbit.fExtend) out.extend = 1;\n\tif(grbit.fShadow) out.shadow = 1;\n\tif(grbit.fOutline) out.outline = 1;\n\tif(grbit.fStrikeout) out.strike = 1;\n\n\tvar bls = data.read_shift(2);\n\tif(bls === 0x02BC) out.bold = 1;\n\n\tswitch(data.read_shift(2)) {\n\t\t/* case 0: out.vertAlign = \"baseline\"; break; */\n\t\tcase 1: out.vertAlign = \"superscript\"; break;\n\t\tcase 2: out.vertAlign = \"subscript\"; break;\n\t}\n\n\tvar underline = data.read_shift(1);\n\tif(underline != 0) out.underline = underline;\n\n\tvar family = data.read_shift(1);\n\tif(family > 0) out.family = family;\n\n\tvar bCharSet = data.read_shift(1);\n\tif(bCharSet > 0) out.charset = bCharSet;\n\n\tdata.l++;\n\tout.color = parse_BrtColor(data, 8);\n\n\tswitch(data.read_shift(1)) {\n\t\t/* case 0: out.scheme = \"none\": break; */\n\t\tcase 1: out.scheme = \"major\"; break;\n\t\tcase 2: out.scheme = \"minor\"; break;\n\t}\n\n\tout.name = parse_XLWideString(data, length - 21);\n\n\treturn out;\n}\nfunction write_BrtFont(font, o) {\n\tif(!o) o = new_buf(25+4*32);\n\to.write_shift(2, font.sz * 20);\n\twrite_FontFlags(font, o);\n\to.write_shift(2, font.bold ? 0x02BC : 0x0190);\n\tvar sss = 0;\n\tif(font.vertAlign == \"superscript\") sss = 1;\n\telse if(font.vertAlign == \"subscript\") sss = 2;\n\to.write_shift(2, sss);\n\to.write_shift(1, font.underline || 0);\n\to.write_shift(1, font.family || 0);\n\to.write_shift(1, font.charset || 0);\n\to.write_shift(1, 0);\n\twrite_BrtColor(font.color, o);\n\tvar scheme = 0;\n\tif(font.scheme == \"major\") scheme = 1;\n\tif(font.scheme == \"minor\") scheme = 2;\n\to.write_shift(1, scheme);\n\twrite_XLWideString(font.name, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.650 BrtFill */\nvar XLSBFillPTNames = [\n\t\"none\",\n\t\"solid\",\n\t\"mediumGray\",\n\t\"darkGray\",\n\t\"lightGray\",\n\t\"darkHorizontal\",\n\t\"darkVertical\",\n\t\"darkDown\",\n\t\"darkUp\",\n\t\"darkGrid\",\n\t\"darkTrellis\",\n\t\"lightHorizontal\",\n\t\"lightVertical\",\n\t\"lightDown\",\n\t\"lightUp\",\n\t\"lightGrid\",\n\t\"lightTrellis\",\n\t\"gray125\",\n\t\"gray0625\"\n];\nvar rev_XLSBFillPTNames = (evert(XLSBFillPTNames));\n/* TODO: gradient fill representation */\nvar parse_BrtFill = parsenoop;\nfunction write_BrtFill(fill, o) {\n\tif(!o) o = new_buf(4*3 + 8*7 + 16*1);\n\tvar fls = rev_XLSBFillPTNames[fill.patternType];\n\tif(fls == null) fls = 0x28;\n\to.write_shift(4, fls);\n\tvar j = 0;\n\tif(fls != 0x28) {\n\t\t/* TODO: custom FG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\t\t/* TODO: custom BG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0);\n\t} else {\n\t\tfor(; j < 4; ++j) o.write_shift(4, 0);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0); /* TODO */\n\t\t/* iGradientType */\n\t\t/* xnumDegree */\n\t\t/* xnumFillToLeft */\n\t\t/* xnumFillToRight */\n\t\t/* xnumFillToTop */\n\t\t/* xnumFillToBottom */\n\t\t/* cNumStop */\n\t\t/* xfillGradientStop */\n\t}\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.824 BrtXF */\nfunction parse_BrtXF(data, length) {\n\tvar tgt = data.l + length;\n\tvar ixfeParent = data.read_shift(2);\n\tvar ifmt = data.read_shift(2);\n\tdata.l = tgt;\n\treturn {ixfe:ixfeParent, numFmtId:ifmt };\n}\nfunction write_BrtXF(data, ixfeP, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(2, ixfeP||0);\n\to.write_shift(2, data.numFmtId||0);\n\to.write_shift(2, 0); /* iFont */\n\to.write_shift(2, 0); /* iFill */\n\to.write_shift(2, 0); /* ixBorder */\n\to.write_shift(1, 0); /* trot */\n\to.write_shift(1, 0); /* indent */\n\tvar flow = 0;\n\to.write_shift(1, flow); /* flags */\n\to.write_shift(1, 0); /* flags */\n\to.write_shift(1, 0); /* xfGrbitAtr */\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.4 Blxf TODO */\nfunction write_Blxf(data, o) {\n\tif(!o) o = new_buf(10);\n\to.write_shift(1, 0); /* dg */\n\to.write_shift(1, 0);\n\to.write_shift(4, 0); /* color */\n\to.write_shift(4, 0); /* color */\n\treturn o;\n}\n/* [MS-XLSB] 2.4.302 BrtBorder TODO */\nvar parse_BrtBorder = parsenoop;\nfunction write_BrtBorder(border, o) {\n\tif(!o) o = new_buf(51);\n\to.write_shift(1, 0); /* diagonal */\n\twrite_Blxf(null, o); /* top */\n\twrite_Blxf(null, o); /* bottom */\n\twrite_Blxf(null, o); /* left */\n\twrite_Blxf(null, o); /* right */\n\twrite_Blxf(null, o); /* diag */\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.763 BrtStyle TODO */\nfunction write_BrtStyle(style, o) {\n\tif(!o) o = new_buf(12+4*10);\n\to.write_shift(4, style.xfId);\n\to.write_shift(2, 1);\n\to.write_shift(1, +style.builtinId);\n\to.write_shift(1, 0); /* iLevel */\n\twrite_XLNullableWideString(style.name || \"\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.272 BrtBeginTableStyles */\nfunction write_BrtBeginTableStyles(cnt, defTableStyle, defPivotStyle) {\n\tvar o = new_buf(4+256*2*4);\n\to.write_shift(4, cnt);\n\twrite_XLNullableWideString(defTableStyle, o);\n\twrite_XLNullableWideString(defPivotStyle, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction parse_sty_bin(data, themes, opts) {\n\tvar styles = {};\n\tstyles.NumberFmt = ([]);\n\tfor(var y in SSF._table) styles.NumberFmt[y] = SSF._table[y];\n\n\tstyles.CellXf = [];\n\tstyles.Fonts = [];\n\tvar state = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_sty(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x002C: /* 'BrtFmt' */\n\t\t\t\tstyles.NumberFmt[val[0]] = val[1]; SSF.load(val[1], val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x002B: /* 'BrtFont' */\n\t\t\t\tstyles.Fonts.push(val);\n\t\t\t\tif(val.color.theme != null && themes && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\tval.color.rgb = rgb_tint(themes.themeElements.clrScheme[val.color.theme].rgb, val.color.tint || 0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0401: /* 'BrtKnownFonts' */ break;\n\t\t\tcase 0x002D: /* 'BrtFill' */\n\t\t\t\tbreak;\n\t\t\tcase 0x002E: /* 'BrtBorder' */\n\t\t\t\tbreak;\n\t\t\tcase 0x002F: /* 'BrtXF' */\n\t\t\t\tif(state[state.length - 1] == \"BrtBeginCellXFs\") {\n\t\t\t\t\tstyles.CellXf.push(val);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0030: /* 'BrtStyle' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x023C: /* 'BrtMRUColor' */\n\t\t\tcase 0x01DB: /* 'BrtIndexedColor': */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0493: /* 'BrtDXF14' */\n\t\t\tcase 0x0836: /* 'BrtDXF15' */\n\t\t\tcase 0x046A: /* 'BrtSlicerStyleElement' */\n\t\t\tcase 0x0200: /* 'BrtTableStyleElement' */\n\t\t\tcase 0x082F: /* 'BrtTimelineStyleElement' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0) state.push(R_n);\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0) state.pop();\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != \"BrtACBegin\")) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn styles;\n}\n\nfunction write_FMTS_bin(ba, NF) {\n\tif(!NF) return;\n\tvar cnt = 0;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\nfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) ++cnt;\n\t});\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFmts\", write_UInt32LE(cnt));\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\nfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_record(ba, \"BrtFmt\", write_BrtFmt(i, NF[i]));\n\t});\n\twrite_record(ba, \"BrtEndFmts\");\n}\n\nfunction write_FONTS_bin(ba) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFonts\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtFont\", write_BrtFont({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Calibri\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}));\n\t/* 1*65491BrtFont [ACFONTS] */\n\twrite_record(ba, \"BrtEndFonts\");\n}\n\nfunction write_FILLS_bin(ba) {\n\tvar cnt = 2;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFills\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtFill\", write_BrtFill({patternType:\"none\"}));\n\twrite_record(ba, \"BrtFill\", write_BrtFill({patternType:\"gray125\"}));\n\t/* 1*65431BrtFill */\n\twrite_record(ba, \"BrtEndFills\");\n}\n\nfunction write_BORDERS_bin(ba) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginBorders\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtBorder\", write_BrtBorder({}));\n\t/* 1*65430BrtBorder */\n\twrite_record(ba, \"BrtEndBorders\");\n}\n\nfunction write_CELLSTYLEXFS_bin(ba) {\n\tvar cnt = 1;\n\twrite_record(ba, \"BrtBeginCellStyleXFs\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtXF\", write_BrtXF({\n\t\tnumFmtId: 0,\n\t\tfontId: 0,\n\t\tfillId: 0,\n\t\tborderId: 0\n\t}, 0xFFFF));\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, \"BrtEndCellStyleXFs\");\n}\n\nfunction write_CELLXFS_bin(ba, data) {\n\twrite_record(ba, \"BrtBeginCellXFs\", write_UInt32LE(data.length));\n\tdata.forEach(function(c) { write_record(ba, \"BrtXF\", write_BrtXF(c,0)); });\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, \"BrtEndCellXFs\");\n}\n\nfunction write_STYLES_bin(ba) {\n\tvar cnt = 1;\n\n\twrite_record(ba, \"BrtBeginStyles\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtStyle\", write_BrtStyle({\n\t\txfId:0,\n\t\tbuiltinId:0,\n\t\tname:\"Normal\"\n\t}));\n\t/* 1*65430(BrtStyle *FRT) */\n\twrite_record(ba, \"BrtEndStyles\");\n}\n\nfunction write_DXFS_bin(ba) {\n\tvar cnt = 0;\n\n\twrite_record(ba, \"BrtBeginDXFs\", write_UInt32LE(cnt));\n\t/* *2147483647(BrtDXF *FRT) */\n\twrite_record(ba, \"BrtEndDXFs\");\n}\n\nfunction write_TABLESTYLES_bin(ba) {\n\tvar cnt = 0;\n\n\twrite_record(ba, \"BrtBeginTableStyles\", write_BrtBeginTableStyles(cnt, \"TableStyleMedium9\", \"PivotStyleMedium4\"));\n\t/* *TABLESTYLE */\n\twrite_record(ba, \"BrtEndTableStyles\");\n}\n\nfunction write_COLORPALETTE_bin() {\n\treturn;\n\t/* BrtBeginColorPalette [INDEXEDCOLORS] [MRUCOLORS] BrtEndColorPalette */\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction write_sty_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginStyleSheet\");\n\twrite_FMTS_bin(ba, wb.SSF);\n\twrite_FONTS_bin(ba, wb);\n\twrite_FILLS_bin(ba, wb);\n\twrite_BORDERS_bin(ba, wb);\n\twrite_CELLSTYLEXFS_bin(ba, wb);\n\twrite_CELLXFS_bin(ba, opts.cellXfs);\n\twrite_STYLES_bin(ba, wb);\n\twrite_DXFS_bin(ba, wb);\n\twrite_TABLESTYLES_bin(ba, wb);\n\twrite_COLORPALETTE_bin(ba, wb);\n\t/* FRTSTYLESHEET*/\n\twrite_record(ba, \"BrtEndStyleSheet\");\n\treturn ba.end();\n}\nRELS.THEME = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\";\n\n/* Even though theme layout is dk1 lt1 dk2 lt2, true order is lt1 dk1 lt2 dk2 */\nvar XLSXThemeClrScheme = [\n\t'</a:lt1>', '</a:dk1>', '</a:lt2>', '</a:dk2>',\n\t'</a:accent1>', '</a:accent2>', '</a:accent3>',\n\t'</a:accent4>', '</a:accent5>', '</a:accent6>',\n\t'</a:hlink>', '</a:folHlink>'\n];\n/* 20.1.6.2 clrScheme CT_ColorScheme */\nfunction parse_clrScheme(t, themes, opts) {\n\tthemes.themeElements.clrScheme = [];\n\tvar color = {};\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\t/* 20.1.6.2 clrScheme (Color Scheme) CT_ColorScheme */\n\t\t\tcase '<a:clrScheme': case '</a:clrScheme>': break;\n\n\t\t\t/* 20.1.2.3.32 srgbClr CT_SRgbColor */\n\t\t\tcase '<a:srgbClr':\n\t\t\t\tcolor.rgb = y.val; break;\n\n\t\t\t/* 20.1.2.3.33 sysClr CT_SystemColor */\n\t\t\tcase '<a:sysClr':\n\t\t\t\tcolor.rgb = y.lastClr; break;\n\n\t\t\t/* 20.1.4.1.1 accent1 (Accent 1) */\n\t\t\t/* 20.1.4.1.2 accent2 (Accent 2) */\n\t\t\t/* 20.1.4.1.3 accent3 (Accent 3) */\n\t\t\t/* 20.1.4.1.4 accent4 (Accent 4) */\n\t\t\t/* 20.1.4.1.5 accent5 (Accent 5) */\n\t\t\t/* 20.1.4.1.6 accent6 (Accent 6) */\n\t\t\t/* 20.1.4.1.9 dk1 (Dark 1) */\n\t\t\t/* 20.1.4.1.10 dk2 (Dark 2) */\n\t\t\t/* 20.1.4.1.15 folHlink (Followed Hyperlink) */\n\t\t\t/* 20.1.4.1.19 hlink (Hyperlink) */\n\t\t\t/* 20.1.4.1.22 lt1 (Light 1) */\n\t\t\t/* 20.1.4.1.23 lt2 (Light 2) */\n\t\t\tcase '<a:dk1>': case '</a:dk1>':\n\t\t\tcase '<a:lt1>': case '</a:lt1>':\n\t\t\tcase '<a:dk2>': case '</a:dk2>':\n\t\t\tcase '<a:lt2>': case '</a:lt2>':\n\t\t\tcase '<a:accent1>': case '</a:accent1>':\n\t\t\tcase '<a:accent2>': case '</a:accent2>':\n\t\t\tcase '<a:accent3>': case '</a:accent3>':\n\t\t\tcase '<a:accent4>': case '</a:accent4>':\n\t\t\tcase '<a:accent5>': case '</a:accent5>':\n\t\t\tcase '<a:accent6>': case '</a:accent6>':\n\t\t\tcase '<a:hlink>': case '</a:hlink>':\n\t\t\tcase '<a:folHlink>': case '</a:folHlink>':\n\t\t\t\tif (y[0].charAt(1) === '/') {\n\t\t\t\t\tthemes.themeElements.clrScheme[XLSXThemeClrScheme.indexOf(y[0])] = color;\n\t\t\t\t\tcolor = {};\n\t\t\t\t} else {\n\t\t\t\t\tcolor.name = y[0].slice(3, y[0].length - 1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault: if(opts && opts.WTF) throw new Error('Unrecognized ' + y[0] + ' in clrScheme');\n\t\t}\n\t});\n}\n\n/* 20.1.4.1.18 fontScheme CT_FontScheme */\nfunction parse_fontScheme() { }\n\n/* 20.1.4.1.15 fmtScheme CT_StyleMatrix */\nfunction parse_fmtScheme() { }\n\nvar clrsregex = /<a:clrScheme([^>]*)>[\\s\\S]*<\\/a:clrScheme>/;\nvar fntsregex = /<a:fontScheme([^>]*)>[\\s\\S]*<\\/a:fontScheme>/;\nvar fmtsregex = /<a:fmtScheme([^>]*)>[\\s\\S]*<\\/a:fmtScheme>/;\n\n/* 20.1.6.10 themeElements CT_BaseStyles */\nfunction parse_themeElements(data, themes, opts) {\n\tthemes.themeElements = {};\n\n\tvar t;\n\n\t[\n\t\t/* clrScheme CT_ColorScheme */\n\t\t['clrScheme', clrsregex, parse_clrScheme],\n\t\t/* fontScheme CT_FontScheme */\n\t\t['fontScheme', fntsregex, parse_fontScheme],\n\t\t/* fmtScheme CT_StyleMatrix */\n\t\t['fmtScheme', fmtsregex, parse_fmtScheme]\n\t].forEach(function(m) {\n\t\tif(!(t=data.match(m[1]))) throw new Error(m[0] + ' not found in themeElements');\n\t\tm[2](t, themes, opts);\n\t});\n}\n\nvar themeltregex = /<a:themeElements([^>]*)>[\\s\\S]*<\\/a:themeElements>/;\n\n/* 14.2.7 Theme Part */\nfunction parse_theme_xml(data, opts) {\n\t/* 20.1.6.9 theme CT_OfficeStyleSheet */\n\tif(!data || data.length === 0) return parse_theme_xml(write_theme());\n\n\tvar t;\n\tvar themes = {};\n\n\t/* themeElements CT_BaseStyles */\n\tif(!(t=data.match(themeltregex))) throw new Error('themeElements not found in theme');\n\tparse_themeElements(t[0], themes, opts);\n\tthemes.raw = data;\n\treturn themes;\n}\n\nfunction write_theme(Themes, opts) {\n\tif(opts && opts.themeXLSX) return opts.themeXLSX;\n\tif(Themes && typeof Themes.raw == \"string\") return Themes.raw;\n\tvar o = [XML_HEADER];\n\to[o.length] = '<a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" name=\"Office Theme\">';\n\to[o.length] = '<a:themeElements>';\n\n\to[o.length] = '<a:clrScheme name=\"Office\">';\n\to[o.length] = '<a:dk1><a:sysClr val=\"windowText\" lastClr=\"000000\"/></a:dk1>';\n\to[o.length] = '<a:lt1><a:sysClr val=\"window\" lastClr=\"FFFFFF\"/></a:lt1>';\n\to[o.length] = '<a:dk2><a:srgbClr val=\"1F497D\"/></a:dk2>';\n\to[o.length] = '<a:lt2><a:srgbClr val=\"EEECE1\"/></a:lt2>';\n\to[o.length] = '<a:accent1><a:srgbClr val=\"4F81BD\"/></a:accent1>';\n\to[o.length] = '<a:accent2><a:srgbClr val=\"C0504D\"/></a:accent2>';\n\to[o.length] = '<a:accent3><a:srgbClr val=\"9BBB59\"/></a:accent3>';\n\to[o.length] = '<a:accent4><a:srgbClr val=\"8064A2\"/></a:accent4>';\n\to[o.length] = '<a:accent5><a:srgbClr val=\"4BACC6\"/></a:accent5>';\n\to[o.length] = '<a:accent6><a:srgbClr val=\"F79646\"/></a:accent6>';\n\to[o.length] = '<a:hlink><a:srgbClr val=\"0000FF\"/></a:hlink>';\n\to[o.length] = '<a:folHlink><a:srgbClr val=\"800080\"/></a:folHlink>';\n\to[o.length] = '</a:clrScheme>';\n\n\to[o.length] = '<a:fontScheme name=\"Office\">';\n\to[o.length] = '<a:majorFont>';\n\to[o.length] = '<a:latin typeface=\"Cambria\"/>';\n\to[o.length] = '<a:ea typeface=\"\"/>';\n\to[o.length] = '<a:cs typeface=\"\"/>';\n\to[o.length] = '<a:font script=\"Jpan\" typeface=\"MS Pゴシック\"/>';\n\to[o.length] = '<a:font script=\"Hang\" typeface=\"맑은 고딕\"/>';\n\to[o.length] = '<a:font script=\"Hans\" typeface=\"宋体\"/>';\n\to[o.length] = '<a:font script=\"Hant\" typeface=\"新細明體\"/>';\n\to[o.length] = '<a:font script=\"Arab\" typeface=\"Times New Roman\"/>';\n\to[o.length] = '<a:font script=\"Hebr\" typeface=\"Times New Roman\"/>';\n\to[o.length] = '<a:font script=\"Thai\" typeface=\"Tahoma\"/>';\n\to[o.length] = '<a:font script=\"Ethi\" typeface=\"Nyala\"/>';\n\to[o.length] = '<a:font script=\"Beng\" typeface=\"Vrinda\"/>';\n\to[o.length] = '<a:font script=\"Gujr\" typeface=\"Shruti\"/>';\n\to[o.length] = '<a:font script=\"Khmr\" typeface=\"MoolBoran\"/>';\n\to[o.length] = '<a:font script=\"Knda\" typeface=\"Tunga\"/>';\n\to[o.length] = '<a:font script=\"Guru\" typeface=\"Raavi\"/>';\n\to[o.length] = '<a:font script=\"Cans\" typeface=\"Euphemia\"/>';\n\to[o.length] = '<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>';\n\to[o.length] = '<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>';\n\to[o.length] = '<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>';\n\to[o.length] = '<a:font script=\"Thaa\" typeface=\"MV Boli\"/>';\n\to[o.length] = '<a:font script=\"Deva\" typeface=\"Mangal\"/>';\n\to[o.length] = '<a:font script=\"Telu\" typeface=\"Gautami\"/>';\n\to[o.length] = '<a:font script=\"Taml\" typeface=\"Latha\"/>';\n\to[o.length] = '<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>';\n\to[o.length] = '<a:font script=\"Orya\" typeface=\"Kalinga\"/>';\n\to[o.length] = '<a:font script=\"Mlym\" typeface=\"Kartika\"/>';\n\to[o.length] = '<a:font script=\"Laoo\" typeface=\"DokChampa\"/>';\n\to[o.length] = '<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>';\n\to[o.length] = '<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>';\n\to[o.length] = '<a:font script=\"Viet\" typeface=\"Times New Roman\"/>';\n\to[o.length] = '<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>';\n\to[o.length] = '<a:font script=\"Geor\" typeface=\"Sylfaen\"/>';\n\to[o.length] = '</a:majorFont>';\n\to[o.length] = '<a:minorFont>';\n\to[o.length] = '<a:latin typeface=\"Calibri\"/>';\n\to[o.length] = '<a:ea typeface=\"\"/>';\n\to[o.length] = '<a:cs typeface=\"\"/>';\n\to[o.length] = '<a:font script=\"Jpan\" typeface=\"MS Pゴシック\"/>';\n\to[o.length] = '<a:font script=\"Hang\" typeface=\"맑은 고딕\"/>';\n\to[o.length] = '<a:font script=\"Hans\" typeface=\"宋体\"/>';\n\to[o.length] = '<a:font script=\"Hant\" typeface=\"新細明體\"/>';\n\to[o.length] = '<a:font script=\"Arab\" typeface=\"Arial\"/>';\n\to[o.length] = '<a:font script=\"Hebr\" typeface=\"Arial\"/>';\n\to[o.length] = '<a:font script=\"Thai\" typeface=\"Tahoma\"/>';\n\to[o.length] = '<a:font script=\"Ethi\" typeface=\"Nyala\"/>';\n\to[o.length] = '<a:font script=\"Beng\" typeface=\"Vrinda\"/>';\n\to[o.length] = '<a:font script=\"Gujr\" typeface=\"Shruti\"/>';\n\to[o.length] = '<a:font script=\"Khmr\" typeface=\"DaunPenh\"/>';\n\to[o.length] = '<a:font script=\"Knda\" typeface=\"Tunga\"/>';\n\to[o.length] = '<a:font script=\"Guru\" typeface=\"Raavi\"/>';\n\to[o.length] = '<a:font script=\"Cans\" typeface=\"Euphemia\"/>';\n\to[o.length] = '<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>';\n\to[o.length] = '<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>';\n\to[o.length] = '<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>';\n\to[o.length] = '<a:font script=\"Thaa\" typeface=\"MV Boli\"/>';\n\to[o.length] = '<a:font script=\"Deva\" typeface=\"Mangal\"/>';\n\to[o.length] = '<a:font script=\"Telu\" typeface=\"Gautami\"/>';\n\to[o.length] = '<a:font script=\"Taml\" typeface=\"Latha\"/>';\n\to[o.length] = '<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>';\n\to[o.length] = '<a:font script=\"Orya\" typeface=\"Kalinga\"/>';\n\to[o.length] = '<a:font script=\"Mlym\" typeface=\"Kartika\"/>';\n\to[o.length] = '<a:font script=\"Laoo\" typeface=\"DokChampa\"/>';\n\to[o.length] = '<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>';\n\to[o.length] = '<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>';\n\to[o.length] = '<a:font script=\"Viet\" typeface=\"Arial\"/>';\n\to[o.length] = '<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>';\n\to[o.length] = '<a:font script=\"Geor\" typeface=\"Sylfaen\"/>';\n\to[o.length] = '</a:minorFont>';\n\to[o.length] = '</a:fontScheme>';\n\n\to[o.length] = '<a:fmtScheme name=\"Office\">';\n\to[o.length] = '<a:fillStyleLst>';\n\to[o.length] = '<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"50000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"35000\"><a:schemeClr val=\"phClr\"><a:tint val=\"37000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:tint val=\"15000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:lin ang=\"16200000\" scaled=\"1\"/>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"100000\"/><a:shade val=\"100000\"/><a:satMod val=\"130000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:tint val=\"50000\"/><a:shade val=\"100000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:lin ang=\"16200000\" scaled=\"0\"/>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '</a:fillStyleLst>';\n\to[o.length] = '<a:lnStyleLst>';\n\to[o.length] = '<a:ln w=\"9525\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"><a:shade val=\"95000\"/><a:satMod val=\"105000\"/></a:schemeClr></a:solidFill><a:prstDash val=\"solid\"/></a:ln>';\n\to[o.length] = '<a:ln w=\"25400\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/></a:ln>';\n\to[o.length] = '<a:ln w=\"38100\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/></a:ln>';\n\to[o.length] = '</a:lnStyleLst>';\n\to[o.length] = '<a:effectStyleLst>';\n\to[o.length] = '<a:effectStyle>';\n\to[o.length] = '<a:effectLst>';\n\to[o.length] = '<a:outerShdw blurRad=\"40000\" dist=\"20000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"38000\"/></a:srgbClr></a:outerShdw>';\n\to[o.length] = '</a:effectLst>';\n\to[o.length] = '</a:effectStyle>';\n\to[o.length] = '<a:effectStyle>';\n\to[o.length] = '<a:effectLst>';\n\to[o.length] = '<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr></a:outerShdw>';\n\to[o.length] = '</a:effectLst>';\n\to[o.length] = '</a:effectStyle>';\n\to[o.length] = '<a:effectStyle>';\n\to[o.length] = '<a:effectLst>';\n\to[o.length] = '<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr></a:outerShdw>';\n\to[o.length] = '</a:effectLst>';\n\to[o.length] = '<a:scene3d><a:camera prst=\"orthographicFront\"><a:rot lat=\"0\" lon=\"0\" rev=\"0\"/></a:camera><a:lightRig rig=\"threePt\" dir=\"t\"><a:rot lat=\"0\" lon=\"0\" rev=\"1200000\"/></a:lightRig></a:scene3d>';\n\to[o.length] = '<a:sp3d><a:bevelT w=\"63500\" h=\"25400\"/></a:sp3d>';\n\to[o.length] = '</a:effectStyle>';\n\to[o.length] = '</a:effectStyleLst>';\n\to[o.length] = '<a:bgFillStyleLst>';\n\to[o.length] = '<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"40000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"40000\"><a:schemeClr val=\"phClr\"><a:tint val=\"45000\"/><a:shade val=\"99000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"20000\"/><a:satMod val=\"255000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"-80000\" r=\"50000\" b=\"180000\"/></a:path>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"80000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"30000\"/><a:satMod val=\"200000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"50000\" r=\"50000\" b=\"50000\"/></a:path>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '</a:bgFillStyleLst>';\n\to[o.length] = '</a:fmtScheme>';\n\to[o.length] = '</a:themeElements>';\n\n\to[o.length] = '<a:objectDefaults>';\n\to[o.length] = '<a:spDef>';\n\to[o.length] = '<a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx=\"1\"><a:schemeClr val=\"accent1\"/></a:lnRef><a:fillRef idx=\"3\"><a:schemeClr val=\"accent1\"/></a:fillRef><a:effectRef idx=\"2\"><a:schemeClr val=\"accent1\"/></a:effectRef><a:fontRef idx=\"minor\"><a:schemeClr val=\"lt1\"/></a:fontRef></a:style>';\n\to[o.length] = '</a:spDef>';\n\to[o.length] = '<a:lnDef>';\n\to[o.length] = '<a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx=\"2\"><a:schemeClr val=\"accent1\"/></a:lnRef><a:fillRef idx=\"0\"><a:schemeClr val=\"accent1\"/></a:fillRef><a:effectRef idx=\"1\"><a:schemeClr val=\"accent1\"/></a:effectRef><a:fontRef idx=\"minor\"><a:schemeClr val=\"tx1\"/></a:fontRef></a:style>';\n\to[o.length] = '</a:lnDef>';\n\to[o.length] = '</a:objectDefaults>';\n\to[o.length] = '<a:extraClrSchemeLst/>';\n\to[o.length] = '</a:theme>';\n\treturn o.join(\"\");\n}\n/* [MS-XLS] 2.4.326 TODO: payload is a zip file */\nfunction parse_Theme(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar dwThemeVersion = blob.read_shift(4);\n\tif(dwThemeVersion === 124226) return;\n\tif(!opts.cellStyles || !jszip) { blob.l = end; return; }\n\tvar data = blob.slice(blob.l);\n\tblob.l = end;\n\tvar zip; try { zip = new jszip(data); } catch(e) { return; }\n\tvar themeXML = getzipstr(zip, \"theme/theme/theme1.xml\", true);\n\tif(!themeXML) return;\n\treturn parse_theme_xml(themeXML, opts);\n}\n\n/* 2.5.49 */\nfunction parse_ColorTheme(blob) { return blob.read_shift(4); }\n\n/* 2.5.155 */\nfunction parse_FullColorExt(blob) {\n\tvar o = {};\n\to.xclrType = blob.read_shift(2);\n\to.nTintShade = blob.read_shift(2);\n\tswitch(o.xclrType) {\n\t\tcase 0: blob.l += 4; break;\n\t\tcase 1: o.xclrValue = parse_IcvXF(blob, 4); break;\n\t\tcase 2: o.xclrValue = parse_LongRGBA(blob, 4); break;\n\t\tcase 3: o.xclrValue = parse_ColorTheme(blob, 4); break;\n\t\tcase 4: blob.l += 4; break;\n\t}\n\tblob.l += 8;\n\treturn o;\n}\n\n/* 2.5.164 TODO: read 7 bits*/\nfunction parse_IcvXF(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* 2.5.280 */\nfunction parse_XFExtGradient(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* [MS-XLS] 2.5.108 */\nfunction parse_ExtProp(blob) {\n\tvar extType = blob.read_shift(2);\n\tvar cb = blob.read_shift(2) - 4;\n\tvar o = [extType];\n\tswitch(extType) {\n\t\tcase 0x04: case 0x05: case 0x07: case 0x08:\n\t\tcase 0x09: case 0x0A: case 0x0B: case 0x0D:\n\t\t\to[1] = parse_FullColorExt(blob, cb); break;\n\t\tcase 0x06: o[1] = parse_XFExtGradient(blob, cb); break;\n\t\tcase 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 1 ? 1 : 2); break;\n\t\tdefault: throw new Error(\"Unrecognized ExtProp type: \" + extType + \" \" + cb);\n\t}\n\treturn o;\n}\n\n/* 2.4.355 */\nfunction parse_XFExt(blob, length) {\n\tvar end = blob.l + length;\n\tblob.l += 2;\n\tvar ixfe = blob.read_shift(2);\n\tblob.l += 2;\n\tvar cexts = blob.read_shift(2);\n\tvar ext = [];\n\twhile(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l));\n\treturn {ixfe:ixfe, ext:ext};\n}\n\n/* xf is an XF, see parse_XFExt for xfext */\nfunction update_xfext(xf, xfext) {\n\txfext.forEach(function(xfe) {\n\t\tswitch(xfe[0]) { /* 2.5.108 extPropData */\n\t\t\tcase 0x04: break; /* foreground color */\n\t\t\tcase 0x05: break; /* background color */\n\t\t\tcase 0x06: break; /* gradient fill */\n\t\t\tcase 0x07: break; /* top cell border color */\n\t\t\tcase 0x08: break; /* bottom cell border color */\n\t\t\tcase 0x09: break; /* left cell border color */\n\t\t\tcase 0x0a: break; /* right cell border color */\n\t\t\tcase 0x0b: break; /* diagonal cell border color */\n\t\t\tcase 0x0d: /* text color */\n\t\t\t\tbreak;\n\t\t\tcase 0x0e: break; /* font scheme */\n\t\t\tcase 0x0f: break; /* indentation level */\n\t\t}\n\t});\n}\n\n/* 18.6 Calculation Chain */\nfunction parse_cc_xml(data) {\n\tvar d = [];\n\tif(!data) return d;\n\tvar i = 1;\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '<?xml': break;\n\t\t\t/* 18.6.2 calcChain CT_CalcChain 1 */\n\t\t\tcase '<calcChain': case '<calcChain>': case '</calcChain>': break;\n\t\t\t/* 18.6.1 c CT_CalcCell 1 */\n\t\t\tcase '<c': delete y[0]; if(y.i) i = y.i; else y.i = i; d.push(y); break;\n\t\t}\n\t});\n\treturn d;\n}\n\n//function write_cc_xml(data, opts) { }\n\n/* [MS-XLSB] 2.6.4.1 */\nfunction parse_BrtCalcChainItem$(data) {\n\tvar out = {};\n\tout.i = data.read_shift(4);\n\tvar cell = {};\n\tcell.r = data.read_shift(4);\n\tcell.c = data.read_shift(4);\n\tout.r = encode_cell(cell);\n\tvar flags = data.read_shift(1);\n\tif(flags & 0x2) out.l = '1';\n\tif(flags & 0x8) out.a = '1';\n\treturn out;\n}\n\n/* 18.6 Calculation Chain */\nfunction parse_cc_bin(data, name, opts) {\n\tvar out = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_cc(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x003F: /* 'BrtCalcChainItem$' */\n\t\t\t\tout.push(val); break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn out;\n}\n\n//function write_cc_bin(data, opts) { }\n/* 18.14 Supplementary Workbook Data */\nfunction parse_xlink_xml() {\n\t//var opts = _opts || {};\n\t//if(opts.WTF) throw \"XLSX External Link\";\n}\n\n/* [MS-XLSB] 2.1.7.25 External Link */\nfunction parse_xlink_bin(data, rel, name, _opts) {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\n\tvar pass = false, end = false;\n\n\trecordhopper(data, function xlink_parse(val, R_n, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0167: /* 'BrtSupTabs' */\n\t\t\tcase 0x016B: /* 'BrtExternTableStart' */\n\t\t\tcase 0x016C: /* 'BrtExternTableEnd' */\n\t\t\tcase 0x016E: /* 'BrtExternRowHdr' */\n\t\t\tcase 0x016F: /* 'BrtExternCellBlank' */\n\t\t\tcase 0x0170: /* 'BrtExternCellReal' */\n\t\t\tcase 0x0171: /* 'BrtExternCellBool' */\n\t\t\tcase 0x0172: /* 'BrtExternCellError' */\n\t\t\tcase 0x0173: /* 'BrtExternCellString' */\n\t\t\tcase 0x01D8: /* 'BrtExternValueMeta' */\n\t\t\tcase 0x0241: /* 'BrtSupNameStart' */\n\t\t\tcase 0x0242: /* 'BrtSupNameValueStart' */\n\t\t\tcase 0x0243: /* 'BrtSupNameValueEnd' */\n\t\t\tcase 0x0244: /* 'BrtSupNameNum' */\n\t\t\tcase 0x0245: /* 'BrtSupNameErr' */\n\t\t\tcase 0x0246: /* 'BrtSupNameSt' */\n\t\t\tcase 0x0247: /* 'BrtSupNameNil' */\n\t\t\tcase 0x0248: /* 'BrtSupNameBool' */\n\t\t\tcase 0x0249: /* 'BrtSupNameFmla' */\n\t\t\tcase 0x024A: /* 'BrtSupNameBits' */\n\t\t\tcase 0x024B: /* 'BrtSupNameEnd' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT.toString(16) + \" \" + R_n);\n\t\t}\n\t}, opts);\n}\n/* 20.5 DrawingML - SpreadsheetML Drawing */\nRELS.IMG = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\";\nRELS.DRAW = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\";\n\n/* 20.5.2.35 wsDr CT_Drawing */\nfunction parse_drawing(data, rels) {\n\tif(!data) return \"??\";\n\t/*\n\t Chartsheet Drawing:\n\t - 20.5.2.35 wsDr CT_Drawing\n\t - 20.5.2.1 absoluteAnchor CT_AbsoluteAnchor\n\t - 20.5.2.16 graphicFrame CT_GraphicalObjectFrame\n\t - 20.1.2.2.16 graphic CT_GraphicalObject\n\t - 20.1.2.2.17 graphicData CT_GraphicalObjectData\n - chart reference\n\t the actual type is based on the URI of the graphicData\n\t\tTODO: handle embedded charts and other types of graphics\n\t*/\n\tvar id = (data.match(/<c:chart [^>]*r:id=\"([^\"]*)\"/)||[\"\",\"\"])[1];\n\n\treturn rels['!id'][id].Target;\n}\n\n/* L.5.5.2 SpreadsheetML Comments + VML Schema */\nvar _shapeid = 1024;\nfunction write_comments_vml(rId, comments) {\n\tvar csize = [21600, 21600];\n\t/* L.5.2.1.2 Path Attribute */\n\tvar bbox = [\"m0,0l0\",csize[1],csize[0],csize[1],csize[0],\"0xe\"].join(\",\");\n\tvar o = [\n\t\twritextag(\"xml\", null, { 'xmlns:v': XLMLNS.v, 'xmlns:o': XLMLNS.o, 'xmlns:x': XLMLNS.x, 'xmlns:mv': XLMLNS.mv }).replace(/\\/>/,\">\"),\n\t\twritextag(\"o:shapelayout\", writextag(\"o:idmap\", null, {'v:ext':\"edit\", 'data':rId}), {'v:ext':\"edit\"}),\n\t\twritextag(\"v:shapetype\", [\n\t\t\twritextag(\"v:stroke\", null, {joinstyle:\"miter\"}),\n\t\t\twritextag(\"v:path\", null, {gradientshapeok:\"t\", 'o:connecttype':\"rect\"})\n\t\t].join(\"\"), {id:\"_x0000_t202\", 'o:spt':202, coordsize:csize.join(\",\"),path:bbox})\n\t];\n\twhile(_shapeid < rId * 1000) _shapeid += 1000;\n\n\tcomments.forEach(function(x) {\n\tvar c = decode_cell(x[0]);\n\tvar fillopts = {'color2':\"#BEFF82\", 'type':\"gradient\"};\n\tif(fillopts.type == \"gradient\") fillopts.angle = \"-180\";\n\tvar fillparm = fillopts.type == \"gradient\" ? writextag(\"o:fill\", null, {type:\"gradientUnscaled\", 'v:ext':\"view\"}) : null;\n\tvar fillxml = writextag('v:fill', fillparm, fillopts);\n\n\tvar shadata = ({on:\"t\", 'obscured':\"t\"});\n\t++_shapeid;\n\n\to = o.concat([\n\t'<v:shape' + wxt_helper({\n\t\tid:'_x0000_s' + _shapeid,\n\t\ttype:\"#_x0000_t202\",\n\t\tstyle:\"position:absolute; margin-left:80pt;margin-top:5pt;width:104pt;height:64pt;z-index:10\" + (x[1].hidden ? \";visibility:hidden\" : \"\") ,\n\t\tfillcolor:\"#ECFAD4\",\n\t\tstrokecolor:\"#edeaa1\"\n\t}) + '>',\n\t\tfillxml,\n\t\twritextag(\"v:shadow\", null, shadata),\n\t\twritextag(\"v:path\", null, {'o:connecttype':\"none\"}),\n\t\t'<v:textbox><div style=\"text-align:left\"></div></v:textbox>',\n\t\t'<x:ClientData ObjectType=\"Note\">',\n\t\t\t'<x:MoveWithCells/>',\n\t\t\t'<x:SizeWithCells/>',\n\t\t\t/* Part 4 19.4.2.3 Anchor (Anchor) */\n\t\t\twritetag('x:Anchor', [c.c+1, 0, c.r+1, 0, c.c+3, 20, c.r+5, 20].join(\",\")),\n\t\t\twritetag('x:AutoFill', \"False\"),\n\t\t\twritetag('x:Row', String(c.r)),\n\t\t\twritetag('x:Column', String(c.c)),\n\t\t\tx[1].hidden ? '' : '<x:Visible/>',\n\t\t'</x:ClientData>',\n\t'</v:shape>'\n\t]); });\n\to.push('</xml>');\n\treturn o.join(\"\");\n}\nRELS.CMNT = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\";\n\nfunction sheet_insert_comments(sheet, comments) {\n\tvar dense = Array.isArray(sheet);\n\tvar cell;\n\tcomments.forEach(function(comment) {\n\t\tvar r = decode_cell(comment.ref);\n\t\tif(dense) {\n\t\t\tif(!sheet[r.r]) sheet[r.r] = [];\n\t\t\tcell = sheet[r.r][r.c];\n\t\t} else cell = sheet[comment.ref];\n\t\tif (!cell) {\n\t\t\tcell = ({t:\"z\"});\n\t\t\tif(dense) sheet[r.r][r.c] = cell;\n\t\t\telse sheet[comment.ref] = cell;\n\t\t\tvar range = safe_decode_range(sheet[\"!ref\"]||\"BDWGO1000001:A1\");\n\t\t\tif(range.s.r > r.r) range.s.r = r.r;\n\t\t\tif(range.e.r < r.r) range.e.r = r.r;\n\t\t\tif(range.s.c > r.c) range.s.c = r.c;\n\t\t\tif(range.e.c < r.c) range.e.c = r.c;\n\t\t\tvar encoded = encode_range(range);\n\t\t\tif (encoded !== sheet[\"!ref\"]) sheet[\"!ref\"] = encoded;\n\t\t}\n\n\t\tif (!cell.c) cell.c = [];\n\t\tvar o = ({a: comment.author, t: comment.t, r: comment.r});\n\t\tif(comment.h) o.h = comment.h;\n\t\tcell.c.push(o);\n\t});\n}\n\n/* 18.7 Comments */\nfunction parse_comments_xml(data, opts) {\n\t/* 18.7.6 CT_Comments */\n\tif(data.match(/<(?:\\w+:)?comments *\\/>/)) return [];\n\tvar authors = [];\n\tvar commentList = [];\n\tvar authtag = data.match(/<(?:\\w+:)?authors>([\\s\\S]*)<\\/(?:\\w+:)?authors>/);\n\tif(authtag && authtag[1]) authtag[1].split(/<\\/\\w*:?author>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar a = x.match(/<(?:\\w+:)?author[^>]*>(.*)/);\n\t\tif(a) authors.push(a[1]);\n\t});\n\tvar cmnttag = data.match(/<(?:\\w+:)?commentList>([\\s\\S]*)<\\/(?:\\w+:)?commentList>/);\n\tif(cmnttag && cmnttag[1]) cmnttag[1].split(/<\\/\\w*:?comment>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar cm = x.match(/<(?:\\w+:)?comment[^>]*>/);\n\t\tif(!cm) return;\n\t\tvar y = parsexmltag(cm[0]);\n\t\tvar comment = ({ author: y.authorId && authors[y.authorId] || \"sheetjsghost\", ref: y.ref, guid: y.guid });\n\t\tvar cell = decode_cell(y.ref);\n\t\tif(opts.sheetRows && opts.sheetRows <= cell.r) return;\n\t\tvar textMatch = x.match(/<(?:\\w+:)?text>([\\s\\S]*)<\\/(?:\\w+:)?text>/);\n\t\tvar rt = !!textMatch && !!textMatch[1] && parse_si(textMatch[1]) || {r:\"\",t:\"\",h:\"\"};\n\t\tcomment.r = rt.r;\n\t\tif(rt.r == \"<t></t>\") rt.t = rt.h = \"\";\n\t\tcomment.t = rt.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\t\tif(opts.cellHTML) comment.h = rt.h;\n\t\tcommentList.push(comment);\n\t});\n\treturn commentList;\n}\n\nvar CMNT_XML_ROOT = writextag('comments', null, { 'xmlns': XMLNS.main[0] });\nfunction write_comments_xml(data) {\n\tvar o = [XML_HEADER, CMNT_XML_ROOT];\n\n\tvar iauthor = [];\n\to.push(\"<authors>\");\n\tdata.forEach(function(x) { x[1].forEach(function(w) { var a = escapexml(w.a);\n\t\tif(iauthor.indexOf(a) > -1) return;\n\t\tiauthor.push(a);\n\t\to.push(\"<author>\" + a + \"</author>\");\n\t}); });\n\to.push(\"</authors>\");\n\to.push(\"<commentList>\");\n\tdata.forEach(function(d) {\n\t\td[1].forEach(function(c) {\n\t\t\t/* 18.7.3 CT_Comment */\n\t\t\to.push('<comment ref=\"' + d[0] + '\" authorId=\"' + iauthor.indexOf(escapexml(c.a)) + '\"><text>');\n\t\t\to.push(writetag(\"t\", c.t == null ? \"\" : escapexml(c.t)));\n\t\t\to.push('</text></comment>');\n\t\t});\n\t});\n\to.push(\"</commentList>\");\n\tif(o.length>2) { o[o.length] = ('</comments>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.28 BrtBeginComment */\nfunction parse_BrtBeginComment(data) {\n\tvar out = {};\n\tout.iauthor = data.read_shift(4);\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tout.rfx = rfx.s;\n\tout.ref = encode_cell(rfx.s);\n\tdata.l += 16; /*var guid = parse_GUID(data); */\n\treturn out;\n}\nfunction write_BrtBeginComment(data, o) {\n\tif(o == null) o = new_buf(36);\n\to.write_shift(4, data[1].iauthor);\n\twrite_UncheckedRfX((data[0]), o);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.327 BrtCommentAuthor */\nvar parse_BrtCommentAuthor = parse_XLWideString;\nfunction write_BrtCommentAuthor(data) { return write_XLWideString(data.slice(0, 54)); }\n\n/* [MS-XLSB] 2.1.7.8 Comments */\nfunction parse_comments_bin(data, opts) {\n\tvar out = [];\n\tvar authors = [];\n\tvar c = {};\n\tvar pass = false;\n\trecordhopper(data, function hopper_cmnt(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x0278: /* 'BrtCommentAuthor' */\n\t\t\t\tauthors.push(val); break;\n\t\t\tcase 0x027B: /* 'BrtBeginComment' */\n\t\t\t\tc = val; break;\n\t\t\tcase 0x027D: /* 'BrtCommentText' */\n\t\t\t\tc.t = val.t; c.h = val.h; c.r = val.r; break;\n\t\t\tcase 0x027C: /* 'BrtEndComment' */\n\t\t\t\tc.author = authors[c.iauthor];\n\t\t\t\tdelete (c).iauthor;\n\t\t\t\tif(opts.sheetRows && c.rfx && opts.sheetRows <= c.rfx.r) break;\n\t\t\t\tif(!c.t) c.t = \"\";\n\t\t\t\tdelete c.rfx; out.push(c); break;\n\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */ break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */ break;\n\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_comments_bin(data) {\n\tvar ba = buf_array();\n\tvar iauthor = [];\n\twrite_record(ba, \"BrtBeginComments\");\n\n\twrite_record(ba, \"BrtBeginCommentAuthors\");\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tif(iauthor.indexOf(c.a) > -1) return;\n\t\t\tiauthor.push(c.a.slice(0,54));\n\t\t\twrite_record(ba, \"BrtCommentAuthor\", write_BrtCommentAuthor(c.a));\n\t\t});\n\t});\n\twrite_record(ba, \"BrtEndCommentAuthors\");\n\n\twrite_record(ba, \"BrtBeginCommentList\");\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tc.iauthor = iauthor.indexOf(c.a);\n\t\t\tvar range = {s:decode_cell(comment[0]),e:decode_cell(comment[0])};\n\t\t\twrite_record(ba, \"BrtBeginComment\", write_BrtBeginComment([range, c]));\n\t\t\tif(c.t && c.t.length > 0) write_record(ba, \"BrtCommentText\", write_BrtCommentText(c));\n\t\t\twrite_record(ba, \"BrtEndComment\");\n\t\t\tdelete c.iauthor;\n\t\t});\n\t});\n\twrite_record(ba, \"BrtEndCommentList\");\n\n\twrite_record(ba, \"BrtEndComments\");\n\treturn ba.end();\n}\nvar CT_VBA = \"application/vnd.ms-office.vbaProject\";\nfunction make_vba_xls(cfb) {\n\tvar newcfb = CFB.utils.cfb_new({root:\"R\"});\n\tcfb.FullPaths.forEach(function(p, i) {\n\t\tif(p.slice(-1) === \"/\" || !p.match(/_VBA_PROJECT_CUR/)) return;\n\t\tvar newpath = p.replace(/^[^\\/]*/,\"R\").replace(/\\/_VBA_PROJECT_CUR\\u0000*/, \"\");\n\t\tCFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content);\n\t});\n\treturn CFB.write(newcfb);\n}\n\nfunction fill_vba_xls(cfb, vba) {\n\tvba.FullPaths.forEach(function(p, i) {\n\t\tif(i == 0) return;\n\t\tvar newpath = p.replace(/[^\\/]*[\\/]/, \"/_VBA_PROJECT_CUR/\");\n\t\tif(newpath.slice(-1) !== \"/\") CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i].content);\n\t});\n}\n\nvar VBAFMTS = [ \"xlsb\", \"xlsm\", \"xlam\", \"biff8\", \"xla\" ];\n\nRELS.DS = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet\";\nRELS.MS = \"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet\";\n\n/* macro and dialog sheet stubs */\nfunction parse_ds_bin() { return {'!type':'dialog'}; }\nfunction parse_ds_xml() { return {'!type':'dialog'}; }\nfunction parse_ms_bin() { return {'!type':'macro'}; }\nfunction parse_ms_xml() { return {'!type':'macro'}; }\n/* TODO: it will be useful to parse the function str */\nvar rc_to_a1 = (function(){\n\tvar rcregex = /(^|[^A-Za-z_])R(\\[?-?\\d+\\]|[1-9]\\d*|)C(\\[?-?\\d+\\]|[1-9]\\d*|)(?![A-Za-z0-9_])/g;\n\tvar rcbase = ({r:0,c:0});\n\tfunction rcfunc($$,$1,$2,$3) {\n\t\tvar cRel = false, rRel = false;\n\n\t\tif($2.length == 0) rRel = true;\n\t\telse if($2.charAt(0) == \"[\") { rRel = true; $2 = $2.slice(1, -1); }\n\n\t\tif($3.length == 0) cRel = true;\n\t\telse if($3.charAt(0) == \"[\") { cRel = true; $3 = $3.slice(1, -1); }\n\n\t\tvar R = $2.length>0?parseInt($2,10)|0:0, C = $3.length>0?parseInt($3,10)|0:0;\n\n\t\tif(cRel) C += rcbase.c; else --C;\n\t\tif(rRel) R += rcbase.r; else --R;\n\t\treturn $1 + (cRel ? \"\" : \"$\") + encode_col(C) + (rRel ? \"\" : \"$\") + encode_row(R);\n\t}\n\treturn function rc_to_a1(fstr, base) {\n\t\trcbase = base;\n\t\treturn fstr.replace(rcregex, rcfunc);\n\t};\n})();\n\nvar crefregex = /(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})(?![_.\\(A-Za-z0-9])/g;\nvar a1_to_rc =(function(){\n\treturn function a1_to_rc(fstr, base) {\n\t\treturn fstr.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\t\tvar c = decode_col($3) - ($2 ? 0 : base.c);\n\t\t\tvar r = decode_row($5) - ($4 ? 0 : base.r);\n\t\t\tvar R = (r == 0 ? \"\" : !$4 ? \"[\" + r + \"]\" : (r+1));\n\t\t\tvar C = (c == 0 ? \"\" : !$2 ? \"[\" + c + \"]\" : (c+1));\n\t\t\treturn $1 + \"R\" + R + \"C\" + C;\n\t\t});\n\t};\n})();\n\n/* no defined name can collide with a valid cell address A1:XFD1048576 ... except LOG10! */\nfunction shift_formula_str(f, delta) {\n\treturn f.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\treturn $1+($2==\"$\" ? $2+$3 : encode_col(decode_col($3)+delta.c))+($4==\"$\" ? $4+$5 : encode_row(decode_row($5) + delta.r));\n\t});\n}\n\nfunction shift_formula_xlsx(f, range, cell) {\n\tvar r = decode_range(range), s = r.s, c = decode_cell(cell);\n\tvar delta = {r:c.r - s.r, c:c.c - s.c};\n\treturn shift_formula_str(f, delta);\n}\n\n/* TODO: parse formula */\nfunction fuzzyfmla(f) {\n\tif(f.length == 1) return false;\n\treturn true;\n}\n\nfunction _xlfn(f) {\n\treturn f.replace(/_xlfn\\./g,\"\");\n}\nfunction parseread1(blob) { blob.l+=1; return; }\n\n/* [MS-XLS] 2.5.51 */\nfunction parse_ColRelU(blob, length) {\n\tvar c = blob.read_shift(length == 1 ? 1 : 2);\n\treturn [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1];\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.89 */\nfunction parse_RgceArea(blob, length, opts) {\n\tvar w = 2;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return parse_RgceArea_BIFF2(blob, length, opts);\n\t\telse if(opts.biff == 12) w = 4;\n\t}\n\tvar r=blob.read_shift(w), R=blob.read_shift(w);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n/* BIFF 2-5 encodes flags in the row field */\nfunction parse_RgceArea_BIFF2(blob) {\n\tvar r=parse_ColRelU(blob, 2), R=parse_ColRelU(blob, 2);\n\tvar c=blob.read_shift(1);\n\tvar C=blob.read_shift(1);\n\treturn { s:{r:r[0], c:c, cRel:r[1], rRel:r[2]}, e:{r:R[0], c:C, cRel:R[1], rRel:R[2]} };\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.90 */\nfunction parse_RgceAreaRel(blob, length, opts) {\n\tif(opts.biff < 8) return parse_RgceArea_BIFF2(blob, length, opts);\n\tvar r=blob.read_shift(opts.biff == 12 ? 4 : 2), R=blob.read_shift(opts.biff == 12 ? 4 : 2);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n\n/* [MS-XLS] 2.5.198.109 ; [MS-XLSB] 2.5.97.91 */\nfunction parse_RgceLoc(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff <= 5) return parse_RgceLoc_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(opts && opts.biff == 12 ? 4 : 2);\n\tvar c = parse_ColRelU(blob, 2);\n\treturn {r:r, c:c[0], cRel:c[1], rRel:c[2]};\n}\nfunction parse_RgceLoc_BIFF2(blob) {\n\tvar r = parse_ColRelU(blob, 2);\n\tvar c = blob.read_shift(1);\n\treturn {r:r[0], c:c, cRel:r[1], rRel:r[2]};\n}\n\n/* [MS-XLS] 2.5.198.107, 2.5.47 */\nfunction parse_RgceElfLoc(blob) {\n\tvar r = blob.read_shift(2);\n\tvar c = blob.read_shift(2);\n\treturn {r:r, c:c & 0xFF, fQuoted:!!(c & 0x4000), cRel:c>>15, rRel:c>>15 };\n}\n\n/* [MS-XLS] 2.5.198.111 ; [MS-XLSB] 2.5.97.92 TODO */\nfunction parse_RgceLocRel(blob, length, opts) {\n\tvar biff = opts && opts.biff ? opts.biff : 8;\n\tif(biff >= 2 && biff <= 5) return parse_RgceLocRel_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(biff >= 12 ? 4 : 2);\n\tvar cl = blob.read_shift(2);\n\tvar cRel = (cl & 0x4000) >> 14, rRel = (cl & 0x8000) >> 15;\n\tcl &= 0x3FFF;\n\tif(rRel == 1) while(r > 0x7FFFF) r -= 0x100000;\n\tif(cRel == 1) while(cl > 0x1FFF) cl = cl - 0x4000;\n\treturn {r:r,c:cl,cRel:cRel,rRel:rRel};\n}\nfunction parse_RgceLocRel_BIFF2(blob) {\n\tvar rl = blob.read_shift(2);\n\tvar c = blob.read_shift(1);\n\tvar rRel = (rl & 0x8000) >> 15, cRel = (rl & 0x4000) >> 14;\n\trl &= 0x3FFF;\n\tif(rRel == 1 && rl >= 0x2000) rl = rl - 0x4000;\n\tif(cRel == 1 && c >= 0x80) c = c - 0x100;\n\treturn {r:rl,c:c,cRel:cRel,rRel:rRel};\n}\n\n/* [MS-XLS] 2.5.198.27 ; [MS-XLSB] 2.5.97.18 */\nfunction parse_PtgArea(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceArea(blob, opts.biff >= 2 && opts.biff <= 5 ? 6 : 8, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.28 ; [MS-XLSB] 2.5.97.19 */\nfunction parse_PtgArea3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2, 'i');\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tvar area = parse_RgceArea(blob, w, opts);\n\treturn [type, ixti, area];\n}\n\n/* [MS-XLS] 2.5.198.29 ; [MS-XLSB] 2.5.97.20 */\nfunction parse_PtgAreaErr(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts && (opts.biff > 8) ? 12 : (opts.biff < 8 ? 6 : 8);\n\treturn [type];\n}\n/* [MS-XLS] 2.5.198.30 ; [MS-XLSB] 2.5.97.21 */\nfunction parse_PtgAreaErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.31 ; [MS-XLSB] 2.5.97.22 */\nfunction parse_PtgAreaN(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceAreaRel(blob, length - 1, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.32 ; [MS-XLSB] 2.5.97.23 */\nfunction parse_PtgArray(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts.biff == 2 ? 6 : opts.biff == 12 ? 14 : 7;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.33 ; [MS-XLSB] 2.5.97.24 */\nfunction parse_PtgAttrBaxcel(blob) {\n\tvar bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */\n\tvar bitBaxcel = 1;\n\tblob.l += 4;\n\treturn [bitSemi, bitBaxcel];\n}\n\n/* [MS-XLS] 2.5.198.34 ; [MS-XLSB] 2.5.97.25 */\nfunction parse_PtgAttrChoose(blob, length, opts) {\n\tblob.l +=2;\n\tvar offset = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar o = [];\n\t/* offset is 1 less than the number of elements */\n\tfor(var i = 0; i <= offset; ++i) o.push(blob.read_shift(opts && opts.biff == 2 ? 1 : 2));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.35 ; [MS-XLSB] 2.5.97.26 */\nfunction parse_PtgAttrGoto(blob, length, opts) {\n\tvar bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitGoto, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLS] 2.5.198.36 ; [MS-XLSB] 2.5.97.27 */\nfunction parse_PtgAttrIf(blob, length, opts) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLSB] 2.5.97.28 */\nfunction parse_PtgAttrIfError(blob) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(2)];\n}\n\n/* [MS-XLS] 2.5.198.37 ; [MS-XLSB] 2.5.97.29 */\nfunction parse_PtgAttrSemi(blob, length, opts) {\n\tvar bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += opts && opts.biff == 2 ? 3 : 4;\n\treturn [bitSemi];\n}\n\n/* [MS-XLS] 2.5.198.40 ; [MS-XLSB] 2.5.97.32 */\nfunction parse_PtgAttrSpaceType(blob) {\n\tvar type = blob.read_shift(1), cch = blob.read_shift(1);\n\treturn [type, cch];\n}\n\n/* [MS-XLS] 2.5.198.38 ; [MS-XLSB] 2.5.97.30 */\nfunction parse_PtgAttrSpace(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.39 ; [MS-XLSB] 2.5.97.31 */\nfunction parse_PtgAttrSpaceSemi(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.84 ; [MS-XLSB] 2.5.97.68 TODO */\nfunction parse_PtgRef(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLoc(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.88 ; [MS-XLSB] 2.5.97.72 TODO */\nfunction parse_PtgRefN(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLocRel(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.85 ; [MS-XLSB] 2.5.97.69 TODO */\nfunction parse_PtgRef3d(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tif(opts && opts.biff == 5) blob.l += 12;\n\tvar loc = parse_RgceLoc(blob, 0, opts); // TODO: or RgceLocRel\n\treturn [type, ixti, loc];\n}\n\n\n/* [MS-XLS] 2.5.198.62 ; [MS-XLSB] 2.5.97.45 TODO */\nfunction parse_PtgFunc(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar iftab = blob.read_shift(opts && opts.biff <= 3 ? 1 : 2);\n\treturn [FtabArgc[iftab], Ftab[iftab], type];\n}\n/* [MS-XLS] 2.5.198.63 ; [MS-XLSB] 2.5.97.46 TODO */\nfunction parse_PtgFuncVar(blob, length, opts) {\n\tvar type = blob[blob.l++];\n\tvar cparams = blob.read_shift(1), tab = opts && opts.biff <= 3 ? [(type == 0x58 ? -1 : 0), blob.read_shift(1)]: parsetab(blob);\n\treturn [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]];\n}\n\nfunction parsetab(blob) {\n\treturn [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF];\n}\n\n/* [MS-XLS] 2.5.198.41 ; [MS-XLSB] 2.5.97.33 */\nfunction parse_PtgAttrSum(blob, length, opts) {\n\tblob.l += opts && opts.biff == 2 ? 3 : 4; return;\n}\n\n/* [MS-XLS] 2.5.198.58 ; [MS-XLSB] 2.5.97.40 */\nfunction parse_PtgExp(blob, length, opts) {\n\tblob.l++;\n\tif(opts && opts.biff == 12) return [blob.read_shift(4, 'i'), 0];\n\tvar row = blob.read_shift(2);\n\tvar col = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [row, col];\n}\n\n/* [MS-XLS] 2.5.198.57 ; [MS-XLSB] 2.5.97.39 */\nfunction parse_PtgErr(blob) { blob.l++; return BErr[blob.read_shift(1)]; }\n\n/* [MS-XLS] 2.5.198.66 ; [MS-XLSB] 2.5.97.49 */\nfunction parse_PtgInt(blob) { blob.l++; return blob.read_shift(2); }\n\n/* [MS-XLS] 2.5.198.42 ; [MS-XLSB] 2.5.97.34 */\nfunction parse_PtgBool(blob) { blob.l++; return blob.read_shift(1)!==0;}\n\n/* [MS-XLS] 2.5.198.79 ; [MS-XLSB] 2.5.97.63 */\nfunction parse_PtgNum(blob) { blob.l++; return parse_Xnum(blob, 8); }\n\n/* [MS-XLS] 2.5.198.89 ; [MS-XLSB] 2.5.97.74 */\nfunction parse_PtgStr(blob, length, opts) { blob.l++; return parse_ShortXLUnicodeString(blob, length-1, opts); }\n\n/* [MS-XLS] 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */\n/* [MS-XLSB] 2.5.97.93 + 2.5.97.9{4,5,6,7} */\nfunction parse_SerAr(blob, biff) {\n\tvar val = [blob.read_shift(1)];\n\tif(biff == 12) switch(val[0]) {\n\t\tcase 0x02: val[0] = 0x04; break; /* SerBool */\n\t\tcase 0x04: val[0] = 0x10; break; /* SerErr */\n\t\tcase 0x00: val[0] = 0x01; break; /* SerNum */\n\t\tcase 0x01: val[0] = 0x02; break; /* SerStr */\n\t}\n\tswitch(val[0]) {\n\t\tcase 0x04: /* SerBool -- boolean */\n\t\t\tval[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE';\n\t\t\tif(biff != 12) blob.l += 7; break;\n\t\tcase 0x25: /* appears to be an alias */\n\t\tcase 0x10: /* SerErr -- error */\n\t\t\tval[1] = BErr[blob[blob.l]];\n\t\t\tblob.l += ((biff == 12) ? 4 : 8); break;\n\t\tcase 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */\n\t\t\tblob.l += 8; break;\n\t\tcase 0x01: /* SerNum -- Xnum */\n\t\t\tval[1] = parse_Xnum(blob, 8); break;\n\t\tcase 0x02: /* SerStr -- XLUnicodeString (<256 chars) */\n\t\t\tval[1] = parse_XLUnicodeString2(blob, 0, {biff:biff > 0 && biff < 8 ? 2 : biff}); break;\n\t\tdefault: throw new Error(\"Bad SerAr: \" + val[0]); /* Unreachable */\n\t}\n\treturn val;\n}\n\n/* [MS-XLS] 2.5.198.61 ; [MS-XLSB] 2.5.97.44 */\nfunction parse_PtgExtraMem(blob, cce, opts) {\n\tvar count = blob.read_shift((opts.biff == 12) ? 4 : 2);\n\tvar out = [];\n\tfor(var i = 0; i != count; ++i) out.push(((opts.biff == 12) ? parse_UncheckedRfX : parse_Ref8U)(blob, 8));\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.198.59 ; [MS-XLSB] 2.5.97.41 */\nfunction parse_PtgExtraArray(blob, length, opts) {\n\tvar rows = 0, cols = 0;\n\tif(opts.biff == 12) {\n\t\trows = blob.read_shift(4); // DRw\n\t\tcols = blob.read_shift(4); // DCol\n\t} else {\n\t\tcols = 1 + blob.read_shift(1); //DColByteU\n\t\trows = 1 + blob.read_shift(2); //DRw\n\t}\n\tif(opts.biff >= 2 && opts.biff < 8) { --rows; if(--cols == 0) cols = 0x100; }\n\t// $FlowIgnore\n\tfor(var i = 0, o = []; i != rows && (o[i] = []); ++i)\n\t\tfor(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob, opts.biff);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 */\nfunction parse_PtgName(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar w = (!opts || (opts.biff >= 8)) ? 4 : 2;\n\tvar nameindex = blob.read_shift(w);\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l += 5; break;\n\t\tcase 3: case 4: blob.l += 8; break;\n\t\tcase 5: blob.l += 12; break;\n\t}\n\treturn [type, 0, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 */\nfunction parse_PtgNameX(blob, length, opts) {\n\tif(opts.biff == 5) return parse_PtgNameX_BIFF5(blob, length, opts);\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tvar nameindex = blob.read_shift(4);\n\treturn [type, ixti, nameindex];\n}\nfunction parse_PtgNameX_BIFF5(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2, 'i'); // XtiIndex\n\tblob.l += 8;\n\tvar nameindex = blob.read_shift(2);\n\tblob.l += 12;\n\treturn [type, ixti, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.70 ; [MS-XLSB] 2.5.97.54 */\nfunction parse_PtgMemArea(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += (opts && opts.biff == 2 ? 3 : 4);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n/* [MS-XLS] 2.5.198.72 ; [MS-XLSB] 2.5.97.56 */\nfunction parse_PtgMemFunc(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n\n/* [MS-XLS] 2.5.198.86 ; [MS-XLSB] 2.5.97.69 */\nfunction parse_PtgRefErr(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += 4;\n\tif(opts.biff < 8) blob.l--;\n\tif(opts.biff == 12) blob.l += 2;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.87 ; [MS-XLSB] 2.5.97.71 */\nfunction parse_PtgRefErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 4;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: w = 15; break;\n\t\tcase 12: w = 6; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.71 ; [MS-XLSB] 2.5.97.55 */\nvar parse_PtgMemErr = parsenoop;\n/* [MS-XLS] 2.5.198.73 ; [MS-XLSB] 2.5.97.57 */\nvar parse_PtgMemNoMem = parsenoop;\n/* [MS-XLS] 2.5.198.92 */\nvar parse_PtgTbl = parsenoop;\n\nfunction parse_PtgElfLoc(blob, length, opts) {\n\tblob.l += 2;\n\treturn [parse_RgceElfLoc(blob, 4, opts)];\n}\nfunction parse_PtgElfNoop(blob) {\n\tblob.l += 6;\n\treturn [];\n}\n/* [MS-XLS] 2.5.198.46 */\nvar parse_PtgElfCol = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.47 */\nvar parse_PtgElfColS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.48 */\nvar parse_PtgElfColSV = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.49 */\nvar parse_PtgElfColV = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.50 */\nfunction parse_PtgElfLel(blob) {\n\tblob.l += 2;\n\treturn [parseuint16(blob), blob.read_shift(2) & 0x01];\n}\n/* [MS-XLS] 2.5.198.51 */\nvar parse_PtgElfRadical = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.52 */\nvar parse_PtgElfRadicalLel = parse_PtgElfLel;\n/* [MS-XLS] 2.5.198.53 */\nvar parse_PtgElfRadicalS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.54 */\nvar parse_PtgElfRw = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.55 */\nvar parse_PtgElfRwV = parse_PtgElfLoc;\n\n/* [MS-XLSB] 2.5.97.52 TODO */\nvar PtgListRT = [\n\t\"Data\",\n\t\"All\",\n\t\"Headers\",\n\t\"??\",\n\t\"?Data2\",\n\t\"??\",\n\t\"?DataHeaders\",\n\t\"??\",\n\t\"Totals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?DataTotals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?Current\"\n];\nfunction parse_PtgList(blob) {\n\tblob.l += 2;\n\tvar ixti = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tvar idx = blob.read_shift(4);\n\tvar c = blob.read_shift(2);\n\tvar C = blob.read_shift(2);\n\tvar rt = PtgListRT[(flags >> 2) & 0x1F];\n\treturn {ixti: ixti, coltype:(flags&0x3), rt:rt, idx:idx, c:c, C:C};\n}\n/* [MS-XLS] 2.5.198.91 ; [MS-XLSB] 2.5.97.76 */\nfunction parse_PtgSxName(blob) {\n\tblob.l += 2;\n\treturn [blob.read_shift(4)];\n}\n\n/* [XLS] old spec */\nfunction parse_PtgSheet(blob, length, opts) {\n\tblob.l += 5;\n\tblob.l += 2;\n\tblob.l += (opts.biff == 2 ? 1 : 4);\n\treturn [\"PTGSHEET\"];\n}\nfunction parse_PtgEndSheet(blob, length, opts) {\n\tblob.l += (opts.biff == 2 ? 4 : 5);\n\treturn [\"PTGENDSHEET\"];\n}\nfunction parse_PtgMemAreaN(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgMemNoMemN(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgAttrNoop(blob) {\n\tblob.l += 4;\n\treturn [0, 0];\n}\n\n/* [MS-XLS] 2.5.198.25 ; [MS-XLSB] 2.5.97.16 */\nvar PtgTypes = {\n0x01: { n:'PtgExp', f:parse_PtgExp },\n0x02: { n:'PtgTbl', f:parse_PtgTbl },\n0x03: { n:'PtgAdd', f:parseread1 },\n0x04: { n:'PtgSub', f:parseread1 },\n0x05: { n:'PtgMul', f:parseread1 },\n0x06: { n:'PtgDiv', f:parseread1 },\n0x07: { n:'PtgPower', f:parseread1 },\n0x08: { n:'PtgConcat', f:parseread1 },\n0x09: { n:'PtgLt', f:parseread1 },\n0x0A: { n:'PtgLe', f:parseread1 },\n0x0B: { n:'PtgEq', f:parseread1 },\n0x0C: { n:'PtgGe', f:parseread1 },\n0x0D: { n:'PtgGt', f:parseread1 },\n0x0E: { n:'PtgNe', f:parseread1 },\n0x0F: { n:'PtgIsect', f:parseread1 },\n0x10: { n:'PtgUnion', f:parseread1 },\n0x11: { n:'PtgRange', f:parseread1 },\n0x12: { n:'PtgUplus', f:parseread1 },\n0x13: { n:'PtgUminus', f:parseread1 },\n0x14: { n:'PtgPercent', f:parseread1 },\n0x15: { n:'PtgParen', f:parseread1 },\n0x16: { n:'PtgMissArg', f:parseread1 },\n0x17: { n:'PtgStr', f:parse_PtgStr },\n0x1A: { n:'PtgSheet', f:parse_PtgSheet },\n0x1B: { n:'PtgEndSheet', f:parse_PtgEndSheet },\n0x1C: { n:'PtgErr', f:parse_PtgErr },\n0x1D: { n:'PtgBool', f:parse_PtgBool },\n0x1E: { n:'PtgInt', f:parse_PtgInt },\n0x1F: { n:'PtgNum', f:parse_PtgNum },\n0x20: { n:'PtgArray', f:parse_PtgArray },\n0x21: { n:'PtgFunc', f:parse_PtgFunc },\n0x22: { n:'PtgFuncVar', f:parse_PtgFuncVar },\n0x23: { n:'PtgName', f:parse_PtgName },\n0x24: { n:'PtgRef', f:parse_PtgRef },\n0x25: { n:'PtgArea', f:parse_PtgArea },\n0x26: { n:'PtgMemArea', f:parse_PtgMemArea },\n0x27: { n:'PtgMemErr', f:parse_PtgMemErr },\n0x28: { n:'PtgMemNoMem', f:parse_PtgMemNoMem },\n0x29: { n:'PtgMemFunc', f:parse_PtgMemFunc },\n0x2A: { n:'PtgRefErr', f:parse_PtgRefErr },\n0x2B: { n:'PtgAreaErr', f:parse_PtgAreaErr },\n0x2C: { n:'PtgRefN', f:parse_PtgRefN },\n0x2D: { n:'PtgAreaN', f:parse_PtgAreaN },\n0x2E: { n:'PtgMemAreaN', f:parse_PtgMemAreaN },\n0x2F: { n:'PtgMemNoMemN', f:parse_PtgMemNoMemN },\n0x39: { n:'PtgNameX', f:parse_PtgNameX },\n0x3A: { n:'PtgRef3d', f:parse_PtgRef3d },\n0x3B: { n:'PtgArea3d', f:parse_PtgArea3d },\n0x3C: { n:'PtgRefErr3d', f:parse_PtgRefErr3d },\n0x3D: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d },\n0xFF: {}\n};\n/* These are duplicated in the PtgTypes table */\nvar PtgDupes = {\n0x40: 0x20, 0x60: 0x20,\n0x41: 0x21, 0x61: 0x21,\n0x42: 0x22, 0x62: 0x22,\n0x43: 0x23, 0x63: 0x23,\n0x44: 0x24, 0x64: 0x24,\n0x45: 0x25, 0x65: 0x25,\n0x46: 0x26, 0x66: 0x26,\n0x47: 0x27, 0x67: 0x27,\n0x48: 0x28, 0x68: 0x28,\n0x49: 0x29, 0x69: 0x29,\n0x4A: 0x2A, 0x6A: 0x2A,\n0x4B: 0x2B, 0x6B: 0x2B,\n0x4C: 0x2C, 0x6C: 0x2C,\n0x4D: 0x2D, 0x6D: 0x2D,\n0x4E: 0x2E, 0x6E: 0x2E,\n0x4F: 0x2F, 0x6F: 0x2F,\n0x58: 0x22, 0x78: 0x22,\n0x59: 0x39, 0x79: 0x39,\n0x5A: 0x3A, 0x7A: 0x3A,\n0x5B: 0x3B, 0x7B: 0x3B,\n0x5C: 0x3C, 0x7C: 0x3C,\n0x5D: 0x3D, 0x7D: 0x3D\n};\n(function(){for(var y in PtgDupes) PtgTypes[y] = PtgTypes[PtgDupes[y]];})();\n\nvar Ptg18 = {\n0x01: { n:'PtgElfLel', f:parse_PtgElfLel },\n0x02: { n:'PtgElfRw', f:parse_PtgElfRw },\n0x03: { n:'PtgElfCol', f:parse_PtgElfCol },\n0x06: { n:'PtgElfRwV', f:parse_PtgElfRwV },\n0x07: { n:'PtgElfColV', f:parse_PtgElfColV },\n0x0A: { n:'PtgElfRadical', f:parse_PtgElfRadical },\n0x0B: { n:'PtgElfRadicalS', f:parse_PtgElfRadicalS },\n0x0D: { n:'PtgElfColS', f:parse_PtgElfColS },\n0x0F: { n:'PtgElfColSV', f:parse_PtgElfColSV },\n0x10: { n:'PtgElfRadicalLel', f:parse_PtgElfRadicalLel },\n0x19: { n:'PtgList', f:parse_PtgList },\n0x1D: { n:'PtgSxName', f:parse_PtgSxName },\n0xFF: {}\n};\nvar Ptg19 = {\n0x00: { n:'PtgAttrNoop', f:parse_PtgAttrNoop },\n0x01: { n:'PtgAttrSemi', f:parse_PtgAttrSemi },\n0x02: { n:'PtgAttrIf', f:parse_PtgAttrIf },\n0x04: { n:'PtgAttrChoose', f:parse_PtgAttrChoose },\n0x08: { n:'PtgAttrGoto', f:parse_PtgAttrGoto },\n0x10: { n:'PtgAttrSum', f:parse_PtgAttrSum },\n0x20: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n0x40: { n:'PtgAttrSpace', f:parse_PtgAttrSpace },\n0x41: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi },\n0x80: { n:'PtgAttrIfError', f:parse_PtgAttrIfError },\n0xFF: {}\n};\nPtg19[0x21] = Ptg19[0x20];\n\n/* [MS-XLS] 2.5.198.103 ; [MS-XLSB] 2.5.97.87 */\nfunction parse_RgbExtra(blob, length, rgce, opts) {\n\tif(opts.biff < 8) return parsenoop(blob, length);\n\tvar target = blob.l + length;\n\tvar o = [];\n\tfor(var i = 0; i !== rgce.length; ++i) {\n\t\tswitch(rgce[i][0]) {\n\t\t\tcase 'PtgArray': /* PtgArray -> PtgExtraArray */\n\t\t\t\trgce[i][1] = parse_PtgExtraArray(blob, 0, opts);\n\t\t\t\to.push(rgce[i][1]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */\n\t\t\t\trgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1], opts);\n\t\t\t\to.push(rgce[i][2]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgExp': /* PtgExp -> PtgExtraCol */\n\t\t\t\tif(opts && opts.biff == 12) {\n\t\t\t\t\trgce[i][1][1] = blob.read_shift(4);\n\t\t\t\t\to.push(rgce[i][1]);\n\t\t\t\t} break;\n\t\t\tcase 'PtgList': /* TODO: PtgList -> PtgExtraList */\n\t\t\tcase 'PtgElfRadicalS': /* TODO: PtgElfRadicalS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColS': /* TODO: PtgElfColS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColSV': /* TODO: PtgElfColSV -> PtgExtraElf */\n\t\t\t\tthrow \"Unsupported \" + rgce[i][0];\n\t\t\tdefault: break;\n\t\t}\n\t}\n\tlength = target - blob.l;\n\t/* note: this is technically an error but Excel disregards */\n\t//if(target !== blob.l && blob.l !== target - length) throw new Error(target + \" != \" + blob.l);\n\tif(length !== 0) o.push(parsenoop(blob, length));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.104 ; [MS-XLSB] 2.5.97.88 */\nfunction parse_Rgce(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar R, id, ptgs = [];\n\twhile(target != blob.l) {\n\t\tlength = target - blob.l;\n\t\tid = blob[blob.l];\n\t\tR = PtgTypes[id];\n\t\tif(id === 0x18 || id === 0x19) R = (id === 0x18 ? Ptg18 : Ptg19)[blob[blob.l + 1]];\n\t\tif(!R || !R.f) { /*ptgs.push*/(parsenoop(blob, length)); }\n\t\telse { ptgs.push([R.n, R.f(blob, length, opts)]); }\n\t}\n\treturn ptgs;\n}\n\nfunction stringify_array(f) {\n\tvar o = [];\n\tfor(var i = 0; i < f.length; ++i) {\n\t\tvar x = f[i], r = [];\n\t\tfor(var j = 0; j < x.length; ++j) {\n\t\t\tvar y = x[j];\n\t\t\tif(y) switch(y[0]) {\n\t\t\t\t// TODO: handle embedded quotes\n\t\t\t\tcase 0x02:\nr.push('\"' + y[1].replace(/\"/g,'\"\"') + '\"'); break;\n\t\t\t\tdefault: r.push(y[1]);\n\t\t\t} else r.push(\"\");\n\t\t}\n\t\to.push(r.join(\",\"));\n\t}\n\treturn o.join(\";\");\n}\n\n/* [MS-XLS] 2.2.2 ; [MS-XLSB] 2.2.2 TODO */\nvar PtgBinOp = {\n\tPtgAdd: \"+\",\n\tPtgConcat: \"&\",\n\tPtgDiv: \"/\",\n\tPtgEq: \"=\",\n\tPtgGe: \">=\",\n\tPtgGt: \">\",\n\tPtgLe: \"<=\",\n\tPtgLt: \"<\",\n\tPtgMul: \"*\",\n\tPtgNe: \"<>\",\n\tPtgPower: \"^\",\n\tPtgSub: \"-\"\n};\n\n// List of invalid characters needs to be tested further\nvar quoteCharacters = new RegExp(/[^\\w\\u4E00-\\u9FFF\\u3040-\\u30FF]/);\nfunction formula_quote_sheet_name(sname, opts) {\n\tif(!sname && !(opts && opts.biff <= 5 && opts.biff >= 2)) throw new Error(\"empty sheet name\");\n\tif (quoteCharacters.test(sname)) return \"'\" + sname + \"'\";\n\treturn sname;\n}\nfunction get_ixti_raw(supbooks, ixti, opts) {\n\tif(!supbooks) return \"SH33TJSERR0\";\n\tif(opts.biff > 8 && (!supbooks.XTI || !supbooks.XTI[ixti])) return supbooks.SheetNames[ixti];\n\tif(!supbooks.XTI) return \"SH33TJSERR6\";\n\tvar XTI = supbooks.XTI[ixti];\n\tif(opts.biff < 8) {\n\t\tif(ixti > 10000) ixti-= 65536;\n\t\tif(ixti < 0) ixti = -ixti;\n\t\treturn ixti == 0 ? \"\" : supbooks.XTI[ixti - 1];\n\t}\n\tif(!XTI) return \"SH33TJSERR1\";\n\tvar o = \"\";\n\tif(opts.biff > 8) switch(supbooks[XTI[0]][0]) {\n\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\to = XTI[1] == -1 ? \"#REF\" : supbooks.SheetNames[XTI[1]];\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tif(opts.SID != null) return supbooks.SheetNames[opts.SID];\n\t\t\treturn \"SH33TJSSAME\" + supbooks[XTI[0]][0];\n\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\t/* falls through */\n\t\tdefault: return \"SH33TJSSRC\" + supbooks[XTI[0]][0];\n\t}\n\tswitch(supbooks[XTI[0]][0][0]) {\n\t\tcase 0x0401:\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks.SheetNames[XTI[1]] || \"SH33TJSERR3\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x3A01: return supbooks[XTI[0]].slice(1).map(function(name) { return name.Name; }).join(\";;\"); //return \"SH33TJSERR8\";\n\t\tdefault:\n\t\t\tif(!supbooks[XTI[0]][0][3]) return \"SH33TJSERR2\";\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks[XTI[0]][0][3][XTI[1]] || \"SH33TJSERR4\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks[XTI[0]][0][3][XTI[2]];\n\t}\n}\nfunction get_ixti(supbooks, ixti, opts) {\n\treturn formula_quote_sheet_name(get_ixti_raw(supbooks, ixti, opts), opts);\n}\nfunction stringify_formula(formula/*Array<any>*/, range, cell, supbooks, opts) {\n\tvar biff = (opts && opts.biff) || 8;\n\tvar _range = /*range != null ? range :*/ {s:{c:0, r:0},e:{c:0, r:0}};\n\tvar stack = [], e1, e2, c, ixti=0, nameidx=0, r, sname=\"\";\n\tif(!formula[0] || !formula[0][0]) return \"\";\n\tvar last_sp = -1, sp = \"\";\n\tfor(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) {\n\t\tvar f = formula[0][ff];\n\t\tswitch(f[0]) {\n\t\t\tcase 'PtgUminus': /* [MS-XLS] 2.5.198.93 */\n\t\t\t\tstack.push(\"-\" + stack.pop()); break;\n\t\t\tcase 'PtgUplus': /* [MS-XLS] 2.5.198.95 */\n\t\t\t\tstack.push(\"+\" + stack.pop()); break;\n\t\t\tcase 'PtgPercent': /* [MS-XLS] 2.5.198.81 */\n\t\t\t\tstack.push(stack.pop() + \"%\"); break;\n\n\t\t\tcase 'PtgAdd': /* [MS-XLS] 2.5.198.26 */\n\t\t\tcase 'PtgConcat': /* [MS-XLS] 2.5.198.43 */\n\t\t\tcase 'PtgDiv': /* [MS-XLS] 2.5.198.45 */\n\t\t\tcase 'PtgEq': /* [MS-XLS] 2.5.198.56 */\n\t\t\tcase 'PtgGe': /* [MS-XLS] 2.5.198.64 */\n\t\t\tcase 'PtgGt': /* [MS-XLS] 2.5.198.65 */\n\t\t\tcase 'PtgLe': /* [MS-XLS] 2.5.198.68 */\n\t\t\tcase 'PtgLt': /* [MS-XLS] 2.5.198.69 */\n\t\t\tcase 'PtgMul': /* [MS-XLS] 2.5.198.75 */\n\t\t\tcase 'PtgNe': /* [MS-XLS] 2.5.198.78 */\n\t\t\tcase 'PtgPower': /* [MS-XLS] 2.5.198.82 */\n\t\t\tcase 'PtgSub': /* [MS-XLS] 2.5.198.90 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\" \", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\"\\r\", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tsp = \"\";\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\te2 = e2 + sp;\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(e2+PtgBinOp[f[0]]+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgIsect': /* [MS-XLS] 2.5.198.67 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\" \"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgUnion': /* [MS-XLS] 2.5.198.94 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\",\"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRange': /* [MS-XLS] 2.5.198.83 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\":\"+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrChoose': /* [MS-XLS] 2.5.198.34 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrGoto': /* [MS-XLS] 2.5.198.35 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIf': /* [MS-XLS] 2.5.198.36 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIfError': /* [MS-XLSB] 2.5.97.28 */\n\t\t\t\tbreak;\n\n\n\t\t\tcase 'PtgRef': /* [MS-XLS] 2.5.198.84 */\nc = shift_cell_xls((f[1][1]), _range, opts);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRefN': /* [MS-XLS] 2.5.198.88 */\nc = cell ? shift_cell_xls((f[1][1]), cell, opts) : (f[1][1]);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRef3d': /* [MS-XLS] 2.5.198.85 */\nixti = f[1][1]; c = shift_cell_xls((f[1][2]), _range, opts);\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tvar w = sname; /* IE9 fails on defined names */ // eslint-disable-line no-unused-vars\n\t\t\t\tstack.push(sname + \"!\" + encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgFunc': /* [MS-XLS] 2.5.198.62 */\n\t\t\tcase 'PtgFuncVar': /* [MS-XLS] 2.5.198.63 */\n\t\t\t\t/* f[1] = [argc, func, type] */\n\t\t\t\tvar argc = (f[1][0]), func = (f[1][1]);\n\t\t\t\tif(!argc) argc = 0;\n\t\t\t\targc &= 0x7F;\n\t\t\t\tvar args = argc == 0 ? [] : stack.slice(-argc);\n\t\t\t\tstack.length -= argc;\n\t\t\t\tif(func === 'User') func = args.shift();\n\t\t\t\tstack.push(func + \"(\" + args.join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgBool': /* [MS-XLS] 2.5.198.42 */\n\t\t\t\tstack.push(f[1] ? \"TRUE\" : \"FALSE\"); break;\n\t\t\tcase 'PtgInt': /* [MS-XLS] 2.5.198.66 */\n\t\t\t\tstack.push(f[1]); break;\n\t\t\tcase 'PtgNum': /* [MS-XLS] 2.5.198.79 TODO: precision? */\n\t\t\t\tstack.push(String(f[1])); break;\n\t\t\tcase 'PtgStr': /* [MS-XLS] 2.5.198.89 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push('\"' + f[1].replace(/\"/g, '\"\"') + '\"'); break;\n\t\t\tcase 'PtgErr': /* [MS-XLS] 2.5.198.57 */\n\t\t\t\tstack.push(f[1]); break;\n\t\t\tcase 'PtgAreaN': /* [MS-XLS] 2.5.198.31 TODO */\nr = shift_range_xls(f[1][1], cell ? {s:cell} : _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea': /* [MS-XLS] 2.5.198.27 TODO: fixed points */\nr = shift_range_xls(f[1][1], _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea3d': /* [MS-XLS] 2.5.198.28 TODO */\nixti = f[1][1]; r = f[1][2];\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tstack.push(sname + \"!\" + encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrSum': /* [MS-XLS] 2.5.198.41 */\n\t\t\t\tstack.push(\"SUM(\" + stack.pop() + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrBaxcel': /* [MS-XLS] 2.5.198.33 */\n\t\t\tcase 'PtgAttrSemi': /* [MS-XLS] 2.5.198.37 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgName': /* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 TODO: revisions */\n\t\t\t\t/* f[1] = type, 0, nameindex */\n\t\t\t\tnameidx = (f[1][2]);\n\t\t\t\tvar lbl = (supbooks.names||[])[nameidx-1] || (supbooks[0]||[])[nameidx];\n\t\t\t\tvar name = lbl ? lbl.Name : \"SH33TJSNAME\" + String(nameidx);\n\t\t\t\tif(name in XLSXFutureFunctions) name = XLSXFutureFunctions[name];\n\t\t\t\tstack.push(name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgNameX': /* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 TODO: revisions */\n\t\t\t\t/* f[1] = type, ixti, nameindex */\n\t\t\t\tvar bookidx = (f[1][1]); nameidx = (f[1][2]); var externbook;\n\t\t\t\t/* TODO: Properly handle missing values -- this should be using get_ixti_raw primarily */\n\t\t\t\tif(opts.biff <= 5) {\n\t\t\t\t\tif(bookidx < 0) bookidx = -bookidx;\n\t\t\t\t\tif(supbooks[bookidx]) externbook = supbooks[bookidx][nameidx];\n\t\t\t\t} else {\n\t\t\t\t\tvar o = \"\";\n\t\t\t\t\tif(((supbooks[bookidx]||[])[0]||[])[0] == 0x3A01){/* empty */}\n\t\t\t\t\telse if(((supbooks[bookidx]||[])[0]||[])[0] == 0x0401){\n\t\t\t\t\t\tif(supbooks[bookidx][nameidx] && supbooks[bookidx][nameidx].itab > 0) {\n\t\t\t\t\t\t\to = supbooks.SheetNames[supbooks[bookidx][nameidx].itab-1] + \"!\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse o = supbooks.SheetNames[nameidx-1]+ \"!\";\n\t\t\t\t\tif(supbooks[bookidx] && supbooks[bookidx][nameidx]) o += supbooks[bookidx][nameidx].Name;\n\t\t\t\t\telse if(supbooks[0] && supbooks[0][nameidx]) o += supbooks[0][nameidx].Name;\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar ixtidata = get_ixti_raw(supbooks, bookidx, opts).split(\";;\");\n\t\t\t\t\t\tif(ixtidata[nameidx - 1]) o = ixtidata[nameidx - 1]; // TODO: confirm this is correct\n\t\t\t\t\t\telse o += \"SH33TJSERRX\";\n\t\t\t\t\t}\n\t\t\t\t\tstack.push(o);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(!externbook) externbook = {Name: \"SH33TJSERRY\"};\n\t\t\t\tstack.push(externbook.Name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgParen': /* [MS-XLS] 2.5.198.80 */\n\t\t\t\tvar lp = '(', rp = ')';\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 2: lp = fill(\" \", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 3: lp = fill(\"\\r\", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 4: rp = fill(\" \", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 5: rp = fill(\"\\r\", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(lp + stack.pop() + rp); break;\n\n\t\t\tcase 'PtgRefErr': /* [MS-XLS] 2.5.198.86 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgRefErr3d': /* [MS-XLS] 2.5.198.87 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgExp': /* [MS-XLS] 2.5.198.58 TODO */\n\t\t\t\tc = {c:(f[1][1]),r:(f[1][0])};\n\t\t\t\tvar q = ({c: cell.c, r:cell.r});\n\t\t\t\tif(supbooks.sharedf[encode_cell(c)]) {\n\t\t\t\t\tvar parsedf = (supbooks.sharedf[encode_cell(c)]);\n\t\t\t\t\tstack.push(stringify_formula(parsedf, _range, q, supbooks, opts));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvar fnd = false;\n\t\t\t\t\tfor(e1=0;e1!=supbooks.arrayf.length; ++e1) {\n\t\t\t\t\t\t/* TODO: should be something like range_has */\n\t\t\t\t\t\te2 = supbooks.arrayf[e1];\n\t\t\t\t\t\tif(c.c < e2[0].s.c || c.c > e2[0].e.c) continue;\n\t\t\t\t\t\tif(c.r < e2[0].s.r || c.r > e2[0].e.r) continue;\n\t\t\t\t\t\tstack.push(stringify_formula(e2[1], _range, q, supbooks, opts));\n\t\t\t\t\t\tfnd = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(!fnd) stack.push(f[1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgArray': /* [MS-XLS] 2.5.198.32 TODO */\n\t\t\t\tstack.push(\"{\" + stringify_array(f[1]) + \"}\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemArea': /* [MS-XLS] 2.5.198.70 TODO: confirm this is a non-display */\n\t\t\t\t//stack.push(\"(\" + f[2].map(encode_range).join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrSpace': /* [MS-XLS] 2.5.198.38 */\n\t\t\tcase 'PtgAttrSpaceSemi': /* [MS-XLS] 2.5.198.39 */\n\t\t\t\tlast_sp = ff;\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgTbl': /* [MS-XLS] 2.5.198.92 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemErr': /* [MS-XLS] 2.5.198.71 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMissArg': /* [MS-XLS] 2.5.198.74 */\n\t\t\t\tstack.push(\"\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAreaErr': /* [MS-XLS] 2.5.198.29 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgAreaErr3d': /* [MS-XLS] 2.5.198.30 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgList': /* [MS-XLSB] 2.5.97.52 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push(\"Table\" + f[1].idx + \"[#\" + f[1].rt + \"]\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemAreaN':\n\t\t\tcase 'PtgMemNoMemN':\n\t\t\tcase 'PtgAttrNoop':\n\t\t\tcase 'PtgSheet':\n\t\t\tcase 'PtgEndSheet':\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemFunc': /* [MS-XLS] 2.5.198.72 TODO */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemNoMem': /* [MS-XLS] 2.5.198.73 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgElfCol': /* [MS-XLS] 2.5.198.46 */\n\t\t\tcase 'PtgElfColS': /* [MS-XLS] 2.5.198.47 */\n\t\t\tcase 'PtgElfColSV': /* [MS-XLS] 2.5.198.48 */\n\t\t\tcase 'PtgElfColV': /* [MS-XLS] 2.5.198.49 */\n\t\t\tcase 'PtgElfLel': /* [MS-XLS] 2.5.198.50 */\n\t\t\tcase 'PtgElfRadical': /* [MS-XLS] 2.5.198.51 */\n\t\t\tcase 'PtgElfRadicalLel': /* [MS-XLS] 2.5.198.52 */\n\t\t\tcase 'PtgElfRadicalS': /* [MS-XLS] 2.5.198.53 */\n\t\t\tcase 'PtgElfRw': /* [MS-XLS] 2.5.198.54 */\n\t\t\tcase 'PtgElfRwV': /* [MS-XLS] 2.5.198.55 */\n\t\t\t\tthrow new Error(\"Unsupported ELFs\");\n\n\t\t\tcase 'PtgSxName': /* [MS-XLS] 2.5.198.91 TODO -- find a test case */\n\t\t\t\tthrow new Error('Unrecognized Formula Token: ' + String(f));\n\t\t\tdefault: throw new Error('Unrecognized Formula Token: ' + String(f));\n\t\t}\n\t\tvar PtgNonDisp = ['PtgAttrSpace', 'PtgAttrSpaceSemi', 'PtgAttrGoto'];\n\t\tif(opts.biff != 3) if(last_sp >= 0 && PtgNonDisp.indexOf(formula[0][ff][0]) == -1) {\n\t\t\tf = formula[0][last_sp];\n\t\t\tvar _left = true;\n\t\t\tswitch(f[1][0]) {\n\t\t\t\t/* note: some bad XLSB files omit the PtgParen */\n\t\t\t\tcase 4: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 0:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\" \", f[1][1]); break;\n\t\t\t\tcase 5: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 1:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\"\\r\", f[1][1]); break;\n\t\t\t\tdefault:\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + f[1][0]);\n\t\t\t}\n\t\t\tstack.push((_left ? sp : \"\") + stack.pop() + (_left ? \"\" : sp));\n\t\t\tlast_sp = -1;\n\t\t}\n\t}\n\tif(stack.length > 1 && opts.WTF) throw new Error(\"bad formula stack\");\n\treturn stack[0];\n}\n\n/* [MS-XLS] 2.5.198.1 TODO */\nfunction parse_ArrayParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.3 TODO */\nfunction parse_XLSCellParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.21 */\nfunction parse_NameParsedFormula(blob, length, opts, cce) {\n\tvar target = blob.l + length;\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tvar rgcb;\n\tif(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.118 TODO */\nfunction parse_SharedParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.133 TODO: how to emit empty strings? */\nfunction parse_FormulaValue(blob) {\n\tvar b;\n\tif(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n'];\n\tswitch(blob[blob.l]) {\n\t\tcase 0x00: blob.l += 8; return [\"String\", 's'];\n\t\tcase 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b'];\n\t\tcase 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e'];\n\t\tcase 0x03: blob.l += 8; return [\"\",'s'];\n\t}\n\treturn [];\n}\nfunction write_FormulaValue(value) {\n\tif(value == null) {\n\t\t// Blank String Value\n\t\tvar o = new_buf(8);\n\t\to.write_shift(1, 0x03);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0xFFFF);\n\t\treturn o;\n\t} else if(typeof value == \"number\") return write_Xnum(value);\n\treturn write_Xnum(0);\n}\n\n/* [MS-XLS] 2.4.127 TODO */\nfunction parse_Formula(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) ++blob.l;\n\tvar val = parse_FormulaValue(blob,8);\n\tvar flags = blob.read_shift(1);\n\tif(opts.biff != 2) {\n\t\tblob.read_shift(1);\n\t\tif(opts.biff >= 5) {\n\t\t\t/*var chn = */blob.read_shift(4);\n\t\t}\n\t}\n\tvar cbf = parse_XLSCellParsedFormula(blob, end - blob.l, opts);\n\treturn {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]};\n}\nfunction write_Formula(cell, R, C, opts, os) {\n\t// Cell\n\tvar o1 = write_XLSCell(R, C, os);\n\n\t// FormulaValue\n\tvar o2 = write_FormulaValue(cell.v);\n\n\t// flags + cache\n\tvar o3 = new_buf(6);\n\tvar flags = 0x01 | 0x20;\n\to3.write_shift(2, flags);\n\to3.write_shift(4, 0);\n\n\t// CellParsedFormula\n\tvar bf = new_buf(cell.bf.length);\n\tfor(var i = 0; i < cell.bf.length; ++i) bf[i] = cell.bf[i];\n\n\tvar out = bconcat([o1, o2, o3, bf]);\n\treturn out;\n}\n\n\n/* XLSB Parsed Formula records have the same shape */\nfunction parse_XLSBParsedFormula(data, length, opts) {\n\tvar cce = data.read_shift(4);\n\tvar rgce = parse_Rgce(data, cce, opts);\n\tvar cb = data.read_shift(4);\n\tvar rgcb = cb > 0 ? parse_RgbExtra(data, cb, rgce, opts) : null;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLSB] 2.5.97.1 ArrayParsedFormula */\nvar parse_XLSBArrayParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.4 CellParsedFormula */\nvar parse_XLSBCellParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.8 DVParsedFormula */\n//var parse_XLSBDVParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.9 FRTParsedFormula */\n//var parse_XLSBFRTParsedFormula = parse_XLSBParsedFormula2;\n/* [MS-XLSB] 2.5.97.12 NameParsedFormula */\nvar parse_XLSBNameParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.98 SharedParsedFormula */\nvar parse_XLSBSharedParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLS] 2.5.198.4 */\nvar Cetab = {\n0x0000: 'BEEP',\n0x0001: 'OPEN',\n0x0002: 'OPEN.LINKS',\n0x0003: 'CLOSE.ALL',\n0x0004: 'SAVE',\n0x0005: 'SAVE.AS',\n0x0006: 'FILE.DELETE',\n0x0007: 'PAGE.SETUP',\n0x0008: 'PRINT',\n0x0009: 'PRINTER.SETUP',\n0x000A: 'QUIT',\n0x000B: 'NEW.WINDOW',\n0x000C: 'ARRANGE.ALL',\n0x000D: 'WINDOW.SIZE',\n0x000E: 'WINDOW.MOVE',\n0x000F: 'FULL',\n0x0010: 'CLOSE',\n0x0011: 'RUN',\n0x0016: 'SET.PRINT.AREA',\n0x0017: 'SET.PRINT.TITLES',\n0x0018: 'SET.PAGE.BREAK',\n0x0019: 'REMOVE.PAGE.BREAK',\n0x001A: 'FONT',\n0x001B: 'DISPLAY',\n0x001C: 'PROTECT.DOCUMENT',\n0x001D: 'PRECISION',\n0x001E: 'A1.R1C1',\n0x001F: 'CALCULATE.NOW',\n0x0020: 'CALCULATION',\n0x0022: 'DATA.FIND',\n0x0023: 'EXTRACT',\n0x0024: 'DATA.DELETE',\n0x0025: 'SET.DATABASE',\n0x0026: 'SET.CRITERIA',\n0x0027: 'SORT',\n0x0028: 'DATA.SERIES',\n0x0029: 'TABLE',\n0x002A: 'FORMAT.NUMBER',\n0x002B: 'ALIGNMENT',\n0x002C: 'STYLE',\n0x002D: 'BORDER',\n0x002E: 'CELL.PROTECTION',\n0x002F: 'COLUMN.WIDTH',\n0x0030: 'UNDO',\n0x0031: 'CUT',\n0x0032: 'COPY',\n0x0033: 'PASTE',\n0x0034: 'CLEAR',\n0x0035: 'PASTE.SPECIAL',\n0x0036: 'EDIT.DELETE',\n0x0037: 'INSERT',\n0x0038: 'FILL.RIGHT',\n0x0039: 'FILL.DOWN',\n0x003D: 'DEFINE.NAME',\n0x003E: 'CREATE.NAMES',\n0x003F: 'FORMULA.GOTO',\n0x0040: 'FORMULA.FIND',\n0x0041: 'SELECT.LAST.CELL',\n0x0042: 'SHOW.ACTIVE.CELL',\n0x0043: 'GALLERY.AREA',\n0x0044: 'GALLERY.BAR',\n0x0045: 'GALLERY.COLUMN',\n0x0046: 'GALLERY.LINE',\n0x0047: 'GALLERY.PIE',\n0x0048: 'GALLERY.SCATTER',\n0x0049: 'COMBINATION',\n0x004A: 'PREFERRED',\n0x004B: 'ADD.OVERLAY',\n0x004C: 'GRIDLINES',\n0x004D: 'SET.PREFERRED',\n0x004E: 'AXES',\n0x004F: 'LEGEND',\n0x0050: 'ATTACH.TEXT',\n0x0051: 'ADD.ARROW',\n0x0052: 'SELECT.CHART',\n0x0053: 'SELECT.PLOT.AREA',\n0x0054: 'PATTERNS',\n0x0055: 'MAIN.CHART',\n0x0056: 'OVERLAY',\n0x0057: 'SCALE',\n0x0058: 'FORMAT.LEGEND',\n0x0059: 'FORMAT.TEXT',\n0x005A: 'EDIT.REPEAT',\n0x005B: 'PARSE',\n0x005C: 'JUSTIFY',\n0x005D: 'HIDE',\n0x005E: 'UNHIDE',\n0x005F: 'WORKSPACE',\n0x0060: 'FORMULA',\n0x0061: 'FORMULA.FILL',\n0x0062: 'FORMULA.ARRAY',\n0x0063: 'DATA.FIND.NEXT',\n0x0064: 'DATA.FIND.PREV',\n0x0065: 'FORMULA.FIND.NEXT',\n0x0066: 'FORMULA.FIND.PREV',\n0x0067: 'ACTIVATE',\n0x0068: 'ACTIVATE.NEXT',\n0x0069: 'ACTIVATE.PREV',\n0x006A: 'UNLOCKED.NEXT',\n0x006B: 'UNLOCKED.PREV',\n0x006C: 'COPY.PICTURE',\n0x006D: 'SELECT',\n0x006E: 'DELETE.NAME',\n0x006F: 'DELETE.FORMAT',\n0x0070: 'VLINE',\n0x0071: 'HLINE',\n0x0072: 'VPAGE',\n0x0073: 'HPAGE',\n0x0074: 'VSCROLL',\n0x0075: 'HSCROLL',\n0x0076: 'ALERT',\n0x0077: 'NEW',\n0x0078: 'CANCEL.COPY',\n0x0079: 'SHOW.CLIPBOARD',\n0x007A: 'MESSAGE',\n0x007C: 'PASTE.LINK',\n0x007D: 'APP.ACTIVATE',\n0x007E: 'DELETE.ARROW',\n0x007F: 'ROW.HEIGHT',\n0x0080: 'FORMAT.MOVE',\n0x0081: 'FORMAT.SIZE',\n0x0082: 'FORMULA.REPLACE',\n0x0083: 'SEND.KEYS',\n0x0084: 'SELECT.SPECIAL',\n0x0085: 'APPLY.NAMES',\n0x0086: 'REPLACE.FONT',\n0x0087: 'FREEZE.PANES',\n0x0088: 'SHOW.INFO',\n0x0089: 'SPLIT',\n0x008A: 'ON.WINDOW',\n0x008B: 'ON.DATA',\n0x008C: 'DISABLE.INPUT',\n0x008E: 'OUTLINE',\n0x008F: 'LIST.NAMES',\n0x0090: 'FILE.CLOSE',\n0x0091: 'SAVE.WORKBOOK',\n0x0092: 'DATA.FORM',\n0x0093: 'COPY.CHART',\n0x0094: 'ON.TIME',\n0x0095: 'WAIT',\n0x0096: 'FORMAT.FONT',\n0x0097: 'FILL.UP',\n0x0098: 'FILL.LEFT',\n0x0099: 'DELETE.OVERLAY',\n0x009B: 'SHORT.MENUS',\n0x009F: 'SET.UPDATE.STATUS',\n0x00A1: 'COLOR.PALETTE',\n0x00A2: 'DELETE.STYLE',\n0x00A3: 'WINDOW.RESTORE',\n0x00A4: 'WINDOW.MAXIMIZE',\n0x00A6: 'CHANGE.LINK',\n0x00A7: 'CALCULATE.DOCUMENT',\n0x00A8: 'ON.KEY',\n0x00A9: 'APP.RESTORE',\n0x00AA: 'APP.MOVE',\n0x00AB: 'APP.SIZE',\n0x00AC: 'APP.MINIMIZE',\n0x00AD: 'APP.MAXIMIZE',\n0x00AE: 'BRING.TO.FRONT',\n0x00AF: 'SEND.TO.BACK',\n0x00B9: 'MAIN.CHART.TYPE',\n0x00BA: 'OVERLAY.CHART.TYPE',\n0x00BB: 'SELECT.END',\n0x00BC: 'OPEN.MAIL',\n0x00BD: 'SEND.MAIL',\n0x00BE: 'STANDARD.FONT',\n0x00BF: 'CONSOLIDATE',\n0x00C0: 'SORT.SPECIAL',\n0x00C1: 'GALLERY.3D.AREA',\n0x00C2: 'GALLERY.3D.COLUMN',\n0x00C3: 'GALLERY.3D.LINE',\n0x00C4: 'GALLERY.3D.PIE',\n0x00C5: 'VIEW.3D',\n0x00C6: 'GOAL.SEEK',\n0x00C7: 'WORKGROUP',\n0x00C8: 'FILL.GROUP',\n0x00C9: 'UPDATE.LINK',\n0x00CA: 'PROMOTE',\n0x00CB: 'DEMOTE',\n0x00CC: 'SHOW.DETAIL',\n0x00CE: 'UNGROUP',\n0x00CF: 'OBJECT.PROPERTIES',\n0x00D0: 'SAVE.NEW.OBJECT',\n0x00D1: 'SHARE',\n0x00D2: 'SHARE.NAME',\n0x00D3: 'DUPLICATE',\n0x00D4: 'APPLY.STYLE',\n0x00D5: 'ASSIGN.TO.OBJECT',\n0x00D6: 'OBJECT.PROTECTION',\n0x00D7: 'HIDE.OBJECT',\n0x00D8: 'SET.EXTRACT',\n0x00D9: 'CREATE.PUBLISHER',\n0x00DA: 'SUBSCRIBE.TO',\n0x00DB: 'ATTRIBUTES',\n0x00DC: 'SHOW.TOOLBAR',\n0x00DE: 'PRINT.PREVIEW',\n0x00DF: 'EDIT.COLOR',\n0x00E0: 'SHOW.LEVELS',\n0x00E1: 'FORMAT.MAIN',\n0x00E2: 'FORMAT.OVERLAY',\n0x00E3: 'ON.RECALC',\n0x00E4: 'EDIT.SERIES',\n0x00E5: 'DEFINE.STYLE',\n0x00F0: 'LINE.PRINT',\n0x00F3: 'ENTER.DATA',\n0x00F9: 'GALLERY.RADAR',\n0x00FA: 'MERGE.STYLES',\n0x00FB: 'EDITION.OPTIONS',\n0x00FC: 'PASTE.PICTURE',\n0x00FD: 'PASTE.PICTURE.LINK',\n0x00FE: 'SPELLING',\n0x0100: 'ZOOM',\n0x0103: 'INSERT.OBJECT',\n0x0104: 'WINDOW.MINIMIZE',\n0x0109: 'SOUND.NOTE',\n0x010A: 'SOUND.PLAY',\n0x010B: 'FORMAT.SHAPE',\n0x010C: 'EXTEND.POLYGON',\n0x010D: 'FORMAT.AUTO',\n0x0110: 'GALLERY.3D.BAR',\n0x0111: 'GALLERY.3D.SURFACE',\n0x0112: 'FILL.AUTO',\n0x0114: 'CUSTOMIZE.TOOLBAR',\n0x0115: 'ADD.TOOL',\n0x0116: 'EDIT.OBJECT',\n0x0117: 'ON.DOUBLECLICK',\n0x0118: 'ON.ENTRY',\n0x0119: 'WORKBOOK.ADD',\n0x011A: 'WORKBOOK.MOVE',\n0x011B: 'WORKBOOK.COPY',\n0x011C: 'WORKBOOK.OPTIONS',\n0x011D: 'SAVE.WORKSPACE',\n0x0120: 'CHART.WIZARD',\n0x0121: 'DELETE.TOOL',\n0x0122: 'MOVE.TOOL',\n0x0123: 'WORKBOOK.SELECT',\n0x0124: 'WORKBOOK.ACTIVATE',\n0x0125: 'ASSIGN.TO.TOOL',\n0x0127: 'COPY.TOOL',\n0x0128: 'RESET.TOOL',\n0x0129: 'CONSTRAIN.NUMERIC',\n0x012A: 'PASTE.TOOL',\n0x012E: 'WORKBOOK.NEW',\n0x0131: 'SCENARIO.CELLS',\n0x0132: 'SCENARIO.DELETE',\n0x0133: 'SCENARIO.ADD',\n0x0134: 'SCENARIO.EDIT',\n0x0135: 'SCENARIO.SHOW',\n0x0136: 'SCENARIO.SHOW.NEXT',\n0x0137: 'SCENARIO.SUMMARY',\n0x0138: 'PIVOT.TABLE.WIZARD',\n0x0139: 'PIVOT.FIELD.PROPERTIES',\n0x013A: 'PIVOT.FIELD',\n0x013B: 'PIVOT.ITEM',\n0x013C: 'PIVOT.ADD.FIELDS',\n0x013E: 'OPTIONS.CALCULATION',\n0x013F: 'OPTIONS.EDIT',\n0x0140: 'OPTIONS.VIEW',\n0x0141: 'ADDIN.MANAGER',\n0x0142: 'MENU.EDITOR',\n0x0143: 'ATTACH.TOOLBARS',\n0x0144: 'VBAActivate',\n0x0145: 'OPTIONS.CHART',\n0x0148: 'VBA.INSERT.FILE',\n0x014A: 'VBA.PROCEDURE.DEFINITION',\n0x0150: 'ROUTING.SLIP',\n0x0152: 'ROUTE.DOCUMENT',\n0x0153: 'MAIL.LOGON',\n0x0156: 'INSERT.PICTURE',\n0x0157: 'EDIT.TOOL',\n0x0158: 'GALLERY.DOUGHNUT',\n0x015E: 'CHART.TREND',\n0x0160: 'PIVOT.ITEM.PROPERTIES',\n0x0162: 'WORKBOOK.INSERT',\n0x0163: 'OPTIONS.TRANSITION',\n0x0164: 'OPTIONS.GENERAL',\n0x0172: 'FILTER.ADVANCED',\n0x0175: 'MAIL.ADD.MAILER',\n0x0176: 'MAIL.DELETE.MAILER',\n0x0177: 'MAIL.REPLY',\n0x0178: 'MAIL.REPLY.ALL',\n0x0179: 'MAIL.FORWARD',\n0x017A: 'MAIL.NEXT.LETTER',\n0x017B: 'DATA.LABEL',\n0x017C: 'INSERT.TITLE',\n0x017D: 'FONT.PROPERTIES',\n0x017E: 'MACRO.OPTIONS',\n0x017F: 'WORKBOOK.HIDE',\n0x0180: 'WORKBOOK.UNHIDE',\n0x0181: 'WORKBOOK.DELETE',\n0x0182: 'WORKBOOK.NAME',\n0x0184: 'GALLERY.CUSTOM',\n0x0186: 'ADD.CHART.AUTOFORMAT',\n0x0187: 'DELETE.CHART.AUTOFORMAT',\n0x0188: 'CHART.ADD.DATA',\n0x0189: 'AUTO.OUTLINE',\n0x018A: 'TAB.ORDER',\n0x018B: 'SHOW.DIALOG',\n0x018C: 'SELECT.ALL',\n0x018D: 'UNGROUP.SHEETS',\n0x018E: 'SUBTOTAL.CREATE',\n0x018F: 'SUBTOTAL.REMOVE',\n0x0190: 'RENAME.OBJECT',\n0x019C: 'WORKBOOK.SCROLL',\n0x019D: 'WORKBOOK.NEXT',\n0x019E: 'WORKBOOK.PREV',\n0x019F: 'WORKBOOK.TAB.SPLIT',\n0x01A0: 'FULL.SCREEN',\n0x01A1: 'WORKBOOK.PROTECT',\n0x01A4: 'SCROLLBAR.PROPERTIES',\n0x01A5: 'PIVOT.SHOW.PAGES',\n0x01A6: 'TEXT.TO.COLUMNS',\n0x01A7: 'FORMAT.CHARTTYPE',\n0x01A8: 'LINK.FORMAT',\n0x01A9: 'TRACER.DISPLAY',\n0x01AE: 'TRACER.NAVIGATE',\n0x01AF: 'TRACER.CLEAR',\n0x01B0: 'TRACER.ERROR',\n0x01B1: 'PIVOT.FIELD.GROUP',\n0x01B2: 'PIVOT.FIELD.UNGROUP',\n0x01B3: 'CHECKBOX.PROPERTIES',\n0x01B4: 'LABEL.PROPERTIES',\n0x01B5: 'LISTBOX.PROPERTIES',\n0x01B6: 'EDITBOX.PROPERTIES',\n0x01B7: 'PIVOT.REFRESH',\n0x01B8: 'LINK.COMBO',\n0x01B9: 'OPEN.TEXT',\n0x01BA: 'HIDE.DIALOG',\n0x01BB: 'SET.DIALOG.FOCUS',\n0x01BC: 'ENABLE.OBJECT',\n0x01BD: 'PUSHBUTTON.PROPERTIES',\n0x01BE: 'SET.DIALOG.DEFAULT',\n0x01BF: 'FILTER',\n0x01C0: 'FILTER.SHOW.ALL',\n0x01C1: 'CLEAR.OUTLINE',\n0x01C2: 'FUNCTION.WIZARD',\n0x01C3: 'ADD.LIST.ITEM',\n0x01C4: 'SET.LIST.ITEM',\n0x01C5: 'REMOVE.LIST.ITEM',\n0x01C6: 'SELECT.LIST.ITEM',\n0x01C7: 'SET.CONTROL.VALUE',\n0x01C8: 'SAVE.COPY.AS',\n0x01CA: 'OPTIONS.LISTS.ADD',\n0x01CB: 'OPTIONS.LISTS.DELETE',\n0x01CC: 'SERIES.AXES',\n0x01CD: 'SERIES.X',\n0x01CE: 'SERIES.Y',\n0x01CF: 'ERRORBAR.X',\n0x01D0: 'ERRORBAR.Y',\n0x01D1: 'FORMAT.CHART',\n0x01D2: 'SERIES.ORDER',\n0x01D3: 'MAIL.LOGOFF',\n0x01D4: 'CLEAR.ROUTING.SLIP',\n0x01D5: 'APP.ACTIVATE.MICROSOFT',\n0x01D6: 'MAIL.EDIT.MAILER',\n0x01D7: 'ON.SHEET',\n0x01D8: 'STANDARD.WIDTH',\n0x01D9: 'SCENARIO.MERGE',\n0x01DA: 'SUMMARY.INFO',\n0x01DB: 'FIND.FILE',\n0x01DC: 'ACTIVE.CELL.FONT',\n0x01DD: 'ENABLE.TIPWIZARD',\n0x01DE: 'VBA.MAKE.ADDIN',\n0x01E0: 'INSERTDATATABLE',\n0x01E1: 'WORKGROUP.OPTIONS',\n0x01E2: 'MAIL.SEND.MAILER',\n0x01E5: 'AUTOCORRECT',\n0x01E9: 'POST.DOCUMENT',\n0x01EB: 'PICKLIST',\n0x01ED: 'VIEW.SHOW',\n0x01EE: 'VIEW.DEFINE',\n0x01EF: 'VIEW.DELETE',\n0x01FD: 'SHEET.BACKGROUND',\n0x01FE: 'INSERT.MAP.OBJECT',\n0x01FF: 'OPTIONS.MENONO',\n0x0205: 'MSOCHECKS',\n0x0206: 'NORMAL',\n0x0207: 'LAYOUT',\n0x0208: 'RM.PRINT.AREA',\n0x0209: 'CLEAR.PRINT.AREA',\n0x020A: 'ADD.PRINT.AREA',\n0x020B: 'MOVE.BRK',\n0x0221: 'HIDECURR.NOTE',\n0x0222: 'HIDEALL.NOTES',\n0x0223: 'DELETE.NOTE',\n0x0224: 'TRAVERSE.NOTES',\n0x0225: 'ACTIVATE.NOTES',\n0x026C: 'PROTECT.REVISIONS',\n0x026D: 'UNPROTECT.REVISIONS',\n0x0287: 'OPTIONS.ME',\n0x028D: 'WEB.PUBLISH',\n0x029B: 'NEWWEBQUERY',\n0x02A1: 'PIVOT.TABLE.CHART',\n0x02F1: 'OPTIONS.SAVE',\n0x02F3: 'OPTIONS.SPELL',\n0x0328: 'HIDEALL.INKANNOTS'\n};\n\n/* [MS-XLS] 2.5.198.17 */\n/* [MS-XLSB] 2.5.97.10 */\nvar Ftab = {\n0x0000: 'COUNT',\n0x0001: 'IF',\n0x0002: 'ISNA',\n0x0003: 'ISERROR',\n0x0004: 'SUM',\n0x0005: 'AVERAGE',\n0x0006: 'MIN',\n0x0007: 'MAX',\n0x0008: 'ROW',\n0x0009: 'COLUMN',\n0x000A: 'NA',\n0x000B: 'NPV',\n0x000C: 'STDEV',\n0x000D: 'DOLLAR',\n0x000E: 'FIXED',\n0x000F: 'SIN',\n0x0010: 'COS',\n0x0011: 'TAN',\n0x0012: 'ATAN',\n0x0013: 'PI',\n0x0014: 'SQRT',\n0x0015: 'EXP',\n0x0016: 'LN',\n0x0017: 'LOG10',\n0x0018: 'ABS',\n0x0019: 'INT',\n0x001A: 'SIGN',\n0x001B: 'ROUND',\n0x001C: 'LOOKUP',\n0x001D: 'INDEX',\n0x001E: 'REPT',\n0x001F: 'MID',\n0x0020: 'LEN',\n0x0021: 'VALUE',\n0x0022: 'TRUE',\n0x0023: 'FALSE',\n0x0024: 'AND',\n0x0025: 'OR',\n0x0026: 'NOT',\n0x0027: 'MOD',\n0x0028: 'DCOUNT',\n0x0029: 'DSUM',\n0x002A: 'DAVERAGE',\n0x002B: 'DMIN',\n0x002C: 'DMAX',\n0x002D: 'DSTDEV',\n0x002E: 'VAR',\n0x002F: 'DVAR',\n0x0030: 'TEXT',\n0x0031: 'LINEST',\n0x0032: 'TREND',\n0x0033: 'LOGEST',\n0x0034: 'GROWTH',\n0x0035: 'GOTO',\n0x0036: 'HALT',\n0x0037: 'RETURN',\n0x0038: 'PV',\n0x0039: 'FV',\n0x003A: 'NPER',\n0x003B: 'PMT',\n0x003C: 'RATE',\n0x003D: 'MIRR',\n0x003E: 'IRR',\n0x003F: 'RAND',\n0x0040: 'MATCH',\n0x0041: 'DATE',\n0x0042: 'TIME',\n0x0043: 'DAY',\n0x0044: 'MONTH',\n0x0045: 'YEAR',\n0x0046: 'WEEKDAY',\n0x0047: 'HOUR',\n0x0048: 'MINUTE',\n0x0049: 'SECOND',\n0x004A: 'NOW',\n0x004B: 'AREAS',\n0x004C: 'ROWS',\n0x004D: 'COLUMNS',\n0x004E: 'OFFSET',\n0x004F: 'ABSREF',\n0x0050: 'RELREF',\n0x0051: 'ARGUMENT',\n0x0052: 'SEARCH',\n0x0053: 'TRANSPOSE',\n0x0054: 'ERROR',\n0x0055: 'STEP',\n0x0056: 'TYPE',\n0x0057: 'ECHO',\n0x0058: 'SET.NAME',\n0x0059: 'CALLER',\n0x005A: 'DEREF',\n0x005B: 'WINDOWS',\n0x005C: 'SERIES',\n0x005D: 'DOCUMENTS',\n0x005E: 'ACTIVE.CELL',\n0x005F: 'SELECTION',\n0x0060: 'RESULT',\n0x0061: 'ATAN2',\n0x0062: 'ASIN',\n0x0063: 'ACOS',\n0x0064: 'CHOOSE',\n0x0065: 'HLOOKUP',\n0x0066: 'VLOOKUP',\n0x0067: 'LINKS',\n0x0068: 'INPUT',\n0x0069: 'ISREF',\n0x006A: 'GET.FORMULA',\n0x006B: 'GET.NAME',\n0x006C: 'SET.VALUE',\n0x006D: 'LOG',\n0x006E: 'EXEC',\n0x006F: 'CHAR',\n0x0070: 'LOWER',\n0x0071: 'UPPER',\n0x0072: 'PROPER',\n0x0073: 'LEFT',\n0x0074: 'RIGHT',\n0x0075: 'EXACT',\n0x0076: 'TRIM',\n0x0077: 'REPLACE',\n0x0078: 'SUBSTITUTE',\n0x0079: 'CODE',\n0x007A: 'NAMES',\n0x007B: 'DIRECTORY',\n0x007C: 'FIND',\n0x007D: 'CELL',\n0x007E: 'ISERR',\n0x007F: 'ISTEXT',\n0x0080: 'ISNUMBER',\n0x0081: 'ISBLANK',\n0x0082: 'T',\n0x0083: 'N',\n0x0084: 'FOPEN',\n0x0085: 'FCLOSE',\n0x0086: 'FSIZE',\n0x0087: 'FREADLN',\n0x0088: 'FREAD',\n0x0089: 'FWRITELN',\n0x008A: 'FWRITE',\n0x008B: 'FPOS',\n0x008C: 'DATEVALUE',\n0x008D: 'TIMEVALUE',\n0x008E: 'SLN',\n0x008F: 'SYD',\n0x0090: 'DDB',\n0x0091: 'GET.DEF',\n0x0092: 'REFTEXT',\n0x0093: 'TEXTREF',\n0x0094: 'INDIRECT',\n0x0095: 'REGISTER',\n0x0096: 'CALL',\n0x0097: 'ADD.BAR',\n0x0098: 'ADD.MENU',\n0x0099: 'ADD.COMMAND',\n0x009A: 'ENABLE.COMMAND',\n0x009B: 'CHECK.COMMAND',\n0x009C: 'RENAME.COMMAND',\n0x009D: 'SHOW.BAR',\n0x009E: 'DELETE.MENU',\n0x009F: 'DELETE.COMMAND',\n0x00A0: 'GET.CHART.ITEM',\n0x00A1: 'DIALOG.BOX',\n0x00A2: 'CLEAN',\n0x00A3: 'MDETERM',\n0x00A4: 'MINVERSE',\n0x00A5: 'MMULT',\n0x00A6: 'FILES',\n0x00A7: 'IPMT',\n0x00A8: 'PPMT',\n0x00A9: 'COUNTA',\n0x00AA: 'CANCEL.KEY',\n0x00AB: 'FOR',\n0x00AC: 'WHILE',\n0x00AD: 'BREAK',\n0x00AE: 'NEXT',\n0x00AF: 'INITIATE',\n0x00B0: 'REQUEST',\n0x00B1: 'POKE',\n0x00B2: 'EXECUTE',\n0x00B3: 'TERMINATE',\n0x00B4: 'RESTART',\n0x00B5: 'HELP',\n0x00B6: 'GET.BAR',\n0x00B7: 'PRODUCT',\n0x00B8: 'FACT',\n0x00B9: 'GET.CELL',\n0x00BA: 'GET.WORKSPACE',\n0x00BB: 'GET.WINDOW',\n0x00BC: 'GET.DOCUMENT',\n0x00BD: 'DPRODUCT',\n0x00BE: 'ISNONTEXT',\n0x00BF: 'GET.NOTE',\n0x00C0: 'NOTE',\n0x00C1: 'STDEVP',\n0x00C2: 'VARP',\n0x00C3: 'DSTDEVP',\n0x00C4: 'DVARP',\n0x00C5: 'TRUNC',\n0x00C6: 'ISLOGICAL',\n0x00C7: 'DCOUNTA',\n0x00C8: 'DELETE.BAR',\n0x00C9: 'UNREGISTER',\n0x00CC: 'USDOLLAR',\n0x00CD: 'FINDB',\n0x00CE: 'SEARCHB',\n0x00CF: 'REPLACEB',\n0x00D0: 'LEFTB',\n0x00D1: 'RIGHTB',\n0x00D2: 'MIDB',\n0x00D3: 'LENB',\n0x00D4: 'ROUNDUP',\n0x00D5: 'ROUNDDOWN',\n0x00D6: 'ASC',\n0x00D7: 'DBCS',\n0x00D8: 'RANK',\n0x00DB: 'ADDRESS',\n0x00DC: 'DAYS360',\n0x00DD: 'TODAY',\n0x00DE: 'VDB',\n0x00DF: 'ELSE',\n0x00E0: 'ELSE.IF',\n0x00E1: 'END.IF',\n0x00E2: 'FOR.CELL',\n0x00E3: 'MEDIAN',\n0x00E4: 'SUMPRODUCT',\n0x00E5: 'SINH',\n0x00E6: 'COSH',\n0x00E7: 'TANH',\n0x00E8: 'ASINH',\n0x00E9: 'ACOSH',\n0x00EA: 'ATANH',\n0x00EB: 'DGET',\n0x00EC: 'CREATE.OBJECT',\n0x00ED: 'VOLATILE',\n0x00EE: 'LAST.ERROR',\n0x00EF: 'CUSTOM.UNDO',\n0x00F0: 'CUSTOM.REPEAT',\n0x00F1: 'FORMULA.CONVERT',\n0x00F2: 'GET.LINK.INFO',\n0x00F3: 'TEXT.BOX',\n0x00F4: 'INFO',\n0x00F5: 'GROUP',\n0x00F6: 'GET.OBJECT',\n0x00F7: 'DB',\n0x00F8: 'PAUSE',\n0x00FB: 'RESUME',\n0x00FC: 'FREQUENCY',\n0x00FD: 'ADD.TOOLBAR',\n0x00FE: 'DELETE.TOOLBAR',\n0x00FF: 'User',\n0x0100: 'RESET.TOOLBAR',\n0x0101: 'EVALUATE',\n0x0102: 'GET.TOOLBAR',\n0x0103: 'GET.TOOL',\n0x0104: 'SPELLING.CHECK',\n0x0105: 'ERROR.TYPE',\n0x0106: 'APP.TITLE',\n0x0107: 'WINDOW.TITLE',\n0x0108: 'SAVE.TOOLBAR',\n0x0109: 'ENABLE.TOOL',\n0x010A: 'PRESS.TOOL',\n0x010B: 'REGISTER.ID',\n0x010C: 'GET.WORKBOOK',\n0x010D: 'AVEDEV',\n0x010E: 'BETADIST',\n0x010F: 'GAMMALN',\n0x0110: 'BETAINV',\n0x0111: 'BINOMDIST',\n0x0112: 'CHIDIST',\n0x0113: 'CHIINV',\n0x0114: 'COMBIN',\n0x0115: 'CONFIDENCE',\n0x0116: 'CRITBINOM',\n0x0117: 'EVEN',\n0x0118: 'EXPONDIST',\n0x0119: 'FDIST',\n0x011A: 'FINV',\n0x011B: 'FISHER',\n0x011C: 'FISHERINV',\n0x011D: 'FLOOR',\n0x011E: 'GAMMADIST',\n0x011F: 'GAMMAINV',\n0x0120: 'CEILING',\n0x0121: 'HYPGEOMDIST',\n0x0122: 'LOGNORMDIST',\n0x0123: 'LOGINV',\n0x0124: 'NEGBINOMDIST',\n0x0125: 'NORMDIST',\n0x0126: 'NORMSDIST',\n0x0127: 'NORMINV',\n0x0128: 'NORMSINV',\n0x0129: 'STANDARDIZE',\n0x012A: 'ODD',\n0x012B: 'PERMUT',\n0x012C: 'POISSON',\n0x012D: 'TDIST',\n0x012E: 'WEIBULL',\n0x012F: 'SUMXMY2',\n0x0130: 'SUMX2MY2',\n0x0131: 'SUMX2PY2',\n0x0132: 'CHITEST',\n0x0133: 'CORREL',\n0x0134: 'COVAR',\n0x0135: 'FORECAST',\n0x0136: 'FTEST',\n0x0137: 'INTERCEPT',\n0x0138: 'PEARSON',\n0x0139: 'RSQ',\n0x013A: 'STEYX',\n0x013B: 'SLOPE',\n0x013C: 'TTEST',\n0x013D: 'PROB',\n0x013E: 'DEVSQ',\n0x013F: 'GEOMEAN',\n0x0140: 'HARMEAN',\n0x0141: 'SUMSQ',\n0x0142: 'KURT',\n0x0143: 'SKEW',\n0x0144: 'ZTEST',\n0x0145: 'LARGE',\n0x0146: 'SMALL',\n0x0147: 'QUARTILE',\n0x0148: 'PERCENTILE',\n0x0149: 'PERCENTRANK',\n0x014A: 'MODE',\n0x014B: 'TRIMMEAN',\n0x014C: 'TINV',\n0x014E: 'MOVIE.COMMAND',\n0x014F: 'GET.MOVIE',\n0x0150: 'CONCATENATE',\n0x0151: 'POWER',\n0x0152: 'PIVOT.ADD.DATA',\n0x0153: 'GET.PIVOT.TABLE',\n0x0154: 'GET.PIVOT.FIELD',\n0x0155: 'GET.PIVOT.ITEM',\n0x0156: 'RADIANS',\n0x0157: 'DEGREES',\n0x0158: 'SUBTOTAL',\n0x0159: 'SUMIF',\n0x015A: 'COUNTIF',\n0x015B: 'COUNTBLANK',\n0x015C: 'SCENARIO.GET',\n0x015D: 'OPTIONS.LISTS.GET',\n0x015E: 'ISPMT',\n0x015F: 'DATEDIF',\n0x0160: 'DATESTRING',\n0x0161: 'NUMBERSTRING',\n0x0162: 'ROMAN',\n0x0163: 'OPEN.DIALOG',\n0x0164: 'SAVE.DIALOG',\n0x0165: 'VIEW.GET',\n0x0166: 'GETPIVOTDATA',\n0x0167: 'HYPERLINK',\n0x0168: 'PHONETIC',\n0x0169: 'AVERAGEA',\n0x016A: 'MAXA',\n0x016B: 'MINA',\n0x016C: 'STDEVPA',\n0x016D: 'VARPA',\n0x016E: 'STDEVA',\n0x016F: 'VARA',\n0x0170: 'BAHTTEXT',\n0x0171: 'THAIDAYOFWEEK',\n0x0172: 'THAIDIGIT',\n0x0173: 'THAIMONTHOFYEAR',\n0x0174: 'THAINUMSOUND',\n0x0175: 'THAINUMSTRING',\n0x0176: 'THAISTRINGLENGTH',\n0x0177: 'ISTHAIDIGIT',\n0x0178: 'ROUNDBAHTDOWN',\n0x0179: 'ROUNDBAHTUP',\n0x017A: 'THAIYEAR',\n0x017B: 'RTD',\n\n0x017C: 'CUBEVALUE',\n0x017D: 'CUBEMEMBER',\n0x017E: 'CUBEMEMBERPROPERTY',\n0x017F: 'CUBERANKEDMEMBER',\n0x0180: 'HEX2BIN',\n0x0181: 'HEX2DEC',\n0x0182: 'HEX2OCT',\n0x0183: 'DEC2BIN',\n0x0184: 'DEC2HEX',\n0x0185: 'DEC2OCT',\n0x0186: 'OCT2BIN',\n0x0187: 'OCT2HEX',\n0x0188: 'OCT2DEC',\n0x0189: 'BIN2DEC',\n0x018A: 'BIN2OCT',\n0x018B: 'BIN2HEX',\n0x018C: 'IMSUB',\n0x018D: 'IMDIV',\n0x018E: 'IMPOWER',\n0x018F: 'IMABS',\n0x0190: 'IMSQRT',\n0x0191: 'IMLN',\n0x0192: 'IMLOG2',\n0x0193: 'IMLOG10',\n0x0194: 'IMSIN',\n0x0195: 'IMCOS',\n0x0196: 'IMEXP',\n0x0197: 'IMARGUMENT',\n0x0198: 'IMCONJUGATE',\n0x0199: 'IMAGINARY',\n0x019A: 'IMREAL',\n0x019B: 'COMPLEX',\n0x019C: 'IMSUM',\n0x019D: 'IMPRODUCT',\n0x019E: 'SERIESSUM',\n0x019F: 'FACTDOUBLE',\n0x01A0: 'SQRTPI',\n0x01A1: 'QUOTIENT',\n0x01A2: 'DELTA',\n0x01A3: 'GESTEP',\n0x01A4: 'ISEVEN',\n0x01A5: 'ISODD',\n0x01A6: 'MROUND',\n0x01A7: 'ERF',\n0x01A8: 'ERFC',\n0x01A9: 'BESSELJ',\n0x01AA: 'BESSELK',\n0x01AB: 'BESSELY',\n0x01AC: 'BESSELI',\n0x01AD: 'XIRR',\n0x01AE: 'XNPV',\n0x01AF: 'PRICEMAT',\n0x01B0: 'YIELDMAT',\n0x01B1: 'INTRATE',\n0x01B2: 'RECEIVED',\n0x01B3: 'DISC',\n0x01B4: 'PRICEDISC',\n0x01B5: 'YIELDDISC',\n0x01B6: 'TBILLEQ',\n0x01B7: 'TBILLPRICE',\n0x01B8: 'TBILLYIELD',\n0x01B9: 'PRICE',\n0x01BA: 'YIELD',\n0x01BB: 'DOLLARDE',\n0x01BC: 'DOLLARFR',\n0x01BD: 'NOMINAL',\n0x01BE: 'EFFECT',\n0x01BF: 'CUMPRINC',\n0x01C0: 'CUMIPMT',\n0x01C1: 'EDATE',\n0x01C2: 'EOMONTH',\n0x01C3: 'YEARFRAC',\n0x01C4: 'COUPDAYBS',\n0x01C5: 'COUPDAYS',\n0x01C6: 'COUPDAYSNC',\n0x01C7: 'COUPNCD',\n0x01C8: 'COUPNUM',\n0x01C9: 'COUPPCD',\n0x01CA: 'DURATION',\n0x01CB: 'MDURATION',\n0x01CC: 'ODDLPRICE',\n0x01CD: 'ODDLYIELD',\n0x01CE: 'ODDFPRICE',\n0x01CF: 'ODDFYIELD',\n0x01D0: 'RANDBETWEEN',\n0x01D1: 'WEEKNUM',\n0x01D2: 'AMORDEGRC',\n0x01D3: 'AMORLINC',\n0x01D4: 'CONVERT',\n0x02D4: 'SHEETJS',\n0x01D5: 'ACCRINT',\n0x01D6: 'ACCRINTM',\n0x01D7: 'WORKDAY',\n0x01D8: 'NETWORKDAYS',\n0x01D9: 'GCD',\n0x01DA: 'MULTINOMIAL',\n0x01DB: 'LCM',\n0x01DC: 'FVSCHEDULE',\n0x01DD: 'CUBEKPIMEMBER',\n0x01DE: 'CUBESET',\n0x01DF: 'CUBESETCOUNT',\n0x01E0: 'IFERROR',\n0x01E1: 'COUNTIFS',\n0x01E2: 'SUMIFS',\n0x01E3: 'AVERAGEIF',\n0x01E4: 'AVERAGEIFS'\n};\nvar FtabArgc = {\n0x0002: 1, /* ISNA */\n0x0003: 1, /* ISERROR */\n0x000A: 0, /* NA */\n0x000F: 1, /* SIN */\n0x0010: 1, /* COS */\n0x0011: 1, /* TAN */\n0x0012: 1, /* ATAN */\n0x0013: 0, /* PI */\n0x0014: 1, /* SQRT */\n0x0015: 1, /* EXP */\n0x0016: 1, /* LN */\n0x0017: 1, /* LOG10 */\n0x0018: 1, /* ABS */\n0x0019: 1, /* INT */\n0x001A: 1, /* SIGN */\n0x001B: 2, /* ROUND */\n0x001E: 2, /* REPT */\n0x001F: 3, /* MID */\n0x0020: 1, /* LEN */\n0x0021: 1, /* VALUE */\n0x0022: 0, /* TRUE */\n0x0023: 0, /* FALSE */\n0x0026: 1, /* NOT */\n0x0027: 2, /* MOD */\n0x0028: 3, /* DCOUNT */\n0x0029: 3, /* DSUM */\n0x002A: 3, /* DAVERAGE */\n0x002B: 3, /* DMIN */\n0x002C: 3, /* DMAX */\n0x002D: 3, /* DSTDEV */\n0x002F: 3, /* DVAR */\n0x0030: 2, /* TEXT */\n0x0035: 1, /* GOTO */\n0x003D: 3, /* MIRR */\n0x003F: 0, /* RAND */\n0x0041: 3, /* DATE */\n0x0042: 3, /* TIME */\n0x0043: 1, /* DAY */\n0x0044: 1, /* MONTH */\n0x0045: 1, /* YEAR */\n0x0046: 1, /* WEEKDAY */\n0x0047: 1, /* HOUR */\n0x0048: 1, /* MINUTE */\n0x0049: 1, /* SECOND */\n0x004A: 0, /* NOW */\n0x004B: 1, /* AREAS */\n0x004C: 1, /* ROWS */\n0x004D: 1, /* COLUMNS */\n0x004F: 2, /* ABSREF */\n0x0050: 2, /* RELREF */\n0x0053: 1, /* TRANSPOSE */\n0x0055: 0, /* STEP */\n0x0056: 1, /* TYPE */\n0x0059: 0, /* CALLER */\n0x005A: 1, /* DEREF */\n0x005E: 0, /* ACTIVE.CELL */\n0x005F: 0, /* SELECTION */\n0x0061: 2, /* ATAN2 */\n0x0062: 1, /* ASIN */\n0x0063: 1, /* ACOS */\n0x0065: 3, /* HLOOKUP */\n0x0066: 3, /* VLOOKUP */\n0x0069: 1, /* ISREF */\n0x006A: 1, /* GET.FORMULA */\n0x006C: 2, /* SET.VALUE */\n0x006F: 1, /* CHAR */\n0x0070: 1, /* LOWER */\n0x0071: 1, /* UPPER */\n0x0072: 1, /* PROPER */\n0x0075: 2, /* EXACT */\n0x0076: 1, /* TRIM */\n0x0077: 4, /* REPLACE */\n0x0079: 1, /* CODE */\n0x007E: 1, /* ISERR */\n0x007F: 1, /* ISTEXT */\n0x0080: 1, /* ISNUMBER */\n0x0081: 1, /* ISBLANK */\n0x0082: 1, /* T */\n0x0083: 1, /* N */\n0x0085: 1, /* FCLOSE */\n0x0086: 1, /* FSIZE */\n0x0087: 1, /* FREADLN */\n0x0088: 2, /* FREAD */\n0x0089: 2, /* FWRITELN */\n0x008A: 2, /* FWRITE */\n0x008C: 1, /* DATEVALUE */\n0x008D: 1, /* TIMEVALUE */\n0x008E: 3, /* SLN */\n0x008F: 4, /* SYD */\n0x0090: 4, /* DDB */\n0x00A1: 1, /* DIALOG.BOX */\n0x00A2: 1, /* CLEAN */\n0x00A3: 1, /* MDETERM */\n0x00A4: 1, /* MINVERSE */\n0x00A5: 2, /* MMULT */\n0x00AC: 1, /* WHILE */\n0x00AF: 2, /* INITIATE */\n0x00B0: 2, /* REQUEST */\n0x00B1: 3, /* POKE */\n0x00B2: 2, /* EXECUTE */\n0x00B3: 1, /* TERMINATE */\n0x00B8: 1, /* FACT */\n0x00BA: 1, /* GET.WORKSPACE */\n0x00BD: 3, /* DPRODUCT */\n0x00BE: 1, /* ISNONTEXT */\n0x00C3: 3, /* DSTDEVP */\n0x00C4: 3, /* DVARP */\n0x00C5: 1, /* TRUNC */\n0x00C6: 1, /* ISLOGICAL */\n0x00C7: 3, /* DCOUNTA */\n0x00C9: 1, /* UNREGISTER */\n0x00CF: 4, /* REPLACEB */\n0x00D2: 3, /* MIDB */\n0x00D3: 1, /* LENB */\n0x00D4: 2, /* ROUNDUP */\n0x00D5: 2, /* ROUNDDOWN */\n0x00D6: 1, /* ASC */\n0x00D7: 1, /* DBCS */\n0x00E1: 0, /* END.IF */\n0x00E5: 1, /* SINH */\n0x00E6: 1, /* COSH */\n0x00E7: 1, /* TANH */\n0x00E8: 1, /* ASINH */\n0x00E9: 1, /* ACOSH */\n0x00EA: 1, /* ATANH */\n0x00EB: 3, /* DGET */\n0x00F4: 1, /* INFO */\n0x00F7: 4, /* DB */\n0x00FC: 2, /* FREQUENCY */\n0x0101: 1, /* EVALUATE */\n0x0105: 1, /* ERROR.TYPE */\n0x010F: 1, /* GAMMALN */\n0x0111: 4, /* BINOMDIST */\n0x0112: 2, /* CHIDIST */\n0x0113: 2, /* CHIINV */\n0x0114: 2, /* COMBIN */\n0x0115: 3, /* CONFIDENCE */\n0x0116: 3, /* CRITBINOM */\n0x0117: 1, /* EVEN */\n0x0118: 3, /* EXPONDIST */\n0x0119: 3, /* FDIST */\n0x011A: 3, /* FINV */\n0x011B: 1, /* FISHER */\n0x011C: 1, /* FISHERINV */\n0x011D: 2, /* FLOOR */\n0x011E: 4, /* GAMMADIST */\n0x011F: 3, /* GAMMAINV */\n0x0120: 2, /* CEILING */\n0x0121: 4, /* HYPGEOMDIST */\n0x0122: 3, /* LOGNORMDIST */\n0x0123: 3, /* LOGINV */\n0x0124: 3, /* NEGBINOMDIST */\n0x0125: 4, /* NORMDIST */\n0x0126: 1, /* NORMSDIST */\n0x0127: 3, /* NORMINV */\n0x0128: 1, /* NORMSINV */\n0x0129: 3, /* STANDARDIZE */\n0x012A: 1, /* ODD */\n0x012B: 2, /* PERMUT */\n0x012C: 3, /* POISSON */\n0x012D: 3, /* TDIST */\n0x012E: 4, /* WEIBULL */\n0x012F: 2, /* SUMXMY2 */\n0x0130: 2, /* SUMX2MY2 */\n0x0131: 2, /* SUMX2PY2 */\n0x0132: 2, /* CHITEST */\n0x0133: 2, /* CORREL */\n0x0134: 2, /* COVAR */\n0x0135: 3, /* FORECAST */\n0x0136: 2, /* FTEST */\n0x0137: 2, /* INTERCEPT */\n0x0138: 2, /* PEARSON */\n0x0139: 2, /* RSQ */\n0x013A: 2, /* STEYX */\n0x013B: 2, /* SLOPE */\n0x013C: 4, /* TTEST */\n0x0145: 2, /* LARGE */\n0x0146: 2, /* SMALL */\n0x0147: 2, /* QUARTILE */\n0x0148: 2, /* PERCENTILE */\n0x014B: 2, /* TRIMMEAN */\n0x014C: 2, /* TINV */\n0x0151: 2, /* POWER */\n0x0156: 1, /* RADIANS */\n0x0157: 1, /* DEGREES */\n0x015A: 2, /* COUNTIF */\n0x015B: 1, /* COUNTBLANK */\n0x015E: 4, /* ISPMT */\n0x015F: 3, /* DATEDIF */\n0x0160: 1, /* DATESTRING */\n0x0161: 2, /* NUMBERSTRING */\n0x0168: 1, /* PHONETIC */\n0x0170: 1, /* BAHTTEXT */\n0x0171: 1, /* THAIDAYOFWEEK */\n0x0172: 1, /* THAIDIGIT */\n0x0173: 1, /* THAIMONTHOFYEAR */\n0x0174: 1, /* THAINUMSOUND */\n0x0175: 1, /* THAINUMSTRING */\n0x0176: 1, /* THAISTRINGLENGTH */\n0x0177: 1, /* ISTHAIDIGIT */\n0x0178: 1, /* ROUNDBAHTDOWN */\n0x0179: 1, /* ROUNDBAHTUP */\n0x017A: 1, /* THAIYEAR */\n0x017E: 3, /* CUBEMEMBERPROPERTY */\n0x0181: 1, /* HEX2DEC */\n0x0188: 1, /* OCT2DEC */\n0x0189: 1, /* BIN2DEC */\n0x018C: 2, /* IMSUB */\n0x018D: 2, /* IMDIV */\n0x018E: 2, /* IMPOWER */\n0x018F: 1, /* IMABS */\n0x0190: 1, /* IMSQRT */\n0x0191: 1, /* IMLN */\n0x0192: 1, /* IMLOG2 */\n0x0193: 1, /* IMLOG10 */\n0x0194: 1, /* IMSIN */\n0x0195: 1, /* IMCOS */\n0x0196: 1, /* IMEXP */\n0x0197: 1, /* IMARGUMENT */\n0x0198: 1, /* IMCONJUGATE */\n0x0199: 1, /* IMAGINARY */\n0x019A: 1, /* IMREAL */\n0x019E: 4, /* SERIESSUM */\n0x019F: 1, /* FACTDOUBLE */\n0x01A0: 1, /* SQRTPI */\n0x01A1: 2, /* QUOTIENT */\n0x01A4: 1, /* ISEVEN */\n0x01A5: 1, /* ISODD */\n0x01A6: 2, /* MROUND */\n0x01A8: 1, /* ERFC */\n0x01A9: 2, /* BESSELJ */\n0x01AA: 2, /* BESSELK */\n0x01AB: 2, /* BESSELY */\n0x01AC: 2, /* BESSELI */\n0x01AE: 3, /* XNPV */\n0x01B6: 3, /* TBILLEQ */\n0x01B7: 3, /* TBILLPRICE */\n0x01B8: 3, /* TBILLYIELD */\n0x01BB: 2, /* DOLLARDE */\n0x01BC: 2, /* DOLLARFR */\n0x01BD: 2, /* NOMINAL */\n0x01BE: 2, /* EFFECT */\n0x01BF: 6, /* CUMPRINC */\n0x01C0: 6, /* CUMIPMT */\n0x01C1: 2, /* EDATE */\n0x01C2: 2, /* EOMONTH */\n0x01D0: 2, /* RANDBETWEEN */\n0x01D4: 3, /* CONVERT */\n0x01DC: 2, /* FVSCHEDULE */\n0x01DF: 1, /* CUBESETCOUNT */\n0x01E0: 2, /* IFERROR */\n0xFFFF: 0\n};\n/* [MS-XLSX] 2.2.3 Functions */\n/* [MS-XLSB] 2.5.97.10 Ftab */\nvar XLSXFutureFunctions = {\n\t\"_xlfn.ACOT\": \"ACOT\",\n\t\"_xlfn.ACOTH\": \"ACOTH\",\n\t\"_xlfn.AGGREGATE\": \"AGGREGATE\",\n\t\"_xlfn.ARABIC\": \"ARABIC\",\n\t\"_xlfn.AVERAGEIF\": \"AVERAGEIF\",\n\t\"_xlfn.AVERAGEIFS\": \"AVERAGEIFS\",\n\t\"_xlfn.BASE\": \"BASE\",\n\t\"_xlfn.BETA.DIST\": \"BETA.DIST\",\n\t\"_xlfn.BETA.INV\": \"BETA.INV\",\n\t\"_xlfn.BINOM.DIST\": \"BINOM.DIST\",\n\t\"_xlfn.BINOM.DIST.RANGE\": \"BINOM.DIST.RANGE\",\n\t\"_xlfn.BINOM.INV\": \"BINOM.INV\",\n\t\"_xlfn.BITAND\": \"BITAND\",\n\t\"_xlfn.BITLSHIFT\": \"BITLSHIFT\",\n\t\"_xlfn.BITOR\": \"BITOR\",\n\t\"_xlfn.BITRSHIFT\": \"BITRSHIFT\",\n\t\"_xlfn.BITXOR\": \"BITXOR\",\n\t\"_xlfn.CEILING.MATH\": \"CEILING.MATH\",\n\t\"_xlfn.CEILING.PRECISE\": \"CEILING.PRECISE\",\n\t\"_xlfn.CHISQ.DIST\": \"CHISQ.DIST\",\n\t\"_xlfn.CHISQ.DIST.RT\": \"CHISQ.DIST.RT\",\n\t\"_xlfn.CHISQ.INV\": \"CHISQ.INV\",\n\t\"_xlfn.CHISQ.INV.RT\": \"CHISQ.INV.RT\",\n\t\"_xlfn.CHISQ.TEST\": \"CHISQ.TEST\",\n\t\"_xlfn.COMBINA\": \"COMBINA\",\n\t\"_xlfn.CONCAT\": \"CONCAT\",\n\t\"_xlfn.CONFIDENCE.NORM\": \"CONFIDENCE.NORM\",\n\t\"_xlfn.CONFIDENCE.T\": \"CONFIDENCE.T\",\n\t\"_xlfn.COT\": \"COT\",\n\t\"_xlfn.COTH\": \"COTH\",\n\t\"_xlfn.COUNTIFS\": \"COUNTIFS\",\n\t\"_xlfn.COVARIANCE.P\": \"COVARIANCE.P\",\n\t\"_xlfn.COVARIANCE.S\": \"COVARIANCE.S\",\n\t\"_xlfn.CSC\": \"CSC\",\n\t\"_xlfn.CSCH\": \"CSCH\",\n\t\"_xlfn.DAYS\": \"DAYS\",\n\t\"_xlfn.DECIMAL\": \"DECIMAL\",\n\t\"_xlfn.ECMA.CEILING\": \"ECMA.CEILING\",\n\t\"_xlfn.ERF.PRECISE\": \"ERF.PRECISE\",\n\t\"_xlfn.ERFC.PRECISE\": \"ERFC.PRECISE\",\n\t\"_xlfn.EXPON.DIST\": \"EXPON.DIST\",\n\t\"_xlfn.F.DIST\": \"F.DIST\",\n\t\"_xlfn.F.DIST.RT\": \"F.DIST.RT\",\n\t\"_xlfn.F.INV\": \"F.INV\",\n\t\"_xlfn.F.INV.RT\": \"F.INV.RT\",\n\t\"_xlfn.F.TEST\": \"F.TEST\",\n\t\"_xlfn.FILTERXML\": \"FILTERXML\",\n\t\"_xlfn.FLOOR.MATH\": \"FLOOR.MATH\",\n\t\"_xlfn.FLOOR.PRECISE\": \"FLOOR.PRECISE\",\n\t\"_xlfn.FORECAST.ETS\": \"FORECAST.ETS\",\n\t\"_xlfn.FORECAST.ETS.CONFINT\": \"FORECAST.ETS.CONFINT\",\n\t\"_xlfn.FORECAST.ETS.SEASONALITY\": \"FORECAST.ETS.SEASONALITY\",\n\t\"_xlfn.FORECAST.ETS.STAT\": \"FORECAST.ETS.STAT\",\n\t\"_xlfn.FORECAST.LINEAR\": \"FORECAST.LINEAR\",\n\t\"_xlfn.FORMULATEXT\": \"FORMULATEXT\",\n\t\"_xlfn.GAMMA\": \"GAMMA\",\n\t\"_xlfn.GAMMA.DIST\": \"GAMMA.DIST\",\n\t\"_xlfn.GAMMA.INV\": \"GAMMA.INV\",\n\t\"_xlfn.GAMMALN.PRECISE\": \"GAMMALN.PRECISE\",\n\t\"_xlfn.GAUSS\": \"GAUSS\",\n\t\"_xlfn.HYPGEOM.DIST\": \"HYPGEOM.DIST\",\n\t\"_xlfn.IFERROR\": \"IFERROR\",\n\t\"_xlfn.IFNA\": \"IFNA\",\n\t\"_xlfn.IFS\": \"IFS\",\n\t\"_xlfn.IMCOSH\": \"IMCOSH\",\n\t\"_xlfn.IMCOT\": \"IMCOT\",\n\t\"_xlfn.IMCSC\": \"IMCSC\",\n\t\"_xlfn.IMCSCH\": \"IMCSCH\",\n\t\"_xlfn.IMSEC\": \"IMSEC\",\n\t\"_xlfn.IMSECH\": \"IMSECH\",\n\t\"_xlfn.IMSINH\": \"IMSINH\",\n\t\"_xlfn.IMTAN\": \"IMTAN\",\n\t\"_xlfn.ISFORMULA\": \"ISFORMULA\",\n\t\"_xlfn.ISO.CEILING\": \"ISO.CEILING\",\n\t\"_xlfn.ISOWEEKNUM\": \"ISOWEEKNUM\",\n\t\"_xlfn.LOGNORM.DIST\": \"LOGNORM.DIST\",\n\t\"_xlfn.LOGNORM.INV\": \"LOGNORM.INV\",\n\t\"_xlfn.MAXIFS\": \"MAXIFS\",\n\t\"_xlfn.MINIFS\": \"MINIFS\",\n\t\"_xlfn.MODE.MULT\": \"MODE.MULT\",\n\t\"_xlfn.MODE.SNGL\": \"MODE.SNGL\",\n\t\"_xlfn.MUNIT\": \"MUNIT\",\n\t\"_xlfn.NEGBINOM.DIST\": \"NEGBINOM.DIST\",\n\t\"_xlfn.NETWORKDAYS.INTL\": \"NETWORKDAYS.INTL\",\n\t\"_xlfn.NIGBINOM\": \"NIGBINOM\",\n\t\"_xlfn.NORM.DIST\": \"NORM.DIST\",\n\t\"_xlfn.NORM.INV\": \"NORM.INV\",\n\t\"_xlfn.NORM.S.DIST\": \"NORM.S.DIST\",\n\t\"_xlfn.NORM.S.INV\": \"NORM.S.INV\",\n\t\"_xlfn.NUMBERVALUE\": \"NUMBERVALUE\",\n\t\"_xlfn.PDURATION\": \"PDURATION\",\n\t\"_xlfn.PERCENTILE.EXC\": \"PERCENTILE.EXC\",\n\t\"_xlfn.PERCENTILE.INC\": \"PERCENTILE.INC\",\n\t\"_xlfn.PERCENTRANK.EXC\": \"PERCENTRANK.EXC\",\n\t\"_xlfn.PERCENTRANK.INC\": \"PERCENTRANK.INC\",\n\t\"_xlfn.PERMUTATIONA\": \"PERMUTATIONA\",\n\t\"_xlfn.PHI\": \"PHI\",\n\t\"_xlfn.POISSON.DIST\": \"POISSON.DIST\",\n\t\"_xlfn.QUARTILE.EXC\": \"QUARTILE.EXC\",\n\t\"_xlfn.QUARTILE.INC\": \"QUARTILE.INC\",\n\t\"_xlfn.QUERYSTRING\": \"QUERYSTRING\",\n\t\"_xlfn.RANK.AVG\": \"RANK.AVG\",\n\t\"_xlfn.RANK.EQ\": \"RANK.EQ\",\n\t\"_xlfn.RRI\": \"RRI\",\n\t\"_xlfn.SEC\": \"SEC\",\n\t\"_xlfn.SECH\": \"SECH\",\n\t\"_xlfn.SHEET\": \"SHEET\",\n\t\"_xlfn.SHEETS\": \"SHEETS\",\n\t\"_xlfn.SKEW.P\": \"SKEW.P\",\n\t\"_xlfn.STDEV.P\": \"STDEV.P\",\n\t\"_xlfn.STDEV.S\": \"STDEV.S\",\n\t\"_xlfn.SUMIFS\": \"SUMIFS\",\n\t\"_xlfn.SWITCH\": \"SWITCH\",\n\t\"_xlfn.T.DIST\": \"T.DIST\",\n\t\"_xlfn.T.DIST.2T\": \"T.DIST.2T\",\n\t\"_xlfn.T.DIST.RT\": \"T.DIST.RT\",\n\t\"_xlfn.T.INV\": \"T.INV\",\n\t\"_xlfn.T.INV.2T\": \"T.INV.2T\",\n\t\"_xlfn.T.TEST\": \"T.TEST\",\n\t\"_xlfn.TEXTJOIN\": \"TEXTJOIN\",\n\t\"_xlfn.UNICHAR\": \"UNICHAR\",\n\t\"_xlfn.UNICODE\": \"UNICODE\",\n\t\"_xlfn.VAR.P\": \"VAR.P\",\n\t\"_xlfn.VAR.S\": \"VAR.S\",\n\t\"_xlfn.WEBSERVICE\": \"WEBSERVICE\",\n\t\"_xlfn.WEIBULL.DIST\": \"WEIBULL.DIST\",\n\t\"_xlfn.WORKDAY.INTL\": \"WORKDAY.INTL\",\n\t\"_xlfn.XOR\": \"XOR\",\n\t\"_xlfn.Z.TEST\": \"Z.TEST\"\n};\n\n/* Part 3 TODO: actually parse formulae */\nfunction ods_to_csf_formula(f) {\n\tif(f.slice(0,3) == \"of:\") f = f.slice(3);\n\t/* 5.2 Basic Expressions */\n\tif(f.charCodeAt(0) == 61) {\n\t\tf = f.slice(1);\n\t\tif(f.charCodeAt(0) == 61) f = f.slice(1);\n\t}\n\tf = f.replace(/COM\\.MICROSOFT\\./g, \"\");\n\t/* Part 3 Section 5.8 References */\n\tf = f.replace(/\\[((?:\\.[A-Z]+[0-9]+)(?::\\.[A-Z]+[0-9]+)?)\\]/g, function($$, $1) { return $1.replace(/\\./g,\"\"); });\n\t/* TODO: something other than this */\n\tf = f.replace(/\\[.(#[A-Z]*[?!])\\]/g, \"$1\");\n\treturn f.replace(/[;~]/g,\",\").replace(/\\|/g,\";\");\n}\n\nfunction csf_to_ods_formula(f) {\n\tvar o = \"of:=\" + f.replace(crefregex, \"$1[.$2$3$4$5]\").replace(/\\]:\\[/g,\":\");\n\t/* TODO: something other than this */\n\treturn o.replace(/;/g, \"|\").replace(/,/g,\";\");\n}\n\nfunction ods_to_csf_3D(r) {\n\tvar a = r.split(\":\");\n\tvar s = a[0].split(\".\")[0];\n\treturn [s, a[0].split(\".\")[1] + (a.length > 1 ? (\":\" + (a[1].split(\".\")[1] || a[1].split(\".\")[0])) : \"\")];\n}\n\nfunction csf_to_ods_3D(r) {\n\treturn r.replace(/\\./,\"!\");\n}\n\nvar strs = {}; // shared strings\nvar _ssfopts = {}; // spreadsheet formatting options\n\nRELS.WS = [\n\t\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",\n\t\"http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet\"\n];\n\n/*global Map */\nvar browser_has_Map = typeof Map !== 'undefined';\n\nfunction get_sst_id(sst, str, rev) {\n\tvar i = 0, len = sst.length;\n\tif(rev) {\n\t\tif(browser_has_Map ? rev.has(str) : Object.prototype.hasOwnProperty.call(rev, str)) {\n\t\t\tvar revarr = browser_has_Map ? rev.get(str) : rev[str];\n\t\t\tfor(; i < revarr.length; ++i) {\n\t\t\t\tif(sst[revarr[i]].t === str) { sst.Count ++; return revarr[i]; }\n\t\t\t}\n\t\t}\n\t} else for(; i < len; ++i) {\n\t\tif(sst[i].t === str) { sst.Count ++; return i; }\n\t}\n\tsst[len] = ({t:str}); sst.Count ++; sst.Unique ++;\n\tif(rev) {\n\t\tif(browser_has_Map) {\n\t\t\tif(!rev.has(str)) rev.set(str, []);\n\t\t\trev.get(str).push(len);\n\t\t} else {\n\t\t\tif(!Object.prototype.hasOwnProperty.call(rev, str)) rev[str] = [];\n\t\t\trev[str].push(len);\n\t\t}\n\t}\n\treturn len;\n}\n\nfunction col_obj_w(C, col) {\n\tvar p = ({min:C+1,max:C+1});\n\t/* wch (chars), wpx (pixels) */\n\tvar wch = -1;\n\tif(col.MDW) MDW = col.MDW;\n\tif(col.width != null) p.customWidth = 1;\n\telse if(col.wpx != null) wch = px2char(col.wpx);\n\telse if(col.wch != null) wch = col.wch;\n\tif(wch > -1) { p.width = char2width(wch); p.customWidth = 1; }\n\telse if(col.width != null) p.width = col.width;\n\tif(col.hidden) p.hidden = true;\n\treturn p;\n}\n\nfunction default_margins(margins, mode) {\n\tif(!margins) return;\n\tvar defs = [0.7, 0.7, 0.75, 0.75, 0.3, 0.3];\n\tif(mode == 'xlml') defs = [1, 1, 1, 1, 0.5, 0.5];\n\tif(margins.left == null) margins.left = defs[0];\n\tif(margins.right == null) margins.right = defs[1];\n\tif(margins.top == null) margins.top = defs[2];\n\tif(margins.bottom == null) margins.bottom = defs[3];\n\tif(margins.header == null) margins.header = defs[4];\n\tif(margins.footer == null) margins.footer = defs[5];\n}\n\nfunction get_cell_style(styles, cell, opts) {\n\tvar z = opts.revssf[cell.z != null ? cell.z : \"General\"];\n\tvar i = 0x3c, len = styles.length;\n\tif(z == null && opts.ssf) {\n\t\tfor(; i < 0x188; ++i) if(opts.ssf[i] == null) {\n\t\t\tSSF.load(cell.z, i);\n\t\t\t// $FlowIgnore\n\t\t\topts.ssf[i] = cell.z;\n\t\t\topts.revssf[cell.z] = z = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfor(i = 0; i != len; ++i) if(styles[i].numFmtId === z) return i;\n\tstyles[len] = {\n\t\tnumFmtId:z,\n\t\tfontId:0,\n\t\tfillId:0,\n\t\tborderId:0,\n\t\txfId:0,\n\t\tapplyNumberFormat:1\n\t};\n\treturn len;\n}\n\nfunction safe_format(p, fmtid, fillid, opts, themes, styles) {\n\ttry {\n\t\tif(opts.cellNF) p.z = SSF._table[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(p.t === 'z') return;\n\tif(p.t === 'd' && typeof p.v === 'string') p.v = parseDate(p.v);\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(SSF._table[fmtid] == null) SSF.load(SSFImplicit[fmtid] || \"General\", fmtid);\n\t\tif(p.t === 'e') p.w = p.w || BErr[p.v];\n\t\telse if(fmtid === 0) {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = SSF._general_int(p.v);\n\t\t\t\telse p.w = SSF._general_num(p.v);\n\t\t\t}\n\t\t\telse if(p.t === 'd') {\n\t\t\t\tvar dd = datenum(p.v);\n\t\t\t\tif((dd|0) === dd) p.w = SSF._general_int(dd);\n\t\t\t\telse p.w = SSF._general_num(dd);\n\t\t\t}\n\t\t\telse if(p.v === undefined) return \"\";\n\t\t\telse p.w = SSF._general(p.v,_ssfopts);\n\t\t}\n\t\telse if(p.t === 'd') p.w = SSF.format(fmtid,datenum(p.v),_ssfopts);\n\t\telse p.w = SSF.format(fmtid,p.v,_ssfopts);\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts.cellStyles) return;\n\tif(fillid != null) try {\n\t\tp.s = styles.Fills[fillid];\n\t\tif (p.s.fgColor && p.s.fgColor.theme && !p.s.fgColor.rgb) {\n\t\t\tp.s.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.fgColor.theme].rgb, p.s.fgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.fgColor.raw_rgb = themes.themeElements.clrScheme[p.s.fgColor.theme].rgb;\n\t\t}\n\t\tif (p.s.bgColor && p.s.bgColor.theme) {\n\t\t\tp.s.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.bgColor.theme].rgb, p.s.bgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.bgColor.raw_rgb = themes.themeElements.clrScheme[p.s.bgColor.theme].rgb;\n\t\t}\n\t} catch(e) { if(opts.WTF && styles.Fills) throw e; }\n}\n\nfunction check_ws(ws, sname, i) {\n\tif(ws && ws['!ref']) {\n\t\tvar range = safe_decode_range(ws['!ref']);\n\t\tif(range.e.c < range.s.c || range.e.r < range.s.r) throw new Error(\"Bad range (\" + i + \"): \" + ws['!ref']);\n\t}\n}\nfunction parse_ws_xml_dim(ws, s) {\n\tvar d = safe_decode_range(s);\n\tif(d.s.r<=d.e.r && d.s.c<=d.e.c && d.s.r>=0 && d.s.c>=0) ws[\"!ref\"] = encode_range(d);\n}\nvar mergecregex = /<(?:\\w:)?mergeCell ref=\"[A-Z0-9:]+\"\\s*[\\/]?>/g;\nvar sheetdataregex = /<(?:\\w+:)?sheetData[^>]*>([\\s\\S]*)<\\/(?:\\w+:)?sheetData>/;\nvar hlinkregex = /<(?:\\w:)?hyperlink [^>]*>/mg;\nvar dimregex = /\"(\\w*:\\w*)\"/;\nvar colregex = /<(?:\\w:)?col\\b[^>]*[\\/]?>/g;\nvar afregex = /<(?:\\w:)?autoFilter[^>]*([\\/]|>([\\s\\S]*)<\\/(?:\\w:)?autoFilter)>/g;\nvar marginregex= /<(?:\\w:)?pageMargins[^>]*\\/>/g;\nvar sheetprregex = /<(?:\\w:)?sheetPr\\b(?:[^>a-z][^>]*)?\\/>/;\nvar svsregex = /<(?:\\w:)?sheetViews[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetViews)>/;\n\n/* 18.3 Worksheets */\nfunction parse_ws_xml(data, opts, idx, rels, wb, themes, styles) {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\n\t/* 18.3.1.99 worksheet CT_Worksheet */\n\tvar s = opts.dense ? ([]) : ({});\n\tvar refguess = ({s: {r:2000000, c:2000000}, e: {r:0, c:0} });\n\n\tvar data1 = \"\", data2 = \"\";\n\tvar mtch = data.match(sheetdataregex);\n\tif(mtch) {\n\t\tdata1 = data.slice(0, mtch.index);\n\t\tdata2 = data.slice(mtch.index + mtch[0].length);\n\t} else data1 = data2 = data;\n\n\t/* 18.3.1.82 sheetPr CT_SheetPr */\n\tvar sheetPr = data1.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.35 dimension CT_SheetDimension */\n\tvar ridx = (data1.match(/<(?:\\w*:)?dimension/)||{index:-1}).index;\n\tif(ridx > 0) {\n\t\tvar ref = data1.slice(ridx,ridx+50).match(dimregex);\n\t\tif(ref) parse_ws_xml_dim(s, ref[1]);\n\t}\n\n\t/* 18.3.1.88 sheetViews CT_SheetViews */\n\tvar svs = data1.match(svsregex);\n\tif(svs && svs[1]) parse_ws_xml_sheetviews(svs[1], wb);\n\n\t/* 18.3.1.17 cols CT_Cols */\n\tvar columns = [];\n\tif(opts.cellStyles) {\n\t\t/* 18.3.1.13 col CT_Col */\n\t\tvar cols = data1.match(colregex);\n\t\tif(cols) parse_ws_xml_cols(columns, cols);\n\t}\n\n\t/* 18.3.1.80 sheetData CT_SheetData ? */\n\tif(mtch) parse_ws_xml_data(mtch[1], s, opts, refguess, themes, styles);\n\n\t/* 18.3.1.2 autoFilter CT_AutoFilter */\n\tvar afilter = data2.match(afregex);\n\tif(afilter) s['!autofilter'] = parse_ws_xml_autofilter(afilter[0]);\n\n\t/* 18.3.1.55 mergeCells CT_MergeCells */\n\tvar merges = [];\n\tvar _merge = data2.match(mergecregex);\n\tif(_merge) for(ridx = 0; ridx != _merge.length; ++ridx)\n\t\tmerges[ridx] = safe_decode_range(_merge[ridx].slice(_merge[ridx].indexOf(\"\\\"\")+1));\n\n\t/* 18.3.1.48 hyperlinks CT_Hyperlinks */\n\tvar hlink = data2.match(hlinkregex);\n\tif(hlink) parse_ws_xml_hlinks(s, hlink, rels);\n\n\t/* 18.3.1.62 pageMargins CT_PageMargins */\n\tvar margins = data2.match(marginregex);\n\tif(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));\n\n\tif(!s[\"!ref\"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s[\"!ref\"] = encode_range(refguess);\n\tif(opts.sheetRows > 0 && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(columns.length > 0) s[\"!cols\"] = columns;\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\treturn s;\n}\n\nfunction write_ws_xml_merges(merges) {\n\tif(merges.length === 0) return \"\";\n\tvar o = '<mergeCells count=\"' + merges.length + '\">';\n\tfor(var i = 0; i != merges.length; ++i) o += '<mergeCell ref=\"' + encode_range(merges[i]) + '\"/>';\n\treturn o + '</mergeCells>';\n}\n\n/* 18.3.1.82-3 sheetPr CT_ChartsheetPr / CT_SheetPr */\nfunction parse_ws_xml_sheetpr(sheetPr, s, wb, idx) {\n\tvar data = parsexmltag(sheetPr);\n\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\tif(data.codeName) wb.Sheets[idx].CodeName = unescapexml(utf8read(data.codeName));\n}\nfunction write_ws_xml_sheetpr(ws, wb, idx, opts, o) {\n\tvar needed = false;\n\tvar props = {}, payload = null;\n\tif(opts.bookType !== 'xlsx' && wb.vbaraw) {\n\t\tvar cname = wb.SheetNames[idx];\n\t\ttry { if(wb.Workbook) cname = wb.Workbook.Sheets[idx].CodeName || cname; } catch(e) {}\n\t\tneeded = true;\n\t\tprops.codeName = utf8write(escapexml(cname));\n\t}\n\n\tif(ws && ws[\"!outline\"]) {\n\t\tvar outlineprops = {summaryBelow:1, summaryRight:1};\n\t\tif(ws[\"!outline\"].above) outlineprops.summaryBelow = 0;\n\t\tif(ws[\"!outline\"].left) outlineprops.summaryRight = 0;\n\t\tpayload = (payload||\"\") + writextag('outlinePr', null, outlineprops);\n\t}\n\n\tif(!needed && !payload) return;\n\to[o.length] = (writextag('sheetPr', payload, props));\n}\n\n/* 18.3.1.85 sheetProtection CT_SheetProtection */\nvar sheetprot_deffalse = [\"objects\", \"scenarios\", \"selectLockedCells\", \"selectUnlockedCells\"];\nvar sheetprot_deftrue = [\n\t\"formatColumns\", \"formatRows\", \"formatCells\",\n\t\"insertColumns\", \"insertRows\", \"insertHyperlinks\",\n\t\"deleteColumns\", \"deleteRows\",\n\t\"sort\", \"autoFilter\", \"pivotTables\"\n];\nfunction write_ws_xml_protection(sp) {\n\t// algorithmName, hashValue, saltValue, spinCount\n\tvar o = ({sheet:1});\n\tsheetprot_deffalse.forEach(function(n) { if(sp[n] != null && sp[n]) o[n] = \"1\"; });\n\tsheetprot_deftrue.forEach(function(n) { if(sp[n] != null && !sp[n]) o[n] = \"0\"; });\n\t/* TODO: algorithm */\n\tif(sp.password) o.password = crypto_CreatePasswordVerifier_Method1(sp.password).toString(16).toUpperCase();\n\treturn writextag('sheetProtection', null, o);\n}\n\nfunction parse_ws_xml_hlinks(s, data, rels) {\n\tvar dense = Array.isArray(s);\n\tfor(var i = 0; i != data.length; ++i) {\n\t\tvar val = parsexmltag(utf8read(data[i]), true);\n\t\tif(!val.ref) return;\n\t\tvar rel = ((rels || {})['!id']||[])[val.id];\n\t\tif(rel) {\n\t\t\tval.Target = rel.Target;\n\t\t\tif(val.location) val.Target += \"#\"+val.location;\n\t\t} else {\n\t\t\tval.Target = \"#\" + val.location;\n\t\t\trel = {Target: val.Target, TargetMode: 'Internal'};\n\t\t}\n\t\tval.Rel = rel;\n\t\tif(val.tooltip) { val.Tooltip = val.tooltip; delete val.tooltip; }\n\t\tvar rng = safe_decode_range(val.ref);\n\t\tfor(var R=rng.s.r;R<=rng.e.r;++R) for(var C=rng.s.c;C<=rng.e.c;++C) {\n\t\t\tvar addr = encode_cell({c:C,r:R});\n\t\t\tif(dense) {\n\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\tif(!s[R][C]) s[R][C] = {t:\"z\",v:undefined};\n\t\t\t\ts[R][C].l = val;\n\t\t\t} else {\n\t\t\t\tif(!s[addr]) s[addr] = {t:\"z\",v:undefined};\n\t\t\t\ts[addr].l = val;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction parse_ws_xml_margins(margin) {\n\tvar o = {};\n\t[\"left\", \"right\", \"top\", \"bottom\", \"header\", \"footer\"].forEach(function(k) {\n\t\tif(margin[k]) o[k] = parseFloat(margin[k]);\n\t});\n\treturn o;\n}\nfunction write_ws_xml_margins(margin) {\n\tdefault_margins(margin);\n\treturn writextag('pageMargins', null, margin);\n}\n\nfunction parse_ws_xml_cols(columns, cols) {\n\tvar seencol = false;\n\tfor(var coli = 0; coli != cols.length; ++coli) {\n\t\tvar coll = parsexmltag(cols[coli], true);\n\t\tif(coll.hidden) coll.hidden = parsexmlbool(coll.hidden);\n\t\tvar colm=parseInt(coll.min, 10)-1, colM=parseInt(coll.max,10)-1;\n\t\tdelete coll.min; delete coll.max; coll.width = +coll.width;\n\t\tif(!seencol && coll.width) { seencol = true; find_mdw_colw(coll.width); }\n\t\tprocess_col(coll);\n\t\twhile(colm <= colM) columns[colm++] = dup(coll);\n\t}\n}\nfunction write_ws_xml_cols(ws, cols) {\n\tvar o = [\"<cols>\"], col;\n\tfor(var i = 0; i != cols.length; ++i) {\n\t\tif(!(col = cols[i])) continue;\n\t\to[o.length] = (writextag('col', null, col_obj_w(i, col)));\n\t}\n\to[o.length] = \"</cols>\";\n\treturn o.join(\"\");\n}\n\nfunction parse_ws_xml_autofilter(data) {\n\tvar o = { ref: (data.match(/ref=\"([^\"]*)\"/)||[])[1]};\n\treturn o;\n}\nfunction write_ws_xml_autofilter(data, ws, wb, idx) {\n\tvar ref = typeof data.ref == \"string\" ? data.ref : encode_range(data.ref);\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]});\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\treturn writextag(\"autoFilter\", null, {ref:ref});\n}\n\n/* 18.3.1.88 sheetViews CT_SheetViews */\n/* 18.3.1.87 sheetView CT_SheetView */\nvar sviewregex = /<(?:\\w:)?sheetView(?:[^>a-z][^>]*)?\\/?>/;\nfunction parse_ws_xml_sheetviews(data, wb) {\n\tif(!wb.Views) wb.Views = [{}];\n\t(data.match(sviewregex)||[]).forEach(function(r, i) {\n\t\tvar tag = parsexmltag(r);\n\t\t// $FlowIgnore\n\t\tif(!wb.Views[i]) wb.Views[i] = {};\n\t\t// $FlowIgnore\n\t\tif(parsexmlbool(tag.rightToLeft)) wb.Views[i].RTL = true;\n\t});\n}\nfunction write_ws_xml_sheetviews(ws, opts, idx, wb) {\n\tvar sview = ({workbookViewId:\"0\"});\n\t// $FlowIgnore\n\tif((((wb||{}).Workbook||{}).Views||[])[0]) sview.rightToLeft = wb.Workbook.Views[0].RTL ? \"1\" : \"0\";\n\treturn writextag(\"sheetViews\", writextag(\"sheetView\", null, sview), {});\n}\n\nfunction write_ws_xml_cell(cell, ref, ws, opts) {\n\tif(cell.v === undefined && typeof cell.f !== \"string\" || cell.t === 'z') return \"\";\n\tvar vv = \"\";\n\tvar oldt = cell.t, oldv = cell.v;\n\tif(cell.t !== \"z\") switch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n': vv = ''+cell.v; break;\n\t\tcase 'e': vv = BErr[cell.v]; break;\n\t\tcase 'd':\n\t\t\tif(opts && opts.cellDates) vv = parseDate(cell.v, -1).toISOString();\n\t\t\telse {\n\t\t\t\tcell = dup(cell);\n\t\t\t\tcell.t = 'n';\n\t\t\t\tvv = ''+(cell.v = datenum(parseDate(cell.v)));\n\t\t\t}\n\t\t\tif(typeof cell.z === 'undefined') cell.z = SSF._table[14];\n\t\t\tbreak;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar v = writetag('v', escapexml(vv)), o = ({r:ref});\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tif(os !== 0) o.s = os;\n\tswitch(cell.t) {\n\t\tcase 'n': break;\n\t\tcase 'd': o.t = \"d\"; break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t\tcase 'z': break;\n\t\tdefault: if(cell.v == null) { delete cell.t; break; }\n\t\t\tif(opts && opts.bookSST) {\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v, opts.revStrings));\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\to.t = \"str\"; break;\n\t}\n\tif(cell.t != oldt) { cell.t = oldt; cell.v = oldv; }\n\tif(typeof cell.f == \"string\" && cell.f) {\n\t\tvar ff = cell.F && cell.F.slice(0, ref.length) == ref ? {t:\"array\", ref:cell.F} : null;\n\t\tv = writextag('f', escapexml(cell.f), ff) + (cell.v != null ? v : \"\");\n\t}\n\tif(cell.l) ws['!links'].push([ref, cell.l]);\n\tif(cell.c) ws['!comments'].push([ref, cell.c]);\n\treturn writextag('c', v, o);\n}\n\nvar parse_ws_xml_data = (function() {\n\tvar cellregex = /<(?:\\w+:)?c[ \\/>]/, rowregex = /<\\/(?:\\w+:)?row>/;\n\tvar rregex = /r=[\"']([^\"']*)[\"']/, isregex = /<(?:\\w+:)?is>([\\S\\s]*?)<\\/(?:\\w+:)?is>/;\n\tvar refregex = /ref=[\"']([^\"']*)[\"']/;\n\tvar match_v = matchtag(\"v\"), match_f = matchtag(\"f\");\n\nreturn function parse_ws_xml_data(sdata, s, opts, guess, themes, styles) {\n\tvar ri = 0, x = \"\", cells = [], cref = [], idx=0, i=0, cc=0, d=\"\", p;\n\tvar tag, tagr = 0, tagc = 0;\n\tvar sstr, ftag;\n\tvar fmtid = 0, fillid = 0;\n\tvar do_format = Array.isArray(styles.CellXf), cf;\n\tvar arrayf = [];\n\tvar sharedf = [];\n\tvar dense = Array.isArray(s);\n\tvar rows = [], rowobj = {}, rowrite = false;\n\tvar sheetStubs = !!opts.sheetStubs;\n\tfor(var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {\n\t\tx = marr[mt].trim();\n\t\tvar xlen = x.length;\n\t\tif(xlen === 0) continue;\n\n\t\t/* 18.3.1.73 row CT_Row */\n\t\tfor(ri = 0; ri < xlen; ++ri) if(x.charCodeAt(ri) === 62) break; ++ri;\n\t\ttag = parsexmltag(x.slice(0,ri), true);\n\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\tif(guess.s.r > tagr - 1) guess.s.r = tagr - 1;\n\t\tif(guess.e.r < tagr - 1) guess.e.r = tagr - 1;\n\n\t\tif(opts && opts.cellStyles) {\n\t\t\trowobj = {}; rowrite = false;\n\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t}\n\n\t\t/* 18.3.1.4 c CT_Cell */\n\t\tcells = x.slice(ri).split(cellregex);\n\t\tfor(var rslice = 0; rslice != cells.length; ++rslice) if(cells[rslice].trim().charAt(0) != \"<\") break;\n\t\tcells = cells.slice(rslice);\n\t\tfor(ri = 0; ri != cells.length; ++ri) {\n\t\t\tx = cells[ri].trim();\n\t\t\tif(x.length === 0) continue;\n\t\t\tcref = x.match(rregex); idx = ri; i=0; cc=0;\n\t\t\tx = \"<c \" + (x.slice(0,1)==\"<\"?\">\":\"\") + x;\n\t\t\tif(cref != null && cref.length === 2) {\n\t\t\t\tidx = 0; d=cref[1];\n\t\t\t\tfor(i=0; i != d.length; ++i) {\n\t\t\t\t\tif((cc=d.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\t\t\t\tidx = 26*idx + cc;\n\t\t\t\t}\n\t\t\t\t--idx;\n\t\t\t\ttagc = idx;\n\t\t\t} else ++tagc;\n\t\t\tfor(i = 0; i != x.length; ++i) if(x.charCodeAt(i) === 62) break; ++i;\n\t\t\ttag = parsexmltag(x.slice(0,i), true);\n\t\t\tif(!tag.r) tag.r = encode_cell({r:tagr-1, c:tagc});\n\t\t\td = x.slice(i);\n\t\t\tp = ({t:\"\"});\n\n\t\t\tif((cref=d.match(match_v))!= null && cref[1] !== '') p.v=unescapexml(cref[1]);\n\t\t\tif(opts.cellFormula) {\n\t\t\t\tif((cref=d.match(match_f))!= null && cref[1] !== '') {\n\t\t\t\t\t/* TODO: match against XLSXFutureFunctions */\n\t\t\t\t\tp.f=unescapexml(utf8read(cref[1])).replace(/\\r\\n/g, \"\\n\");\n\t\t\t\t\tif(!opts.xlfn) p.f = _xlfn(p.f);\n\t\t\t\t\tif(cref[0].indexOf('t=\"array\"') > -1) {\n\t\t\t\t\t\tp.F = (d.match(refregex)||[])[1];\n\t\t\t\t\t\tif(p.F.indexOf(\":\") > -1) arrayf.push([safe_decode_range(p.F), p.F]);\n\t\t\t\t\t} else if(cref[0].indexOf('t=\"shared\"') > -1) {\n\t\t\t\t\t\t// TODO: parse formula\n\t\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\t\tvar ___f = unescapexml(utf8read(cref[1]));\n\t\t\t\t\t\tif(!opts.xlfn) ___f = _xlfn(___f);\n\t\t\t\t\t\tsharedf[parseInt(ftag.si, 10)] = [ftag, ___f, tag.r];\n\t\t\t\t\t}\n\t\t\t\t} else if((cref=d.match(/<f[^>]*\\/>/))) {\n\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\n\t\t\t\t}\n\t\t\t\t/* TODO: factor out contains logic */\n\t\t\t\tvar _tag = decode_cell(tag.r);\n\t\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\tif(_tag.r >= arrayf[i][0].s.r && _tag.r <= arrayf[i][0].e.r)\n\t\t\t\t\t\tif(_tag.c >= arrayf[i][0].s.c && _tag.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\tp.F = arrayf[i][1];\n\t\t\t}\n\n\t\t\tif(tag.t == null && p.v === undefined) {\n\t\t\t\tif(p.f || p.F) {\n\t\t\t\t\tp.v = 0; p.t = \"n\";\n\t\t\t\t} else if(!sheetStubs) continue;\n\t\t\t\telse p.t = \"z\";\n\t\t\t}\n\t\t\telse p.t = tag.t || \"n\";\n\t\t\tif(guess.s.c > tagc) guess.s.c = tagc;\n\t\t\tif(guess.e.c < tagc) guess.e.c = tagc;\n\t\t\t/* 18.18.11 t ST_CellType */\n\t\t\tswitch(p.t) {\n\t\t\t\tcase 'n':\n\t\t\t\t\tif(p.v == \"\" || p.v == null) {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else p.v = parseFloat(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 's':\n\t\t\t\t\tif(typeof p.v == 'undefined') {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsstr = strs[parseInt(p.v, 10)];\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tp.r = sstr.r;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'str':\n\t\t\t\t\tp.t = \"s\";\n\t\t\t\t\tp.v = (p.v!=null) ? utf8read(p.v) : '';\n\t\t\t\t\tif(opts.cellHTML) p.h = escapehtml(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'inlineStr':\n\t\t\t\t\tcref = d.match(isregex);\n\t\t\t\t\tp.t = 's';\n\t\t\t\t\tif(cref != null && (sstr = parse_si(cref[1]))) {\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t} else p.v = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'b': p.v = parsexmlbool(p.v); break;\n\t\t\t\tcase 'd':\n\t\t\t\t\tif(opts.cellDates) p.v = parseDate(p.v, 1);\n\t\t\t\t\telse { p.v = datenum(parseDate(p.v, 1)); p.t = 'n'; }\n\t\t\t\t\tbreak;\n\t\t\t\t/* error string in .w, number in .v */\n\t\t\t\tcase 'e':\n\t\t\t\t\tif(!opts || opts.cellText !== false) p.w = p.v;\n\t\t\t\t\tp.v = RBErr[p.v]; break;\n\t\t\t}\n\t\t\t/* formatting */\n\t\t\tfmtid = fillid = 0;\n\t\t\tcf = null;\n\t\t\tif(do_format && tag.s !== undefined) {\n\t\t\t\tcf = styles.CellXf[tag.s];\n\t\t\t\tif(cf != null) {\n\t\t\t\t\tif(cf.numFmtId != null) fmtid = cf.numFmtId;\n\t\t\t\t\tif(opts.cellStyles) {\n\t\t\t\t\t\tif(cf.fillId != null) fillid = cf.fillId;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tsafe_format(p, fmtid, fillid, opts, themes, styles);\n\t\t\tif(opts.cellDates && do_format && p.t == 'n' && SSF.is_date(SSF._table[fmtid])) { p.t = 'd'; p.v = numdate(p.v); }\n\t\t\tif(dense) {\n\t\t\t\tvar _r = decode_cell(tag.r);\n\t\t\t\tif(!s[_r.r]) s[_r.r] = [];\n\t\t\t\ts[_r.r][_r.c] = p;\n\t\t\t} else s[tag.r] = p;\n\t\t}\n\t}\n\tif(rows.length > 0) s['!rows'] = rows;\n}; })();\n\nfunction write_ws_xml_data(ws, opts, idx, wb) {\n\tvar o = [], r = [], range = safe_decode_range(ws['!ref']), cell=\"\", ref, rr = \"\", cols = [], R=0, C=0, rows = ws['!rows'];\n\tvar dense = Array.isArray(ws);\n\tvar params = ({r:rr}), row, height = -1;\n\tfor(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(R = range.s.r; R <= range.e.r; ++R) {\n\t\tr = [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar _cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\tif(_cell === undefined) continue;\n\t\t\tif((cell = write_ws_xml_cell(_cell, ref, ws, opts, idx, wb)) != null) r.push(cell);\n\t\t}\n\t\tif(r.length > 0 || (rows && rows[R])) {\n\t\t\tparams = ({r:rr});\n\t\t\tif(rows && rows[R]) {\n\t\t\t\trow = rows[R];\n\t\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\t\theight = -1;\n\t\t\t\tif(row.hpx) height = px2pt(row.hpx);\n\t\t\t\telse if(row.hpt) height = row.hpt;\n\t\t\t\tif(height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\t\tif(row.level) { params.outlineLevel = row.level; }\n\t\t\t}\n\t\t\to[o.length] = (writextag('row', r.join(\"\"), params));\n\t\t}\n\t}\n\tif(rows) for(; R < rows.length; ++R) {\n\t\tif(rows && rows[R]) {\n\t\t\tparams = ({r:R+1});\n\t\t\trow = rows[R];\n\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\theight = -1;\n\t\t\tif (row.hpx) height = px2pt(row.hpx);\n\t\t\telse if (row.hpt) height = row.hpt;\n\t\t\tif (height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\tif (row.level) { params.outlineLevel = row.level; }\n\t\t\to[o.length] = (writextag('row', \"\", params));\n\t\t}\n\t}\n\treturn o.join(\"\");\n}\n\nvar WS_XML_ROOT = writextag('worksheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\nfunction write_ws_xml(idx, opts, wb, rels) {\n\tvar o = [XML_HEADER, WS_XML_ROOT];\n\tvar s = wb.SheetNames[idx], sidx = 0, rdata = \"\";\n\tvar ws = wb.Sheets[s];\n\tif(ws == null) ws = {};\n\tvar ref = ws['!ref'] || 'A1';\n\tvar range = safe_decode_range(ref);\n\tif(range.e.c > 0x3FFF || range.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + ref + \" exceeds format limit A1:XFD1048576\");\n\t\trange.e.c = Math.min(range.e.c, 0x3FFF);\n\t\trange.e.r = Math.min(range.e.c, 0xFFFFF);\n\t\tref = encode_range(range);\n\t}\n\tif(!rels) rels = {};\n\tws['!comments'] = [];\n\tvar _drawing = [];\n\n\twrite_ws_xml_sheetpr(ws, wb, idx, opts, o);\n\n\to[o.length] = (writextag('dimension', null, {'ref': ref}));\n\n\to[o.length] = write_ws_xml_sheetviews(ws, opts, idx, wb);\n\n\t/* TODO: store in WB, process styles */\n\tif(opts.sheetFormat) o[o.length] = (writextag('sheetFormatPr', null, {\n\t\tdefaultRowHeight:opts.sheetFormat.defaultRowHeight||'16',\n\t\tbaseColWidth:opts.sheetFormat.baseColWidth||'10',\n\t\toutlineLevelRow:opts.sheetFormat.outlineLevelRow||'7'\n\t}));\n\n\tif(ws['!cols'] != null && ws['!cols'].length > 0) o[o.length] = (write_ws_xml_cols(ws, ws['!cols']));\n\n\to[sidx = o.length] = '<sheetData/>';\n\tws['!links'] = [];\n\tif(ws['!ref'] != null) {\n\t\trdata = write_ws_xml_data(ws, opts, idx, wb, rels);\n\t\tif(rdata.length > 0) o[o.length] = (rdata);\n\t}\n\tif(o.length>sidx+1) { o[o.length] = ('</sheetData>'); o[sidx]=o[sidx].replace(\"/>\",\">\"); }\n\n\t/* sheetCalcPr */\n\n\tif(ws['!protect'] != null) o[o.length] = write_ws_xml_protection(ws['!protect']);\n\n\t/* protectedRanges */\n\t/* scenarios */\n\n\tif(ws['!autofilter'] != null) o[o.length] = write_ws_xml_autofilter(ws['!autofilter'], ws, wb, idx);\n\n\t/* sortState */\n\t/* dataConsolidate */\n\t/* customSheetViews */\n\n\tif(ws['!merges'] != null && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges']));\n\n\t/* phoneticPr */\n\t/* conditionalFormatting */\n\t/* dataValidations */\n\n\tvar relc = -1, rel, rId = -1;\n\tif(ws['!links'].length > 0) {\n\t\to[o.length] = \"<hyperlinks>\";\nws['!links'].forEach(function(l) {\n\t\t\tif(!l[1].Target) return;\n\t\t\trel = ({\"ref\":l[0]});\n\t\t\tif(l[1].Target.charAt(0) != \"#\") {\n\t\t\t\trId = add_rels(rels, -1, escapexml(l[1].Target).replace(/#.*$/, \"\"), RELS.HLINK);\n\t\t\t\trel[\"r:id\"] = \"rId\"+rId;\n\t\t\t}\n\t\t\tif((relc = l[1].Target.indexOf(\"#\")) > -1) rel.location = escapexml(l[1].Target.slice(relc+1));\n\t\t\tif(l[1].Tooltip) rel.tooltip = escapexml(l[1].Tooltip);\n\t\t\to[o.length] = writextag(\"hyperlink\",null,rel);\n\t\t});\n\t\to[o.length] = \"</hyperlinks>\";\n\t}\n\tdelete ws['!links'];\n\n\t/* printOptions */\n\n\tif(ws['!margins'] != null) o[o.length] = write_ws_xml_margins(ws['!margins']);\n\n\t/* pageSetup */\n\t/* headerFooter */\n\t/* rowBreaks */\n\t/* colBreaks */\n\t/* customProperties */\n\t/* cellWatches */\n\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) o[o.length] = writetag(\"ignoredErrors\", writextag(\"ignoredError\", null, {numberStoredAsText:1, sqref:ref}));\n\n\t/* smartTags */\n\n\tif(_drawing.length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\t\to[o.length] = writextag(\"drawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!drawing'] = _drawing;\n\t}\n\n\tif(ws['!comments'].length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\to[o.length] = writextag(\"legacyDrawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!legacy'] = rId;\n\t}\n\n\t/* legacyDrawingHF */\n\t/* picture */\n\t/* oleObjects */\n\t/* controls */\n\t/* webPublishItems */\n\t/* tableParts */\n\t/* extLst */\n\n\tif(o.length>1) { o[o.length] = ('</worksheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.726 BrtRowHdr */\nfunction parse_BrtRowHdr(data, length) {\n\tvar z = ({});\n\tvar tgt = data.l + length;\n\tz.r = data.read_shift(4);\n\tdata.l += 4; // TODO: ixfe\n\tvar miyRw = data.read_shift(2);\n\tdata.l += 1; // TODO: top/bot padding\n\tvar flags = data.read_shift(1);\n\tdata.l = tgt;\n\tif(flags & 0x07) z.level = flags & 0x07;\n\tif(flags & 0x10) z.hidden = true;\n\tif(flags & 0x20) z.hpt = miyRw / 20;\n\treturn z;\n}\nfunction write_BrtRowHdr(R, range, ws) {\n\tvar o = new_buf(17+8*16);\n\tvar row = (ws['!rows']||[])[R]||{};\n\to.write_shift(4, R);\n\n\to.write_shift(4, 0); /* TODO: ixfe */\n\n\tvar miyRw = 0x0140;\n\tif(row.hpx) miyRw = px2pt(row.hpx) * 20;\n\telse if(row.hpt) miyRw = row.hpt * 20;\n\to.write_shift(2, miyRw);\n\n\to.write_shift(1, 0); /* top/bot padding */\n\n\tvar flags = 0x0;\n\tif(row.level) flags |= row.level;\n\tif(row.hidden) flags |= 0x10;\n\tif(row.hpx || row.hpt) flags |= 0x20;\n\to.write_shift(1, flags);\n\n\to.write_shift(1, 0); /* phonetic guide */\n\n\t/* [MS-XLSB] 2.5.8 BrtColSpan explains the mechanism */\n\tvar ncolspan = 0, lcs = o.l;\n\to.l += 4;\n\n\tvar caddr = {r:R, c:0};\n\tfor(var i = 0; i < 16; ++i) {\n\t\tif((range.s.c > ((i+1) << 10)) || (range.e.c < (i << 10))) continue;\n\t\tvar first = -1, last = -1;\n\t\tfor(var j = (i<<10); j < ((i+1)<<10); ++j) {\n\t\t\tcaddr.c = j;\n\t\t\tvar cell = Array.isArray(ws) ? (ws[caddr.r]||[])[caddr.c] : ws[encode_cell(caddr)];\n\t\t\tif(cell) { if(first < 0) first = j; last = j; }\n\t\t}\n\t\tif(first < 0) continue;\n\t\t++ncolspan;\n\t\to.write_shift(4, first);\n\t\to.write_shift(4, last);\n\t}\n\n\tvar l = o.l;\n\to.l = lcs;\n\to.write_shift(4, ncolspan);\n\to.l = l;\n\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction write_row_header(ba, ws, range, R) {\n\tvar o = write_BrtRowHdr(R, range, ws);\n\tif((o.length > 17) || (ws['!rows']||[])[R]) write_record(ba, 'BrtRowHdr', o);\n}\n\n/* [MS-XLSB] 2.4.820 BrtWsDim */\nvar parse_BrtWsDim = parse_UncheckedRfX;\nvar write_BrtWsDim = write_UncheckedRfX;\n\n/* [MS-XLSB] 2.4.821 BrtWsFmtInfo */\nfunction parse_BrtWsFmtInfo() {\n}\n//function write_BrtWsFmtInfo(ws, o) { }\n\n/* [MS-XLSB] 2.4.823 BrtWsProp */\nfunction parse_BrtWsProp(data, length) {\n\tvar z = {};\n\t/* TODO: pull flags */\n\tdata.l += 19;\n\tz.name = parse_XLSBCodeName(data, length - 19);\n\treturn z;\n}\nfunction write_BrtWsProp(str, o) {\n\tif(o == null) o = new_buf(84+4*str.length);\n\tfor(var i = 0; i < 3; ++i) o.write_shift(1,0);\n\twrite_BrtColor({auto:1}, o);\n\to.write_shift(-4,-1);\n\to.write_shift(-4,-1);\n\twrite_XLSBCodeName(str, o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.306 BrtCellBlank */\nfunction parse_BrtCellBlank(data) {\n\tvar cell = parse_XLSBCell(data);\n\treturn [cell];\n}\nfunction write_BrtCellBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\treturn write_XLSBCell(ncell, o);\n}\n\n\n/* [MS-XLSB] 2.4.307 BrtCellBool */\nfunction parse_BrtCellBool(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtCellBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.308 BrtCellError */\nfunction parse_BrtCellError(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\n\n/* [MS-XLSB] 2.4.311 BrtCellIsst */\nfunction parse_BrtCellIsst(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtCellIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.313 BrtCellReal */\nfunction parse_BrtCellReal(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(16);\n\twrite_XLSBCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.314 BrtCellRk */\nfunction parse_BrtCellRk(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.4.317 BrtCellSt */\nfunction parse_BrtCellSt(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtCellSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(12 + 4 * cell.v.length);\n\twrite_XLSBCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.653 BrtFmlaBool */\nfunction parse_BrtFmlaBool(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'b'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.654 BrtFmlaError */\nfunction parse_BrtFmlaError(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'e'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.655 BrtFmlaNum */\nfunction parse_BrtFmlaNum(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_Xnum(data);\n\tvar o = [cell, value, 'n'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.656 BrtFmlaString */\nfunction parse_BrtFmlaString(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_XLWideString(data);\n\tvar o = [cell, value, 'str'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.682 BrtMergeCell */\nvar parse_BrtMergeCell = parse_UncheckedRfX;\nvar write_BrtMergeCell = write_UncheckedRfX;\n/* [MS-XLSB] 2.4.107 BrtBeginMergeCells */\nfunction write_BrtBeginMergeCells(cnt, o) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(4, cnt);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.662 BrtHLink */\nfunction parse_BrtHLink(data, length) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar relId = parse_XLNullableWideString(data);\n\tvar loc = parse_XLWideString(data);\n\tvar tooltip = parse_XLWideString(data);\n\tvar display = parse_XLWideString(data);\n\tdata.l = end;\n\tvar o = ({rfx:rfx, relId:relId, loc:loc, display:display});\n\tif(tooltip) o.Tooltip = tooltip;\n\treturn o;\n}\nfunction write_BrtHLink(l, rId) {\n\tvar o = new_buf(50+4*(l[1].Target.length + (l[1].Tooltip || \"\").length));\n\twrite_UncheckedRfX({s:decode_cell(l[0]), e:decode_cell(l[0])}, o);\n\twrite_RelID(\"rId\" + rId, o);\n\tvar locidx = l[1].Target.indexOf(\"#\");\n\tvar loc = locidx == -1 ? \"\" : l[1].Target.slice(locidx+1);\n\twrite_XLWideString(loc || \"\", o);\n\twrite_XLWideString(l[1].Tooltip || \"\", o);\n\twrite_XLWideString(\"\", o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.692 BrtPane */\nfunction parse_BrtPane(/*data, length, opts*/) {\n}\n\n/* [MS-XLSB] 2.4.6 BrtArrFmla */\nfunction parse_BrtArrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_RfX(data, 16);\n\tvar fAlwaysCalc = data.read_shift(1);\n\tvar o = [rfx]; o[2] = fAlwaysCalc;\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBArrayParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.750 BrtShrFmla */\nfunction parse_BrtShrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar o = [rfx];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBSharedParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t\tdata.l = end;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtColInfo */\n/* TODO: once XLS ColInfo is set, combine the functions */\nfunction write_BrtColInfo(C, col, o) {\n\tif(o == null) o = new_buf(18);\n\tvar p = col_obj_w(C, col);\n\to.write_shift(-4, C);\n\to.write_shift(-4, C);\n\to.write_shift(4, (p.width || 10) * 256);\n\to.write_shift(4, 0/*ixfe*/); // style\n\tvar flags = 0;\n\tif(col.hidden) flags |= 0x01;\n\tif(typeof p.width == 'number') flags |= 0x02;\n\tif(col.level) flags |= (col.level << 8);\n\to.write_shift(2, flags); // bit flag\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.678 BrtMargins */\nvar BrtMarginKeys = [\"left\",\"right\",\"top\",\"bottom\",\"header\",\"footer\"];\nfunction parse_BrtMargins(data) {\n\tvar margins = ({});\n\tBrtMarginKeys.forEach(function(k) { margins[k] = parse_Xnum(data, 8); });\n\treturn margins;\n}\nfunction write_BrtMargins(margins, o) {\n\tif(o == null) o = new_buf(6*8);\n\tdefault_margins(margins);\n\tBrtMarginKeys.forEach(function(k) { write_Xnum((margins)[k], o); });\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.299 BrtBeginWsView */\nfunction parse_BrtBeginWsView(data) {\n\tvar f = data.read_shift(2);\n\tdata.l += 28;\n\treturn { RTL: f & 0x20 };\n}\nfunction write_BrtBeginWsView(ws, Workbook, o) {\n\tif(o == null) o = new_buf(30);\n\tvar f = 0x39c;\n\tif((((Workbook||{}).Views||[])[0]||{}).RTL) f |= 0x20;\n\to.write_shift(2, f); // bit flag\n\to.write_shift(4, 0);\n\to.write_shift(4, 0); // view first row\n\to.write_shift(4, 0); // view first col\n\to.write_shift(1, 0); // gridline color ICV\n\to.write_shift(1, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 100); // zoom scale\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(4, 0); // workbook view id\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.309 BrtCellIgnoreEC */\nfunction write_BrtCellIgnoreEC(ref) {\n\tvar o = new_buf(24);\n\to.write_shift(4, 4);\n\to.write_shift(4, 1);\n\twrite_UncheckedRfX(ref, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.748 BrtSheetProtection */\nfunction write_BrtSheetProtection(sp, o) {\n\tif(o == null) o = new_buf(16*4+2);\n\to.write_shift(2, sp.password ? crypto_CreatePasswordVerifier_Method1(sp.password) : 0);\n\to.write_shift(4, 1); // this record should not be written if no protection\n\t[\n\t\t[\"objects\", false], // fObjects\n\t\t[\"scenarios\", false], // fScenarios\n\t\t[\"formatCells\", true], // fFormatCells\n\t\t[\"formatColumns\", true], // fFormatColumns\n\t\t[\"formatRows\", true], // fFormatRows\n\t\t[\"insertColumns\", true], // fInsertColumns\n\t\t[\"insertRows\", true], // fInsertRows\n\t\t[\"insertHyperlinks\", true], // fInsertHyperlinks\n\t\t[\"deleteColumns\", true], // fDeleteColumns\n\t\t[\"deleteRows\", true], // fDeleteRows\n\t\t[\"selectLockedCells\", false], // fSelLockedCells\n\t\t[\"sort\", true], // fSort\n\t\t[\"autoFilter\", true], // fAutoFilter\n\t\t[\"pivotTables\", true], // fPivotTables\n\t\t[\"selectUnlockedCells\", false] // fSelUnlockedCells\n\t].forEach(function(n) {\nif(n[1]) o.write_shift(4, sp[n[0]] != null && !sp[n[0]] ? 1 : 0);\n\t\telse o.write_shift(4, sp[n[0]] != null && sp[n[0]] ? 0 : 1);\n\t});\n\treturn o;\n}\n\nfunction parse_BrtDVal(/*data, length, opts*/) {\n}\nfunction parse_BrtDVal14(/*data, length, opts*/) {\n}\n/* [MS-XLSB] 2.1.7.61 Worksheet */\nfunction parse_ws_bin(data, _opts, idx, rels, wb, themes, styles) {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar s = (opts.dense ? [] : {});\n\n\tvar ref;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\tvar state = [];\n\tvar pass = false, end = false;\n\tvar row, p, cf, R, C, addr, sstr, rr, cell;\n\tvar merges = [];\n\topts.biff = 12;\n\topts['!row'] = 0;\n\n\tvar ai = 0, af = false;\n\n\tvar arrayf = [];\n\tvar sharedf = {};\n\tvar supbooks = opts.supbooks || wb.supbooks || ([[]]);\n\tsupbooks.sharedf = sharedf;\n\tsupbooks.arrayf = arrayf;\n\tsupbooks.SheetNames = wb.SheetNames || wb.Sheets.map(function(x) { return x.name; });\n\tif(!opts.supbooks) {\n\t\topts.supbooks = supbooks;\n\t\tif(wb.Names) for(var i = 0; i < wb.Names.length; ++i) supbooks[0][i+1] = wb.Names[i];\n\t}\n\n\tvar colinfo = [], rowinfo = [];\n\tvar seencol = false;\n\n\trecordhopper(data, function ws_parse(val, R_n, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0094: /* 'BrtWsDim' */\n\t\t\t\tref = val; break;\n\t\t\tcase 0x0000: /* 'BrtRowHdr' */\n\t\t\t\trow = val;\n\t\t\t\tif(opts.sheetRows && opts.sheetRows <= row.r) end=true;\n\t\t\t\trr = encode_row(R = row.r);\n\t\t\t\topts['!row'] = row.r;\n\t\t\t\tif(val.hidden || val.hpt || val.level != null) {\n\t\t\t\t\tif(val.hpt) val.hpx = pt2px(val.hpt);\n\t\t\t\t\trowinfo[val.r] = val;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0002: /* 'BrtCellRk' */\n\t\t\tcase 0x0003: /* 'BrtCellError' */\n\t\t\tcase 0x0004: /* 'BrtCellBool' */\n\t\t\tcase 0x0005: /* 'BrtCellReal' */\n\t\t\tcase 0x0006: /* 'BrtCellSt' */\n\t\t\tcase 0x0007: /* 'BrtCellIsst' */\n\t\t\tcase 0x0008: /* 'BrtFmlaString' */\n\t\t\tcase 0x0009: /* 'BrtFmlaNum' */\n\t\t\tcase 0x000A: /* 'BrtFmlaBool' */\n\t\t\tcase 0x000B: /* 'BrtFmlaError' */\n\t\t\t\tp = ({t:val[2]});\n\t\t\t\tswitch(val[2]) {\n\t\t\t\t\tcase 'n': p.v = val[1]; break;\n\t\t\t\t\tcase 's': sstr = strs[val[1]]; p.v = sstr.t; p.r = sstr.r; break;\n\t\t\t\t\tcase 'b': p.v = val[1] ? true : false; break;\n\t\t\t\t\tcase 'e': p.v = val[1]; if(opts.cellText !== false) p.w = BErr[p.v]; break;\n\t\t\t\t\tcase 'str': p.t = 's'; p.v = val[1]; break;\n\t\t\t\t}\n\t\t\t\tif((cf = styles.CellXf[val[0].iStyleRef])) safe_format(p,cf.numFmtId,null,opts, themes, styles);\n\t\t\t\tC = val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\taf = false;\n\t\t\t\t\tfor(ai = 0; ai < arrayf.length; ++ai) {\n\t\t\t\t\t\tvar aii = arrayf[ai];\n\t\t\t\t\t\tif(row.r >= aii[0].s.r && row.r <= aii[0].e.r)\n\t\t\t\t\t\t\tif(C >= aii[0].s.c && C <= aii[0].e.c) {\n\t\t\t\t\t\t\t\tp.F = encode_range(aii[0]); af = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!af && val.length > 3) p.f = val[3];\n\t\t\t\t}\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(opts.cellDates && cf && p.t == 'n' && SSF.is_date(SSF._table[cf.numFmtId])) {\n\t\t\t\t\tvar _d = SSF.parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0001: /* 'BrtCellBlank' */\n\t\t\t\tif(!opts.sheetStubs || pass) break;\n\t\t\t\tp = ({t:'z',v:undefined});\n\t\t\t\tC = val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00B0: /* 'BrtMergeCell' */\n\t\t\t\tmerges.push(val); break;\n\n\t\t\tcase 0x01EE: /* 'BrtHLink' */\n\t\t\t\tvar rel = rels['!id'][val.relId];\n\t\t\t\tif(rel) {\n\t\t\t\t\tval.Target = rel.Target;\n\t\t\t\t\tif(val.loc) val.Target += \"#\"+val.loc;\n\t\t\t\t\tval.Rel = rel;\n\t\t\t\t} else if(val.relId == '') {\n\t\t\t\t\tval.Target = \"#\" + val.loc;\n\t\t\t\t}\n\t\t\t\tfor(R=val.rfx.s.r;R<=val.rfx.e.r;++R) for(C=val.rfx.s.c;C<=val.rfx.e.c;++C) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\t\t\tif(!s[R][C]) s[R][C] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[R][C].l = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddr = encode_cell({c:C,r:R});\n\t\t\t\t\t\tif(!s[addr]) s[addr] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[addr].l = val;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01AA: /* 'BrtArrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tarrayf.push(val);\n\t\t\t\tcell = ((opts.dense ? s[R][C] : s[encode_col(C) + rr]));\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tcell.F = encode_range(val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x01AB: /* 'BrtShrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tsharedf[encode_cell(val[0].s)] = val[1];\n\t\t\t\tcell = (opts.dense ? s[R][C] : s[encode_col(C) + rr]);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tbreak;\n\n\t\t\t/* identical to 'ColInfo' in XLS */\n\t\t\tcase 0x003C: /* 'BrtColInfo' */\n\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, hidden: !!(val.flags & 0x01), level: val.level };\n\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00A1: /* 'BrtBeginAFilter' */\n\t\t\t\ts['!autofilter'] = { ref:encode_range(val) };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\t\ts['!margins'] = val;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0093: /* 'BrtWsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0089: /* 'BrtBeginWsView' */\n\t\t\t\tif(!wb.Views) wb.Views = [{}];\n\t\t\t\tif(!wb.Views[0]) wb.Views[0] = {};\n\t\t\t\tif(val.RTL) wb.Views[0].RTL = true;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01E5: /* 'BrtWsFmtInfo' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0040: /* 'BrtDVal' */\n\t\t\tcase 0x041D: /* 'BrtDVal14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0097: /* 'BrtPane' */\n\t\t\t\tbreak;\n\t\t\tcase 0x00AF: /* 'BrtAFilterDateGroupItem' */\n\t\t\tcase 0x0284: /* 'BrtActiveX' */\n\t\t\tcase 0x0271: /* 'BrtBigName' */\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x018C: /* 'BrtBrk' */\n\t\t\tcase 0x0458: /* 'BrtCFIcon' */\n\t\t\tcase 0x047A: /* 'BrtCFRuleExt' */\n\t\t\tcase 0x01D7: /* 'BrtCFVO' */\n\t\t\tcase 0x041A: /* 'BrtCFVO14' */\n\t\t\tcase 0x0289: /* 'BrtCellIgnoreEC' */\n\t\t\tcase 0x0451: /* 'BrtCellIgnoreEC14' */\n\t\t\tcase 0x0031: /* 'BrtCellMeta' */\n\t\t\tcase 0x024D: /* 'BrtCellSmartTagProperty' */\n\t\t\tcase 0x025F: /* 'BrtCellWatch' */\n\t\t\tcase 0x0234: /* 'BrtColor' */\n\t\t\tcase 0x041F: /* 'BrtColor14' */\n\t\t\tcase 0x00A8: /* 'BrtColorFilter' */\n\t\t\tcase 0x00AE: /* 'BrtCustomFilter' */\n\t\t\tcase 0x049C: /* 'BrtCustomFilter14' */\n\t\t\tcase 0x01F3: /* 'BrtDRef' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\tcase 0x00AB: /* 'BrtDynamicFilter' */\n\t\t\tcase 0x00A7: /* 'BrtFilter' */\n\t\t\tcase 0x0499: /* 'BrtFilter14' */\n\t\t\tcase 0x00A9: /* 'BrtIconFilter' */\n\t\t\tcase 0x049D: /* 'BrtIconFilter14' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x0295: /* 'BrtListPart' */\n\t\t\tcase 0x027F: /* 'BrtOleObject' */\n\t\t\tcase 0x01DE: /* 'BrtPageSetup' */\n\t\t\tcase 0x0219: /* 'BrtPhoneticInfo' */\n\t\t\tcase 0x01DD: /* 'BrtPrintOptions' */\n\t\t\tcase 0x0218: /* 'BrtRangeProtection' */\n\t\t\tcase 0x044F: /* 'BrtRangeProtection14' */\n\t\t\tcase 0x02A8: /* 'BrtRangeProtectionIso' */\n\t\t\tcase 0x0450: /* 'BrtRangeProtectionIso14' */\n\t\t\tcase 0x0400: /* 'BrtRwDescent' */\n\t\t\tcase 0x0098: /* 'BrtSel' */\n\t\t\tcase 0x0297: /* 'BrtSheetCalcProp' */\n\t\t\tcase 0x0217: /* 'BrtSheetProtection' */\n\t\t\tcase 0x02A6: /* 'BrtSheetProtectionIso' */\n\t\t\tcase 0x01F8: /* 'BrtSlc' */\n\t\t\tcase 0x0413: /* 'BrtSparkline' */\n\t\t\tcase 0x01AC: /* 'BrtTable' */\n\t\t\tcase 0x00AA: /* 'BrtTop10Filter' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0032: /* 'BrtValueMeta' */\n\t\t\tcase 0x0816: /* 'BrtWebExtension' */\n\t\t\tcase 0x0415: /* 'BrtWsFmtInfoEx14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tdelete opts.supbooks;\n\tdelete opts['!row'];\n\n\tif(!s[\"!ref\"] && (refguess.s.r < 2000000 || ref && (ref.e.r > 0 || ref.e.c > 0 || ref.s.r > 0 || ref.s.c > 0))) s[\"!ref\"] = encode_range(ref || refguess);\n\tif(opts.sheetRows && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\tif(colinfo.length > 0) s[\"!cols\"] = colinfo;\n\tif(rowinfo.length > 0) s[\"!rows\"] = rowinfo;\n\treturn s;\n}\n\n/* TODO: something useful -- this is a stub */\nfunction write_ws_bin_cell(ba, cell, R, C, opts, ws) {\n\tif(cell.v === undefined) return;\n\tvar vv = \"\";\n\tswitch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'd': // no BrtCellDate :(\n\t\t\tcell = dup(cell);\n\t\t\tcell.z = cell.z || SSF._table[14];\n\t\t\tcell.v = datenum(parseDate(cell.v)); cell.t = 'n';\n\t\t\tbreak;\n\t\t/* falls through */\n\t\tcase 'n': case 'e': vv = ''+cell.v; break;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar o = ({r:R, c:C});\n\t/* TODO: cell style */\n\to.s = get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.l) ws['!links'].push([encode_cell(o), cell.l]);\n\tif(cell.c) ws['!comments'].push([encode_cell(o), cell.c]);\n\tswitch(cell.t) {\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvv = get_sst_id(opts.Strings, (cell.v), opts.revStrings);\n\t\t\t\to.t = \"s\"; o.v = vv;\n\t\t\t\twrite_record(ba, \"BrtCellIsst\", write_BrtCellIsst(cell, o));\n\t\t\t} else {\n\t\t\t\to.t = \"str\";\n\t\t\t\twrite_record(ba, \"BrtCellSt\", write_BrtCellSt(cell, o));\n\t\t\t}\n\t\t\treturn;\n\t\tcase 'n':\n\t\t\t/* TODO: determine threshold for Real vs RK */\n\t\t\tif(cell.v == (cell.v | 0) && cell.v > -1000 && cell.v < 1000) write_record(ba, \"BrtCellRk\", write_BrtCellRk(cell, o));\n\t\t\telse write_record(ba, \"BrtCellReal\", write_BrtCellReal(cell, o));\n\t\t\treturn;\n\t\tcase 'b':\n\t\t\to.t = \"b\";\n\t\t\twrite_record(ba, \"BrtCellBool\", write_BrtCellBool(cell, o));\n\t\t\treturn;\n\t\tcase 'e': /* TODO: error */ o.t = \"e\"; break;\n\t}\n\twrite_record(ba, \"BrtCellBlank\", write_BrtCellBlank(cell, o));\n}\n\nfunction write_CELLTABLE(ba, ws, idx, opts) {\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols = [];\n\twrite_record(ba, 'BrtBeginSheetData');\n\tvar dense = Array.isArray(ws);\n\tvar cap = range.e.r;\n\tif(ws['!rows']) cap = Math.max(range.e.r, ws['!rows'].length - 1);\n\tfor(var R = range.s.r; R <= cap; ++R) {\n\t\trr = encode_row(R);\n\t\t/* [ACCELLTABLE] */\n\t\t/* BrtRowHdr */\n\t\twrite_row_header(ba, ws, range, R);\n\t\tif(R <= range.e.r) for(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t/* *16384CELL */\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_bin_cell(ba, cell, R, C, opts, ws);\n\t\t}\n\t}\n\twrite_record(ba, 'BrtEndSheetData');\n}\n\nfunction write_MERGECELLS(ba, ws) {\n\tif(!ws || !ws['!merges']) return;\n\twrite_record(ba, 'BrtBeginMergeCells', write_BrtBeginMergeCells(ws['!merges'].length));\n\tws['!merges'].forEach(function(m) { write_record(ba, 'BrtMergeCell', write_BrtMergeCell(m)); });\n\twrite_record(ba, 'BrtEndMergeCells');\n}\n\nfunction write_COLINFOS(ba, ws) {\n\tif(!ws || !ws['!cols']) return;\n\twrite_record(ba, 'BrtBeginColInfos');\n\tws['!cols'].forEach(function(m, i) { if(m) write_record(ba, 'BrtColInfo', write_BrtColInfo(i, m)); });\n\twrite_record(ba, 'BrtEndColInfos');\n}\n\nfunction write_IGNOREECS(ba, ws) {\n\tif(!ws || !ws['!ref']) return;\n\twrite_record(ba, 'BrtBeginCellIgnoreECs');\n\twrite_record(ba, 'BrtCellIgnoreEC', write_BrtCellIgnoreEC(safe_decode_range(ws['!ref'])));\n\twrite_record(ba, 'BrtEndCellIgnoreECs');\n}\n\nfunction write_HLINKS(ba, ws, rels) {\n\t/* *BrtHLink */\n\tws['!links'].forEach(function(l) {\n\t\tif(!l[1].Target) return;\n\t\tvar rId = add_rels(rels, -1, l[1].Target.replace(/#.*$/, \"\"), RELS.HLINK);\n\t\twrite_record(ba, \"BrtHLink\", write_BrtHLink(l, rId));\n\t});\n\tdelete ws['!links'];\n}\nfunction write_LEGACYDRAWING(ba, ws, idx, rels) {\n\t/* [BrtLegacyDrawing] */\n\tif(ws['!comments'].length > 0) {\n\t\tvar rId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\twrite_record(ba, \"BrtLegacyDrawing\", write_RelID(\"rId\" + rId));\n\t\tws['!legacy'] = rId;\n\t}\n}\n\nfunction write_AUTOFILTER(ba, ws, wb, idx) {\n\tif(!ws['!autofilter']) return;\n\tvar data = ws['!autofilter'];\n\tvar ref = typeof data.ref === \"string\" ? data.ref : encode_range(data.ref);\n\n\t/* Update FilterDatabase defined name for the worksheet */\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]});\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\n\twrite_record(ba, \"BrtBeginAFilter\", write_UncheckedRfX(safe_decode_range(ref)));\n\t/* *FILTERCOLUMN */\n\t/* [SORTSTATE] */\n\t/* BrtEndAFilter */\n\twrite_record(ba, \"BrtEndAFilter\");\n}\n\nfunction write_WSVIEWS2(ba, ws, Workbook) {\n\twrite_record(ba, \"BrtBeginWsViews\");\n\t{ /* 1*WSVIEW2 */\n\t\t/* [ACUID] */\n\t\twrite_record(ba, \"BrtBeginWsView\", write_BrtBeginWsView(ws, Workbook));\n\t\t/* [BrtPane] */\n\t\t/* *4BrtSel */\n\t\t/* *4SXSELECT */\n\t\t/* *FRT */\n\t\twrite_record(ba, \"BrtEndWsView\");\n\t}\n\t/* *FRT */\n\twrite_record(ba, \"BrtEndWsViews\");\n}\n\nfunction write_WSFMTINFO() {\n\t/* [ACWSFMTINFO] */\n\t//write_record(ba, \"BrtWsFmtInfo\", write_BrtWsFmtInfo(ws));\n}\n\nfunction write_SHEETPROTECT(ba, ws) {\n\tif(!ws['!protect']) return;\n\t/* [BrtSheetProtectionIso] */\n\twrite_record(ba, \"BrtSheetProtection\", write_BrtSheetProtection(ws['!protect']));\n}\n\nfunction write_ws_bin(idx, opts, wb, rels) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar c = s; try { if(wb && wb.Workbook) c = wb.Workbook.Sheets[idx].CodeName || c; } catch(e) {}\n\tvar r = safe_decode_range(ws['!ref'] || \"A1\");\n\tif(r.e.c > 0x3FFF || r.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:XFD1048576\");\n\t\tr.e.c = Math.min(r.e.c, 0x3FFF);\n\t\tr.e.r = Math.min(r.e.c, 0xFFFFF);\n\t}\n\tws['!links'] = [];\n\t/* passed back to write_zip and removed there */\n\tws['!comments'] = [];\n\twrite_record(ba, \"BrtBeginSheet\");\n\tif(wb.vbaraw) write_record(ba, \"BrtWsProp\", write_BrtWsProp(c));\n\twrite_record(ba, \"BrtWsDim\", write_BrtWsDim(r));\n\twrite_WSVIEWS2(ba, ws, wb.Workbook);\n\twrite_WSFMTINFO(ba, ws);\n\twrite_COLINFOS(ba, ws, idx, opts, wb);\n\twrite_CELLTABLE(ba, ws, idx, opts, wb);\n\t/* [BrtSheetCalcProp] */\n\twrite_SHEETPROTECT(ba, ws);\n\t/* *([BrtRangeProtectionIso] BrtRangeProtection) */\n\t/* [SCENMAN] */\n\twrite_AUTOFILTER(ba, ws, wb, idx);\n\t/* [SORTSTATE] */\n\t/* [DCON] */\n\t/* [USERSHVIEWS] */\n\twrite_MERGECELLS(ba, ws);\n\t/* [BrtPhoneticInfo] */\n\t/* *CONDITIONALFORMATTING */\n\t/* [DVALS] */\n\twrite_HLINKS(ba, ws, rels);\n\t/* [BrtPrintOptions] */\n\tif(ws['!margins']) write_record(ba, \"BrtMargins\", write_BrtMargins(ws['!margins']));\n\t/* [BrtPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* [RWBRK] */\n\t/* [COLBRK] */\n\t/* *BrtBigName */\n\t/* [CELLWATCHES] */\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) write_IGNOREECS(ba, ws);\n\t/* [SMARTTAGS] */\n\t/* [BrtDrawing] */\n\twrite_LEGACYDRAWING(ba, ws, idx, rels);\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [OLEOBJECTS] */\n\t/* [ACTIVEXCONTROLS] */\n\t/* [WEBPUBITEMS] */\n\t/* [LISTPARTS] */\n\t/* FRTWORKSHEET */\n\twrite_record(ba, \"BrtEndSheet\");\n\treturn ba.end();\n}\nRELS.CHART = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart\";\nRELS.CHARTEX = \"http://schemas.microsoft.com/office/2014/relationships/chartEx\";\n\nfunction parse_Cache(data) {\n\tvar col = [];\n\tvar num = data.match(/^<c:numCache>/);\n\tvar f;\n\n\t/* 21.2.2.150 pt CT_NumVal */\n\t(data.match(/<c:pt idx=\"(\\d*)\">(.*?)<\\/c:pt>/mg)||[]).forEach(function(pt) {\n\t\tvar q = pt.match(/<c:pt idx=\"(\\d*?)\"><c:v>(.*)<\\/c:v><\\/c:pt>/);\n\t\tif(!q) return;\n\t\tcol[+q[1]] = num ? +q[2] : q[2];\n\t});\n\n\t/* 21.2.2.71 formatCode CT_Xstring */\n\tvar nf = unescapexml((data.match(/<c:formatCode>([\\s\\S]*?)<\\/c:formatCode>/) || [\"\",\"General\"])[1]);\n\n\t(data.match(/<c:f>(.*?)<\\/c:f>/mg)||[]).forEach(function(F) { f = F.replace(/<.*?>/g,\"\"); });\n\n\treturn [col, nf, f];\n}\n\n/* 21.2 DrawingML - Charts */\nfunction parse_chart(data, name, opts, rels, wb, csheet) {\n\tvar cs = ((csheet || {\"!type\":\"chart\"}));\n\tif(!data) return csheet;\n\t/* 21.2.2.27 chart CT_Chart */\n\n\tvar C = 0, R = 0, col = \"A\";\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\t/* 21.2.2.120 numCache CT_NumData */\n\t(data.match(/<c:numCache>[\\s\\S]*?<\\/c:numCache>/gm)||[]).forEach(function(nc) {\n\t\tvar cache = parse_Cache(nc);\n\t\trefguess.s.r = refguess.s.c = 0;\n\t\trefguess.e.c = C;\n\t\tcol = encode_col(C);\n\t\tcache[0].forEach(function(n,i) {\n\t\t\tcs[col + encode_row(i)] = {t:'n', v:n, z:cache[1] };\n\t\t\tR = i;\n\t\t});\n\t\tif(refguess.e.r < R) refguess.e.r = R;\n\t\t++C;\n\t});\n\tif(C > 0) cs[\"!ref\"] = encode_range(refguess);\n\treturn cs;\n}\nRELS.CS = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet\";\n\nvar CS_XML_ROOT = writextag('chartsheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\n/* 18.3 Worksheets also covers Chartsheets */\nfunction parse_cs_xml(data, opts, idx, rels, wb) {\n\tif(!data) return data;\n\t/* 18.3.1.12 chartsheet CT_ChartSheet */\n\tif(!rels) rels = {'!id':{}};\n\tvar s = ({'!type':\"chart\", '!drawel':null, '!rel':\"\"});\n\tvar m;\n\n\t/* 18.3.1.83 sheetPr CT_ChartsheetPr */\n\tvar sheetPr = data.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.36 drawing CT_Drawing */\n\tif((m = data.match(/drawing r:id=\"(.*?)\"/))) s['!rel'] = m[1];\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_xml(idx, opts, wb, rels) {\n\tvar o = [XML_HEADER, CS_XML_ROOT];\n\to[o.length] = writextag(\"drawing\", null, {\"r:id\": \"rId1\"});\n\tadd_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\tif(o.length>2) { o[o.length] = ('</chartsheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.331 BrtCsProp */\nfunction parse_BrtCsProp(data, length) {\n\tdata.l += 10;\n\tvar name = parse_XLWideString(data, length - 10);\n\treturn { name: name };\n}\n\n/* [MS-XLSB] 2.1.7.7 Chart Sheet */\nfunction parse_cs_bin(data, opts, idx, rels, wb) {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tvar s = {'!type':\"chart\", '!drawel':null, '!rel':\"\"};\n\tvar state = [];\n\tvar pass = false;\n\trecordhopper(data, function cs_parse(val, R_n, RT) {\n\t\tswitch(RT) {\n\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\t\ts['!rel'] = val; break;\n\n\t\t\tcase 0x028B: /* 'BrtCsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x028C: /* 'BrtCsPageSetup' */\n\t\t\tcase 0x029D: /* 'BrtCsProtection' */\n\t\t\tcase 0x02A7: /* 'BrtCsProtectionIso' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0) state.push(R_n);\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0) state.pop();\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_bin() {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginSheet\");\n\t/* [BrtCsProp] */\n\t/* CSVIEWS */\n\t/* [[BrtCsProtectionIso] BrtCsProtection] */\n\t/* [USERCSVIEWS] */\n\t/* [BrtMargins] */\n\t/* [BrtCsPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* BrtDrawing */\n\t/* [BrtLegacyDrawing] */\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [WEBPUBITEMS] */\n\t/* FRTCHARTSHEET */\n\twrite_record(ba, \"BrtEndSheet\");\n\treturn ba.end();\n}\n/* 18.2.28 (CT_WorkbookProtection) Defaults */\nvar WBPropsDef = [\n\t['allowRefreshQuery', false, \"bool\"],\n\t['autoCompressPictures', true, \"bool\"],\n\t['backupFile', false, \"bool\"],\n\t['checkCompatibility', false, \"bool\"],\n\t['CodeName', ''],\n\t['date1904', false, \"bool\"],\n\t['defaultThemeVersion', 0, \"int\"],\n\t['filterPrivacy', false, \"bool\"],\n\t['hidePivotFieldList', false, \"bool\"],\n\t['promptedSolutions', false, \"bool\"],\n\t['publishItems', false, \"bool\"],\n\t['refreshAllConnections', false, \"bool\"],\n\t['saveExternalLinkValues', true, \"bool\"],\n\t['showBorderUnselectedTables', true, \"bool\"],\n\t['showInkAnnotation', true, \"bool\"],\n\t['showObjects', 'all'],\n\t['showPivotChartFilter', false, \"bool\"],\n\t['updateLinks', 'userSet']\n];\n\n/* 18.2.30 (CT_BookView) Defaults */\nvar WBViewDef = [\n\t['activeTab', 0, \"int\"],\n\t['autoFilterDateGrouping', true, \"bool\"],\n\t['firstSheet', 0, \"int\"],\n\t['minimized', false, \"bool\"],\n\t['showHorizontalScroll', true, \"bool\"],\n\t['showSheetTabs', true, \"bool\"],\n\t['showVerticalScroll', true, \"bool\"],\n\t['tabRatio', 600, \"int\"],\n\t['visibility', 'visible']\n\t//window{Height,Width}, {x,y}Window\n];\n\n/* 18.2.19 (CT_Sheet) Defaults */\nvar SheetDef = [\n\t//['state', 'visible']\n];\n\n/* 18.2.2 (CT_CalcPr) Defaults */\nvar CalcPrDef = [\n\t['calcCompleted', 'true'],\n\t['calcMode', 'auto'],\n\t['calcOnSave', 'true'],\n\t['concurrentCalc', 'true'],\n\t['fullCalcOnLoad', 'false'],\n\t['fullPrecision', 'true'],\n\t['iterate', 'false'],\n\t['iterateCount', '100'],\n\t['iterateDelta', '0.001'],\n\t['refMode', 'A1']\n];\n\n/* 18.2.3 (CT_CustomWorkbookView) Defaults */\n/*var CustomWBViewDef = [\n\t['autoUpdate', 'false'],\n\t['changesSavedWin', 'false'],\n\t['includeHiddenRowCol', 'true'],\n\t['includePrintSettings', 'true'],\n\t['maximized', 'false'],\n\t['minimized', 'false'],\n\t['onlySync', 'false'],\n\t['personalView', 'false'],\n\t['showComments', 'commIndicator'],\n\t['showFormulaBar', 'true'],\n\t['showHorizontalScroll', 'true'],\n\t['showObjects', 'all'],\n\t['showSheetTabs', 'true'],\n\t['showStatusbar', 'true'],\n\t['showVerticalScroll', 'true'],\n\t['tabRatio', '600'],\n\t['xWindow', '0'],\n\t['yWindow', '0']\n];*/\n\nfunction push_defaults_array(target, defaults) {\n\tfor(var j = 0; j != target.length; ++j) { var w = target[j];\n\t\tfor(var i=0; i != defaults.length; ++i) { var z = defaults[i];\n\t\t\tif(w[z[0]] == null) w[z[0]] = z[1];\n\t\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof w[z[0]] == \"string\") w[z[0]] = parsexmlbool(w[z[0]]); break;\n\t\t\tcase \"int\": if(typeof w[z[0]] == \"string\") w[z[0]] = parseInt(w[z[0]], 10); break;\n\t\t\t}\n\t\t}\n\t}\n}\nfunction push_defaults(target, defaults) {\n\tfor(var i = 0; i != defaults.length; ++i) { var z = defaults[i];\n\t\tif(target[z[0]] == null) target[z[0]] = z[1];\n\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof target[z[0]] == \"string\") target[z[0]] = parsexmlbool(target[z[0]]); break;\n\t\t\tcase \"int\": if(typeof target[z[0]] == \"string\") target[z[0]] = parseInt(target[z[0]], 10); break;\n\t\t}\n\t}\n}\n\nfunction parse_wb_defaults(wb) {\n\tpush_defaults(wb.WBProps, WBPropsDef);\n\tpush_defaults(wb.CalcPr, CalcPrDef);\n\n\tpush_defaults_array(wb.WBView, WBViewDef);\n\tpush_defaults_array(wb.Sheets, SheetDef);\n\n\t_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904);\n}\n\nfunction safe1904(wb) {\n\t/* TODO: store date1904 somewhere else */\n\tif(!wb.Workbook) return \"false\";\n\tif(!wb.Workbook.WBProps) return \"false\";\n\treturn parsexmlbool(wb.Workbook.WBProps.date1904) ? \"true\" : \"false\";\n}\n\nvar badchars = \"][*?\\/\\\\\".split(\"\");\nfunction check_ws_name(n, safe) {\n\tif(n.length > 31) { if(safe) return false; throw new Error(\"Sheet names cannot exceed 31 chars\"); }\n\tvar _good = true;\n\tbadchars.forEach(function(c) {\n\t\tif(n.indexOf(c) == -1) return;\n\t\tif(!safe) throw new Error(\"Sheet name cannot contain : \\\\ / ? * [ ]\");\n\t\t_good = false;\n\t});\n\treturn _good;\n}\nfunction check_wb_names(N, S, codes) {\n\tN.forEach(function(n,i) {\n\t\tcheck_ws_name(n);\n\t\tfor(var j = 0; j < i; ++j) if(n == N[j]) throw new Error(\"Duplicate Sheet Name: \" + n);\n\t\tif(codes) {\n\t\t\tvar cn = (S && S[i] && S[i].CodeName) || n;\n\t\t\tif(cn.charCodeAt(0) == 95 && cn.length > 22) throw new Error(\"Bad Code Name: Worksheet\" + cn);\n\t\t}\n\t});\n}\nfunction check_wb(wb) {\n\tif(!wb || !wb.SheetNames || !wb.Sheets) throw new Error(\"Invalid Workbook\");\n\tif(!wb.SheetNames.length) throw new Error(\"Workbook is empty\");\n\tvar Sheets = (wb.Workbook && wb.Workbook.Sheets) || [];\n\tcheck_wb_names(wb.SheetNames, Sheets, !!wb.vbaraw);\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) check_ws(wb.Sheets[wb.SheetNames[i]], wb.SheetNames[i], i);\n\t/* TODO: validate workbook */\n}\n/* 18.2 Workbook */\nvar wbnsregex = /<\\w+:workbook/;\nfunction parse_wb_xml(data, opts) {\n\tif(!data) throw new Error(\"Could not find file\");\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, Names:[], xmlns: \"\" };\n\tvar pass = false, xmlns = \"xmlns\";\n\tvar dname = {}, dnstart = 0;\n\tdata.replace(tagregex, function xml_wb(x, idx) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\n\t\t\t/* 18.2.27 workbook CT_Workbook 1 */\n\t\t\tcase '<workbook':\n\t\t\t\tif(x.match(wbnsregex)) xmlns = \"xmlns\" + x.match(/<(\\w+):/)[1];\n\t\t\t\twb.xmlns = y[xmlns];\n\t\t\t\tbreak;\n\t\t\tcase '</workbook>': break;\n\n\t\t\t/* 18.2.13 fileVersion CT_FileVersion ? */\n\t\t\tcase '<fileVersion': delete y[0]; wb.AppVersion = y; break;\n\t\t\tcase '<fileVersion/>': case '</fileVersion>': break;\n\n\t\t\t/* 18.2.12 fileSharing CT_FileSharing ? */\n\t\t\tcase '<fileSharing':\n\t\t\t\tbreak;\n\t\t\tcase '<fileSharing/>': break;\n\n\t\t\t/* 18.2.28 workbookPr CT_WorkbookPr ? */\n\t\t\tcase '<workbookPr':\n\t\t\tcase '<workbookPr/>':\n\t\t\t\tWBPropsDef.forEach(function(w) {\n\t\t\t\t\tif(y[w[0]] == null) return;\n\t\t\t\t\tswitch(w[2]) {\n\t\t\t\t\t\tcase \"bool\": wb.WBProps[w[0]] = parsexmlbool(y[w[0]]); break;\n\t\t\t\t\t\tcase \"int\": wb.WBProps[w[0]] = parseInt(y[w[0]], 10); break;\n\t\t\t\t\t\tdefault: wb.WBProps[w[0]] = y[w[0]];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(y.codeName) wb.WBProps.CodeName = utf8read(y.codeName);\n\t\t\t\tbreak;\n\t\t\tcase '</workbookPr>': break;\n\n\t\t\t/* 18.2.29 workbookProtection CT_WorkbookProtection ? */\n\t\t\tcase '<workbookProtection':\n\t\t\t\tbreak;\n\t\t\tcase '<workbookProtection/>': break;\n\n\t\t\t/* 18.2.1 bookViews CT_BookViews ? */\n\t\t\tcase '<bookViews': case '<bookViews>': case '</bookViews>': break;\n\t\t\t/* 18.2.30 workbookView CT_BookView + */\n\t\t\tcase '<workbookView': case '<workbookView/>': delete y[0]; wb.WBView.push(y); break;\n\t\t\tcase '</workbookView>': break;\n\n\t\t\t/* 18.2.20 sheets CT_Sheets 1 */\n\t\t\tcase '<sheets': case '<sheets>': case '</sheets>': break; // aggregate sheet\n\t\t\t/* 18.2.19 sheet CT_Sheet + */\n\t\t\tcase '<sheet':\n\t\t\t\tswitch(y.state) {\n\t\t\t\t\tcase \"hidden\": y.Hidden = 1; break;\n\t\t\t\t\tcase \"veryHidden\": y.Hidden = 2; break;\n\t\t\t\t\tdefault: y.Hidden = 0;\n\t\t\t\t}\n\t\t\t\tdelete y.state;\n\t\t\t\ty.name = unescapexml(utf8read(y.name));\n\t\t\t\tdelete y[0]; wb.Sheets.push(y); break;\n\t\t\tcase '</sheet>': break;\n\n\t\t\t/* 18.2.15 functionGroups CT_FunctionGroups ? */\n\t\t\tcase '<functionGroups': case '<functionGroups/>': break;\n\t\t\t/* 18.2.14 functionGroup CT_FunctionGroup + */\n\t\t\tcase '<functionGroup': break;\n\n\t\t\t/* 18.2.9 externalReferences CT_ExternalReferences ? */\n\t\t\tcase '<externalReferences': case '</externalReferences>': case '<externalReferences>': break;\n\t\t\t/* 18.2.8 externalReference CT_ExternalReference + */\n\t\t\tcase '<externalReference': break;\n\n\t\t\t/* 18.2.6 definedNames CT_DefinedNames ? */\n\t\t\tcase '<definedNames/>': break;\n\t\t\tcase '<definedNames>': case '<definedNames': pass=true; break;\n\t\t\tcase '</definedNames>': pass=false; break;\n\t\t\t/* 18.2.5 definedName CT_DefinedName + */\n\t\t\tcase '<definedName': {\n\t\t\t\tdname = {};\n\t\t\t\tdname.Name = utf8read(y.name);\n\t\t\t\tif(y.comment) dname.Comment = y.comment;\n\t\t\t\tif(y.localSheetId) dname.Sheet = +y.localSheetId;\n\t\t\t\tif(parsexmlbool(y.hidden||\"0\")) dname.Hidden = true;\n\t\t\t\tdnstart = idx + x.length;\n\t\t\t}\tbreak;\n\t\t\tcase '</definedName>': {\n\t\t\t\tdname.Ref = unescapexml(utf8read(data.slice(dnstart, idx)));\n\t\t\t\twb.Names.push(dname);\n\t\t\t} break;\n\t\t\tcase '<definedName/>': break;\n\n\t\t\t/* 18.2.2 calcPr CT_CalcPr ? */\n\t\t\tcase '<calcPr': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '<calcPr/>': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '</calcPr>': break;\n\n\t\t\t/* 18.2.16 oleSize CT_OleSize ? (ref required) */\n\t\t\tcase '<oleSize': break;\n\n\t\t\t/* 18.2.4 customWorkbookViews CT_CustomWorkbookViews ? */\n\t\t\tcase '<customWorkbookViews>': case '</customWorkbookViews>': case '<customWorkbookViews': break;\n\t\t\t/* 18.2.3 customWorkbookView CT_CustomWorkbookView + */\n\t\t\tcase '<customWorkbookView': case '</customWorkbookView>': break;\n\n\t\t\t/* 18.2.18 pivotCaches CT_PivotCaches ? */\n\t\t\tcase '<pivotCaches>': case '</pivotCaches>': case '<pivotCaches': break;\n\t\t\t/* 18.2.17 pivotCache CT_PivotCache ? */\n\t\t\tcase '<pivotCache': break;\n\n\t\t\t/* 18.2.21 smartTagPr CT_SmartTagPr ? */\n\t\t\tcase '<smartTagPr': case '<smartTagPr/>': break;\n\n\t\t\t/* 18.2.23 smartTagTypes CT_SmartTagTypes ? */\n\t\t\tcase '<smartTagTypes': case '<smartTagTypes>': case '</smartTagTypes>': break;\n\t\t\t/* 18.2.22 smartTagType CT_SmartTagType ? */\n\t\t\tcase '<smartTagType': break;\n\n\t\t\t/* 18.2.24 webPublishing CT_WebPublishing ? */\n\t\t\tcase '<webPublishing': case '<webPublishing/>': break;\n\n\t\t\t/* 18.2.11 fileRecoveryPr CT_FileRecoveryPr ? */\n\t\t\tcase '<fileRecoveryPr': case '<fileRecoveryPr/>': break;\n\n\t\t\t/* 18.2.26 webPublishObjects CT_WebPublishObjects ? */\n\t\t\tcase '<webPublishObjects>': case '<webPublishObjects': case '</webPublishObjects>': break;\n\t\t\t/* 18.2.25 webPublishObject CT_WebPublishObject ? */\n\t\t\tcase '<webPublishObject': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': case '<extLst/>': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '<ext': pass=true; break; //TODO: check with versions of excel\n\t\t\tcase '</ext>': pass=false; break;\n\n\t\t\t/* Others */\n\t\t\tcase '<ArchID': break;\n\t\t\tcase '<AlternateContent':\n\t\t\tcase '<AlternateContent>': pass=true; break;\n\t\t\tcase '</AlternateContent>': pass=false; break;\n\n\t\t\t/* TODO */\n\t\t\tcase '<revisionPtr': break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in workbook');\n\t\t}\n\t\treturn x;\n\t});\n\tif(XMLNS.main.indexOf(wb.xmlns) === -1) throw new Error(\"Unknown Namespace: \" + wb.xmlns);\n\n\tparse_wb_defaults(wb);\n\n\treturn wb;\n}\n\nvar WB_XML_ROOT = writextag('workbook', null, {\n\t'xmlns': XMLNS.main[0],\n\t//'xmlns:mx': XMLNS.mx,\n\t//'xmlns:s': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\nfunction write_wb_xml(wb) {\n\tvar o = [XML_HEADER];\n\to[o.length] = WB_XML_ROOT;\n\n\tvar write_names = (wb.Workbook && (wb.Workbook.Names||[]).length > 0);\n\n\t/* fileVersion */\n\t/* fileSharing */\n\n\tvar workbookPr = ({codeName:\"ThisWorkbook\"});\n\tif(wb.Workbook && wb.Workbook.WBProps) {\n\t\tWBPropsDef.forEach(function(x) {\nif((wb.Workbook.WBProps[x[0]]) == null) return;\n\t\t\tif((wb.Workbook.WBProps[x[0]]) == x[1]) return;\n\t\t\tworkbookPr[x[0]] = (wb.Workbook.WBProps[x[0]]);\n\t\t});\nif(wb.Workbook.WBProps.CodeName) { workbookPr.codeName = wb.Workbook.WBProps.CodeName; delete workbookPr.CodeName; }\n\t}\n\to[o.length] = (writextag('workbookPr', null, workbookPr));\n\n\t/* workbookProtection */\n\n\tvar sheets = wb.Workbook && wb.Workbook.Sheets || [];\n\tvar i = 0;\n\n\t/* bookViews only written if first worksheet is hidden */\n\tif(sheets && sheets[0] && !!sheets[0].Hidden) {\n\t\to[o.length] = \"<bookViews>\";\n\t\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\t\tif(!sheets[i]) break;\n\t\t\tif(!sheets[i].Hidden) break;\n\t\t}\n\t\tif(i == wb.SheetNames.length) i = 0;\n\t\to[o.length] = '<workbookView firstSheet=\"' + i + '\" activeTab=\"' + i + '\"/>';\n\t\to[o.length] = \"</bookViews>\";\n\t}\n\n\to[o.length] = \"<sheets>\";\n\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\tvar sht = ({name:escapexml(wb.SheetNames[i].slice(0,31))});\n\t\tsht.sheetId = \"\"+(i+1);\n\t\tsht[\"r:id\"] = \"rId\"+(i+1);\n\t\tif(sheets[i]) switch(sheets[i].Hidden) {\n\t\t\tcase 1: sht.state = \"hidden\"; break;\n\t\t\tcase 2: sht.state = \"veryHidden\"; break;\n\t\t}\n\t\to[o.length] = (writextag('sheet',null,sht));\n\t}\n\to[o.length] = \"</sheets>\";\n\n\t/* functionGroups */\n\t/* externalReferences */\n\n\tif(write_names) {\n\t\to[o.length] = \"<definedNames>\";\n\t\tif(wb.Workbook && wb.Workbook.Names) wb.Workbook.Names.forEach(function(n) {\n\t\t\tvar d = {name:n.Name};\n\t\t\tif(n.Comment) d.comment = n.Comment;\n\t\t\tif(n.Sheet != null) d.localSheetId = \"\"+n.Sheet;\n\t\t\tif(n.Hidden) d.hidden = \"1\";\n\t\t\tif(!n.Ref) return;\n\t\t\to[o.length] = writextag('definedName', escapexml(n.Ref), d);\n\t\t});\n\t\to[o.length] = \"</definedNames>\";\n\t}\n\n\t/* calcPr */\n\t/* oleSize */\n\t/* customWorkbookViews */\n\t/* pivotCaches */\n\t/* smartTagPr */\n\t/* smartTagTypes */\n\t/* webPublishing */\n\t/* fileRecoveryPr */\n\t/* webPublishObjects */\n\t/* extLst */\n\n\tif(o.length>2){ o[o.length] = '</workbook>'; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.304 BrtBundleSh */\nfunction parse_BrtBundleSh(data, length) {\n\tvar z = {};\n\tz.Hidden = data.read_shift(4); //hsState ST_SheetState\n\tz.iTabID = data.read_shift(4);\n\tz.strRelID = parse_RelID(data,length-8);\n\tz.name = parse_XLWideString(data);\n\treturn z;\n}\nfunction write_BrtBundleSh(data, o) {\n\tif(!o) o = new_buf(127);\n\to.write_shift(4, data.Hidden);\n\to.write_shift(4, data.iTabID);\n\twrite_RelID(data.strRelID, o);\n\twrite_XLWideString(data.name.slice(0,31), o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.815 BrtWbProp */\nfunction parse_BrtWbProp(data, length) {\n\tvar o = ({});\n\tvar flags = data.read_shift(4);\n\to.defaultThemeVersion = data.read_shift(4);\n\tvar strName = (length > 8) ? parse_XLWideString(data) : \"\";\n\tif(strName.length > 0) o.CodeName = strName;\n\to.autoCompressPictures = !!(flags & 0x10000);\n\to.backupFile = !!(flags & 0x40);\n\to.checkCompatibility = !!(flags & 0x1000);\n\to.date1904 = !!(flags & 0x01);\n\to.filterPrivacy = !!(flags & 0x08);\n\to.hidePivotFieldList = !!(flags & 0x400);\n\to.promptedSolutions = !!(flags & 0x10);\n\to.publishItems = !!(flags & 0x800);\n\to.refreshAllConnections = !!(flags & 0x40000);\n\to.saveExternalLinkValues = !!(flags & 0x80);\n\to.showBorderUnselectedTables = !!(flags & 0x04);\n\to.showInkAnnotation = !!(flags & 0x20);\n\to.showObjects = [\"all\", \"placeholders\", \"none\"][(flags >> 13) & 0x03];\n\to.showPivotChartFilter = !!(flags & 0x8000);\n\to.updateLinks = [\"userSet\", \"never\", \"always\"][(flags >> 8) & 0x03];\n\treturn o;\n}\nfunction write_BrtWbProp(data, o) {\n\tif(!o) o = new_buf(72);\n\tvar flags = 0;\n\tif(data) {\n\t\t/* TODO: mirror parse_BrtWbProp fields */\n\t\tif(data.filterPrivacy) flags |= 0x08;\n\t}\n\to.write_shift(4, flags);\n\to.write_shift(4, 0);\n\twrite_XLSBCodeName(data && data.CodeName || \"ThisWorkbook\", o);\n\treturn o.slice(0, o.l);\n}\n\nfunction parse_BrtFRTArchID$(data, length) {\n\tvar o = {};\n\tdata.read_shift(4);\n\to.ArchID = data.read_shift(4);\n\tdata.l += length - 8;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.687 BrtName */\nfunction parse_BrtName(data, length, opts) {\n\tvar end = data.l + length;\n\tdata.l += 4; //var flags = data.read_shift(4);\n\tdata.l += 1; //var chKey = data.read_shift(1);\n\tvar itab = data.read_shift(4);\n\tvar name = parse_XLNameWideString(data);\n\tvar formula = parse_XLSBNameParsedFormula(data, 0, opts);\n\tvar comment = parse_XLNullableWideString(data);\n\t//if(0 /* fProc */) {\n\t\t// unusedstring1: XLNullableWideString\n\t\t// description: XLNullableWideString\n\t\t// helpTopic: XLNullableWideString\n\t\t// unusedstring2: XLNullableWideString\n\t//}\n\tdata.l = end;\n\tvar out = ({Name:name, Ptg:formula});\n\tif(itab < 0xFFFFFFF) out.Sheet = itab;\n\tif(comment) out.Comment = comment;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction parse_wb_bin(data, opts) {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar state = [];\n\tvar pass = false;\n\n\tif(!opts) opts = {};\n\topts.biff = 12;\n\n\tvar Names = [];\n\tvar supbooks = ([[]]);\n\tsupbooks.SheetNames = [];\n\tsupbooks.XTI = [];\n\n\trecordhopper(data, function hopper_wb(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009C: /* 'BrtBundleSh' */\n\t\t\t\tsupbooks.SheetNames.push(val.name);\n\t\t\t\twb.Sheets.push(val); break;\n\n\t\t\tcase 0x0099: /* 'BrtWbProp' */\n\t\t\t\twb.WBProps = val; break;\n\n\t\t\tcase 0x0027: /* 'BrtName' */\n\t\t\t\tif(val.Sheet != null) opts.SID = val.Sheet;\n\t\t\t\tval.Ref = stringify_formula(val.Ptg, null, null, supbooks, opts);\n\t\t\t\tdelete opts.SID;\n\t\t\t\tdelete val.Ptg;\n\t\t\t\tNames.push(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x040C: /* 'BrtNameExt' */ break;\n\n\t\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\tcase 0x029B: /* 'BrtSupAddin' */\n\t\t\t\tif(!supbooks[0].length) supbooks[0] = [RT, val];\n\t\t\t\telse supbooks.push([RT, val]);\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = [];\n\t\t\t\tbreak;\n\t\t\tcase 0x016A: /* 'BrtExternSheet' */\n\t\t\t\tif(supbooks.length === 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val);\n\t\t\t\tsupbooks.XTI = supbooks.XTI.concat(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x0169: /* 'BrtPlaceholderName' */\n\t\t\t\tbreak;\n\n\t\t\t/* case 'BrtModelTimeGroupingCalcCol' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0C01: /* 'BrtRevisionPtr' */\n\t\t\tcase 0x0817: /* 'BrtAbsPath15' */\n\t\t\tcase 0x0216: /* 'BrtBookProtection' */\n\t\t\tcase 0x02A5: /* 'BrtBookProtectionIso' */\n\t\t\tcase 0x009E: /* 'BrtBookView' */\n\t\t\tcase 0x009D: /* 'BrtCalcProp' */\n\t\t\tcase 0x0262: /* 'BrtCrashRecErr' */\n\t\t\tcase 0x0802: /* 'BrtDecoupledPivotCacheID' */\n\t\t\tcase 0x009B: /* 'BrtFileRecover' */\n\t\t\tcase 0x0224: /* 'BrtFileSharing' */\n\t\t\tcase 0x02A4: /* 'BrtFileSharingIso' */\n\t\t\tcase 0x0080: /* 'BrtFileVersion' */\n\t\t\tcase 0x0299: /* 'BrtFnGroup' */\n\t\t\tcase 0x0850: /* 'BrtModelRelationship' */\n\t\t\tcase 0x084D: /* 'BrtModelTable' */\n\t\t\tcase 0x0225: /* 'BrtOleSize' */\n\t\t\tcase 0x0805: /* 'BrtPivotTableRef' */\n\t\t\tcase 0x0254: /* 'BrtSmartTagType' */\n\t\t\tcase 0x081C: /* 'BrtTableSlicerCacheID' */\n\t\t\tcase 0x081B: /* 'BrtTableSlicerCacheIDs' */\n\t\t\tcase 0x0822: /* 'BrtTimelineCachePivotCacheID' */\n\t\t\tcase 0x018D: /* 'BrtUserBookView' */\n\t\t\tcase 0x009A: /* 'BrtWbFactoid' */\n\t\t\tcase 0x045D: /* 'BrtWbProp14' */\n\t\t\tcase 0x0229: /* 'BrtWebOpt' */\n\t\t\tcase 0x082B: /* 'BrtWorkBookPr15' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tcase 0x0010: /* 'BrtFRTArchID$' */ break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != \"BrtACBegin\" && state[state.length-1] != \"BrtFRTBegin\")) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tparse_wb_defaults(wb);\n\n\t// $FlowIgnore\n\twb.Names = Names;\n\n\t(wb).supbooks = supbooks;\n\treturn wb;\n}\n\nfunction write_BUNDLESHS(ba, wb) {\n\twrite_record(ba, \"BrtBeginBundleShs\");\n\tfor(var idx = 0; idx != wb.SheetNames.length; ++idx) {\n\t\tvar viz = wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx] && wb.Workbook.Sheets[idx].Hidden || 0;\n\t\tvar d = { Hidden: viz, iTabID: idx+1, strRelID: 'rId' + (idx+1), name: wb.SheetNames[idx] };\n\t\twrite_record(ba, \"BrtBundleSh\", write_BrtBundleSh(d));\n\t}\n\twrite_record(ba, \"BrtEndBundleShs\");\n}\n\n/* [MS-XLSB] 2.4.649 BrtFileVersion */\nfunction write_BrtFileVersion(data, o) {\n\tif(!o) o = new_buf(127);\n\tfor(var i = 0; i != 4; ++i) o.write_shift(4, 0);\n\twrite_XLWideString(\"SheetJS\", o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(\"7262\", o);\n\to.length = o.l;\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.301 BrtBookView */\nfunction write_BrtBookView(idx, o) {\n\tif(!o) o = new_buf(29);\n\to.write_shift(-4, 0);\n\to.write_shift(-4, 460);\n\to.write_shift(4, 28800);\n\to.write_shift(4, 17600);\n\to.write_shift(4, 500);\n\to.write_shift(4, idx);\n\to.write_shift(4, idx);\n\tvar flags = 0x78;\n\to.write_shift(1, flags);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\nfunction write_BOOKVIEWS(ba, wb) {\n\t/* required if hidden tab appears before visible tab */\n\tif(!wb.Workbook || !wb.Workbook.Sheets) return;\n\tvar sheets = wb.Workbook.Sheets;\n\tvar i = 0, vistab = -1, hidden = -1;\n\tfor(; i < sheets.length; ++i) {\n\t\tif(!sheets[i] || !sheets[i].Hidden && vistab == -1) vistab = i;\n\t\telse if(sheets[i].Hidden == 1 && hidden == -1) hidden = i;\n\t}\n\tif(hidden > vistab) return;\n\twrite_record(ba, \"BrtBeginBookViews\");\n\twrite_record(ba, \"BrtBookView\", write_BrtBookView(vistab));\n\t/* 1*(BrtBookView *FRT) */\n\twrite_record(ba, \"BrtEndBookViews\");\n}\n\n/* [MS-XLSB] 2.4.305 BrtCalcProp */\n/*function write_BrtCalcProp(data, o) {\n\tif(!o) o = new_buf(26);\n\to.write_shift(4,0); // force recalc\n\to.write_shift(4,1);\n\to.write_shift(4,0);\n\twrite_Xnum(0, o);\n\to.write_shift(-4, 1023);\n\to.write_shift(1, 0x33);\n\to.write_shift(1, 0x00);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.4.646 BrtFileRecover */\n/*function write_BrtFileRecover(data, o) {\n\tif(!o) o = new_buf(1);\n\to.write_shift(1,0);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction write_wb_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginBook\");\n\twrite_record(ba, \"BrtFileVersion\", write_BrtFileVersion());\n\t/* [[BrtFileSharingIso] BrtFileSharing] */\n\twrite_record(ba, \"BrtWbProp\", write_BrtWbProp(wb.Workbook && wb.Workbook.WBProps || null));\n\t/* [ACABSPATH] */\n\t/* [[BrtBookProtectionIso] BrtBookProtection] */\n\twrite_BOOKVIEWS(ba, wb, opts);\n\twrite_BUNDLESHS(ba, wb, opts);\n\t/* [FNGROUP] */\n\t/* [EXTERNALS] */\n\t/* *BrtName */\n\t/* write_record(ba, \"BrtCalcProp\", write_BrtCalcProp()); */\n\t/* [BrtOleSize] */\n\t/* *(BrtUserBookView *FRT) */\n\t/* [PIVOTCACHEIDS] */\n\t/* [BrtWbFactoid] */\n\t/* [SMARTTAGTYPES] */\n\t/* [BrtWebOpt] */\n\t/* write_record(ba, \"BrtFileRecover\", write_BrtFileRecover()); */\n\t/* [WEBPUBITEMS] */\n\t/* [CRERRS] */\n\t/* FRTWORKBOOK */\n\twrite_record(ba, \"BrtEndBook\");\n\n\treturn ba.end();\n}\nfunction parse_wb(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_wb_bin((data), opts);\n\treturn parse_wb_xml((data), opts);\n}\n\nfunction parse_ws(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ws_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ws_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_cs(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_cs_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_cs_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ms(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ms_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ms_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ds(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ds_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ds_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_sty(data, name, themes, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sty_bin((data), themes, opts);\n\treturn parse_sty_xml((data), themes, opts);\n}\n\nfunction parse_theme(data, name, opts) {\n\treturn parse_theme_xml(data, opts);\n}\n\nfunction parse_sst(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sst_bin((data), opts);\n\treturn parse_sst_xml((data), opts);\n}\n\nfunction parse_cmnt(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_comments_bin((data), opts);\n\treturn parse_comments_xml((data), opts);\n}\n\nfunction parse_cc(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_cc_bin((data), name, opts);\n\treturn parse_cc_xml((data), name, opts);\n}\n\nfunction parse_xlink(data, rel, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlink_bin((data), rel, name, opts);\n\treturn parse_xlink_xml((data), rel, name, opts);\n}\n\nfunction write_wb(wb, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_wb_bin : write_wb_xml)(wb, opts);\n}\n\nfunction write_ws(data, name, opts, wb, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_ws_bin : write_ws_xml)(data, opts, wb, rels);\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction write_cs(data, name, opts, wb, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_cs_bin : write_cs_xml)(data, opts, wb, rels);\n}\n\nfunction write_sty(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sty_bin : write_sty_xml)(data, opts);\n}\n\nfunction write_sst(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sst_bin : write_sst_xml)(data, opts);\n}\n\nfunction write_cmnt(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_comments_bin : write_comments_xml)(data, opts);\n}\n/*\nfunction write_cc(data, name:string, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_cc_bin : write_cc_xml)(data, opts);\n}\n*/\nvar attregexg2=/([\\w:]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar attregex2=/([\\w:]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nfunction xlml_parsexmltag(tag, skip_root) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = ([]); if(!skip_root) z[0] = words[0];\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\nif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\nfunction xlml_parsexmltagobj(tag) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = {};\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\nif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\n\n// ----\n\nfunction xlml_format(format, value) {\n\tvar fmt = XLMLFormatMap[format] || unescapexml(format);\n\tif(fmt === \"General\") return SSF._general(value);\n\treturn SSF.format(fmt, value);\n}\n\nfunction xlml_set_custprop(Custprops, key, cp, val) {\n\tvar oval = val;\n\tswitch((cp[0].match(/dt:dt=\"([\\w.]+)\"/)||[\"\",\"\"])[1]) {\n\t\tcase \"boolean\": oval = parsexmlbool(val); break;\n\t\tcase \"i2\": case \"int\": oval = parseInt(val, 10); break;\n\t\tcase \"r4\": case \"float\": oval = parseFloat(val); break;\n\t\tcase \"date\": case \"dateTime.tz\": oval = parseDate(val); break;\n\t\tcase \"i8\": case \"string\": case \"fixed\": case \"uuid\": case \"bin.base64\": break;\n\t\tdefault: throw new Error(\"bad custprop:\" + cp[0]);\n\t}\n\tCustprops[unescapexml(key)] = oval;\n}\n\nfunction safe_format_xlml(cell, nf, o) {\n\tif(cell.t === 'z') return;\n\tif(!o || o.cellText !== false) try {\n\t\tif(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; }\n\t\telse if(nf === \"General\") {\n\t\t\tif(cell.t === 'n') {\n\t\t\t\tif((cell.v|0) === cell.v) cell.w = SSF._general_int(cell.v);\n\t\t\t\telse cell.w = SSF._general_num(cell.v);\n\t\t\t}\n\t\t\telse cell.w = SSF._general(cell.v);\n\t\t}\n\t\telse cell.w = xlml_format(nf||\"General\", cell.v);\n\t} catch(e) { if(o.WTF) throw e; }\n\ttry {\n\t\tvar z = XLMLFormatMap[nf]||nf||\"General\";\n\t\tif(o.cellNF) cell.z = z;\n\t\tif(o.cellDates && cell.t == 'n' && SSF.is_date(z)) {\n\t\t\tvar _d = SSF.parse_date_code(cell.v); if(_d) { cell.t = 'd'; cell.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t}\n\t} catch(e) { if(o.WTF) throw e; }\n}\n\nfunction process_style_xlml(styles, stag, opts) {\n\tif(opts.cellStyles) {\n\t\tif(stag.Interior) {\n\t\t\tvar I = stag.Interior;\n\t\t\tif(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern;\n\t\t}\n\t}\n\tstyles[stag.ID] = stag;\n}\n\n/* TODO: there must exist some form of OSP-blessed spec */\nfunction parse_xlml_data(xml, ss, data, cell, base, styles, csty, row, arrayf, o) {\n\tvar nf = \"General\", sid = cell.StyleID, S = {}; o = o || {};\n\tvar interiors = [];\n\tvar i = 0;\n\tif(sid === undefined && row) sid = row.StyleID;\n\tif(sid === undefined && csty) sid = csty.StyleID;\n\twhile(styles[sid] !== undefined) {\n\t\tif(styles[sid].nf) nf = styles[sid].nf;\n\t\tif(styles[sid].Interior) interiors.push(styles[sid].Interior);\n\t\tif(!styles[sid].Parent) break;\n\t\tsid = styles[sid].Parent;\n\t}\n\tswitch(data.Type) {\n\t\tcase 'Boolean':\n\t\t\tcell.t = 'b';\n\t\t\tcell.v = parsexmlbool(xml);\n\t\t\tbreak;\n\t\tcase 'String':\n\t\t\tcell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml));\n\t\t\tcell.v = (xml.indexOf(\"<\") > -1 ? unescapexml(ss||xml).replace(/<.*?>/g, \"\") : cell.r); // todo: BR etc\n\t\t\tbreak;\n\t\tcase 'DateTime':\n\t\t\tif(xml.slice(-1) != \"Z\") xml += \"Z\";\n\t\t\tcell.v = (parseDate(xml) - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n\t\t\tif(cell.v !== cell.v) cell.v = unescapexml(xml);\n\t\t\telse if(cell.v<60) cell.v = cell.v -1;\n\t\t\tif(!nf || nf == \"General\") nf = \"yyyy-mm-dd\";\n\t\t\t/* falls through */\n\t\tcase 'Number':\n\t\t\tif(cell.v === undefined) cell.v=+xml;\n\t\t\tif(!cell.t) cell.t = 'n';\n\t\t\tbreak;\n\t\tcase 'Error': cell.t = 'e'; cell.v = RBErr[xml]; if(o.cellText !== false) cell.w = xml; break;\n\t\tdefault:\n\t\t\tif(xml == \"\" && ss == \"\") { cell.t = 'z'; }\n\t\t\telse { cell.t = 's'; cell.v = xlml_fixstr(ss||xml); }\n\t\t\tbreak;\n\t}\n\tsafe_format_xlml(cell, nf, o);\n\tif(o.cellFormula !== false) {\n\t\tif(cell.Formula) {\n\t\t\tvar fstr = unescapexml(cell.Formula);\n\t\t\t/* strictly speaking, the leading = is required but some writers omit */\n\t\t\tif(fstr.charCodeAt(0) == 61 /* = */) fstr = fstr.slice(1);\n\t\t\tcell.f = rc_to_a1(fstr, base);\n\t\t\tdelete cell.Formula;\n\t\t\tif(cell.ArrayRange == \"RC\") cell.F = rc_to_a1(\"RC:RC\", base);\n\t\t\telse if(cell.ArrayRange) {\n\t\t\t\tcell.F = rc_to_a1(cell.ArrayRange, base);\n\t\t\t\tarrayf.push([safe_decode_range(cell.F), cell.F]);\n\t\t\t}\n\t\t} else {\n\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\tif(base.r >= arrayf[i][0].s.r && base.r <= arrayf[i][0].e.r)\n\t\t\t\t\tif(base.c >= arrayf[i][0].s.c && base.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\tcell.F = arrayf[i][1];\n\t\t}\n\t}\n\tif(o.cellStyles) {\n\t\tinteriors.forEach(function(x) {\n\t\t\tif(!S.patternType && x.patternType) S.patternType = x.patternType;\n\t\t});\n\t\tcell.s = S;\n\t}\n\tif(cell.StyleID !== undefined) cell.ixfe = cell.StyleID;\n}\n\nfunction xlml_clean_comment(comment) {\n\tcomment.t = comment.v || \"\";\n\tcomment.t = comment.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\tcomment.v = comment.w = comment.ixfe = undefined;\n}\n\nfunction xlml_normalize(d) {\n\tif(has_buf && Buffer.isBuffer(d)) return d.toString('utf8');\n\tif(typeof d === 'string') return d;\n\t/* duktape */\n\tif(typeof Uint8Array !== 'undefined' && d instanceof Uint8Array) return utf8read(a2s(ab2a(d)));\n\tthrow new Error(\"Bad input format: expected Buffer or string\");\n}\n\n/* TODO: Everything */\n/* UOS uses CJK in tags */\nvar xlmlregex = /<(\\/?)([^\\s?><!\\/:]*:|)([^\\s?<>:\\/]+)(?:[\\s?:\\/][^>]*)?>/mg;\n//var xlmlregex = /<(\\/?)([a-z0-9]*:|)(\\w+)[^>]*>/mg;\nfunction parse_xlml_xml(d, _opts) {\n\tvar opts = _opts || {};\n\tmake_ssf(SSF);\n\tvar str = debom(xlml_normalize(d));\n\tif(opts.type == 'binary' || opts.type == 'array' || opts.type == 'base64') {\n\t\tif(typeof cptable !== 'undefined') str = cptable.utils.decode(65001, char_codes(str));\n\t\telse str = utf8read(str);\n\t}\n\tvar opening = str.slice(0, 1024).toLowerCase(), ishtml = false;\n\tif(opening.indexOf(\"<?xml\") == -1) [\"html\", \"table\", \"head\", \"meta\", \"script\", \"style\", \"div\"].forEach(function(tag) { if(opening.indexOf(\"<\" + tag) >= 0) ishtml = true; });\n\tif(ishtml) return HTML_.to_workbook(str, opts);\n\tvar Rn;\n\tvar state = [], tmp;\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar sheets = {}, sheetnames = [], cursheet = (opts.dense ? [] : {}), sheetname = \"\";\n\tvar table = {}, cell = ({}), row = {};// eslint-disable-line no-unused-vars\n\tvar dtag = xlml_parsexmltag('<Data ss:Type=\"String\">'), didx = 0;\n\tvar c = 0, r = 0;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\tvar styles = {}, stag = {};\n\tvar ss = \"\", fidx = 0;\n\tvar merges = [];\n\tvar Props = {}, Custprops = {}, pidx = 0, cp = [];\n\tvar comments = [], comment = ({});\n\tvar cstys = [], csty, seencol = false;\n\tvar arrayf = [];\n\tvar rowinfo = [], rowobj = {}, cc = 0, rr = 0;\n\tvar Workbook = ({ Sheets:[], WBProps:{date1904:false} }), wsprops = {};\n\txlmlregex.lastIndex = 0;\n\tstr = str.replace(/<!--([\\s\\S]*?)-->/mg,\"\");\n\tvar raw_Rn3 = \"\";\n\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3] = (raw_Rn3 = Rn[3]).toLowerCase())) {\n\t\tcase 'data' /*case 'Data'*/:\n\t\t\tif(raw_Rn3 == \"data\") {\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(state[state.length-1][1]) break;\n\t\t\tif(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]==/*\"Comment\"*/\"comment\"?comment:cell, {c:c,r:r}, styles, cstys[c], row, arrayf, opts);\n\t\t\telse { ss = \"\"; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; }\n\t\t\tbreak;\n\t\tcase 'cell' /*case 'Cell'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif(comments.length > 0) cell.c = comments;\n\t\t\t\tif((!opts.sheetRows || opts.sheetRows > r) && cell.v !== undefined) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!cursheet[r]) cursheet[r] = [];\n\t\t\t\t\t\tcursheet[r][c] = cell;\n\t\t\t\t\t} else cursheet[encode_col(c) + encode_row(r)] = cell;\n\t\t\t\t}\n\t\t\t\tif(cell.HRef) {\n\t\t\t\t\tcell.l = ({Target:cell.HRef});\n\t\t\t\t\tif(cell.HRefScreenTip) cell.l.Tooltip = cell.HRefScreenTip;\n\t\t\t\t\tdelete cell.HRef; delete cell.HRefScreenTip;\n\t\t\t\t}\n\t\t\t\tif(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\tcc = c + (parseInt(cell.MergeAcross,10)|0);\n\t\t\t\t\trr = r + (parseInt(cell.MergeDown,10)|0);\n\t\t\t\t\tmerges.push({s:{c:c,r:r},e:{c:cc,r:rr}});\n\t\t\t\t}\n\t\t\t\tif(!opts.sheetStubs) { if(cell.MergeAcross) c = cc + 1; else ++c; }\n\t\t\t\telse if(cell.MergeAcross || cell.MergeDown) {\nfor(var cma = c; cma <= cc; ++cma) {\n\t\t\t\t\t\tfor(var cmd = r; cmd <= rr; ++cmd) {\n\t\t\t\t\t\t\tif(cma > c || cmd > r) {\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!cursheet[cmd]) cursheet[cmd] = [];\n\t\t\t\t\t\t\t\t\tcursheet[cmd][cma] = {t:'z'};\n\t\t\t\t\t\t\t\t} else cursheet[encode_col(cma) + encode_row(cmd)] = {t:'z'};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tc = cc + 1;\n\t\t\t\t}\n\t\t\t\telse ++c;\n\t\t\t} else {\n\t\t\t\tcell = xlml_parsexmltagobj(Rn[0]);\n\t\t\t\tif(cell.Index) c = +cell.Index - 1;\n\t\t\t\tif(c < refguess.s.c) refguess.s.c = c;\n\t\t\t\tif(c > refguess.e.c) refguess.e.c = c;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") ++c;\n\t\t\t\tcomments = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'row' /*case 'Row'*/:\n\t\t\tif(Rn[1]==='/' || Rn[0].slice(-2) === \"/>\") {\n\t\t\t\tif(r < refguess.s.r) refguess.s.r = r;\n\t\t\t\tif(r > refguess.e.r) refguess.e.r = r;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") {\n\t\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\t}\n\t\t\t\tc = 0; ++r;\n\t\t\t} else {\n\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\trowobj = {};\n\t\t\t\tif(row.AutoFitHeight == \"0\" || row.Height) {\n\t\t\t\t\trowobj.hpx = parseInt(row.Height, 10); rowobj.hpt = px2pt(rowobj.hpx);\n\t\t\t\t\trowinfo[r] = rowobj;\n\t\t\t\t}\n\t\t\t\tif(row.Hidden == \"1\") { rowobj.hidden = true; rowinfo[r] = rowobj; }\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'worksheet' /*case 'Worksheet'*/: /* TODO: read range from FullRows/FullColumns */\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\tsheetnames.push(sheetname);\n\t\t\t\tif(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) {\n\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows <= refguess.e.r) {\n\t\t\t\t\t\tcursheet[\"!fullref\"] = cursheet[\"!ref\"];\n\t\t\t\t\t\trefguess.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(merges.length) cursheet[\"!merges\"] = merges;\n\t\t\t\tif(cstys.length > 0) cursheet[\"!cols\"] = cstys;\n\t\t\t\tif(rowinfo.length > 0) cursheet[\"!rows\"] = rowinfo;\n\t\t\t\tsheets[sheetname] = cursheet;\n\t\t\t} else {\n\t\t\t\trefguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\t\t\t\tr = c = 0;\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tsheetname = unescapexml(tmp.Name);\n\t\t\t\tcursheet = (opts.dense ? [] : {});\n\t\t\t\tmerges = [];\n\t\t\t\tarrayf = [];\n\t\t\t\trowinfo = [];\n\t\t\t\twsprops = {name:sheetname, Hidden:0};\n\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'table' /*case 'Table'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].slice(-2) == \"/>\") break;\n\t\t\telse {\n\t\t\t\ttable = xlml_parsexmltag(Rn[0]);\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\tcstys = []; seencol = false;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'style' /*case 'Style'*/:\n\t\t\tif(Rn[1]==='/') process_style_xlml(styles, stag, opts);\n\t\t\telse stag = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\n\t\tcase 'numberformat' /*case 'NumberFormat'*/:\n\t\t\tstag.nf = unescapexml(xlml_parsexmltag(Rn[0]).Format || \"General\");\n\t\t\tif(XLMLFormatMap[stag.nf]) stag.nf = XLMLFormatMap[stag.nf];\n\t\t\tfor(var ssfidx = 0; ssfidx != 0x188; ++ssfidx) if(SSF._table[ssfidx] == stag.nf) break;\n\t\t\tif(ssfidx == 0x188) for(ssfidx = 0x39; ssfidx != 0x188; ++ssfidx) if(SSF._table[ssfidx] == null) { SSF.load(stag.nf, ssfidx); break; }\n\t\t\tbreak;\n\n\t\tcase 'column' /*case 'Column'*/:\n\t\t\tif(state[state.length-1][0] !== /*'Table'*/'table') break;\n\t\t\tcsty = xlml_parsexmltag(Rn[0]);\n\t\t\tif(csty.Hidden) { csty.hidden = true; delete csty.Hidden; }\n\t\t\tif(csty.Width) csty.wpx = parseInt(csty.Width, 10);\n\t\t\tif(!seencol && csty.wpx > 10) {\n\t\t\t\tseencol = true; MDW = DEF_MDW; //find_mdw_wpx(csty.wpx);\n\t\t\t\tfor(var _col = 0; _col < cstys.length; ++_col) if(cstys[_col]) process_col(cstys[_col]);\n\t\t\t}\n\t\t\tif(seencol) process_col(csty);\n\t\t\tcstys[(csty.Index-1||cstys.length)] = csty;\n\t\t\tfor(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = dup(csty);\n\t\t\tbreak;\n\n\t\tcase 'namedrange' /*case 'NamedRange'*/:\n\t\t\tif(Rn[1]==='/') break;\n\t\t\tif(!Workbook.Names) Workbook.Names = [];\n\t\t\tvar _NamedRange = parsexmltag(Rn[0]);\n\t\t\tvar _DefinedName = ({\n\t\t\t\tName: _NamedRange.Name,\n\t\t\t\tRef: rc_to_a1(_NamedRange.RefersTo.slice(1), {r:0, c:0})\n\t\t\t});\n\t\t\tif(Workbook.Sheets.length>0) _DefinedName.Sheet=Workbook.Sheets.length-1;\nWorkbook.Names.push(_DefinedName);\n\t\t\tbreak;\n\n\t\tcase 'namedcell' /*case 'NamedCell'*/: break;\n\t\tcase 'b' /*case 'B'*/: break;\n\t\tcase 'i' /*case 'I'*/: break;\n\t\tcase 'u' /*case 'U'*/: break;\n\t\tcase 's' /*case 'S'*/: break;\n\t\tcase 'em' /*case 'EM'*/: break;\n\t\tcase 'h2' /*case 'H2'*/: break;\n\t\tcase 'h3' /*case 'H3'*/: break;\n\t\tcase 'sub' /*case 'Sub'*/: break;\n\t\tcase 'sup' /*case 'Sup'*/: break;\n\t\tcase 'span' /*case 'Span'*/: break;\n\t\tcase 'alignment' /*case 'Alignment'*/:\n\t\t\tbreak;\n\t\tcase 'borders' /*case 'Borders'*/: break;\n\t\tcase 'border' /*case 'Border'*/: break;\n\t\tcase 'font' /*case 'Font'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") ss += str.slice(fidx, Rn.index);\n\t\t\telse fidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'interior' /*case 'Interior'*/:\n\t\t\tif(!opts.cellStyles) break;\n\t\t\tstag.Interior = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\t\tcase 'protection' /*case 'Protection'*/: break;\n\n\t\tcase 'author' /*case 'Author'*/:\n\t\tcase 'title' /*case 'Title'*/:\n\t\tcase 'description' /*case 'Description'*/:\n\t\tcase 'created' /*case 'Created'*/:\n\t\tcase 'keywords' /*case 'Keywords'*/:\n\t\tcase 'subject' /*case 'Subject'*/:\n\t\tcase 'category' /*case 'Category'*/:\n\t\tcase 'company' /*case 'Company'*/:\n\t\tcase 'lastauthor' /*case 'LastAuthor'*/:\n\t\tcase 'lastsaved' /*case 'LastSaved'*/:\n\t\tcase 'lastprinted' /*case 'LastPrinted'*/:\n\t\tcase 'version' /*case 'Version'*/:\n\t\tcase 'revision' /*case 'Revision'*/:\n\t\tcase 'totaltime' /*case 'TotalTime'*/:\n\t\tcase 'hyperlinkbase' /*case 'HyperlinkBase'*/:\n\t\tcase 'manager' /*case 'Manager'*/:\n\t\tcase 'contentstatus' /*case 'ContentStatus'*/:\n\t\tcase 'identifier' /*case 'Identifier'*/:\n\t\tcase 'language' /*case 'Language'*/:\n\t\tcase 'appname' /*case 'AppName'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") xlml_set_prop(Props, raw_Rn3, str.slice(pidx, Rn.index));\n\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'paragraphs' /*case 'Paragraphs'*/: break;\n\n\t\tcase 'styles' /*case 'Styles'*/:\n\t\tcase 'workbook' /*case 'Workbook'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse state.push([Rn[3], false]);\n\t\t\tbreak;\n\n\t\tcase 'comment' /*case 'Comment'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\txlml_clean_comment(comment);\n\t\t\t\tcomments.push(comment);\n\t\t\t} else {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcomment = ({a:tmp.Author});\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'autofilter' /*case 'AutoFilter'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tvar AutoFilter = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcursheet['!autofilter'] = { ref:rc_to_a1(AutoFilter.Range).replace(/\\$/g,\"\") };\n\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'name' /*case 'Name'*/: break;\n\n\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t} else {\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'pixelsperinch' /*case 'PixelsPerInch'*/:\n\t\t\tbreak;\n\t\tcase 'componentoptions' /*case 'ComponentOptions'*/:\n\t\tcase 'documentproperties' /*case 'DocumentProperties'*/:\n\t\tcase 'customdocumentproperties' /*case 'CustomDocumentProperties'*/:\n\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/:\n\t\tcase 'pivottable' /*case 'PivotTable'*/:\n\t\tcase 'pivotcache' /*case 'PivotCache'*/:\n\t\tcase 'names' /*case 'Names'*/:\n\t\tcase 'mapinfo' /*case 'MapInfo'*/:\n\t\tcase 'pagebreaks' /*case 'PageBreaks'*/:\n\t\tcase 'querytable' /*case 'QueryTable'*/:\n\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\tcase 'schema' /*case 'Schema'*/: //case 'data' /*case 'data'*/:\n\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\tcase 'smarttagtype' /*case 'SmartTagType'*/:\n\t\tcase 'smarttags' /*case 'SmartTags'*/:\n\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/:\n\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/:\n\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\t/* FODS file root is <office:document> */\n\t\t\tif(state.length == 0 && Rn[3] == \"document\") return parse_fods(str, opts);\n\t\t\t/* UOS file root is <uof:UOF> */\n\t\t\tif(state.length == 0 && Rn[3] == \"uof\"/*\"UOF\"*/) return parse_fods(str, opts);\n\n\t\t\tvar seen = true;\n\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t/* OfficeDocumentSettings */\n\t\t\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'allowpng' /*case 'AllowPNG'*/: break;\n\t\t\t\t\tcase 'removepersonalinformation' /*case 'RemovePersonalInformation'*/: break;\n\t\t\t\t\tcase 'downloadcomponents' /*case 'DownloadComponents'*/: break;\n\t\t\t\t\tcase 'locationofcomponents' /*case 'LocationOfComponents'*/: break;\n\t\t\t\t\tcase 'colors' /*case 'Colors'*/: break;\n\t\t\t\t\tcase 'color' /*case 'Color'*/: break;\n\t\t\t\t\tcase 'index' /*case 'Index'*/: break;\n\t\t\t\t\tcase 'rgb' /*case 'RGB'*/: break;\n\t\t\t\t\tcase 'targetscreensize' /*case 'TargetScreenSize'*/: break;\n\t\t\t\t\tcase 'readonlyrecommended' /*case 'ReadOnlyRecommended'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ComponentOptions */\n\t\t\t\tcase 'componentoptions' /*case 'ComponentOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'toolbar' /*case 'Toolbar'*/: break;\n\t\t\t\t\tcase 'hideofficelogo' /*case 'HideOfficeLogo'*/: break;\n\t\t\t\t\tcase 'spreadsheetautofit' /*case 'SpreadsheetAutoFit'*/: break;\n\t\t\t\t\tcase 'label' /*case 'Label'*/: break;\n\t\t\t\t\tcase 'caption' /*case 'Caption'*/: break;\n\t\t\t\t\tcase 'maxheight' /*case 'MaxHeight'*/: break;\n\t\t\t\t\tcase 'maxwidth' /*case 'MaxWidth'*/: break;\n\t\t\t\t\tcase 'nextsheetnumber' /*case 'NextSheetNumber'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ExcelWorkbook */\n\t\t\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'date1904' /*case 'Date1904'*/:\nWorkbook.WBProps.date1904 = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'windowheight' /*case 'WindowHeight'*/: break;\n\t\t\t\t\tcase 'windowwidth' /*case 'WindowWidth'*/: break;\n\t\t\t\t\tcase 'windowtopx' /*case 'WindowTopX'*/: break;\n\t\t\t\t\tcase 'windowtopy' /*case 'WindowTopY'*/: break;\n\t\t\t\t\tcase 'tabratio' /*case 'TabRatio'*/: break;\n\t\t\t\t\tcase 'protectstructure' /*case 'ProtectStructure'*/: break;\n\t\t\t\t\tcase 'protectwindow' /*case 'ProtectWindow'*/: break;\n\t\t\t\t\tcase 'protectwindows' /*case 'ProtectWindows'*/: break;\n\t\t\t\t\tcase 'activesheet' /*case 'ActiveSheet'*/: break;\n\t\t\t\t\tcase 'displayinknotes' /*case 'DisplayInkNotes'*/: break;\n\t\t\t\t\tcase 'firstvisiblesheet' /*case 'FirstVisibleSheet'*/: break;\n\t\t\t\t\tcase 'supbook' /*case 'SupBook'*/: break;\n\t\t\t\t\tcase 'sheetname' /*case 'SheetName'*/: break;\n\t\t\t\t\tcase 'sheetindex' /*case 'SheetIndex'*/: break;\n\t\t\t\t\tcase 'sheetindexfirst' /*case 'SheetIndexFirst'*/: break;\n\t\t\t\t\tcase 'sheetindexlast' /*case 'SheetIndexLast'*/: break;\n\t\t\t\t\tcase 'dll' /*case 'Dll'*/: break;\n\t\t\t\t\tcase 'acceptlabelsinformulas' /*case 'AcceptLabelsInFormulas'*/: break;\n\t\t\t\t\tcase 'donotsavelinkvalues' /*case 'DoNotSaveLinkValues'*/: break;\n\t\t\t\t\tcase 'iteration' /*case 'Iteration'*/: break;\n\t\t\t\t\tcase 'maxiterations' /*case 'MaxIterations'*/: break;\n\t\t\t\t\tcase 'maxchange' /*case 'MaxChange'*/: break;\n\t\t\t\t\tcase 'path' /*case 'Path'*/: break;\n\t\t\t\t\tcase 'xct' /*case 'Xct'*/: break;\n\t\t\t\t\tcase 'count' /*case 'Count'*/: break;\n\t\t\t\t\tcase 'selectedsheets' /*case 'SelectedSheets'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tcase 'uncalced' /*case 'Uncalced'*/: break;\n\t\t\t\t\tcase 'startupprompt' /*case 'StartupPrompt'*/: break;\n\t\t\t\t\tcase 'crn' /*case 'Crn'*/: break;\n\t\t\t\t\tcase 'externname' /*case 'ExternName'*/: break;\n\t\t\t\t\tcase 'formula' /*case 'Formula'*/: break;\n\t\t\t\t\tcase 'colfirst' /*case 'ColFirst'*/: break;\n\t\t\t\t\tcase 'collast' /*case 'ColLast'*/: break;\n\t\t\t\t\tcase 'wantadvise' /*case 'WantAdvise'*/: break;\n\t\t\t\t\tcase 'boolean' /*case 'Boolean'*/: break;\n\t\t\t\t\tcase 'error' /*case 'Error'*/: break;\n\t\t\t\t\tcase 'text' /*case 'Text'*/: break;\n\t\t\t\t\tcase 'ole' /*case 'OLE'*/: break;\n\t\t\t\t\tcase 'noautorecover' /*case 'NoAutoRecover'*/: break;\n\t\t\t\t\tcase 'publishobjects' /*case 'PublishObjects'*/: break;\n\t\t\t\t\tcase 'donotcalculatebeforesave' /*case 'DoNotCalculateBeforeSave'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'refmoder1c1' /*case 'RefModeR1C1'*/: break;\n\t\t\t\t\tcase 'embedsavesmarttags' /*case 'EmbedSaveSmartTags'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorkbookOptions */\n\t\t\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'owcversion' /*case 'OWCVersion'*/: break;\n\t\t\t\t\tcase 'height' /*case 'Height'*/: break;\n\t\t\t\t\tcase 'width' /*case 'Width'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorksheetOptions */\n\t\t\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'visible' /*case 'Visible'*/:\n\t\t\t\t\t\tif(Rn[0].slice(-2) === \"/>\"){/* empty */}\n\t\t\t\t\t\telse if(Rn[1]===\"/\") switch(str.slice(pidx, Rn.index)) {\n\t\t\t\t\t\t\tcase \"SheetHidden\": wsprops.Hidden = 1; break;\n\t\t\t\t\t\t\tcase \"SheetVeryHidden\": wsprops.Hidden = 2; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'header' /*case 'Header'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tcursheet['!margins'].header = parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'footer' /*case 'Footer'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tcursheet['!margins'].footer = parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'pagemargins' /*case 'PageMargins'*/:\n\t\t\t\t\t\tvar pagemargins = parsexmltag(Rn[0]);\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={},'xlml');\n\t\t\t\t\t\tif(pagemargins.Top) cursheet['!margins'].top = pagemargins.Top;\n\t\t\t\t\t\tif(pagemargins.Left) cursheet['!margins'].left = pagemargins.Left;\n\t\t\t\t\t\tif(pagemargins.Right) cursheet['!margins'].right = pagemargins.Right;\n\t\t\t\t\t\tif(pagemargins.Bottom) cursheet['!margins'].bottom = pagemargins.Bottom;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'displayrighttoleft' /*case 'DisplayRightToLeft'*/:\n\t\t\t\t\t\tif(!Workbook.Views) Workbook.Views = [];\n\t\t\t\t\t\tif(!Workbook.Views[0]) Workbook.Views[0] = {};\n\t\t\t\t\t\tWorkbook.Views[0].RTL = true;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'freezepanes' /*case 'FreezePanes'*/: break;\n\t\t\t\t\tcase 'frozennosplit' /*case 'FrozenNoSplit'*/: break;\n\n\t\t\t\t\tcase 'splithorizontal' /*case 'SplitHorizontal'*/:\n\t\t\t\t\tcase 'splitvertical' /*case 'SplitVertical'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'donotdisplaygridlines' /*case 'DoNotDisplayGridlines'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'activerow' /*case 'ActiveRow'*/: break;\n\t\t\t\t\tcase 'activecol' /*case 'ActiveCol'*/: break;\n\t\t\t\t\tcase 'toprowbottompane' /*case 'TopRowBottomPane'*/: break;\n\t\t\t\t\tcase 'leftcolumnrightpane' /*case 'LeftColumnRightPane'*/: break;\n\n\t\t\t\t\tcase 'unsynced' /*case 'Unsynced'*/: break;\n\t\t\t\t\tcase 'print' /*case 'Print'*/: break;\n\t\t\t\t\tcase 'panes' /*case 'Panes'*/: break;\n\t\t\t\t\tcase 'scale' /*case 'Scale'*/: break;\n\t\t\t\t\tcase 'pane' /*case 'Pane'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'layout' /*case 'Layout'*/: break;\n\t\t\t\t\tcase 'pagesetup' /*case 'PageSetup'*/: break;\n\t\t\t\t\tcase 'selected' /*case 'Selected'*/: break;\n\t\t\t\t\tcase 'protectobjects' /*case 'ProtectObjects'*/: break;\n\t\t\t\t\tcase 'enableselection' /*case 'EnableSelection'*/: break;\n\t\t\t\t\tcase 'protectscenarios' /*case 'ProtectScenarios'*/: break;\n\t\t\t\t\tcase 'validprinterinfo' /*case 'ValidPrinterInfo'*/: break;\n\t\t\t\t\tcase 'horizontalresolution' /*case 'HorizontalResolution'*/: break;\n\t\t\t\t\tcase 'verticalresolution' /*case 'VerticalResolution'*/: break;\n\t\t\t\t\tcase 'numberofcopies' /*case 'NumberofCopies'*/: break;\n\t\t\t\t\tcase 'activepane' /*case 'ActivePane'*/: break;\n\t\t\t\t\tcase 'toprowvisible' /*case 'TopRowVisible'*/: break;\n\t\t\t\t\tcase 'leftcolumnvisible' /*case 'LeftColumnVisible'*/: break;\n\t\t\t\t\tcase 'fittopage' /*case 'FitToPage'*/: break;\n\t\t\t\t\tcase 'rangeselection' /*case 'RangeSelection'*/: break;\n\t\t\t\t\tcase 'papersizeindex' /*case 'PaperSizeIndex'*/: break;\n\t\t\t\t\tcase 'pagelayoutzoom' /*case 'PageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'pagebreakzoom' /*case 'PageBreakZoom'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'fitwidth' /*case 'FitWidth'*/: break;\n\t\t\t\t\tcase 'fitheight' /*case 'FitHeight'*/: break;\n\t\t\t\t\tcase 'commentslayout' /*case 'CommentsLayout'*/: break;\n\t\t\t\t\tcase 'zoom' /*case 'Zoom'*/: break;\n\t\t\t\t\tcase 'lefttoright' /*case 'LeftToRight'*/: break;\n\t\t\t\t\tcase 'gridlines' /*case 'Gridlines'*/: break;\n\t\t\t\t\tcase 'allowsort' /*case 'AllowSort'*/: break;\n\t\t\t\t\tcase 'allowfilter' /*case 'AllowFilter'*/: break;\n\t\t\t\t\tcase 'allowinsertrows' /*case 'AllowInsertRows'*/: break;\n\t\t\t\t\tcase 'allowdeleterows' /*case 'AllowDeleteRows'*/: break;\n\t\t\t\t\tcase 'allowinsertcols' /*case 'AllowInsertCols'*/: break;\n\t\t\t\t\tcase 'allowdeletecols' /*case 'AllowDeleteCols'*/: break;\n\t\t\t\t\tcase 'allowinserthyperlinks' /*case 'AllowInsertHyperlinks'*/: break;\n\t\t\t\t\tcase 'allowformatcells' /*case 'AllowFormatCells'*/: break;\n\t\t\t\t\tcase 'allowsizecols' /*case 'AllowSizeCols'*/: break;\n\t\t\t\t\tcase 'allowsizerows' /*case 'AllowSizeRows'*/: break;\n\t\t\t\t\tcase 'nosummaryrowsbelowdetail' /*case 'NoSummaryRowsBelowDetail'*/: break;\n\t\t\t\t\tcase 'tabcolorindex' /*case 'TabColorIndex'*/: break;\n\t\t\t\t\tcase 'donotdisplayheadings' /*case 'DoNotDisplayHeadings'*/: break;\n\t\t\t\t\tcase 'showpagelayoutzoom' /*case 'ShowPageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'nosummarycolumnsrightdetail' /*case 'NoSummaryColumnsRightDetail'*/: break;\n\t\t\t\t\tcase 'blackandwhite' /*case 'BlackAndWhite'*/: break;\n\t\t\t\t\tcase 'donotdisplayzeros' /*case 'DoNotDisplayZeros'*/: break;\n\t\t\t\t\tcase 'displaypagebreak' /*case 'DisplayPageBreak'*/: break;\n\t\t\t\t\tcase 'rowcolheadings' /*case 'RowColHeadings'*/: break;\n\t\t\t\t\tcase 'donotdisplayoutline' /*case 'DoNotDisplayOutline'*/: break;\n\t\t\t\t\tcase 'noorientation' /*case 'NoOrientation'*/: break;\n\t\t\t\t\tcase 'allowusepivottables' /*case 'AllowUsePivotTables'*/: break;\n\t\t\t\t\tcase 'zeroheight' /*case 'ZeroHeight'*/: break;\n\t\t\t\t\tcase 'viewablerange' /*case 'ViewableRange'*/: break;\n\t\t\t\t\tcase 'selection' /*case 'Selection'*/: break;\n\t\t\t\t\tcase 'protectcontents' /*case 'ProtectContents'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'pivottable' /*case 'PivotTable'*/: case 'pivotcache' /*case 'PivotCache'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'immediateitemsondrop' /*case 'ImmediateItemsOnDrop'*/: break;\n\t\t\t\t\tcase 'showpagemultipleitemlabel' /*case 'ShowPageMultipleItemLabel'*/: break;\n\t\t\t\t\tcase 'compactrowindent' /*case 'CompactRowIndent'*/: break;\n\t\t\t\t\tcase 'location' /*case 'Location'*/: break;\n\t\t\t\t\tcase 'pivotfield' /*case 'PivotField'*/: break;\n\t\t\t\t\tcase 'orientation' /*case 'Orientation'*/: break;\n\t\t\t\t\tcase 'layoutform' /*case 'LayoutForm'*/: break;\n\t\t\t\t\tcase 'layoutsubtotallocation' /*case 'LayoutSubtotalLocation'*/: break;\n\t\t\t\t\tcase 'layoutcompactrow' /*case 'LayoutCompactRow'*/: break;\n\t\t\t\t\tcase 'position' /*case 'Position'*/: break;\n\t\t\t\t\tcase 'pivotitem' /*case 'PivotItem'*/: break;\n\t\t\t\t\tcase 'datatype' /*case 'DataType'*/: break;\n\t\t\t\t\tcase 'datafield' /*case 'DataField'*/: break;\n\t\t\t\t\tcase 'sourcename' /*case 'SourceName'*/: break;\n\t\t\t\t\tcase 'parentfield' /*case 'ParentField'*/: break;\n\t\t\t\t\tcase 'ptlineitems' /*case 'PTLineItems'*/: break;\n\t\t\t\t\tcase 'ptlineitem' /*case 'PTLineItem'*/: break;\n\t\t\t\t\tcase 'countofsameitems' /*case 'CountOfSameItems'*/: break;\n\t\t\t\t\tcase 'item' /*case 'Item'*/: break;\n\t\t\t\t\tcase 'itemtype' /*case 'ItemType'*/: break;\n\t\t\t\t\tcase 'ptsource' /*case 'PTSource'*/: break;\n\t\t\t\t\tcase 'cacheindex' /*case 'CacheIndex'*/: break;\n\t\t\t\t\tcase 'consolidationreference' /*case 'ConsolidationReference'*/: break;\n\t\t\t\t\tcase 'filename' /*case 'FileName'*/: break;\n\t\t\t\t\tcase 'reference' /*case 'Reference'*/: break;\n\t\t\t\t\tcase 'nocolumngrand' /*case 'NoColumnGrand'*/: break;\n\t\t\t\t\tcase 'norowgrand' /*case 'NoRowGrand'*/: break;\n\t\t\t\t\tcase 'blanklineafteritems' /*case 'BlankLineAfterItems'*/: break;\n\t\t\t\t\tcase 'hidden' /*case 'Hidden'*/: break;\n\t\t\t\t\tcase 'subtotal' /*case 'Subtotal'*/: break;\n\t\t\t\t\tcase 'basefield' /*case 'BaseField'*/: break;\n\t\t\t\t\tcase 'mapchilditems' /*case 'MapChildItems'*/: break;\n\t\t\t\t\tcase 'function' /*case 'Function'*/: break;\n\t\t\t\t\tcase 'refreshonfileopen' /*case 'RefreshOnFileOpen'*/: break;\n\t\t\t\t\tcase 'printsettitles' /*case 'PrintSetTitles'*/: break;\n\t\t\t\t\tcase 'mergelabels' /*case 'MergeLabels'*/: break;\n\t\t\t\t\tcase 'defaultversion' /*case 'DefaultVersion'*/: break;\n\t\t\t\t\tcase 'refreshname' /*case 'RefreshName'*/: break;\n\t\t\t\t\tcase 'refreshdate' /*case 'RefreshDate'*/: break;\n\t\t\t\t\tcase 'refreshdatecopy' /*case 'RefreshDateCopy'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tcase 'versionlastupdate' /*case 'VersionLastUpdate'*/: break;\n\t\t\t\t\tcase 'versionupdateablemin' /*case 'VersionUpdateableMin'*/: break;\n\t\t\t\t\tcase 'versionrefreshablemin' /*case 'VersionRefreshableMin'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PageBreaks */\n\t\t\t\tcase 'pagebreaks' /*case 'PageBreaks'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'colbreaks' /*case 'ColBreaks'*/: break;\n\t\t\t\t\tcase 'colbreak' /*case 'ColBreak'*/: break;\n\t\t\t\t\tcase 'rowbreaks' /*case 'RowBreaks'*/: break;\n\t\t\t\t\tcase 'rowbreak' /*case 'RowBreak'*/: break;\n\t\t\t\t\tcase 'colstart' /*case 'ColStart'*/: break;\n\t\t\t\t\tcase 'colend' /*case 'ColEnd'*/: break;\n\t\t\t\t\tcase 'rowend' /*case 'RowEnd'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* AutoFilter */\n\t\t\t\tcase 'autofilter' /*case 'AutoFilter'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'autofiltercolumn' /*case 'AutoFilterColumn'*/: break;\n\t\t\t\t\tcase 'autofiltercondition' /*case 'AutoFilterCondition'*/: break;\n\t\t\t\t\tcase 'autofilterand' /*case 'AutoFilterAnd'*/: break;\n\t\t\t\t\tcase 'autofilteror' /*case 'AutoFilterOr'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* QueryTable */\n\t\t\t\tcase 'querytable' /*case 'QueryTable'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'id' /*case 'Id'*/: break;\n\t\t\t\t\tcase 'autoformatfont' /*case 'AutoFormatFont'*/: break;\n\t\t\t\t\tcase 'autoformatpattern' /*case 'AutoFormatPattern'*/: break;\n\t\t\t\t\tcase 'querysource' /*case 'QuerySource'*/: break;\n\t\t\t\t\tcase 'querytype' /*case 'QueryType'*/: break;\n\t\t\t\t\tcase 'enableredirections' /*case 'EnableRedirections'*/: break;\n\t\t\t\t\tcase 'refreshedinxl9' /*case 'RefreshedInXl9'*/: break;\n\t\t\t\t\tcase 'urlstring' /*case 'URLString'*/: break;\n\t\t\t\t\tcase 'htmltables' /*case 'HTMLTables'*/: break;\n\t\t\t\t\tcase 'connection' /*case 'Connection'*/: break;\n\t\t\t\t\tcase 'commandtext' /*case 'CommandText'*/: break;\n\t\t\t\t\tcase 'refreshinfo' /*case 'RefreshInfo'*/: break;\n\t\t\t\t\tcase 'notitles' /*case 'NoTitles'*/: break;\n\t\t\t\t\tcase 'nextid' /*case 'NextId'*/: break;\n\t\t\t\t\tcase 'columninfo' /*case 'ColumnInfo'*/: break;\n\t\t\t\t\tcase 'overwritecells' /*case 'OverwriteCells'*/: break;\n\t\t\t\t\tcase 'donotpromptforfile' /*case 'DoNotPromptForFile'*/: break;\n\t\t\t\t\tcase 'textwizardsettings' /*case 'TextWizardSettings'*/: break;\n\t\t\t\t\tcase 'source' /*case 'Source'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'decimal' /*case 'Decimal'*/: break;\n\t\t\t\t\tcase 'thousandseparator' /*case 'ThousandSeparator'*/: break;\n\t\t\t\t\tcase 'trailingminusnumbers' /*case 'TrailingMinusNumbers'*/: break;\n\t\t\t\t\tcase 'formatsettings' /*case 'FormatSettings'*/: break;\n\t\t\t\t\tcase 'fieldtype' /*case 'FieldType'*/: break;\n\t\t\t\t\tcase 'delimiters' /*case 'Delimiters'*/: break;\n\t\t\t\t\tcase 'tab' /*case 'Tab'*/: break;\n\t\t\t\t\tcase 'comma' /*case 'Comma'*/: break;\n\t\t\t\t\tcase 'autoformatname' /*case 'AutoFormatName'*/: break;\n\t\t\t\t\tcase 'versionlastedit' /*case 'VersionLastEdit'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\t\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* MapInfo (schema) */\n\t\t\t\tcase 'mapinfo' /*case 'MapInfo'*/: case 'schema' /*case 'Schema'*/: case 'data' /*case 'data'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'map' /*case 'Map'*/: break;\n\t\t\t\t\tcase 'entry' /*case 'Entry'*/: break;\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'xpath' /*case 'XPath'*/: break;\n\t\t\t\t\tcase 'field' /*case 'Field'*/: break;\n\t\t\t\t\tcase 'xsdtype' /*case 'XSDType'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'aggregate' /*case 'Aggregate'*/: break;\n\t\t\t\t\tcase 'elementtype' /*case 'ElementType'*/: break;\n\t\t\t\t\tcase 'attributetype' /*case 'AttributeType'*/: break;\n\t\t\t\t/* These are from xsd (XML Schema Definition) */\n\t\t\t\t\tcase 'schema' /*case 'schema'*/:\n\t\t\t\t\tcase 'element' /*case 'element'*/:\n\t\t\t\t\tcase 'complextype' /*case 'complexType'*/:\n\t\t\t\t\tcase 'datatype' /*case 'datatype'*/:\n\t\t\t\t\tcase 'all' /*case 'all'*/:\n\t\t\t\t\tcase 'attribute' /*case 'attribute'*/:\n\t\t\t\t\tcase 'extends' /*case 'extends'*/: break;\n\n\t\t\t\t\tcase 'row' /*case 'row'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* SmartTags (can be anything) */\n\t\t\t\tcase 'smarttags' /*case 'SmartTags'*/: break;\n\n\t\t\t\tdefault: seen = false; break;\n\t\t\t}\n\t\t\tif(seen) break;\n\t\t\t/* CustomDocumentProperties */\n\t\t\tif(Rn[3].match(/!\\[CDATA/)) break;\n\t\t\tif(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t\t\tif(state[state.length-1][0]===/*'CustomDocumentProperties'*/'customdocumentproperties') {\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") xlml_set_custprop(Custprops, raw_Rn3, cp, str.slice(pidx, Rn.index));\n\t\t\t\telse { cp = Rn; pidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t}\n\tvar out = ({});\n\tif(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets;\n\tout.SheetNames = sheetnames;\n\tout.Workbook = Workbook;\n\tout.SSF = SSF.get_table();\n\tout.Props = Props;\n\tout.Custprops = Custprops;\n\treturn out;\n}\n\nfunction parse_xlml(data, opts) {\n\tfix_read_opts(opts=opts||{});\n\tswitch(opts.type||\"base64\") {\n\t\tcase \"base64\": return parse_xlml_xml(Base64.decode(data), opts);\n\t\tcase \"binary\": case \"buffer\": case \"file\": return parse_xlml_xml(data, opts);\n\t\tcase \"array\": return parse_xlml_xml(a2s(data), opts);\n\t}\n}\n\n/* TODO */\nfunction write_props_xlml(wb, opts) {\n\tvar o = [];\n\t/* DocumentProperties */\n\tif(wb.Props) o.push(xlml_write_docprops(wb.Props, opts));\n\t/* CustomDocumentProperties */\n\tif(wb.Custprops) o.push(xlml_write_custprops(wb.Props, wb.Custprops, opts));\n\treturn o.join(\"\");\n}\n/* TODO */\nfunction write_wb_xlml() {\n\t/* OfficeDocumentSettings */\n\t/* ExcelWorkbook */\n\treturn \"\";\n}\n/* TODO */\nfunction write_sty_xlml(wb, opts) {\n\t/* Styles */\n\tvar styles = ['<Style ss:ID=\"Default\" ss:Name=\"Normal\"><NumberFormat/></Style>'];\n\topts.cellXfs.forEach(function(xf, id) {\n\t\tvar payload = [];\n\t\tpayload.push(writextag('NumberFormat', null, {\"ss:Format\": escapexml(SSF._table[xf.numFmtId])}));\n\n\t\tvar o = {\"ss:ID\": \"s\" + (21+id)};\n\t\tstyles.push(writextag('Style', payload.join(\"\"), o));\n\t});\n\treturn writextag(\"Styles\", styles.join(\"\"));\n}\nfunction write_name_xlml(n) { return writextag(\"NamedRange\", null, {\"ss:Name\": n.Name, \"ss:RefersTo\":\"=\" + a1_to_rc(n.Ref, {r:0,c:0})}); }\nfunction write_names_xlml(wb) {\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\nvar names = wb.Workbook.Names;\n\tvar out = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != null) continue;\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn writextag(\"Names\", out.join(\"\"));\n}\nfunction write_ws_xlml_names(ws, opts, idx, wb) {\n\tif(!ws) return \"\";\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\nvar names = wb.Workbook.Names;\n\tvar out = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != idx) continue;\n\t\t/*switch(n.Name) {\n\t\t\tcase \"_\": continue;\n\t\t}*/\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn out.join(\"\");\n}\n/* WorksheetOptions */\nfunction write_ws_xlml_wsopts(ws, opts, idx, wb) {\n\tif(!ws) return \"\";\n\tvar o = [];\n\t/* NOTE: spec technically allows any order, but stick with implied order */\n\n\t/* FitToPage */\n\t/* DoNotDisplayColHeaders */\n\t/* DoNotDisplayRowHeaders */\n\t/* ViewableRange */\n\t/* Selection */\n\t/* GridlineColor */\n\t/* Name */\n\t/* ExcelWorksheetType */\n\t/* IntlMacro */\n\t/* Unsynced */\n\t/* Selected */\n\t/* CodeName */\n\n\tif(ws['!margins']) {\n\t\to.push(\"<PageSetup>\");\n\t\tif(ws['!margins'].header) o.push(writextag(\"Header\", null, {'x:Margin':ws['!margins'].header}));\n\t\tif(ws['!margins'].footer) o.push(writextag(\"Footer\", null, {'x:Margin':ws['!margins'].footer}));\n\t\to.push(writextag(\"PageMargins\", null, {\n\t\t\t'x:Bottom': ws['!margins'].bottom || \"0.75\",\n\t\t\t'x:Left': ws['!margins'].left || \"0.7\",\n\t\t\t'x:Right': ws['!margins'].right || \"0.7\",\n\t\t\t'x:Top': ws['!margins'].top || \"0.75\"\n\t\t}));\n\t\to.push(\"</PageSetup>\");\n\t}\n\n\t/* PageSetup */\n\t/* DisplayPageBreak */\n\t/* TransitionExpressionEvaluation */\n\t/* TransitionFormulaEntry */\n\t/* Print */\n\t/* Zoom */\n\t/* PageLayoutZoom */\n\t/* PageBreakZoom */\n\t/* ShowPageBreakZoom */\n\t/* DefaultRowHeight */\n\t/* DefaultColumnWidth */\n\t/* StandardWidth */\n\n\tif(wb && wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx]) {\n\t\t/* Visible */\n\t\tif(wb.Workbook.Sheets[idx].Hidden) o.push(writextag(\"Visible\", (wb.Workbook.Sheets[idx].Hidden == 1 ? \"SheetHidden\" : \"SheetVeryHidden\"), {}));\n\t\telse {\n\t\t\t/* Selected */\n\t\t\tfor(var i = 0; i < idx; ++i) if(wb.Workbook.Sheets[i] && !wb.Workbook.Sheets[i].Hidden) break;\n\t\t\tif(i == idx) o.push(\"<Selected/>\");\n\t\t}\n\t}\n\n\t/* LeftColumnVisible */\n\n\tif(((((wb||{}).Workbook||{}).Views||[])[0]||{}).RTL) o.push(\"<DisplayRightToLeft/>\");\n\n\t/* GridlineColorIndex */\n\t/* DisplayFormulas */\n\t/* DoNotDisplayGridlines */\n\t/* DoNotDisplayHeadings */\n\t/* DoNotDisplayOutline */\n\t/* ApplyAutomaticOutlineStyles */\n\t/* NoSummaryRowsBelowDetail */\n\t/* NoSummaryColumnsRightDetail */\n\t/* DoNotDisplayZeros */\n\t/* ActiveRow */\n\t/* ActiveColumn */\n\t/* FilterOn */\n\t/* RangeSelection */\n\t/* TopRowVisible */\n\t/* TopRowBottomPane */\n\t/* LeftColumnRightPane */\n\t/* ActivePane */\n\t/* SplitHorizontal */\n\t/* SplitVertical */\n\t/* FreezePanes */\n\t/* FrozenNoSplit */\n\t/* TabColorIndex */\n\t/* Panes */\n\n\t/* NOTE: Password not supported in XLML Format */\n\tif(ws['!protect']) {\n\t\to.push(writetag(\"ProtectContents\", \"True\"));\n\t\tif(ws['!protect'].objects) o.push(writetag(\"ProtectObjects\", \"True\"));\n\t\tif(ws['!protect'].scenarios) o.push(writetag(\"ProtectScenarios\", \"True\"));\n\t\tif(ws['!protect'].selectLockedCells != null && !ws['!protect'].selectLockedCells) o.push(writetag(\"EnableSelection\", \"NoSelection\"));\n\t\telse if(ws['!protect'].selectUnlockedCells != null && !ws['!protect'].selectUnlockedCells) o.push(writetag(\"EnableSelection\", \"UnlockedCells\"));\n\t[\n\t\t[ \"formatCells\", \"AllowFormatCells\" ],\n\t\t[ \"formatColumns\", \"AllowSizeCols\" ],\n\t\t[ \"formatRows\", \"AllowSizeRows\" ],\n\t\t[ \"insertColumns\", \"AllowInsertCols\" ],\n\t\t[ \"insertRows\", \"AllowInsertRows\" ],\n\t\t[ \"insertHyperlinks\", \"AllowInsertHyperlinks\" ],\n\t\t[ \"deleteColumns\", \"AllowDeleteCols\" ],\n\t\t[ \"deleteRows\", \"AllowDeleteRows\" ],\n\t\t[ \"sort\", \"AllowSort\" ],\n\t\t[ \"autoFilter\", \"AllowFilter\" ],\n\t\t[ \"pivotTables\", \"AllowUsePivotTables\" ]\n\t].forEach(function(x) { if(ws['!protect'][x[0]]) o.push(\"<\"+x[1]+\"/>\"); });\n\t}\n\n\tif(o.length == 0) return \"\";\n\treturn writextag(\"WorksheetOptions\", o.join(\"\"), {xmlns:XLMLNS.x});\n}\nfunction write_ws_xlml_comment(comments) {\n\treturn comments.map(function(c) {\n\t\t// TODO: formatted text\n\t\tvar t = xlml_unfixstr(c.t||\"\");\n\t\tvar d =writextag(\"ss:Data\", t, {\"xmlns\":\"http://www.w3.org/TR/REC-html40\"});\n\t\treturn writextag(\"Comment\", d, {\"ss:Author\":c.a});\n\t}).join(\"\");\n}\nfunction write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr){\n\tif(!cell || (cell.v == undefined && cell.f == undefined)) return \"\";\n\n\tvar attr = {};\n\tif(cell.f) attr[\"ss:Formula\"] = \"=\" + escapexml(a1_to_rc(cell.f, addr));\n\tif(cell.F && cell.F.slice(0, ref.length) == ref) {\n\t\tvar end = decode_cell(cell.F.slice(ref.length + 1));\n\t\tattr[\"ss:ArrayRange\"] = \"RC:R\" + (end.r == addr.r ? \"\" : \"[\" + (end.r - addr.r) + \"]\") + \"C\" + (end.c == addr.c ? \"\" : \"[\" + (end.c - addr.c) + \"]\");\n\t}\n\n\tif(cell.l && cell.l.Target) {\n\t\tattr[\"ss:HRef\"] = escapexml(cell.l.Target);\n\t\tif(cell.l.Tooltip) attr[\"x:HRefScreenTip\"] = escapexml(cell.l.Tooltip);\n\t}\n\n\tif(ws['!merges']) {\n\t\tvar marr = ws['!merges'];\n\t\tfor(var mi = 0; mi != marr.length; ++mi) {\n\t\t\tif(marr[mi].s.c != addr.c || marr[mi].s.r != addr.r) continue;\n\t\t\tif(marr[mi].e.c > marr[mi].s.c) attr['ss:MergeAcross'] = marr[mi].e.c - marr[mi].s.c;\n\t\t\tif(marr[mi].e.r > marr[mi].s.r) attr['ss:MergeDown'] = marr[mi].e.r - marr[mi].s.r;\n\t\t}\n\t}\n\n\tvar t = \"\", p = \"\";\n\tswitch(cell.t) {\n\t\tcase 'z': if(!opts.sheetStubs) return \"\"; break;\n\t\tcase 'n': t = 'Number'; p = String(cell.v); break;\n\t\tcase 'b': t = 'Boolean'; p = (cell.v ? \"1\" : \"0\"); break;\n\t\tcase 'e': t = 'Error'; p = BErr[cell.v]; break;\n\t\tcase 'd': t = 'DateTime'; p = new Date(cell.v).toISOString(); if(cell.z == null) cell.z = cell.z || SSF._table[14]; break;\n\t\tcase 's': t = 'String'; p = escapexlml(cell.v||\"\"); break;\n\t}\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tattr[\"ss:StyleID\"] = \"s\" + (21+os);\n\tattr[\"ss:Index\"] = addr.c + 1;\n\tvar _v = (cell.v != null ? p : \"\");\n\tvar m = cell.t == 'z' ? \"\" : ('<Data ss:Type=\"' + t + '\">' + _v + '</Data>');\n\n\tif((cell.c||[]).length > 0) m += write_ws_xlml_comment(cell.c);\n\n\treturn writextag(\"Cell\", m, attr);\n}\nfunction write_ws_xlml_row(R, row) {\n\tvar o = '<Row ss:Index=\"' + (R+1) + '\"';\n\tif(row) {\n\t\tif(row.hpt && !row.hpx) row.hpx = pt2px(row.hpt);\n\t\tif(row.hpx) o += ' ss:AutoFitHeight=\"0\" ss:Height=\"' + row.hpx + '\"';\n\t\tif(row.hidden) o += ' ss:Hidden=\"1\"';\n\t}\n\treturn o + '>';\n}\n/* TODO */\nfunction write_ws_xlml_table(ws, opts, idx, wb) {\n\tif(!ws['!ref']) return \"\";\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar marr = ws['!merges'] || [], mi = 0;\n\tvar o = [];\n\tif(ws['!cols']) ws['!cols'].forEach(function(n, i) {\n\t\tprocess_col(n);\n\t\tvar w = !!n.width;\n\t\tvar p = col_obj_w(i, n);\n\t\tvar k = {\"ss:Index\":i+1};\n\t\tif(w) k['ss:Width'] = width2px(p.width);\n\t\tif(n.hidden) k['ss:Hidden']=\"1\";\n\t\to.push(writextag(\"Column\",null,k));\n\t});\n\tvar dense = Array.isArray(ws);\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tvar row = [write_ws_xlml_row(R, (ws['!rows']||[])[R])];\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar skip = false;\n\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(skip) continue;\n\t\t\tvar addr = {r:R,c:C};\n\t\t\tvar ref = encode_cell(addr), cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\trow.push(write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr));\n\t\t}\n\t\trow.push(\"</Row>\");\n\t\tif(row.length > 2) o.push(row.join(\"\"));\n\t}\n\treturn o.join(\"\");\n}\nfunction write_ws_xlml(idx, opts, wb) {\n\tvar o = [];\n\tvar s = wb.SheetNames[idx];\n\tvar ws = wb.Sheets[s];\n\n\tvar t = ws ? write_ws_xlml_names(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"<Names>\" + t + \"</Names>\");\n\n\t/* Table */\n\tt = ws ? write_ws_xlml_table(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"<Table>\" + t + \"</Table>\");\n\n\t/* WorksheetOptions */\n\to.push(write_ws_xlml_wsopts(ws, opts, idx, wb));\n\n\treturn o.join(\"\");\n}\nfunction write_xlml(wb, opts) {\n\tif(!opts) opts = {};\n\tif(!wb.SSF) wb.SSF = SSF.get_table();\n\tif(wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t\topts.cellXfs = [];\n\t\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\t}\n\tvar d = [];\n\td.push(write_props_xlml(wb, opts));\n\td.push(write_wb_xlml(wb, opts));\n\td.push(\"\");\n\td.push(\"\");\n\tfor(var i = 0; i < wb.SheetNames.length; ++i)\n\t\td.push(writextag(\"Worksheet\", write_ws_xlml(i, opts, wb), {\"ss:Name\":escapexml(wb.SheetNames[i])}));\n\td[2] = write_sty_xlml(wb, opts);\n\td[3] = write_names_xlml(wb, opts);\n\treturn XML_HEADER + writextag(\"Workbook\", d.join(\"\"), {\n\t\t'xmlns': XLMLNS.ss,\n\t\t'xmlns:o': XLMLNS.o,\n\t\t'xmlns:x': XLMLNS.x,\n\t\t'xmlns:ss': XLMLNS.ss,\n\t\t'xmlns:dt': XLMLNS.dt,\n\t\t'xmlns:html': XLMLNS.html\n\t});\n}\n/* [MS-OLEDS] 2.3.8 CompObjStream */\nfunction parse_compobj(obj) {\n\tvar v = {};\n\tvar o = obj.content;\n/* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */\n\to.l = 28;\n\n\tv.AnsiUserType = o.read_shift(0, \"lpstr-ansi\");\n\tv.AnsiClipboardFormat = parse_ClipboardFormatOrAnsiString(o);\n\n\tif(o.length - o.l <= 4) return v;\n\n\tvar m = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved1 = o.read_shift(0, \"lpstr-ansi\");\n\n\tif(o.length - o.l <= 4) return v;\n\tm = o.read_shift(4);\n\tif(m !== 0x71b239f4) return v;\n\tv.UnicodeClipboardFormat = parse_ClipboardFormatOrUnicodeString(o);\n\n\tm = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved2 = o.read_shift(0, \"lpwstr\");\n}\n\n/*\n\tContinue logic for:\n\t- 2.4.58 Continue\n\t- 2.4.59 ContinueBigName\n\t- 2.4.60 ContinueFrt\n\t- 2.4.61 ContinueFrt11\n\t- 2.4.62 ContinueFrt12\n*/\nfunction slurp(R, blob, length, opts) {\n\tvar l = length;\n\tvar bufs = [];\n\tvar d = blob.slice(blob.l,blob.l+l);\n\tif(opts && opts.enc && opts.enc.insitu) switch(R.n) {\n\tcase 'BOF': case 'FilePass': case 'FileLock': case 'InterfaceHdr': case 'RRDInfo': case 'RRDHead': case 'UsrExcl': break;\n\tdefault:\n\t\tif(d.length === 0) break;\n\t\topts.enc.insitu(d);\n\t}\n\tbufs.push(d);\n\tblob.l += l;\n\tvar next = (XLSRecordEnum[__readUInt16LE(blob,blob.l)]);\n\tvar start = 0;\n\twhile(next != null && next.n.slice(0,8) === 'Continue') {\n\t\tl = __readUInt16LE(blob,blob.l+2);\n\t\tstart = blob.l + 4;\n\t\tif(next.n == 'ContinueFrt') start += 4;\n\t\telse if(next.n.slice(0,11) == 'ContinueFrt') start += 12;\n\t\tbufs.push(blob.slice(start,blob.l+4+l));\n\t\tblob.l += 4+l;\n\t\tnext = (XLSRecordEnum[__readUInt16LE(blob, blob.l)]);\n\t}\n\tvar b = (bconcat(bufs));\n\tprep_blob(b, 0);\n\tvar ll = 0; b.lens = [];\n\tfor(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }\n\treturn R.f(b, b.length, opts);\n}\n\nfunction safe_format_xf(p, opts, date1904) {\n\tif(p.t === 'z') return;\n\tif(!p.XF) return;\n\tvar fmtid = 0;\n\ttry {\n\t\tfmtid = p.z || p.XF.numFmtId || 0;\n\t\tif(opts.cellNF) p.z = SSF._table[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(p.t === 'e') { p.w = p.w || BErr[p.v]; }\n\t\telse if(fmtid === 0 || fmtid == \"General\") {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = SSF._general_int(p.v);\n\t\t\t\telse p.w = SSF._general_num(p.v);\n\t\t\t}\n\t\t\telse p.w = SSF._general(p.v);\n\t\t}\n\t\telse p.w = SSF.format(fmtid,p.v, {date1904:!!date1904});\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(opts.cellDates && fmtid && p.t == 'n' && SSF.is_date(SSF._table[fmtid] || String(fmtid))) {\n\t\tvar _d = SSF.parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t}\n}\n\nfunction make_cell(val, ixfe, t) {\n\treturn ({v:val, ixfe:ixfe, t:t});\n}\n\n// 2.3.2\nfunction parse_workbook(blob, options) {\n\tvar wb = ({opts:{}});\n\tvar Sheets = {};\n\tif(DENSE != null && options.dense == null) options.dense = DENSE;\n\tvar out = ((options.dense ? [] : {}));\n\tvar Directory = {};\n\tvar range = ({});\n\tvar last_formula = null;\n\tvar sst = ([]);\n\tvar cur_sheet = \"\";\n\tvar Preamble = {};\n\tvar lastcell, last_cell = \"\", cc, cmnt, rngC, rngR;\n\tvar sharedf = {};\n\tvar arrayf = [];\n\tvar temp_val;\n\tvar country;\n\tvar cell_valid = true;\n\tvar XFs = []; /* XF records */\n\tvar palette = [];\n\tvar Workbook = ({ Sheets:[], WBProps:{date1904:false}, Views:[{}] }), wsprops = {};\n\tvar get_rgb = function getrgb(icv) {\n\t\tif(icv < 8) return XLSIcv[icv];\n\t\tif(icv < 64) return palette[icv-8] || XLSIcv[icv];\n\t\treturn XLSIcv[icv];\n\t};\n\tvar process_cell_style = function pcs(cell, line, options) {\n\t\tvar xfd = line.XF.data;\n\t\tif(!xfd || !xfd.patternType || !options || !options.cellStyles) return;\n\t\tline.s = ({});\n\t\tline.s.patternType = xfd.patternType;\n\t\tvar t;\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; }\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; }\n\t};\n\tvar addcell = function addcell(cell, line, options) {\n\t\tif(file_depth > 1) return;\n\t\tif(options.sheetRows && cell.r >= options.sheetRows) cell_valid = false;\n\t\tif(!cell_valid) return;\n\t\tif(options.cellStyles && line.XF && line.XF.data) process_cell_style(cell, line, options);\n\t\tdelete line.ixfe; delete line.XF;\n\t\tlastcell = cell;\n\t\tlast_cell = encode_cell(cell);\n\t\tif(!range || !range.s || !range.e) range = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tif(cell.r < range.s.r) range.s.r = cell.r;\n\t\tif(cell.c < range.s.c) range.s.c = cell.c;\n\t\tif(cell.r + 1 > range.e.r) range.e.r = cell.r + 1;\n\t\tif(cell.c + 1 > range.e.c) range.e.c = cell.c + 1;\n\t\tif(options.cellFormula && line.f) {\n\t\t\tfor(var afi = 0; afi < arrayf.length; ++afi) {\n\t\t\t\tif(arrayf[afi][0].s.c > cell.c || arrayf[afi][0].s.r > cell.r) continue;\n\t\t\t\tif(arrayf[afi][0].e.c < cell.c || arrayf[afi][0].e.r < cell.r) continue;\n\t\t\t\tline.F = encode_range(arrayf[afi][0]);\n\t\t\t\tif(arrayf[afi][0].s.c != cell.c || arrayf[afi][0].s.r != cell.r) delete line.f;\n\t\t\t\tif(line.f) line.f = \"\" + stringify_formula(arrayf[afi][1], range, cell, supbooks, opts);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tif(options.dense) {\n\t\t\t\tif(!out[cell.r]) out[cell.r] = [];\n\t\t\t\tout[cell.r][cell.c] = line;\n\t\t\t} else out[last_cell] = line;\n\t\t}\n\t};\n\tvar opts = ({\n\t\tenc: false, // encrypted\n\t\tsbcch: 0, // cch in the preceding SupBook\n\t\tsnames: [], // sheetnames\n\t\tsharedf: sharedf, // shared formulae by address\n\t\tarrayf: arrayf, // array formulae array\n\t\trrtabid: [], // RRTabId\n\t\tlastuser: \"\", // Last User from WriteAccess\n\t\tbiff: 8, // BIFF version\n\t\tcodepage: 0, // CP from CodePage record\n\t\twinlocked: 0, // fLockWn from WinProtect\n\t\tcellStyles: !!options && !!options.cellStyles,\n\t\tWTF: !!options && !!options.wtf\n\t});\n\tif(options.password) opts.password = options.password;\n\tvar themes;\n\tvar merges = [];\n\tvar objects = [];\n\tvar colinfo = [], rowinfo = [];\n\t// eslint-disable-next-line no-unused-vars\n\tvar defwidth = 0, defheight = 0; // twips / MDW respectively\n\tvar seencol = false;\n\tvar supbooks = ([]); // 1-indexed, will hold extern names\n\tsupbooks.SheetNames = opts.snames;\n\tsupbooks.sharedf = opts.sharedf;\n\tsupbooks.arrayf = opts.arrayf;\n\tsupbooks.names = [];\n\tsupbooks.XTI = [];\n\tvar last_Rn = '';\n\tvar file_depth = 0; /* TODO: make a real stack */\n\tvar BIFF2Fmt = 0, BIFF2FmtTable = [];\n\tvar FilterDatabases = []; /* TODO: sort out supbooks and process elsewhere */\n\tvar last_lbl;\n\n\t/* explicit override for some broken writers */\n\topts.codepage = 1200;\n\tset_cp(1200);\n\tvar seen_codepage = false;\n\twhile(blob.l < blob.length - 1) {\n\t\tvar s = blob.l;\n\t\tvar RecordType = blob.read_shift(2);\n\t\tif(RecordType === 0 && last_Rn === 'EOF') break;\n\t\tvar length = (blob.l === blob.length ? 0 : blob.read_shift(2));\n\t\tvar R = XLSRecordEnum[RecordType];\n\t\t//console.log(RecordType.toString(16), RecordType, R, blob.l, length, blob.length);\n\t\t//if(!R) console.log(blob.slice(blob.l, blob.l + length));\n\t\tif(R && R.f) {\n\t\t\tif(options.bookSheets) {\n\t\t\t\tif(last_Rn === 'BoundSheet8' && R.n !== 'BoundSheet8') break;\n\t\t\t}\n\t\t\tlast_Rn = R.n;\n\t\t\tif(R.r === 2 || R.r == 12) {\n\t\t\t\tvar rt = blob.read_shift(2); length -= 2;\n\t\t\t\tif(!opts.enc && rt !== RecordType && (((rt&0xFF)<<8)|(rt>>8)) !== RecordType) throw new Error(\"rt mismatch: \" + rt + \"!=\" + RecordType);\n\t\t\t\tif(R.r == 12){ blob.l += 10; length -= 10; } // skip FRT\n\t\t\t}\n\t\t\t//console.error(R,blob.l,length,blob.length);\n\t\t\tvar val = ({});\n\t\t\tif(R.n === 'EOF') val = R.f(blob, length, opts);\n\t\t\telse val = slurp(R, blob, length, opts);\n\t\t\tvar Rn = R.n;\nif(file_depth == 0 && Rn != 'BOF') continue;\n\t\t\t/* nested switch statements to workaround V8 128 limit */\n\t\t\tswitch(Rn) {\n\t\t\t\t/* Workbook Options */\n\t\t\t\tcase 'Date1904':\nwb.opts.Date1904 = Workbook.WBProps.date1904 = val; break;\n\t\t\t\tcase 'WriteProtect': wb.opts.WriteProtect = true; break;\n\t\t\t\tcase 'FilePass':\n\t\t\t\t\tif(!opts.enc) blob.l = 0;\n\t\t\t\t\topts.enc = val;\n\t\t\t\t\tif(!options.password) throw new Error(\"File is password-protected\");\n\t\t\t\t\tif(val.valid == null) throw new Error(\"Encryption scheme unsupported\");\n\t\t\t\t\tif(!val.valid) throw new Error(\"Password is incorrect\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'WriteAccess': opts.lastuser = val; break;\n\t\t\t\tcase 'FileSharing': break; //TODO\n\t\t\t\tcase 'CodePage':\n\t\t\t\t\tvar cpval = Number(val);\n\t\t\t\t\t/* overrides based on test cases */\n\t\t\t\t\tswitch(cpval) {\n\t\t\t\t\t\tcase 0x5212: cpval = 1200; break;\n\t\t\t\t\t\tcase 0x8000: cpval = 10000; break;\n\t\t\t\t\t\tcase 0x8001: cpval = 1252; break;\n\t\t\t\t\t}\n\t\t\t\t\tset_cp(opts.codepage = cpval);\n\t\t\t\t\tseen_codepage = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'RRTabId': opts.rrtabid = val; break;\n\t\t\t\tcase 'WinProtect': opts.winlocked = val; break;\n\t\t\t\tcase 'Template': break; // TODO\n\t\t\t\tcase 'BookBool': break; // TODO\n\t\t\t\tcase 'UsesELFs': break;\n\t\t\t\tcase 'MTRSettings': break;\n\t\t\t\tcase 'RefreshAll':\n\t\t\t\tcase 'CalcCount':\n\t\t\t\tcase 'CalcDelta':\n\t\t\t\tcase 'CalcIter':\n\t\t\t\tcase 'CalcMode':\n\t\t\t\tcase 'CalcPrecision':\n\t\t\t\tcase 'CalcSaveRecalc':\n\t\t\t\t\twb.opts[Rn] = val; break;\n\t\t\t\tcase 'CalcRefMode': opts.CalcRefMode = val; break; // TODO: implement R1C1\n\t\t\t\tcase 'Uncalced': break;\n\t\t\t\tcase 'ForceFullCalculation': wb.opts.FullCalc = val; break;\n\t\t\t\tcase 'WsBool':\n\t\t\t\t\tif(val.fDialog) out[\"!type\"] = \"dialog\";\n\t\t\t\t\tbreak; // TODO\n\t\t\t\tcase 'XF':\n\t\t\t\t\tXFs.push(val); break;\n\t\t\t\tcase 'ExtSST': break; // TODO\n\t\t\t\tcase 'BookExt': break; // TODO\n\t\t\t\tcase 'RichTextStream': break;\n\t\t\t\tcase 'BkHim': break;\n\n\t\t\t\tcase 'SupBook':\n\t\t\t\t\tsupbooks.push([val]);\n\t\t\t\t\tsupbooks[supbooks.length-1].XTI = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ExternName':\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Index': break; // TODO\n\t\t\t\tcase 'Lbl':\n\t\t\t\t\tlast_lbl = ({\n\t\t\t\t\t\tName: val.Name,\n\t\t\t\t\t\tRef: stringify_formula(val.rgce,range,null,supbooks,opts)\n\t\t\t\t\t});\n\t\t\t\t\tif(val.itab > 0) last_lbl.Sheet = val.itab - 1;\n\t\t\t\t\tsupbooks.names.push(last_lbl);\n\t\t\t\t\tif(!supbooks[0]) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tif(val.Name == \"_xlnm._FilterDatabase\" && val.itab > 0)\n\t\t\t\t\t\tif(val.rgce && val.rgce[0] && val.rgce[0][0] && val.rgce[0][0][0] == 'PtgArea3d')\n\t\t\t\t\t\t\tFilterDatabases[val.itab - 1] = { ref: encode_range(val.rgce[0][0][1][2]) };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ExternCount': opts.ExternCount = val; break;\n\t\t\t\tcase 'ExternSheet':\n\t\t\t\t\tif(supbooks.length == 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val); supbooks.XTI = supbooks.XTI.concat(val); break;\n\t\t\t\tcase 'NameCmt':\n\t\t\t\t\t/* TODO: search for correct name */\n\t\t\t\t\tif(opts.biff < 8) break;\n\t\t\t\t\tif(last_lbl != null) last_lbl.Comment = val[1];\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Protect': out[\"!protect\"] = val; break; /* for sheet or book */\n\t\t\t\tcase 'Password': if(val !== 0 && opts.WTF) console.error(\"Password verifier: \" + val); break;\n\t\t\t\tcase 'Prot4Rev': case 'Prot4RevPass': break; /*TODO: Revision Control*/\n\n\t\t\t\tcase 'BoundSheet8': {\n\t\t\t\t\tDirectory[val.pos] = val;\n\t\t\t\t\topts.snames.push(val.name);\n\t\t\t\t} break;\n\t\t\t\tcase 'EOF': {\n\t\t\t\t\tif(--file_depth) break;\n\t\t\t\t\tif(range.e) {\n\t\t\t\t\t\tif(range.e.r > 0 && range.e.c > 0) {\n\t\t\t\t\t\t\trange.e.r--; range.e.c--;\n\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\tif(options.sheetRows && options.sheetRows <= range.e.r) {\n\t\t\t\t\t\t\t\tvar tmpri = range.e.r;\n\t\t\t\t\t\t\t\trange.e.r = options.sheetRows - 1;\n\t\t\t\t\t\t\t\tout[\"!fullref\"] = out[\"!ref\"];\n\t\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\t\trange.e.r = tmpri;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trange.e.r++; range.e.c++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(merges.length > 0) out[\"!merges\"] = merges;\n\t\t\t\t\t\tif(objects.length > 0) out[\"!objects\"] = objects;\n\t\t\t\t\t\tif(colinfo.length > 0) out[\"!cols\"] = colinfo;\n\t\t\t\t\t\tif(rowinfo.length > 0) out[\"!rows\"] = rowinfo;\n\t\t\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t\t\t}\n\t\t\t\t\tif(cur_sheet === \"\") Preamble = out; else Sheets[cur_sheet] = out;\n\t\t\t\t\tout = ((options.dense ? [] : {}));\n\t\t\t\t} break;\n\t\t\t\tcase 'BOF': {\n\t\t\t\t\tif(opts.biff === 8) opts.biff = {\n0x0009:2,\n0x0209:3,\n0x0409:4\n\t\t\t\t\t}[RecordType] || {\n0x0200:2,\n0x0300:3,\n0x0400:4,\n0x0500:5,\n0x0600:8,\n0x0002:2,\n0x0007:2\n\t\t\t\t\t}[val.BIFFVer] || 8;\n\t\t\t\t\tif(opts.biff == 8 && val.BIFFVer == 0 && val.dt == 16) opts.biff = 2;\n\t\t\t\t\tif(file_depth++) break;\n\t\t\t\t\tcell_valid = true;\n\t\t\t\t\tout = ((options.dense ? [] : {}));\n\n\t\t\t\t\tif(opts.biff < 8 && !seen_codepage) { seen_codepage = true; set_cp(opts.codepage = options.codepage || 1252); }\n\t\t\t\t\tif(opts.biff < 5) {\n\t\t\t\t\t\tif(cur_sheet === \"\") cur_sheet = \"Sheet1\";\n\t\t\t\t\t\trange = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\t\t\t\t\t/* fake BoundSheet8 */\n\t\t\t\t\t\tvar fakebs8 = {pos: blob.l - length, name:cur_sheet};\n\t\t\t\t\t\tDirectory[fakebs8.pos] = fakebs8;\n\t\t\t\t\t\topts.snames.push(cur_sheet);\n\t\t\t\t\t}\n\t\t\t\t\telse cur_sheet = (Directory[s] || {name:\"\"}).name;\n\t\t\t\t\tif(val.dt == 0x20) out[\"!type\"] = \"chart\";\n\t\t\t\t\tif(val.dt == 0x40) out[\"!type\"] = \"macro\";\n\t\t\t\t\tmerges = [];\n\t\t\t\t\tobjects = [];\n\t\t\t\t\topts.arrayf = arrayf = [];\n\t\t\t\t\tcolinfo = []; rowinfo = [];\n\t\t\t\t\tdefwidth = defheight = 0;\n\t\t\t\t\tseencol = false;\n\t\t\t\t\twsprops = {Hidden:(Directory[s]||{hs:0}).hs, name:cur_sheet };\n\t\t\t\t} break;\n\n\t\t\t\tcase 'Number': case 'BIFF2NUM': case 'BIFF2INT': {\n\t\t\t\t\tif(out[\"!type\"] == \"chart\") if(options.dense ? (out[val.r]||[])[val.c]: out[encode_cell({c:val.c, r:val.r})]) ++val.c;\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe]||{}, v:val.val, t:'n'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'BoolErr': {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'RK': {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'MulRk': {\n\t\t\t\t\tfor(var j = val.c; j <= val.C; ++j) {\n\t\t\t\t\t\tvar ixfe = val.rkrec[j-val.c][0];\n\t\t\t\t\t\ttemp_val= ({ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'});\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'Formula': {\n\t\t\t\t\tif(val.val == 'String') { last_formula = val; break; }\n\t\t\t\t\ttemp_val = make_cell(val.val, val.cell.ixfe, val.tt);\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\tvar _f = val.formula;\n\t\t\t\t\t\tif(_f && _f[0] && _f[0][0] && _f[0][0][0] == 'PtgExp') {\n\t\t\t\t\t\t\tvar _fr = _f[0][0][1][0], _fc = _f[0][0][1][1];\n\t\t\t\t\t\t\tvar _fe = encode_cell({r:_fr, c:_fc});\n\t\t\t\t\t\t\tif(sharedf[_fe]) temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t\t\telse temp_val.F = ((options.dense ? (out[_fr]||[])[_fc]: out[_fe]) || {}).F;\n\t\t\t\t\t\t} else temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell(val.cell, temp_val, options);\n\t\t\t\t\tlast_formula = val;\n\t\t\t\t} break;\n\t\t\t\tcase 'String': {\n\t\t\t\t\tif(last_formula) { /* technically always true */\n\t\t\t\t\t\tlast_formula.val = val;\n\t\t\t\t\t\ttemp_val = make_cell(val, last_formula.cell.ixfe, 's');\n\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\t\ttemp_val.f = \"\"+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell(last_formula.cell, temp_val, options);\n\t\t\t\t\t\tlast_formula = null;\n\t\t\t\t\t} else throw new Error(\"String record expects Formula\");\n\t\t\t\t} break;\n\t\t\t\tcase 'Array': {\n\t\t\t\t\tarrayf.push(val);\n\t\t\t\t\tvar _arraystart = encode_cell(val[0].s);\n\t\t\t\t\tcc = options.dense ? (out[val[0].s.r]||[])[val[0].s.c] : out[_arraystart];\n\t\t\t\t\tif(options.cellFormula && cc) {\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tif(!_arraystart || !cc) break;\n\t\t\t\t\t\tcc.f = \"\"+stringify_formula(val[1], range, val[0], supbooks, opts);\n\t\t\t\t\t\tcc.F = encode_range(val[0]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'ShrFmla': {\n\t\t\t\t\tif(!cell_valid) break;\n\t\t\t\t\tif(!options.cellFormula) break;\n\t\t\t\t\tif(last_cell) {\n\t\t\t\t\t\t/* TODO: capture range */\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tsharedf[encode_cell(last_formula.cell)]= val[0];\n\t\t\t\t\t\tcc = options.dense ? (out[last_formula.cell.r]||[])[last_formula.cell.c] : out[encode_cell(last_formula.cell)];\n\t\t\t\t\t\t(cc||{}).f = \"\"+stringify_formula(val[0], range, lastcell, supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'LabelSst':\n\t\t\t\t\ttemp_val=make_cell(sst[val.isst].t, val.ixfe, 's');\n\t\t\t\t\tif(sst[val.isst].h) temp_val.h = sst[val.isst].h;\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Blank': if(options.sheetStubs) {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], t:'z'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'MulBlank': if(options.sheetStubs) {\n\t\t\t\t\tfor(var _j = val.c; _j <= val.C; ++_j) {\n\t\t\t\t\t\tvar _ixfe = val.ixfe[_j-val.c];\n\t\t\t\t\t\ttemp_val= ({ixfe:_ixfe, XF:XFs[_ixfe], t:'z'});\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:_j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'RString':\n\t\t\t\tcase 'Label': case 'BIFF2STR':\n\t\t\t\t\ttemp_val=make_cell(val.val, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Dimensions': {\n\t\t\t\t\tif(file_depth === 1) range = val; /* TODO: stack */\n\t\t\t\t} break;\n\t\t\t\tcase 'SST': {\n\t\t\t\t\tsst = val;\n\t\t\t\t} break;\n\t\t\t\tcase 'Format': { /* val = [id, fmt] */\n\t\t\t\t\tif(opts.biff == 4) {\n\t\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val[1];\n\t\t\t\t\t\tfor(var b4idx = 0; b4idx < BIFF2Fmt + 163; ++b4idx) if(SSF._table[b4idx] == val[1]) break;\n\t\t\t\t\t\tif(b4idx >= 163) SSF.load(val[1], BIFF2Fmt + 163);\n\t\t\t\t\t}\n\t\t\t\t\telse SSF.load(val[1], val[0]);\n\t\t\t\t} break;\n\t\t\t\tcase 'BIFF2FORMAT': {\n\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val;\n\t\t\t\t\tfor(var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if(SSF._table[b2idx] == val) break;\n\t\t\t\t\tif(b2idx >= 163) SSF.load(val, BIFF2Fmt + 163);\n\t\t\t\t} break;\n\n\t\t\t\tcase 'MergeCells': merges = merges.concat(val); break;\n\n\t\t\t\tcase 'Obj': objects[val.cmo[0]] = opts.lastobj = val; break;\n\t\t\t\tcase 'TxO': opts.lastobj.TxO = val; break;\n\t\t\t\tcase 'ImData': opts.lastobj.ImData = val; break;\n\n\t\t\t\tcase 'HLink': {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc) cc.l = val[1];\n\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'HLinkTooltip': {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc && cc.l) cc.l.Tooltip = val[1];\n\t\t\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\t/* Comments */\n\t\t\t\tcase 'Note': {\n\t\t\t\t\tif(opts.biff <= 5 && opts.biff >= 2) break; /* TODO: BIFF5 */\n\t\t\t\t\tcc = options.dense ? (out[val[0].r]||[])[val[0].c] : out[encode_cell(val[0])];\n\t\t\t\t\tvar noteobj = objects[val[2]];\n\t\t\t\t\tif(!cc) {\n\t\t\t\t\t\tif(options.dense) {\n\t\t\t\t\t\t\tif(!out[val[0].r]) out[val[0].r] = [];\n\t\t\t\t\t\t\tcc = out[val[0].r][val[0].c] = ({t:\"z\"});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcc = out[encode_cell(val[0])] = ({t:\"z\"});\n\t\t\t\t\t\t}\n\t\t\t\t\t\trange.e.r = Math.max(range.e.r, val[0].r);\n\t\t\t\t\t\trange.s.r = Math.min(range.s.r, val[0].r);\n\t\t\t\t\t\trange.e.c = Math.max(range.e.c, val[0].c);\n\t\t\t\t\t\trange.s.c = Math.min(range.s.c, val[0].c);\n\t\t\t\t\t}\n\t\t\t\t\tif(!cc.c) cc.c = [];\n\t\t\t\t\tcmnt = {a:val[1],t:noteobj.TxO.t};\n\t\t\t\t\tcc.c.push(cmnt);\n\t\t\t\t} break;\n\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\tcase 'ClrtClient': break;\n\t\t\t\tcase 'XFExt': update_xfext(XFs[val.ixfe], val.ext); break;\n\n\t\t\t\tcase 'DefColWidth': defwidth = val; break;\n\t\t\t\tcase 'DefaultRowHeight': defheight = val[1]; break; // TODO: flags\n\n\t\t\t\tcase 'ColInfo': {\n\t\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256 };\n\t\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'Row': {\n\t\t\t\t\tvar rowobj = {};\n\t\t\t\t\tif(val.level != null) { rowinfo[val.r] = rowobj; rowobj.level = val.level; }\n\t\t\t\t\tif(val.hidden) { rowinfo[val.r] = rowobj; rowobj.hidden = true; }\n\t\t\t\t\tif(val.hpt) {\n\t\t\t\t\t\trowinfo[val.r] = rowobj;\n\t\t\t\t\t\trowobj.hpt = val.hpt; rowobj.hpx = pt2px(val.hpt);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\tcase 'LeftMargin':\n\t\t\t\tcase 'RightMargin':\n\t\t\t\tcase 'TopMargin':\n\t\t\t\tcase 'BottomMargin':\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'][Rn.slice(0,-6).toLowerCase()] = val;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Setup': // TODO\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'].header = val.header;\n\t\t\t\t\tout['!margins'].footer = val.footer;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Window2': // TODO\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(val.RTL) Workbook.Views[0].RTL = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Header': break; // TODO\n\t\t\t\tcase 'Footer': break; // TODO\n\t\t\t\tcase 'HCenter': break; // TODO\n\t\t\t\tcase 'VCenter': break; // TODO\n\t\t\t\tcase 'Pls': break; // TODO\n\t\t\t\tcase 'GCW': break;\n\t\t\t\tcase 'LHRecord': break;\n\t\t\t\tcase 'DBCell': break; // TODO\n\t\t\t\tcase 'EntExU2': break; // TODO\n\t\t\t\tcase 'SxView': break; // TODO\n\t\t\t\tcase 'Sxvd': break; // TODO\n\t\t\t\tcase 'SXVI': break; // TODO\n\t\t\t\tcase 'SXVDEx': break; // TODO\n\t\t\t\tcase 'SxIvd': break; // TODO\n\t\t\t\tcase 'SXString': break; // TODO\n\t\t\t\tcase 'Sync': break;\n\t\t\t\tcase 'Addin': break;\n\t\t\t\tcase 'SXDI': break; // TODO\n\t\t\t\tcase 'SXLI': break; // TODO\n\t\t\t\tcase 'SXEx': break; // TODO\n\t\t\t\tcase 'QsiSXTag': break; // TODO\n\t\t\t\tcase 'Selection': break;\n\t\t\t\tcase 'Feat': break;\n\t\t\t\tcase 'FeatHdr': case 'FeatHdr11': break;\n\t\t\t\tcase 'Feature11': case 'Feature12': case 'List12': break;\n\t\t\t\tcase 'Country': country = val; break;\n\t\t\t\tcase 'RecalcId': break;\n\t\t\t\tcase 'DxGCol': break; // TODO: htmlify\n\t\t\t\tcase 'Fbi': case 'Fbi2': case 'GelFrame': break;\n\t\t\t\tcase 'Font': break; // TODO\n\t\t\t\tcase 'XFCRC': break; // TODO\n\t\t\t\tcase 'Style': break; // TODO\n\t\t\t\tcase 'StyleExt': break; // TODO\n\t\t\t\tcase 'Palette': palette = val; break;\n\t\t\t\tcase 'Theme': themes = val; break;\n\t\t\t\t/* Protection */\n\t\t\t\tcase 'ScenarioProtect': break;\n\t\t\t\tcase 'ObjProtect': break;\n\n\t\t\t\t/* Conditional Formatting */\n\t\t\t\tcase 'CondFmt12': break;\n\n\t\t\t\t/* Table */\n\t\t\t\tcase 'Table': break; // TODO\n\t\t\t\tcase 'TableStyles': break; // TODO\n\t\t\t\tcase 'TableStyle': break; // TODO\n\t\t\t\tcase 'TableStyleElement': break; // TODO\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'SXStreamID': break; // TODO\n\t\t\t\tcase 'SXVS': break; // TODO\n\t\t\t\tcase 'DConRef': break; // TODO\n\t\t\t\tcase 'SXAddl': break; // TODO\n\t\t\t\tcase 'DConBin': break; // TODO\n\t\t\t\tcase 'DConName': break; // TODO\n\t\t\t\tcase 'SXPI': break; // TODO\n\t\t\t\tcase 'SxFormat': break; // TODO\n\t\t\t\tcase 'SxSelect': break; // TODO\n\t\t\t\tcase 'SxRule': break; // TODO\n\t\t\t\tcase 'SxFilt': break; // TODO\n\t\t\t\tcase 'SxItm': break; // TODO\n\t\t\t\tcase 'SxDXF': break; // TODO\n\n\t\t\t\t/* Scenario Manager */\n\t\t\t\tcase 'ScenMan': break;\n\n\t\t\t\t/* Data Consolidation */\n\t\t\t\tcase 'DCon': break;\n\n\t\t\t\t/* Watched Cell */\n\t\t\t\tcase 'CellWatch': break;\n\n\t\t\t\t/* Print Settings */\n\t\t\t\tcase 'PrintRowCol': break;\n\t\t\t\tcase 'PrintGrid': break;\n\t\t\t\tcase 'PrintSize': break;\n\n\t\t\t\tcase 'XCT': break;\n\t\t\t\tcase 'CRN': break;\n\n\t\t\t\tcase 'Scl': {\n\t\t\t\t\t//console.log(\"Zoom Level:\", val[0]/val[1],val);\n\t\t\t\t} break;\n\t\t\t\tcase 'SheetExt': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'SheetExtOptional': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\n\t\t\t\t/* VBA */\n\t\t\t\tcase 'ObNoMacros': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'ObProj': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'CodeName': {\nif(!cur_sheet) Workbook.WBProps.CodeName = val || \"ThisWorkbook\";\n\t\t\t\t\telse wsprops.CodeName = val || wsprops.name;\n\t\t\t\t} break;\n\t\t\t\tcase 'GUIDTypeLib': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\n\t\t\t\tcase 'WOpt': break; // TODO: WTF?\n\t\t\t\tcase 'PhoneticInfo': break;\n\n\t\t\t\tcase 'OleObjectSize': break;\n\n\t\t\t\t/* Differential Formatting */\n\t\t\t\tcase 'DXF': case 'DXFN': case 'DXFN12': case 'DXFN12List': case 'DXFN12NoCB': break;\n\n\t\t\t\t/* Data Validation */\n\t\t\t\tcase 'Dv': case 'DVal': break;\n\n\t\t\t\t/* Data Series */\n\t\t\t\tcase 'BRAI': case 'Series': case 'SeriesText': break;\n\n\t\t\t\t/* Data Connection */\n\t\t\t\tcase 'DConn': break;\n\t\t\t\tcase 'DbOrParamQry': break;\n\t\t\t\tcase 'DBQueryExt': break;\n\n\t\t\t\tcase 'OleDbConn': break;\n\t\t\t\tcase 'ExtString': break;\n\n\t\t\t\t/* Formatting */\n\t\t\t\tcase 'IFmtRecord': break;\n\t\t\t\tcase 'CondFmt': case 'CF': case 'CF12': case 'CFEx': break;\n\n\t\t\t\t/* Explicitly Ignored */\n\t\t\t\tcase 'Excel9File': break;\n\t\t\t\tcase 'Units': break;\n\t\t\t\tcase 'InterfaceHdr': case 'Mms': case 'InterfaceEnd': case 'DSF': break;\n\t\t\t\tcase 'BuiltInFnGroupCount': /* 2.4.30 0x0E or 0x10 but excel 2011 generates 0x11? */ break;\n\t\t\t\t/* View Stuff */\n\t\t\t\tcase 'Window1': case 'HideObj': case 'GridSet': case 'Guts':\n\t\t\t\tcase 'UserBView': case 'UserSViewBegin': case 'UserSViewEnd': break;\n\t\t\t\tcase 'Pane': break;\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\t/* Chart */\n\t\t\t\tcase 'Dat':\n\t\t\t\tcase 'Begin': case 'End':\n\t\t\t\tcase 'StartBlock': case 'EndBlock':\n\t\t\t\tcase 'Frame': case 'Area':\n\t\t\t\tcase 'Axis': case 'AxisLine': case 'Tick': break;\n\t\t\t\tcase 'AxesUsed':\n\t\t\t\tcase 'CrtLayout12': case 'CrtLayout12A': case 'CrtLink': case 'CrtLine': case 'CrtMlFrt': case 'CrtMlFrtContinue': break;\n\t\t\t\tcase 'LineFormat': case 'AreaFormat':\n\t\t\t\tcase 'Chart': case 'Chart3d': case 'Chart3DBarShape': case 'ChartFormat': case 'ChartFrtInfo': break;\n\t\t\t\tcase 'PlotArea': case 'PlotGrowth': break;\n\t\t\t\tcase 'SeriesList': case 'SerParent': case 'SerAuxTrend': break;\n\t\t\t\tcase 'DataFormat': case 'SerToCrt': case 'FontX': break;\n\t\t\t\tcase 'CatSerRange': case 'AxcExt': case 'SerFmt': break;\n\t\t\t\tcase 'ShtProps': break;\n\t\t\t\tcase 'DefaultText': case 'Text': case 'CatLab': break;\n\t\t\t\tcase 'DataLabExtContents': break;\n\t\t\t\tcase 'Legend': case 'LegendException': break;\n\t\t\t\tcase 'Pie': case 'Scatter': break;\n\t\t\t\tcase 'PieFormat': case 'MarkerFormat': break;\n\t\t\t\tcase 'StartObject': case 'EndObject': break;\n\t\t\t\tcase 'AlRuns': case 'ObjectLink': break;\n\t\t\t\tcase 'SIIndex': break;\n\t\t\t\tcase 'AttachedLabel': case 'YMult': break;\n\n\t\t\t\t/* Chart Group */\n\t\t\t\tcase 'Line': case 'Bar': break;\n\t\t\t\tcase 'Surf': break;\n\n\t\t\t\t/* Axis Group */\n\t\t\t\tcase 'AxisParent': break;\n\t\t\t\tcase 'Pos': break;\n\t\t\t\tcase 'ValueRange': break;\n\n\t\t\t\t/* Pivot Chart */\n\t\t\t\tcase 'SXViewEx9': break; // TODO\n\t\t\t\tcase 'SXViewLink': break;\n\t\t\t\tcase 'PivotChartBits': break;\n\t\t\t\tcase 'SBaseRef': break;\n\t\t\t\tcase 'TextPropsStream': break;\n\n\t\t\t\t/* Chart Misc */\n\t\t\t\tcase 'LnExt': break;\n\t\t\t\tcase 'MkrExt': break;\n\t\t\t\tcase 'CrtCoopt': break;\n\n\t\t\t\t/* Query Table */\n\t\t\t\tcase 'Qsi': case 'Qsif': case 'Qsir': case 'QsiSXTag': break;\n\t\t\t\tcase 'TxtQry': break;\n\n\t\t\t\t/* Filter */\n\t\t\t\tcase 'FilterMode': break;\n\t\t\t\tcase 'AutoFilter': case 'AutoFilterInfo': break;\n\t\t\t\tcase 'AutoFilter12': break;\n\t\t\t\tcase 'DropDownObjIds': break;\n\t\t\t\tcase 'Sort': break;\n\t\t\t\tcase 'SortData': break;\n\n\t\t\t\t/* Drawing */\n\t\t\t\tcase 'ShapePropsStream': break;\n\t\t\t\tcase 'MsoDrawing': case 'MsoDrawingGroup': case 'MsoDrawingSelection': break;\n\t\t\t\t/* Pub Stuff */\n\t\t\t\tcase 'WebPub': case 'AutoWebPub': break;\n\n\t\t\t\t/* Print Stuff */\n\t\t\t\tcase 'HeaderFooter': case 'HFPicture': case 'PLV':\n\t\t\t\tcase 'HorizontalPageBreaks': case 'VerticalPageBreaks': break;\n\t\t\t\t/* Behavioral */\n\t\t\t\tcase 'Backup': case 'CompressPictures': case 'Compat12': break;\n\n\t\t\t\t/* Should not Happen */\n\t\t\t\tcase 'Continue': case 'ContinueFrt12': break;\n\n\t\t\t\t/* Future Records */\n\t\t\t\tcase 'FrtFontList': case 'FrtWrapper': break;\n\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\t/* BIFF5 records */\n\t\t\t\tcase 'TabIdConf': case 'Radar': case 'RadarArea': case 'DropBar': case 'Intl': case 'CoordList': case 'SerAuxErrBar': break;\n\n\t\t\t\t/* BIFF2-4 records */\n\t\t\t\tcase 'BIFF2FONTCLR': case 'BIFF2FMTCNT': case 'BIFF2FONTXTRA': break;\n\t\t\t\tcase 'BIFF2XF': case 'BIFF3XF': case 'BIFF4XF': break;\n\t\t\t\tcase 'BIFF4FMTCNT': case 'BIFF2ROW': case 'BIFF2WINDOW2': break;\n\n\t\t\t\t/* Miscellaneous */\n\t\t\t\tcase 'SCENARIO': case 'DConBin': case 'PicF': case 'DataLabExt':\n\t\t\t\tcase 'Lel': case 'BopPop': case 'BopPopCustom': case 'RealTimeData':\n\t\t\t\tcase 'Name': break;\n\t\t\t\tcase 'LHNGraph': case 'FnGroupName': case 'AddMenu': case 'LPr': break;\n\t\t\t\tcase 'ListObj': case 'ListField': break;\n\t\t\t\tcase 'RRSort': break;\n\t\t\t\tcase 'BigName': break;\n\t\t\t\tcase 'ToolbarHdr': case 'ToolbarEnd': break;\n\t\t\t\tcase 'DDEObjName': break;\n\t\t\t\tcase 'FRTArchId$': break;\n\t\t\t\tdefault: if(options.WTF) throw 'Unrecognized Record ' + R.n;\n\t\t\t}}}}\n\t\t} else blob.l += length;\n\t}\n\twb.SheetNames=keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;});\n\tif(!options.bookSheets) wb.Sheets=Sheets;\n\tif(wb.Sheets) FilterDatabases.forEach(function(r,i) { wb.Sheets[wb.SheetNames[i]]['!autofilter'] = r; });\n\twb.Preamble=Preamble;\n\twb.Strings = sst;\n\twb.SSF = SSF.get_table();\n\tif(opts.enc) wb.Encryption = opts.enc;\n\tif(themes) wb.Themes = themes;\n\twb.Metadata = {};\n\tif(country !== undefined) wb.Metadata.Country = country;\n\tif(supbooks.names.length > 0) Workbook.Names = supbooks.names;\n\twb.Workbook = Workbook;\n\treturn wb;\n}\n\n/* TODO: split props*/\nvar PSCLSID = {\n\tSI: \"e0859ff2f94f6810ab9108002b27b3d9\",\n\tDSI: \"02d5cdd59c2e1b10939708002b2cf9ae\",\n\tUDI: \"05d5cdd59c2e1b10939708002b2cf9ae\"\n};\nfunction parse_xls_props(cfb, props, o) {\n\t/* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */\n\tvar DSI = CFB.find(cfb, '!DocumentSummaryInformation');\n\tif(DSI && DSI.size > 0) try {\n\t\tvar DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI, PSCLSID.DSI);\n\t\tfor(var d in DocSummary) props[d] = DocSummary[d];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\t/* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/\n\tvar SI = CFB.find(cfb, '!SummaryInformation');\n\tif(SI && SI.size > 0) try {\n\t\tvar Summary = parse_PropertySetStream(SI, SummaryPIDSI, PSCLSID.SI);\n\t\tfor(var s in Summary) if(props[s] == null) props[s] = Summary[s];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\tif(props.HeadingPairs && props.TitlesOfParts) {\n\t\tload_props_pairs(props.HeadingPairs, props.TitlesOfParts, props, o);\n\t\tdelete props.HeadingPairs; delete props.TitlesOfParts;\n\t}\n}\nfunction write_xls_props(wb, cfb) {\n\tvar DSEntries = [], SEntries = [], CEntries = [];\n\tvar i = 0, Keys;\n\tif(wb.Props) {\n\t\tKeys = keys(wb.Props);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Props[Keys[i]]]);\n\t}\n\tif(wb.Custprops) {\n\t\tKeys = keys(wb.Custprops);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) if(!Object.prototype.hasOwnProperty.call((wb.Props||{}), Keys[i])) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Custprops[Keys[i]]]);\n\t}\n\tvar CEntries2 = [];\n\tfor(i = 0; i < CEntries.length; ++i) {\n\t\tif(XLSPSSkip.indexOf(CEntries[i][0]) > -1) continue;\n\t\tif(CEntries[i][1] == null) continue;\n\t\tCEntries2.push(CEntries[i]);\n\t}\n\tif(SEntries.length) CFB.utils.cfb_add(cfb, \"/\\u0005SummaryInformation\", write_PropertySetStream(SEntries, PSCLSID.SI, SummaryRE, SummaryPIDSI));\n\tif(DSEntries.length || CEntries2.length) CFB.utils.cfb_add(cfb, \"/\\u0005DocumentSummaryInformation\", write_PropertySetStream(DSEntries, PSCLSID.DSI, DocSummaryRE, DocSummaryPIDDSI, CEntries2.length ? CEntries2 : null, PSCLSID.UDI));\n}\n\nfunction parse_xlscfb(cfb, options) {\nif(!options) options = {};\nfix_read_opts(options);\nreset_cp();\nif(options.codepage) set_ansi(options.codepage);\nvar CompObj, WB;\nif(cfb.FullPaths) {\n\tif(CFB.find(cfb, '/encryption')) throw new Error(\"File is password-protected\");\n\tCompObj = CFB.find(cfb, '!CompObj');\n\tWB = CFB.find(cfb, '/Workbook') || CFB.find(cfb, '/Book');\n} else {\n\tswitch(options.type) {\n\t\tcase 'base64': cfb = s2a(Base64.decode(cfb)); break;\n\t\tcase 'binary': cfb = s2a(cfb); break;\n\t\tcase 'buffer': break;\n\t\tcase 'array': if(!Array.isArray(cfb)) cfb = Array.prototype.slice.call(cfb); break;\n\t}\n\tprep_blob(cfb, 0);\n\tWB = ({content: cfb});\n}\nvar WorkbookP;\n\nvar _data;\nif(CompObj) parse_compobj(CompObj);\nif(options.bookProps && !options.bookSheets) WorkbookP = ({});\nelse {\n\tvar T = has_buf ? 'buffer' : 'array';\n\tif(WB && WB.content) WorkbookP = parse_workbook(WB.content, options);\n\t/* Quattro Pro 7-8 */\n\telse if((_data=CFB.find(cfb, 'PerfectOffice_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Quattro Pro 9 */\n\telse if((_data=CFB.find(cfb, 'NativeContent_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\telse throw new Error(\"Cannot find Workbook stream\");\n\tif(options.bookVBA && cfb.FullPaths && CFB.find(cfb, '/_VBA_PROJECT_CUR/VBA/dir')) WorkbookP.vbaraw = make_vba_xls(cfb);\n}\n\nvar props = {};\nif(cfb.FullPaths) parse_xls_props(cfb, props, options);\n\nWorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */\nif(options.bookFiles) WorkbookP.cfb = cfb;\n/*WorkbookP.CompObjP = CompObjP; // TODO: storage? */\nreturn WorkbookP;\n}\n\n\nfunction write_xlscfb(wb, opts) {\n\tvar o = opts || {};\n\tvar cfb = CFB.utils.cfb_new({root:\"R\"});\n\tvar wbpath = \"/Workbook\";\n\tswitch(o.bookType || \"xls\") {\n\t\tcase \"xls\": o.bookType = \"biff8\";\n\t\t/* falls through */\n\t\tcase \"xla\": if(!o.bookType) o.bookType = \"xla\";\n\t\t/* falls through */\n\t\tcase \"biff8\": wbpath = \"/Workbook\"; o.biff = 8; break;\n\t\tcase \"biff5\": wbpath = \"/Book\"; o.biff = 5; break;\n\t\tdefault: throw new Error(\"invalid type \" + o.bookType + \" for XLS CFB\");\n\t}\n\tCFB.utils.cfb_add(cfb, wbpath, write_biff_buf(wb, o));\n\tif(o.biff == 8 && (wb.Props || wb.Custprops)) write_xls_props(wb, cfb);\n\t// TODO: SI, DSI, CO\n\tif(o.biff == 8 && wb.vbaraw) fill_vba_xls(cfb, CFB.read(wb.vbaraw, {type: typeof wb.vbaraw == \"string\" ? \"binary\" : \"buffer\"}));\n\treturn cfb;\n}\n/* [MS-XLSB] 2.3 Record Enumeration */\nvar XLSBRecordEnum = {\n0x0000: { n:\"BrtRowHdr\", f:parse_BrtRowHdr },\n0x0001: { n:\"BrtCellBlank\", f:parse_BrtCellBlank },\n0x0002: { n:\"BrtCellRk\", f:parse_BrtCellRk },\n0x0003: { n:\"BrtCellError\", f:parse_BrtCellError },\n0x0004: { n:\"BrtCellBool\", f:parse_BrtCellBool },\n0x0005: { n:\"BrtCellReal\", f:parse_BrtCellReal },\n0x0006: { n:\"BrtCellSt\", f:parse_BrtCellSt },\n0x0007: { n:\"BrtCellIsst\", f:parse_BrtCellIsst },\n0x0008: { n:\"BrtFmlaString\", f:parse_BrtFmlaString },\n0x0009: { n:\"BrtFmlaNum\", f:parse_BrtFmlaNum },\n0x000A: { n:\"BrtFmlaBool\", f:parse_BrtFmlaBool },\n0x000B: { n:\"BrtFmlaError\", f:parse_BrtFmlaError },\n0x0010: { n:\"BrtFRTArchID$\", f:parse_BrtFRTArchID$ },\n0x0013: { n:\"BrtSSTItem\", f:parse_RichStr },\n0x0014: { n:\"BrtPCDIMissing\" },\n0x0015: { n:\"BrtPCDINumber\" },\n0x0016: { n:\"BrtPCDIBoolean\" },\n0x0017: { n:\"BrtPCDIError\" },\n0x0018: { n:\"BrtPCDIString\" },\n0x0019: { n:\"BrtPCDIDatetime\" },\n0x001A: { n:\"BrtPCDIIndex\" },\n0x001B: { n:\"BrtPCDIAMissing\" },\n0x001C: { n:\"BrtPCDIANumber\" },\n0x001D: { n:\"BrtPCDIABoolean\" },\n0x001E: { n:\"BrtPCDIAError\" },\n0x001F: { n:\"BrtPCDIAString\" },\n0x0020: { n:\"BrtPCDIADatetime\" },\n0x0021: { n:\"BrtPCRRecord\" },\n0x0022: { n:\"BrtPCRRecordDt\" },\n0x0023: { n:\"BrtFRTBegin\" },\n0x0024: { n:\"BrtFRTEnd\" },\n0x0025: { n:\"BrtACBegin\" },\n0x0026: { n:\"BrtACEnd\" },\n0x0027: { n:\"BrtName\", f:parse_BrtName },\n0x0028: { n:\"BrtIndexRowBlock\" },\n0x002A: { n:\"BrtIndexBlock\" },\n0x002B: { n:\"BrtFont\", f:parse_BrtFont },\n0x002C: { n:\"BrtFmt\", f:parse_BrtFmt },\n0x002D: { n:\"BrtFill\", f:parse_BrtFill },\n0x002E: { n:\"BrtBorder\", f:parse_BrtBorder },\n0x002F: { n:\"BrtXF\", f:parse_BrtXF },\n0x0030: { n:\"BrtStyle\" },\n0x0031: { n:\"BrtCellMeta\" },\n0x0032: { n:\"BrtValueMeta\" },\n0x0033: { n:\"BrtMdb\" },\n0x0034: { n:\"BrtBeginFmd\" },\n0x0035: { n:\"BrtEndFmd\" },\n0x0036: { n:\"BrtBeginMdx\" },\n0x0037: { n:\"BrtEndMdx\" },\n0x0038: { n:\"BrtBeginMdxTuple\" },\n0x0039: { n:\"BrtEndMdxTuple\" },\n0x003A: { n:\"BrtMdxMbrIstr\" },\n0x003B: { n:\"BrtStr\" },\n0x003C: { n:\"BrtColInfo\", f:parse_ColInfo },\n0x003E: { n:\"BrtCellRString\" },\n0x003F: { n:\"BrtCalcChainItem$\", f:parse_BrtCalcChainItem$ },\n0x0040: { n:\"BrtDVal\", f:parse_BrtDVal },\n0x0041: { n:\"BrtSxvcellNum\" },\n0x0042: { n:\"BrtSxvcellStr\" },\n0x0043: { n:\"BrtSxvcellBool\" },\n0x0044: { n:\"BrtSxvcellErr\" },\n0x0045: { n:\"BrtSxvcellDate\" },\n0x0046: { n:\"BrtSxvcellNil\" },\n0x0080: { n:\"BrtFileVersion\" },\n0x0081: { n:\"BrtBeginSheet\" },\n0x0082: { n:\"BrtEndSheet\" },\n0x0083: { n:\"BrtBeginBook\", f:parsenoop, p:0 },\n0x0084: { n:\"BrtEndBook\" },\n0x0085: { n:\"BrtBeginWsViews\" },\n0x0086: { n:\"BrtEndWsViews\" },\n0x0087: { n:\"BrtBeginBookViews\" },\n0x0088: { n:\"BrtEndBookViews\" },\n0x0089: { n:\"BrtBeginWsView\", f:parse_BrtBeginWsView },\n0x008A: { n:\"BrtEndWsView\" },\n0x008B: { n:\"BrtBeginCsViews\" },\n0x008C: { n:\"BrtEndCsViews\" },\n0x008D: { n:\"BrtBeginCsView\" },\n0x008E: { n:\"BrtEndCsView\" },\n0x008F: { n:\"BrtBeginBundleShs\" },\n0x0090: { n:\"BrtEndBundleShs\" },\n0x0091: { n:\"BrtBeginSheetData\" },\n0x0092: { n:\"BrtEndSheetData\" },\n0x0093: { n:\"BrtWsProp\", f:parse_BrtWsProp },\n0x0094: { n:\"BrtWsDim\", f:parse_BrtWsDim, p:16 },\n0x0097: { n:\"BrtPane\", f:parse_BrtPane },\n0x0098: { n:\"BrtSel\" },\n0x0099: { n:\"BrtWbProp\", f:parse_BrtWbProp },\n0x009A: { n:\"BrtWbFactoid\" },\n0x009B: { n:\"BrtFileRecover\" },\n0x009C: { n:\"BrtBundleSh\", f:parse_BrtBundleSh },\n0x009D: { n:\"BrtCalcProp\" },\n0x009E: { n:\"BrtBookView\" },\n0x009F: { n:\"BrtBeginSst\", f:parse_BrtBeginSst },\n0x00A0: { n:\"BrtEndSst\" },\n0x00A1: { n:\"BrtBeginAFilter\", f:parse_UncheckedRfX },\n0x00A2: { n:\"BrtEndAFilter\" },\n0x00A3: { n:\"BrtBeginFilterColumn\" },\n0x00A4: { n:\"BrtEndFilterColumn\" },\n0x00A5: { n:\"BrtBeginFilters\" },\n0x00A6: { n:\"BrtEndFilters\" },\n0x00A7: { n:\"BrtFilter\" },\n0x00A8: { n:\"BrtColorFilter\" },\n0x00A9: { n:\"BrtIconFilter\" },\n0x00AA: { n:\"BrtTop10Filter\" },\n0x00AB: { n:\"BrtDynamicFilter\" },\n0x00AC: { n:\"BrtBeginCustomFilters\" },\n0x00AD: { n:\"BrtEndCustomFilters\" },\n0x00AE: { n:\"BrtCustomFilter\" },\n0x00AF: { n:\"BrtAFilterDateGroupItem\" },\n0x00B0: { n:\"BrtMergeCell\", f:parse_BrtMergeCell },\n0x00B1: { n:\"BrtBeginMergeCells\" },\n0x00B2: { n:\"BrtEndMergeCells\" },\n0x00B3: { n:\"BrtBeginPivotCacheDef\" },\n0x00B4: { n:\"BrtEndPivotCacheDef\" },\n0x00B5: { n:\"BrtBeginPCDFields\" },\n0x00B6: { n:\"BrtEndPCDFields\" },\n0x00B7: { n:\"BrtBeginPCDField\" },\n0x00B8: { n:\"BrtEndPCDField\" },\n0x00B9: { n:\"BrtBeginPCDSource\" },\n0x00BA: { n:\"BrtEndPCDSource\" },\n0x00BB: { n:\"BrtBeginPCDSRange\" },\n0x00BC: { n:\"BrtEndPCDSRange\" },\n0x00BD: { n:\"BrtBeginPCDFAtbl\" },\n0x00BE: { n:\"BrtEndPCDFAtbl\" },\n0x00BF: { n:\"BrtBeginPCDIRun\" },\n0x00C0: { n:\"BrtEndPCDIRun\" },\n0x00C1: { n:\"BrtBeginPivotCacheRecords\" },\n0x00C2: { n:\"BrtEndPivotCacheRecords\" },\n0x00C3: { n:\"BrtBeginPCDHierarchies\" },\n0x00C4: { n:\"BrtEndPCDHierarchies\" },\n0x00C5: { n:\"BrtBeginPCDHierarchy\" },\n0x00C6: { n:\"BrtEndPCDHierarchy\" },\n0x00C7: { n:\"BrtBeginPCDHFieldsUsage\" },\n0x00C8: { n:\"BrtEndPCDHFieldsUsage\" },\n0x00C9: { n:\"BrtBeginExtConnection\" },\n0x00CA: { n:\"BrtEndExtConnection\" },\n0x00CB: { n:\"BrtBeginECDbProps\" },\n0x00CC: { n:\"BrtEndECDbProps\" },\n0x00CD: { n:\"BrtBeginECOlapProps\" },\n0x00CE: { n:\"BrtEndECOlapProps\" },\n0x00CF: { n:\"BrtBeginPCDSConsol\" },\n0x00D0: { n:\"BrtEndPCDSConsol\" },\n0x00D1: { n:\"BrtBeginPCDSCPages\" },\n0x00D2: { n:\"BrtEndPCDSCPages\" },\n0x00D3: { n:\"BrtBeginPCDSCPage\" },\n0x00D4: { n:\"BrtEndPCDSCPage\" },\n0x00D5: { n:\"BrtBeginPCDSCPItem\" },\n0x00D6: { n:\"BrtEndPCDSCPItem\" },\n0x00D7: { n:\"BrtBeginPCDSCSets\" },\n0x00D8: { n:\"BrtEndPCDSCSets\" },\n0x00D9: { n:\"BrtBeginPCDSCSet\" },\n0x00DA: { n:\"BrtEndPCDSCSet\" },\n0x00DB: { n:\"BrtBeginPCDFGroup\" },\n0x00DC: { n:\"BrtEndPCDFGroup\" },\n0x00DD: { n:\"BrtBeginPCDFGItems\" },\n0x00DE: { n:\"BrtEndPCDFGItems\" },\n0x00DF: { n:\"BrtBeginPCDFGRange\" },\n0x00E0: { n:\"BrtEndPCDFGRange\" },\n0x00E1: { n:\"BrtBeginPCDFGDiscrete\" },\n0x00E2: { n:\"BrtEndPCDFGDiscrete\" },\n0x00E3: { n:\"BrtBeginPCDSDTupleCache\" },\n0x00E4: { n:\"BrtEndPCDSDTupleCache\" },\n0x00E5: { n:\"BrtBeginPCDSDTCEntries\" },\n0x00E6: { n:\"BrtEndPCDSDTCEntries\" },\n0x00E7: { n:\"BrtBeginPCDSDTCEMembers\" },\n0x00E8: { n:\"BrtEndPCDSDTCEMembers\" },\n0x00E9: { n:\"BrtBeginPCDSDTCEMember\" },\n0x00EA: { n:\"BrtEndPCDSDTCEMember\" },\n0x00EB: { n:\"BrtBeginPCDSDTCQueries\" },\n0x00EC: { n:\"BrtEndPCDSDTCQueries\" },\n0x00ED: { n:\"BrtBeginPCDSDTCQuery\" },\n0x00EE: { n:\"BrtEndPCDSDTCQuery\" },\n0x00EF: { n:\"BrtBeginPCDSDTCSets\" },\n0x00F0: { n:\"BrtEndPCDSDTCSets\" },\n0x00F1: { n:\"BrtBeginPCDSDTCSet\" },\n0x00F2: { n:\"BrtEndPCDSDTCSet\" },\n0x00F3: { n:\"BrtBeginPCDCalcItems\" },\n0x00F4: { n:\"BrtEndPCDCalcItems\" },\n0x00F5: { n:\"BrtBeginPCDCalcItem\" },\n0x00F6: { n:\"BrtEndPCDCalcItem\" },\n0x00F7: { n:\"BrtBeginPRule\" },\n0x00F8: { n:\"BrtEndPRule\" },\n0x00F9: { n:\"BrtBeginPRFilters\" },\n0x00FA: { n:\"BrtEndPRFilters\" },\n0x00FB: { n:\"BrtBeginPRFilter\" },\n0x00FC: { n:\"BrtEndPRFilter\" },\n0x00FD: { n:\"BrtBeginPNames\" },\n0x00FE: { n:\"BrtEndPNames\" },\n0x00FF: { n:\"BrtBeginPName\" },\n0x0100: { n:\"BrtEndPName\" },\n0x0101: { n:\"BrtBeginPNPairs\" },\n0x0102: { n:\"BrtEndPNPairs\" },\n0x0103: { n:\"BrtBeginPNPair\" },\n0x0104: { n:\"BrtEndPNPair\" },\n0x0105: { n:\"BrtBeginECWebProps\" },\n0x0106: { n:\"BrtEndECWebProps\" },\n0x0107: { n:\"BrtBeginEcWpTables\" },\n0x0108: { n:\"BrtEndECWPTables\" },\n0x0109: { n:\"BrtBeginECParams\" },\n0x010A: { n:\"BrtEndECParams\" },\n0x010B: { n:\"BrtBeginECParam\" },\n0x010C: { n:\"BrtEndECParam\" },\n0x010D: { n:\"BrtBeginPCDKPIs\" },\n0x010E: { n:\"BrtEndPCDKPIs\" },\n0x010F: { n:\"BrtBeginPCDKPI\" },\n0x0110: { n:\"BrtEndPCDKPI\" },\n0x0111: { n:\"BrtBeginDims\" },\n0x0112: { n:\"BrtEndDims\" },\n0x0113: { n:\"BrtBeginDim\" },\n0x0114: { n:\"BrtEndDim\" },\n0x0115: { n:\"BrtIndexPartEnd\" },\n0x0116: { n:\"BrtBeginStyleSheet\" },\n0x0117: { n:\"BrtEndStyleSheet\" },\n0x0118: { n:\"BrtBeginSXView\" },\n0x0119: { n:\"BrtEndSXVI\" },\n0x011A: { n:\"BrtBeginSXVI\" },\n0x011B: { n:\"BrtBeginSXVIs\" },\n0x011C: { n:\"BrtEndSXVIs\" },\n0x011D: { n:\"BrtBeginSXVD\" },\n0x011E: { n:\"BrtEndSXVD\" },\n0x011F: { n:\"BrtBeginSXVDs\" },\n0x0120: { n:\"BrtEndSXVDs\" },\n0x0121: { n:\"BrtBeginSXPI\" },\n0x0122: { n:\"BrtEndSXPI\" },\n0x0123: { n:\"BrtBeginSXPIs\" },\n0x0124: { n:\"BrtEndSXPIs\" },\n0x0125: { n:\"BrtBeginSXDI\" },\n0x0126: { n:\"BrtEndSXDI\" },\n0x0127: { n:\"BrtBeginSXDIs\" },\n0x0128: { n:\"BrtEndSXDIs\" },\n0x0129: { n:\"BrtBeginSXLI\" },\n0x012A: { n:\"BrtEndSXLI\" },\n0x012B: { n:\"BrtBeginSXLIRws\" },\n0x012C: { n:\"BrtEndSXLIRws\" },\n0x012D: { n:\"BrtBeginSXLICols\" },\n0x012E: { n:\"BrtEndSXLICols\" },\n0x012F: { n:\"BrtBeginSXFormat\" },\n0x0130: { n:\"BrtEndSXFormat\" },\n0x0131: { n:\"BrtBeginSXFormats\" },\n0x0132: { n:\"BrtEndSxFormats\" },\n0x0133: { n:\"BrtBeginSxSelect\" },\n0x0134: { n:\"BrtEndSxSelect\" },\n0x0135: { n:\"BrtBeginISXVDRws\" },\n0x0136: { n:\"BrtEndISXVDRws\" },\n0x0137: { n:\"BrtBeginISXVDCols\" },\n0x0138: { n:\"BrtEndISXVDCols\" },\n0x0139: { n:\"BrtEndSXLocation\" },\n0x013A: { n:\"BrtBeginSXLocation\" },\n0x013B: { n:\"BrtEndSXView\" },\n0x013C: { n:\"BrtBeginSXTHs\" },\n0x013D: { n:\"BrtEndSXTHs\" },\n0x013E: { n:\"BrtBeginSXTH\" },\n0x013F: { n:\"BrtEndSXTH\" },\n0x0140: { n:\"BrtBeginISXTHRws\" },\n0x0141: { n:\"BrtEndISXTHRws\" },\n0x0142: { n:\"BrtBeginISXTHCols\" },\n0x0143: { n:\"BrtEndISXTHCols\" },\n0x0144: { n:\"BrtBeginSXTDMPS\" },\n0x0145: { n:\"BrtEndSXTDMPs\" },\n0x0146: { n:\"BrtBeginSXTDMP\" },\n0x0147: { n:\"BrtEndSXTDMP\" },\n0x0148: { n:\"BrtBeginSXTHItems\" },\n0x0149: { n:\"BrtEndSXTHItems\" },\n0x014A: { n:\"BrtBeginSXTHItem\" },\n0x014B: { n:\"BrtEndSXTHItem\" },\n0x014C: { n:\"BrtBeginMetadata\" },\n0x014D: { n:\"BrtEndMetadata\" },\n0x014E: { n:\"BrtBeginEsmdtinfo\" },\n0x014F: { n:\"BrtMdtinfo\" },\n0x0150: { n:\"BrtEndEsmdtinfo\" },\n0x0151: { n:\"BrtBeginEsmdb\" },\n0x0152: { n:\"BrtEndEsmdb\" },\n0x0153: { n:\"BrtBeginEsfmd\" },\n0x0154: { n:\"BrtEndEsfmd\" },\n0x0155: { n:\"BrtBeginSingleCells\" },\n0x0156: { n:\"BrtEndSingleCells\" },\n0x0157: { n:\"BrtBeginList\" },\n0x0158: { n:\"BrtEndList\" },\n0x0159: { n:\"BrtBeginListCols\" },\n0x015A: { n:\"BrtEndListCols\" },\n0x015B: { n:\"BrtBeginListCol\" },\n0x015C: { n:\"BrtEndListCol\" },\n0x015D: { n:\"BrtBeginListXmlCPr\" },\n0x015E: { n:\"BrtEndListXmlCPr\" },\n0x015F: { n:\"BrtListCCFmla\" },\n0x0160: { n:\"BrtListTrFmla\" },\n0x0161: { n:\"BrtBeginExternals\" },\n0x0162: { n:\"BrtEndExternals\" },\n0x0163: { n:\"BrtSupBookSrc\", f:parse_RelID},\n0x0165: { n:\"BrtSupSelf\" },\n0x0166: { n:\"BrtSupSame\" },\n0x0167: { n:\"BrtSupTabs\" },\n0x0168: { n:\"BrtBeginSupBook\" },\n0x0169: { n:\"BrtPlaceholderName\" },\n0x016A: { n:\"BrtExternSheet\", f:parse_ExternSheet },\n0x016B: { n:\"BrtExternTableStart\" },\n0x016C: { n:\"BrtExternTableEnd\" },\n0x016E: { n:\"BrtExternRowHdr\" },\n0x016F: { n:\"BrtExternCellBlank\" },\n0x0170: { n:\"BrtExternCellReal\" },\n0x0171: { n:\"BrtExternCellBool\" },\n0x0172: { n:\"BrtExternCellError\" },\n0x0173: { n:\"BrtExternCellString\" },\n0x0174: { n:\"BrtBeginEsmdx\" },\n0x0175: { n:\"BrtEndEsmdx\" },\n0x0176: { n:\"BrtBeginMdxSet\" },\n0x0177: { n:\"BrtEndMdxSet\" },\n0x0178: { n:\"BrtBeginMdxMbrProp\" },\n0x0179: { n:\"BrtEndMdxMbrProp\" },\n0x017A: { n:\"BrtBeginMdxKPI\" },\n0x017B: { n:\"BrtEndMdxKPI\" },\n0x017C: { n:\"BrtBeginEsstr\" },\n0x017D: { n:\"BrtEndEsstr\" },\n0x017E: { n:\"BrtBeginPRFItem\" },\n0x017F: { n:\"BrtEndPRFItem\" },\n0x0180: { n:\"BrtBeginPivotCacheIDs\" },\n0x0181: { n:\"BrtEndPivotCacheIDs\" },\n0x0182: { n:\"BrtBeginPivotCacheID\" },\n0x0183: { n:\"BrtEndPivotCacheID\" },\n0x0184: { n:\"BrtBeginISXVIs\" },\n0x0185: { n:\"BrtEndISXVIs\" },\n0x0186: { n:\"BrtBeginColInfos\" },\n0x0187: { n:\"BrtEndColInfos\" },\n0x0188: { n:\"BrtBeginRwBrk\" },\n0x0189: { n:\"BrtEndRwBrk\" },\n0x018A: { n:\"BrtBeginColBrk\" },\n0x018B: { n:\"BrtEndColBrk\" },\n0x018C: { n:\"BrtBrk\" },\n0x018D: { n:\"BrtUserBookView\" },\n0x018E: { n:\"BrtInfo\" },\n0x018F: { n:\"BrtCUsr\" },\n0x0190: { n:\"BrtUsr\" },\n0x0191: { n:\"BrtBeginUsers\" },\n0x0193: { n:\"BrtEOF\" },\n0x0194: { n:\"BrtUCR\" },\n0x0195: { n:\"BrtRRInsDel\" },\n0x0196: { n:\"BrtRREndInsDel\" },\n0x0197: { n:\"BrtRRMove\" },\n0x0198: { n:\"BrtRREndMove\" },\n0x0199: { n:\"BrtRRChgCell\" },\n0x019A: { n:\"BrtRREndChgCell\" },\n0x019B: { n:\"BrtRRHeader\" },\n0x019C: { n:\"BrtRRUserView\" },\n0x019D: { n:\"BrtRRRenSheet\" },\n0x019E: { n:\"BrtRRInsertSh\" },\n0x019F: { n:\"BrtRRDefName\" },\n0x01A0: { n:\"BrtRRNote\" },\n0x01A1: { n:\"BrtRRConflict\" },\n0x01A2: { n:\"BrtRRTQSIF\" },\n0x01A3: { n:\"BrtRRFormat\" },\n0x01A4: { n:\"BrtRREndFormat\" },\n0x01A5: { n:\"BrtRRAutoFmt\" },\n0x01A6: { n:\"BrtBeginUserShViews\" },\n0x01A7: { n:\"BrtBeginUserShView\" },\n0x01A8: { n:\"BrtEndUserShView\" },\n0x01A9: { n:\"BrtEndUserShViews\" },\n0x01AA: { n:\"BrtArrFmla\", f:parse_BrtArrFmla },\n0x01AB: { n:\"BrtShrFmla\", f:parse_BrtShrFmla },\n0x01AC: { n:\"BrtTable\" },\n0x01AD: { n:\"BrtBeginExtConnections\" },\n0x01AE: { n:\"BrtEndExtConnections\" },\n0x01AF: { n:\"BrtBeginPCDCalcMems\" },\n0x01B0: { n:\"BrtEndPCDCalcMems\" },\n0x01B1: { n:\"BrtBeginPCDCalcMem\" },\n0x01B2: { n:\"BrtEndPCDCalcMem\" },\n0x01B3: { n:\"BrtBeginPCDHGLevels\" },\n0x01B4: { n:\"BrtEndPCDHGLevels\" },\n0x01B5: { n:\"BrtBeginPCDHGLevel\" },\n0x01B6: { n:\"BrtEndPCDHGLevel\" },\n0x01B7: { n:\"BrtBeginPCDHGLGroups\" },\n0x01B8: { n:\"BrtEndPCDHGLGroups\" },\n0x01B9: { n:\"BrtBeginPCDHGLGroup\" },\n0x01BA: { n:\"BrtEndPCDHGLGroup\" },\n0x01BB: { n:\"BrtBeginPCDHGLGMembers\" },\n0x01BC: { n:\"BrtEndPCDHGLGMembers\" },\n0x01BD: { n:\"BrtBeginPCDHGLGMember\" },\n0x01BE: { n:\"BrtEndPCDHGLGMember\" },\n0x01BF: { n:\"BrtBeginQSI\" },\n0x01C0: { n:\"BrtEndQSI\" },\n0x01C1: { n:\"BrtBeginQSIR\" },\n0x01C2: { n:\"BrtEndQSIR\" },\n0x01C3: { n:\"BrtBeginDeletedNames\" },\n0x01C4: { n:\"BrtEndDeletedNames\" },\n0x01C5: { n:\"BrtBeginDeletedName\" },\n0x01C6: { n:\"BrtEndDeletedName\" },\n0x01C7: { n:\"BrtBeginQSIFs\" },\n0x01C8: { n:\"BrtEndQSIFs\" },\n0x01C9: { n:\"BrtBeginQSIF\" },\n0x01CA: { n:\"BrtEndQSIF\" },\n0x01CB: { n:\"BrtBeginAutoSortScope\" },\n0x01CC: { n:\"BrtEndAutoSortScope\" },\n0x01CD: { n:\"BrtBeginConditionalFormatting\" },\n0x01CE: { n:\"BrtEndConditionalFormatting\" },\n0x01CF: { n:\"BrtBeginCFRule\" },\n0x01D0: { n:\"BrtEndCFRule\" },\n0x01D1: { n:\"BrtBeginIconSet\" },\n0x01D2: { n:\"BrtEndIconSet\" },\n0x01D3: { n:\"BrtBeginDatabar\" },\n0x01D4: { n:\"BrtEndDatabar\" },\n0x01D5: { n:\"BrtBeginColorScale\" },\n0x01D6: { n:\"BrtEndColorScale\" },\n0x01D7: { n:\"BrtCFVO\" },\n0x01D8: { n:\"BrtExternValueMeta\" },\n0x01D9: { n:\"BrtBeginColorPalette\" },\n0x01DA: { n:\"BrtEndColorPalette\" },\n0x01DB: { n:\"BrtIndexedColor\" },\n0x01DC: { n:\"BrtMargins\", f:parse_BrtMargins },\n0x01DD: { n:\"BrtPrintOptions\" },\n0x01DE: { n:\"BrtPageSetup\" },\n0x01DF: { n:\"BrtBeginHeaderFooter\" },\n0x01E0: { n:\"BrtEndHeaderFooter\" },\n0x01E1: { n:\"BrtBeginSXCrtFormat\" },\n0x01E2: { n:\"BrtEndSXCrtFormat\" },\n0x01E3: { n:\"BrtBeginSXCrtFormats\" },\n0x01E4: { n:\"BrtEndSXCrtFormats\" },\n0x01E5: { n:\"BrtWsFmtInfo\", f:parse_BrtWsFmtInfo },\n0x01E6: { n:\"BrtBeginMgs\" },\n0x01E7: { n:\"BrtEndMGs\" },\n0x01E8: { n:\"BrtBeginMGMaps\" },\n0x01E9: { n:\"BrtEndMGMaps\" },\n0x01EA: { n:\"BrtBeginMG\" },\n0x01EB: { n:\"BrtEndMG\" },\n0x01EC: { n:\"BrtBeginMap\" },\n0x01ED: { n:\"BrtEndMap\" },\n0x01EE: { n:\"BrtHLink\", f:parse_BrtHLink },\n0x01EF: { n:\"BrtBeginDCon\" },\n0x01F0: { n:\"BrtEndDCon\" },\n0x01F1: { n:\"BrtBeginDRefs\" },\n0x01F2: { n:\"BrtEndDRefs\" },\n0x01F3: { n:\"BrtDRef\" },\n0x01F4: { n:\"BrtBeginScenMan\" },\n0x01F5: { n:\"BrtEndScenMan\" },\n0x01F6: { n:\"BrtBeginSct\" },\n0x01F7: { n:\"BrtEndSct\" },\n0x01F8: { n:\"BrtSlc\" },\n0x01F9: { n:\"BrtBeginDXFs\" },\n0x01FA: { n:\"BrtEndDXFs\" },\n0x01FB: { n:\"BrtDXF\" },\n0x01FC: { n:\"BrtBeginTableStyles\" },\n0x01FD: { n:\"BrtEndTableStyles\" },\n0x01FE: { n:\"BrtBeginTableStyle\" },\n0x01FF: { n:\"BrtEndTableStyle\" },\n0x0200: { n:\"BrtTableStyleElement\" },\n0x0201: { n:\"BrtTableStyleClient\" },\n0x0202: { n:\"BrtBeginVolDeps\" },\n0x0203: { n:\"BrtEndVolDeps\" },\n0x0204: { n:\"BrtBeginVolType\" },\n0x0205: { n:\"BrtEndVolType\" },\n0x0206: { n:\"BrtBeginVolMain\" },\n0x0207: { n:\"BrtEndVolMain\" },\n0x0208: { n:\"BrtBeginVolTopic\" },\n0x0209: { n:\"BrtEndVolTopic\" },\n0x020A: { n:\"BrtVolSubtopic\" },\n0x020B: { n:\"BrtVolRef\" },\n0x020C: { n:\"BrtVolNum\" },\n0x020D: { n:\"BrtVolErr\" },\n0x020E: { n:\"BrtVolStr\" },\n0x020F: { n:\"BrtVolBool\" },\n0x0210: { n:\"BrtBeginCalcChain$\" },\n0x0211: { n:\"BrtEndCalcChain$\" },\n0x0212: { n:\"BrtBeginSortState\" },\n0x0213: { n:\"BrtEndSortState\" },\n0x0214: { n:\"BrtBeginSortCond\" },\n0x0215: { n:\"BrtEndSortCond\" },\n0x0216: { n:\"BrtBookProtection\" },\n0x0217: { n:\"BrtSheetProtection\" },\n0x0218: { n:\"BrtRangeProtection\" },\n0x0219: { n:\"BrtPhoneticInfo\" },\n0x021A: { n:\"BrtBeginECTxtWiz\" },\n0x021B: { n:\"BrtEndECTxtWiz\" },\n0x021C: { n:\"BrtBeginECTWFldInfoLst\" },\n0x021D: { n:\"BrtEndECTWFldInfoLst\" },\n0x021E: { n:\"BrtBeginECTwFldInfo\" },\n0x0224: { n:\"BrtFileSharing\" },\n0x0225: { n:\"BrtOleSize\" },\n0x0226: { n:\"BrtDrawing\", f:parse_RelID },\n0x0227: { n:\"BrtLegacyDrawing\" },\n0x0228: { n:\"BrtLegacyDrawingHF\" },\n0x0229: { n:\"BrtWebOpt\" },\n0x022A: { n:\"BrtBeginWebPubItems\" },\n0x022B: { n:\"BrtEndWebPubItems\" },\n0x022C: { n:\"BrtBeginWebPubItem\" },\n0x022D: { n:\"BrtEndWebPubItem\" },\n0x022E: { n:\"BrtBeginSXCondFmt\" },\n0x022F: { n:\"BrtEndSXCondFmt\" },\n0x0230: { n:\"BrtBeginSXCondFmts\" },\n0x0231: { n:\"BrtEndSXCondFmts\" },\n0x0232: { n:\"BrtBkHim\" },\n0x0234: { n:\"BrtColor\" },\n0x0235: { n:\"BrtBeginIndexedColors\" },\n0x0236: { n:\"BrtEndIndexedColors\" },\n0x0239: { n:\"BrtBeginMRUColors\" },\n0x023A: { n:\"BrtEndMRUColors\" },\n0x023C: { n:\"BrtMRUColor\" },\n0x023D: { n:\"BrtBeginDVals\" },\n0x023E: { n:\"BrtEndDVals\" },\n0x0241: { n:\"BrtSupNameStart\" },\n0x0242: { n:\"BrtSupNameValueStart\" },\n0x0243: { n:\"BrtSupNameValueEnd\" },\n0x0244: { n:\"BrtSupNameNum\" },\n0x0245: { n:\"BrtSupNameErr\" },\n0x0246: { n:\"BrtSupNameSt\" },\n0x0247: { n:\"BrtSupNameNil\" },\n0x0248: { n:\"BrtSupNameBool\" },\n0x0249: { n:\"BrtSupNameFmla\" },\n0x024A: { n:\"BrtSupNameBits\" },\n0x024B: { n:\"BrtSupNameEnd\" },\n0x024C: { n:\"BrtEndSupBook\" },\n0x024D: { n:\"BrtCellSmartTagProperty\" },\n0x024E: { n:\"BrtBeginCellSmartTag\" },\n0x024F: { n:\"BrtEndCellSmartTag\" },\n0x0250: { n:\"BrtBeginCellSmartTags\" },\n0x0251: { n:\"BrtEndCellSmartTags\" },\n0x0252: { n:\"BrtBeginSmartTags\" },\n0x0253: { n:\"BrtEndSmartTags\" },\n0x0254: { n:\"BrtSmartTagType\" },\n0x0255: { n:\"BrtBeginSmartTagTypes\" },\n0x0256: { n:\"BrtEndSmartTagTypes\" },\n0x0257: { n:\"BrtBeginSXFilters\" },\n0x0258: { n:\"BrtEndSXFilters\" },\n0x0259: { n:\"BrtBeginSXFILTER\" },\n0x025A: { n:\"BrtEndSXFilter\" },\n0x025B: { n:\"BrtBeginFills\" },\n0x025C: { n:\"BrtEndFills\" },\n0x025D: { n:\"BrtBeginCellWatches\" },\n0x025E: { n:\"BrtEndCellWatches\" },\n0x025F: { n:\"BrtCellWatch\" },\n0x0260: { n:\"BrtBeginCRErrs\" },\n0x0261: { n:\"BrtEndCRErrs\" },\n0x0262: { n:\"BrtCrashRecErr\" },\n0x0263: { n:\"BrtBeginFonts\" },\n0x0264: { n:\"BrtEndFonts\" },\n0x0265: { n:\"BrtBeginBorders\" },\n0x0266: { n:\"BrtEndBorders\" },\n0x0267: { n:\"BrtBeginFmts\" },\n0x0268: { n:\"BrtEndFmts\" },\n0x0269: { n:\"BrtBeginCellXFs\" },\n0x026A: { n:\"BrtEndCellXFs\" },\n0x026B: { n:\"BrtBeginStyles\" },\n0x026C: { n:\"BrtEndStyles\" },\n0x0271: { n:\"BrtBigName\" },\n0x0272: { n:\"BrtBeginCellStyleXFs\" },\n0x0273: { n:\"BrtEndCellStyleXFs\" },\n0x0274: { n:\"BrtBeginComments\" },\n0x0275: { n:\"BrtEndComments\" },\n0x0276: { n:\"BrtBeginCommentAuthors\" },\n0x0277: { n:\"BrtEndCommentAuthors\" },\n0x0278: { n:\"BrtCommentAuthor\", f:parse_BrtCommentAuthor },\n0x0279: { n:\"BrtBeginCommentList\" },\n0x027A: { n:\"BrtEndCommentList\" },\n0x027B: { n:\"BrtBeginComment\", f:parse_BrtBeginComment},\n0x027C: { n:\"BrtEndComment\" },\n0x027D: { n:\"BrtCommentText\", f:parse_BrtCommentText },\n0x027E: { n:\"BrtBeginOleObjects\" },\n0x027F: { n:\"BrtOleObject\" },\n0x0280: { n:\"BrtEndOleObjects\" },\n0x0281: { n:\"BrtBeginSxrules\" },\n0x0282: { n:\"BrtEndSxRules\" },\n0x0283: { n:\"BrtBeginActiveXControls\" },\n0x0284: { n:\"BrtActiveX\" },\n0x0285: { n:\"BrtEndActiveXControls\" },\n0x0286: { n:\"BrtBeginPCDSDTCEMembersSortBy\" },\n0x0288: { n:\"BrtBeginCellIgnoreECs\" },\n0x0289: { n:\"BrtCellIgnoreEC\" },\n0x028A: { n:\"BrtEndCellIgnoreECs\" },\n0x028B: { n:\"BrtCsProp\", f:parse_BrtCsProp },\n0x028C: { n:\"BrtCsPageSetup\" },\n0x028D: { n:\"BrtBeginUserCsViews\" },\n0x028E: { n:\"BrtEndUserCsViews\" },\n0x028F: { n:\"BrtBeginUserCsView\" },\n0x0290: { n:\"BrtEndUserCsView\" },\n0x0291: { n:\"BrtBeginPcdSFCIEntries\" },\n0x0292: { n:\"BrtEndPCDSFCIEntries\" },\n0x0293: { n:\"BrtPCDSFCIEntry\" },\n0x0294: { n:\"BrtBeginListParts\" },\n0x0295: { n:\"BrtListPart\" },\n0x0296: { n:\"BrtEndListParts\" },\n0x0297: { n:\"BrtSheetCalcProp\" },\n0x0298: { n:\"BrtBeginFnGroup\" },\n0x0299: { n:\"BrtFnGroup\" },\n0x029A: { n:\"BrtEndFnGroup\" },\n0x029B: { n:\"BrtSupAddin\" },\n0x029C: { n:\"BrtSXTDMPOrder\" },\n0x029D: { n:\"BrtCsProtection\" },\n0x029F: { n:\"BrtBeginWsSortMap\" },\n0x02A0: { n:\"BrtEndWsSortMap\" },\n0x02A1: { n:\"BrtBeginRRSort\" },\n0x02A2: { n:\"BrtEndRRSort\" },\n0x02A3: { n:\"BrtRRSortItem\" },\n0x02A4: { n:\"BrtFileSharingIso\" },\n0x02A5: { n:\"BrtBookProtectionIso\" },\n0x02A6: { n:\"BrtSheetProtectionIso\" },\n0x02A7: { n:\"BrtCsProtectionIso\" },\n0x02A8: { n:\"BrtRangeProtectionIso\" },\n0x02A9: { n:\"BrtDValList\" },\n0x0400: { n:\"BrtRwDescent\" },\n0x0401: { n:\"BrtKnownFonts\" },\n0x0402: { n:\"BrtBeginSXTupleSet\" },\n0x0403: { n:\"BrtEndSXTupleSet\" },\n0x0404: { n:\"BrtBeginSXTupleSetHeader\" },\n0x0405: { n:\"BrtEndSXTupleSetHeader\" },\n0x0406: { n:\"BrtSXTupleSetHeaderItem\" },\n0x0407: { n:\"BrtBeginSXTupleSetData\" },\n0x0408: { n:\"BrtEndSXTupleSetData\" },\n0x0409: { n:\"BrtBeginSXTupleSetRow\" },\n0x040A: { n:\"BrtEndSXTupleSetRow\" },\n0x040B: { n:\"BrtSXTupleSetRowItem\" },\n0x040C: { n:\"BrtNameExt\" },\n0x040D: { n:\"BrtPCDH14\" },\n0x040E: { n:\"BrtBeginPCDCalcMem14\" },\n0x040F: { n:\"BrtEndPCDCalcMem14\" },\n0x0410: { n:\"BrtSXTH14\" },\n0x0411: { n:\"BrtBeginSparklineGroup\" },\n0x0412: { n:\"BrtEndSparklineGroup\" },\n0x0413: { n:\"BrtSparkline\" },\n0x0414: { n:\"BrtSXDI14\" },\n0x0415: { n:\"BrtWsFmtInfoEx14\" },\n0x0416: { n:\"BrtBeginConditionalFormatting14\" },\n0x0417: { n:\"BrtEndConditionalFormatting14\" },\n0x0418: { n:\"BrtBeginCFRule14\" },\n0x0419: { n:\"BrtEndCFRule14\" },\n0x041A: { n:\"BrtCFVO14\" },\n0x041B: { n:\"BrtBeginDatabar14\" },\n0x041C: { n:\"BrtBeginIconSet14\" },\n0x041D: { n:\"BrtDVal14\", f: parse_BrtDVal14 },\n0x041E: { n:\"BrtBeginDVals14\" },\n0x041F: { n:\"BrtColor14\" },\n0x0420: { n:\"BrtBeginSparklines\" },\n0x0421: { n:\"BrtEndSparklines\" },\n0x0422: { n:\"BrtBeginSparklineGroups\" },\n0x0423: { n:\"BrtEndSparklineGroups\" },\n0x0425: { n:\"BrtSXVD14\" },\n0x0426: { n:\"BrtBeginSXView14\" },\n0x0427: { n:\"BrtEndSXView14\" },\n0x0428: { n:\"BrtBeginSXView16\" },\n0x0429: { n:\"BrtEndSXView16\" },\n0x042A: { n:\"BrtBeginPCD14\" },\n0x042B: { n:\"BrtEndPCD14\" },\n0x042C: { n:\"BrtBeginExtConn14\" },\n0x042D: { n:\"BrtEndExtConn14\" },\n0x042E: { n:\"BrtBeginSlicerCacheIDs\" },\n0x042F: { n:\"BrtEndSlicerCacheIDs\" },\n0x0430: { n:\"BrtBeginSlicerCacheID\" },\n0x0431: { n:\"BrtEndSlicerCacheID\" },\n0x0433: { n:\"BrtBeginSlicerCache\" },\n0x0434: { n:\"BrtEndSlicerCache\" },\n0x0435: { n:\"BrtBeginSlicerCacheDef\" },\n0x0436: { n:\"BrtEndSlicerCacheDef\" },\n0x0437: { n:\"BrtBeginSlicersEx\" },\n0x0438: { n:\"BrtEndSlicersEx\" },\n0x0439: { n:\"BrtBeginSlicerEx\" },\n0x043A: { n:\"BrtEndSlicerEx\" },\n0x043B: { n:\"BrtBeginSlicer\" },\n0x043C: { n:\"BrtEndSlicer\" },\n0x043D: { n:\"BrtSlicerCachePivotTables\" },\n0x043E: { n:\"BrtBeginSlicerCacheOlapImpl\" },\n0x043F: { n:\"BrtEndSlicerCacheOlapImpl\" },\n0x0440: { n:\"BrtBeginSlicerCacheLevelsData\" },\n0x0441: { n:\"BrtEndSlicerCacheLevelsData\" },\n0x0442: { n:\"BrtBeginSlicerCacheLevelData\" },\n0x0443: { n:\"BrtEndSlicerCacheLevelData\" },\n0x0444: { n:\"BrtBeginSlicerCacheSiRanges\" },\n0x0445: { n:\"BrtEndSlicerCacheSiRanges\" },\n0x0446: { n:\"BrtBeginSlicerCacheSiRange\" },\n0x0447: { n:\"BrtEndSlicerCacheSiRange\" },\n0x0448: { n:\"BrtSlicerCacheOlapItem\" },\n0x0449: { n:\"BrtBeginSlicerCacheSelections\" },\n0x044A: { n:\"BrtSlicerCacheSelection\" },\n0x044B: { n:\"BrtEndSlicerCacheSelections\" },\n0x044C: { n:\"BrtBeginSlicerCacheNative\" },\n0x044D: { n:\"BrtEndSlicerCacheNative\" },\n0x044E: { n:\"BrtSlicerCacheNativeItem\" },\n0x044F: { n:\"BrtRangeProtection14\" },\n0x0450: { n:\"BrtRangeProtectionIso14\" },\n0x0451: { n:\"BrtCellIgnoreEC14\" },\n0x0457: { n:\"BrtList14\" },\n0x0458: { n:\"BrtCFIcon\" },\n0x0459: { n:\"BrtBeginSlicerCachesPivotCacheIDs\" },\n0x045A: { n:\"BrtEndSlicerCachesPivotCacheIDs\" },\n0x045B: { n:\"BrtBeginSlicers\" },\n0x045C: { n:\"BrtEndSlicers\" },\n0x045D: { n:\"BrtWbProp14\" },\n0x045E: { n:\"BrtBeginSXEdit\" },\n0x045F: { n:\"BrtEndSXEdit\" },\n0x0460: { n:\"BrtBeginSXEdits\" },\n0x0461: { n:\"BrtEndSXEdits\" },\n0x0462: { n:\"BrtBeginSXChange\" },\n0x0463: { n:\"BrtEndSXChange\" },\n0x0464: { n:\"BrtBeginSXChanges\" },\n0x0465: { n:\"BrtEndSXChanges\" },\n0x0466: { n:\"BrtSXTupleItems\" },\n0x0468: { n:\"BrtBeginSlicerStyle\" },\n0x0469: { n:\"BrtEndSlicerStyle\" },\n0x046A: { n:\"BrtSlicerStyleElement\" },\n0x046B: { n:\"BrtBeginStyleSheetExt14\" },\n0x046C: { n:\"BrtEndStyleSheetExt14\" },\n0x046D: { n:\"BrtBeginSlicerCachesPivotCacheID\" },\n0x046E: { n:\"BrtEndSlicerCachesPivotCacheID\" },\n0x046F: { n:\"BrtBeginConditionalFormattings\" },\n0x0470: { n:\"BrtEndConditionalFormattings\" },\n0x0471: { n:\"BrtBeginPCDCalcMemExt\" },\n0x0472: { n:\"BrtEndPCDCalcMemExt\" },\n0x0473: { n:\"BrtBeginPCDCalcMemsExt\" },\n0x0474: { n:\"BrtEndPCDCalcMemsExt\" },\n0x0475: { n:\"BrtPCDField14\" },\n0x0476: { n:\"BrtBeginSlicerStyles\" },\n0x0477: { n:\"BrtEndSlicerStyles\" },\n0x0478: { n:\"BrtBeginSlicerStyleElements\" },\n0x0479: { n:\"BrtEndSlicerStyleElements\" },\n0x047A: { n:\"BrtCFRuleExt\" },\n0x047B: { n:\"BrtBeginSXCondFmt14\" },\n0x047C: { n:\"BrtEndSXCondFmt14\" },\n0x047D: { n:\"BrtBeginSXCondFmts14\" },\n0x047E: { n:\"BrtEndSXCondFmts14\" },\n0x0480: { n:\"BrtBeginSortCond14\" },\n0x0481: { n:\"BrtEndSortCond14\" },\n0x0482: { n:\"BrtEndDVals14\" },\n0x0483: { n:\"BrtEndIconSet14\" },\n0x0484: { n:\"BrtEndDatabar14\" },\n0x0485: { n:\"BrtBeginColorScale14\" },\n0x0486: { n:\"BrtEndColorScale14\" },\n0x0487: { n:\"BrtBeginSxrules14\" },\n0x0488: { n:\"BrtEndSxrules14\" },\n0x0489: { n:\"BrtBeginPRule14\" },\n0x048A: { n:\"BrtEndPRule14\" },\n0x048B: { n:\"BrtBeginPRFilters14\" },\n0x048C: { n:\"BrtEndPRFilters14\" },\n0x048D: { n:\"BrtBeginPRFilter14\" },\n0x048E: { n:\"BrtEndPRFilter14\" },\n0x048F: { n:\"BrtBeginPRFItem14\" },\n0x0490: { n:\"BrtEndPRFItem14\" },\n0x0491: { n:\"BrtBeginCellIgnoreECs14\" },\n0x0492: { n:\"BrtEndCellIgnoreECs14\" },\n0x0493: { n:\"BrtDxf14\" },\n0x0494: { n:\"BrtBeginDxF14s\" },\n0x0495: { n:\"BrtEndDxf14s\" },\n0x0499: { n:\"BrtFilter14\" },\n0x049A: { n:\"BrtBeginCustomFilters14\" },\n0x049C: { n:\"BrtCustomFilter14\" },\n0x049D: { n:\"BrtIconFilter14\" },\n0x049E: { n:\"BrtPivotCacheConnectionName\" },\n0x0800: { n:\"BrtBeginDecoupledPivotCacheIDs\" },\n0x0801: { n:\"BrtEndDecoupledPivotCacheIDs\" },\n0x0802: { n:\"BrtDecoupledPivotCacheID\" },\n0x0803: { n:\"BrtBeginPivotTableRefs\" },\n0x0804: { n:\"BrtEndPivotTableRefs\" },\n0x0805: { n:\"BrtPivotTableRef\" },\n0x0806: { n:\"BrtSlicerCacheBookPivotTables\" },\n0x0807: { n:\"BrtBeginSxvcells\" },\n0x0808: { n:\"BrtEndSxvcells\" },\n0x0809: { n:\"BrtBeginSxRow\" },\n0x080A: { n:\"BrtEndSxRow\" },\n0x080C: { n:\"BrtPcdCalcMem15\" },\n0x0813: { n:\"BrtQsi15\" },\n0x0814: { n:\"BrtBeginWebExtensions\" },\n0x0815: { n:\"BrtEndWebExtensions\" },\n0x0816: { n:\"BrtWebExtension\" },\n0x0817: { n:\"BrtAbsPath15\" },\n0x0818: { n:\"BrtBeginPivotTableUISettings\" },\n0x0819: { n:\"BrtEndPivotTableUISettings\" },\n0x081B: { n:\"BrtTableSlicerCacheIDs\" },\n0x081C: { n:\"BrtTableSlicerCacheID\" },\n0x081D: { n:\"BrtBeginTableSlicerCache\" },\n0x081E: { n:\"BrtEndTableSlicerCache\" },\n0x081F: { n:\"BrtSxFilter15\" },\n0x0820: { n:\"BrtBeginTimelineCachePivotCacheIDs\" },\n0x0821: { n:\"BrtEndTimelineCachePivotCacheIDs\" },\n0x0822: { n:\"BrtTimelineCachePivotCacheID\" },\n0x0823: { n:\"BrtBeginTimelineCacheIDs\" },\n0x0824: { n:\"BrtEndTimelineCacheIDs\" },\n0x0825: { n:\"BrtBeginTimelineCacheID\" },\n0x0826: { n:\"BrtEndTimelineCacheID\" },\n0x0827: { n:\"BrtBeginTimelinesEx\" },\n0x0828: { n:\"BrtEndTimelinesEx\" },\n0x0829: { n:\"BrtBeginTimelineEx\" },\n0x082A: { n:\"BrtEndTimelineEx\" },\n0x082B: { n:\"BrtWorkBookPr15\" },\n0x082C: { n:\"BrtPCDH15\" },\n0x082D: { n:\"BrtBeginTimelineStyle\" },\n0x082E: { n:\"BrtEndTimelineStyle\" },\n0x082F: { n:\"BrtTimelineStyleElement\" },\n0x0830: { n:\"BrtBeginTimelineStylesheetExt15\" },\n0x0831: { n:\"BrtEndTimelineStylesheetExt15\" },\n0x0832: { n:\"BrtBeginTimelineStyles\" },\n0x0833: { n:\"BrtEndTimelineStyles\" },\n0x0834: { n:\"BrtBeginTimelineStyleElements\" },\n0x0835: { n:\"BrtEndTimelineStyleElements\" },\n0x0836: { n:\"BrtDxf15\" },\n0x0837: { n:\"BrtBeginDxfs15\" },\n0x0838: { n:\"brtEndDxfs15\" },\n0x0839: { n:\"BrtSlicerCacheHideItemsWithNoData\" },\n0x083A: { n:\"BrtBeginItemUniqueNames\" },\n0x083B: { n:\"BrtEndItemUniqueNames\" },\n0x083C: { n:\"BrtItemUniqueName\" },\n0x083D: { n:\"BrtBeginExtConn15\" },\n0x083E: { n:\"BrtEndExtConn15\" },\n0x083F: { n:\"BrtBeginOledbPr15\" },\n0x0840: { n:\"BrtEndOledbPr15\" },\n0x0841: { n:\"BrtBeginDataFeedPr15\" },\n0x0842: { n:\"BrtEndDataFeedPr15\" },\n0x0843: { n:\"BrtTextPr15\" },\n0x0844: { n:\"BrtRangePr15\" },\n0x0845: { n:\"BrtDbCommand15\" },\n0x0846: { n:\"BrtBeginDbTables15\" },\n0x0847: { n:\"BrtEndDbTables15\" },\n0x0848: { n:\"BrtDbTable15\" },\n0x0849: { n:\"BrtBeginDataModel\" },\n0x084A: { n:\"BrtEndDataModel\" },\n0x084B: { n:\"BrtBeginModelTables\" },\n0x084C: { n:\"BrtEndModelTables\" },\n0x084D: { n:\"BrtModelTable\" },\n0x084E: { n:\"BrtBeginModelRelationships\" },\n0x084F: { n:\"BrtEndModelRelationships\" },\n0x0850: { n:\"BrtModelRelationship\" },\n0x0851: { n:\"BrtBeginECTxtWiz15\" },\n0x0852: { n:\"BrtEndECTxtWiz15\" },\n0x0853: { n:\"BrtBeginECTWFldInfoLst15\" },\n0x0854: { n:\"BrtEndECTWFldInfoLst15\" },\n0x0855: { n:\"BrtBeginECTWFldInfo15\" },\n0x0856: { n:\"BrtFieldListActiveItem\" },\n0x0857: { n:\"BrtPivotCacheIdVersion\" },\n0x0858: { n:\"BrtSXDI15\" },\n0x0859: { n:\"BrtBeginModelTimeGroupings\" },\n0x085A: { n:\"BrtEndModelTimeGroupings\" },\n0x085B: { n:\"BrtBeginModelTimeGrouping\" },\n0x085C: { n:\"BrtEndModelTimeGrouping\" },\n0x085D: { n:\"BrtModelTimeGroupingCalcCol\" },\n0x0C00: { n:\"BrtUid\" },\n0x0C01: { n:\"BrtRevisionPtr\" },\n0x13e7: { n:\"BrtBeginCalcFeatures\" },\n0x13e8: { n:\"BrtEndCalcFeatures\" },\n0x13e9: { n:\"BrtCalcFeature\" },\n0xFFFF: { n:\"\" }\n};\n\nvar XLSBRE = evert_key(XLSBRecordEnum, 'n');\n\n/* [MS-XLS] 2.3 Record Enumeration */\nvar XLSRecordEnum = {\n0x0003: { n:\"BIFF2NUM\", f:parse_BIFF2NUM },\n0x0004: { n:\"BIFF2STR\", f:parse_BIFF2STR },\n0x0006: { n:\"Formula\", f:parse_Formula },\n0x0009: { n:'BOF', f:parse_BOF },\n0x000a: { n:'EOF', f:parsenoop2 },\n0x000c: { n:\"CalcCount\", f:parseuint16 },\n0x000d: { n:\"CalcMode\", f:parseuint16 },\n0x000e: { n:\"CalcPrecision\", f:parsebool },\n0x000f: { n:\"CalcRefMode\", f:parsebool },\n0x0010: { n:\"CalcDelta\", f:parse_Xnum },\n0x0011: { n:\"CalcIter\", f:parsebool },\n0x0012: { n:\"Protect\", f:parsebool },\n0x0013: { n:\"Password\", f:parseuint16 },\n0x0014: { n:\"Header\", f:parse_XLHeaderFooter },\n0x0015: { n:\"Footer\", f:parse_XLHeaderFooter },\n0x0017: { n:\"ExternSheet\", f:parse_ExternSheet },\n0x0018: { n:\"Lbl\", f:parse_Lbl },\n0x0019: { n:\"WinProtect\", f:parsebool },\n0x001a: { n:\"VerticalPageBreaks\" },\n0x001b: { n:\"HorizontalPageBreaks\" },\n0x001c: { n:\"Note\", f:parse_Note },\n0x001d: { n:\"Selection\" },\n0x0022: { n:\"Date1904\", f:parsebool },\n0x0023: { n:\"ExternName\", f:parse_ExternName },\n0x0024: { n:\"COLWIDTH\" },\n0x0026: { n:\"LeftMargin\", f:parse_Xnum },\n0x0027: { n:\"RightMargin\", f:parse_Xnum },\n0x0028: { n:\"TopMargin\", f:parse_Xnum },\n0x0029: { n:\"BottomMargin\", f:parse_Xnum },\n0x002a: { n:\"PrintRowCol\", f:parsebool },\n0x002b: { n:\"PrintGrid\", f:parsebool },\n0x002f: { n:\"FilePass\", f:parse_FilePass },\n0x0031: { n:\"Font\", f:parse_Font },\n0x0033: { n:\"PrintSize\", f:parseuint16 },\n0x003c: { n:\"Continue\" },\n0x003d: { n:\"Window1\", f:parse_Window1 },\n0x0040: { n:\"Backup\", f:parsebool },\n0x0041: { n:\"Pane\", f:parse_Pane },\n0x0042: { n:'CodePage', f:parseuint16 },\n0x004d: { n:\"Pls\" },\n0x0050: { n:\"DCon\" },\n0x0051: { n:\"DConRef\" },\n0x0052: { n:\"DConName\" },\n0x0055: { n:\"DefColWidth\", f:parseuint16 },\n0x0059: { n:\"XCT\" },\n0x005a: { n:\"CRN\" },\n0x005b: { n:\"FileSharing\" },\n0x005c: { n:'WriteAccess', f:parse_WriteAccess },\n0x005d: { n:\"Obj\", f:parse_Obj },\n0x005e: { n:\"Uncalced\" },\n0x005f: { n:\"CalcSaveRecalc\", f:parsebool },\n0x0060: { n:\"Template\" },\n0x0061: { n:\"Intl\" },\n0x0063: { n:\"ObjProtect\", f:parsebool },\n0x007d: { n:\"ColInfo\", f:parse_ColInfo },\n0x0080: { n:\"Guts\", f:parse_Guts },\n0x0081: { n:\"WsBool\", f:parse_WsBool },\n0x0082: { n:\"GridSet\", f:parseuint16 },\n0x0083: { n:\"HCenter\", f:parsebool },\n0x0084: { n:\"VCenter\", f:parsebool },\n0x0085: { n:'BoundSheet8', f:parse_BoundSheet8 },\n0x0086: { n:\"WriteProtect\" },\n0x008c: { n:\"Country\", f:parse_Country },\n0x008d: { n:\"HideObj\", f:parseuint16 },\n0x0090: { n:\"Sort\" },\n0x0092: { n:\"Palette\", f:parse_Palette },\n0x0097: { n:\"Sync\" },\n0x0098: { n:\"LPr\" },\n0x0099: { n:\"DxGCol\" },\n0x009a: { n:\"FnGroupName\" },\n0x009b: { n:\"FilterMode\" },\n0x009c: { n:\"BuiltInFnGroupCount\", f:parseuint16 },\n0x009d: { n:\"AutoFilterInfo\" },\n0x009e: { n:\"AutoFilter\" },\n0x00a0: { n:\"Scl\", f:parse_Scl },\n0x00a1: { n:\"Setup\", f:parse_Setup },\n0x00ae: { n:\"ScenMan\" },\n0x00af: { n:\"SCENARIO\" },\n0x00b0: { n:\"SxView\" },\n0x00b1: { n:\"Sxvd\" },\n0x00b2: { n:\"SXVI\" },\n0x00b4: { n:\"SxIvd\" },\n0x00b5: { n:\"SXLI\" },\n0x00b6: { n:\"SXPI\" },\n0x00b8: { n:\"DocRoute\" },\n0x00b9: { n:\"RecipName\" },\n0x00bd: { n:\"MulRk\", f:parse_MulRk },\n0x00be: { n:\"MulBlank\", f:parse_MulBlank },\n0x00c1: { n:'Mms', f:parsenoop2 },\n0x00c5: { n:\"SXDI\" },\n0x00c6: { n:\"SXDB\" },\n0x00c7: { n:\"SXFDB\" },\n0x00c8: { n:\"SXDBB\" },\n0x00c9: { n:\"SXNum\" },\n0x00ca: { n:\"SxBool\", f:parsebool },\n0x00cb: { n:\"SxErr\" },\n0x00cc: { n:\"SXInt\" },\n0x00cd: { n:\"SXString\" },\n0x00ce: { n:\"SXDtr\" },\n0x00cf: { n:\"SxNil\" },\n0x00d0: { n:\"SXTbl\" },\n0x00d1: { n:\"SXTBRGIITM\" },\n0x00d2: { n:\"SxTbpg\" },\n0x00d3: { n:\"ObProj\" },\n0x00d5: { n:\"SXStreamID\" },\n0x00d7: { n:\"DBCell\" },\n0x00d8: { n:\"SXRng\" },\n0x00d9: { n:\"SxIsxoper\" },\n0x00da: { n:\"BookBool\", f:parseuint16 },\n0x00dc: { n:\"DbOrParamQry\" },\n0x00dd: { n:\"ScenarioProtect\", f:parsebool },\n0x00de: { n:\"OleObjectSize\" },\n0x00e0: { n:\"XF\", f:parse_XF },\n0x00e1: { n:'InterfaceHdr', f:parse_InterfaceHdr },\n0x00e2: { n:'InterfaceEnd', f:parsenoop2 },\n0x00e3: { n:\"SXVS\" },\n0x00e5: { n:\"MergeCells\", f:parse_MergeCells },\n0x00e9: { n:\"BkHim\" },\n0x00eb: { n:\"MsoDrawingGroup\" },\n0x00ec: { n:\"MsoDrawing\" },\n0x00ed: { n:\"MsoDrawingSelection\" },\n0x00ef: { n:\"PhoneticInfo\" },\n0x00f0: { n:\"SxRule\" },\n0x00f1: { n:\"SXEx\" },\n0x00f2: { n:\"SxFilt\" },\n0x00f4: { n:\"SxDXF\" },\n0x00f5: { n:\"SxItm\" },\n0x00f6: { n:\"SxName\" },\n0x00f7: { n:\"SxSelect\" },\n0x00f8: { n:\"SXPair\" },\n0x00f9: { n:\"SxFmla\" },\n0x00fb: { n:\"SxFormat\" },\n0x00fc: { n:\"SST\", f:parse_SST },\n0x00fd: { n:\"LabelSst\", f:parse_LabelSst },\n0x00ff: { n:\"ExtSST\", f:parse_ExtSST },\n0x0100: { n:\"SXVDEx\" },\n0x0103: { n:\"SXFormula\" },\n0x0122: { n:\"SXDBEx\" },\n0x0137: { n:\"RRDInsDel\" },\n0x0138: { n:\"RRDHead\" },\n0x013b: { n:\"RRDChgCell\" },\n0x013d: { n:\"RRTabId\", f:parseuint16a },\n0x013e: { n:\"RRDRenSheet\" },\n0x013f: { n:\"RRSort\" },\n0x0140: { n:\"RRDMove\" },\n0x014a: { n:\"RRFormat\" },\n0x014b: { n:\"RRAutoFmt\" },\n0x014d: { n:\"RRInsertSh\" },\n0x014e: { n:\"RRDMoveBegin\" },\n0x014f: { n:\"RRDMoveEnd\" },\n0x0150: { n:\"RRDInsDelBegin\" },\n0x0151: { n:\"RRDInsDelEnd\" },\n0x0152: { n:\"RRDConflict\" },\n0x0153: { n:\"RRDDefName\" },\n0x0154: { n:\"RRDRstEtxp\" },\n0x015f: { n:\"LRng\" },\n0x0160: { n:\"UsesELFs\", f:parsebool },\n0x0161: { n:\"DSF\", f:parsenoop2 },\n0x0191: { n:\"CUsr\" },\n0x0192: { n:\"CbUsr\" },\n0x0193: { n:\"UsrInfo\" },\n0x0194: { n:\"UsrExcl\" },\n0x0195: { n:\"FileLock\" },\n0x0196: { n:\"RRDInfo\" },\n0x0197: { n:\"BCUsrs\" },\n0x0198: { n:\"UsrChk\" },\n0x01a9: { n:\"UserBView\" },\n0x01aa: { n:\"UserSViewBegin\" },\n0x01ab: { n:\"UserSViewEnd\" },\n0x01ac: { n:\"RRDUserView\" },\n0x01ad: { n:\"Qsi\" },\n0x01ae: { n:\"SupBook\", f:parse_SupBook },\n0x01af: { n:\"Prot4Rev\", f:parsebool },\n0x01b0: { n:\"CondFmt\" },\n0x01b1: { n:\"CF\" },\n0x01b2: { n:\"DVal\" },\n0x01b5: { n:\"DConBin\" },\n0x01b6: { n:\"TxO\", f:parse_TxO },\n0x01b7: { n:\"RefreshAll\", f:parsebool },\n0x01b8: { n:\"HLink\", f:parse_HLink },\n0x01b9: { n:\"Lel\" },\n0x01ba: { n:\"CodeName\", f:parse_XLUnicodeString },\n0x01bb: { n:\"SXFDBType\" },\n0x01bc: { n:\"Prot4RevPass\", f:parseuint16 },\n0x01bd: { n:\"ObNoMacros\" },\n0x01be: { n:\"Dv\" },\n0x01c0: { n:\"Excel9File\", f:parsenoop2 },\n0x01c1: { n:\"RecalcId\", f:parse_RecalcId, r:2},\n0x01c2: { n:\"EntExU2\", f:parsenoop2 },\n0x0200: { n:\"Dimensions\", f:parse_Dimensions },\n0x0201: { n:\"Blank\", f:parse_Blank },\n0x0203: { n:\"Number\", f:parse_Number },\n0x0204: { n:\"Label\", f:parse_Label },\n0x0205: { n:\"BoolErr\", f:parse_BoolErr },\n0x0206: { n:\"Formula\", f:parse_Formula },\n0x0207: { n:\"String\", f:parse_String },\n0x0208: { n:'Row', f:parse_Row },\n0x020b: { n:\"Index\" },\n0x0221: { n:\"Array\", f:parse_Array },\n0x0225: { n:\"DefaultRowHeight\", f:parse_DefaultRowHeight },\n0x0236: { n:\"Table\" },\n0x023e: { n:\"Window2\", f:parse_Window2 },\n0x027e: { n:\"RK\", f:parse_RK },\n0x0293: { n:\"Style\" },\n0x0406: { n:\"Formula\", f:parse_Formula },\n0x0418: { n:\"BigName\" },\n0x041e: { n:\"Format\", f:parse_Format },\n0x043c: { n:\"ContinueBigName\" },\n0x04bc: { n:\"ShrFmla\", f:parse_ShrFmla },\n0x0800: { n:\"HLinkTooltip\", f:parse_HLinkTooltip },\n0x0801: { n:\"WebPub\" },\n0x0802: { n:\"QsiSXTag\" },\n0x0803: { n:\"DBQueryExt\" },\n0x0804: { n:\"ExtString\" },\n0x0805: { n:\"TxtQry\" },\n0x0806: { n:\"Qsir\" },\n0x0807: { n:\"Qsif\" },\n0x0808: { n:\"RRDTQSIF\" },\n0x0809: { n:'BOF', f:parse_BOF },\n0x080a: { n:\"OleDbConn\" },\n0x080b: { n:\"WOpt\" },\n0x080c: { n:\"SXViewEx\" },\n0x080d: { n:\"SXTH\" },\n0x080e: { n:\"SXPIEx\" },\n0x080f: { n:\"SXVDTEx\" },\n0x0810: { n:\"SXViewEx9\" },\n0x0812: { n:\"ContinueFrt\" },\n0x0813: { n:\"RealTimeData\" },\n0x0850: { n:\"ChartFrtInfo\" },\n0x0851: { n:\"FrtWrapper\" },\n0x0852: { n:\"StartBlock\" },\n0x0853: { n:\"EndBlock\" },\n0x0854: { n:\"StartObject\" },\n0x0855: { n:\"EndObject\" },\n0x0856: { n:\"CatLab\" },\n0x0857: { n:\"YMult\" },\n0x0858: { n:\"SXViewLink\" },\n0x0859: { n:\"PivotChartBits\" },\n0x085a: { n:\"FrtFontList\" },\n0x0862: { n:\"SheetExt\" },\n0x0863: { n:\"BookExt\", r:12},\n0x0864: { n:\"SXAddl\" },\n0x0865: { n:\"CrErr\" },\n0x0866: { n:\"HFPicture\" },\n0x0867: { n:'FeatHdr', f:parsenoop2 },\n0x0868: { n:\"Feat\" },\n0x086a: { n:\"DataLabExt\" },\n0x086b: { n:\"DataLabExtContents\" },\n0x086c: { n:\"CellWatch\" },\n0x0871: { n:\"FeatHdr11\" },\n0x0872: { n:\"Feature11\" },\n0x0874: { n:\"DropDownObjIds\" },\n0x0875: { n:\"ContinueFrt11\" },\n0x0876: { n:\"DConn\" },\n0x0877: { n:\"List12\" },\n0x0878: { n:\"Feature12\" },\n0x0879: { n:\"CondFmt12\" },\n0x087a: { n:\"CF12\" },\n0x087b: { n:\"CFEx\" },\n0x087c: { n:\"XFCRC\", f:parse_XFCRC, r:12 },\n0x087d: { n:\"XFExt\", f:parse_XFExt, r:12 },\n0x087e: { n:\"AutoFilter12\" },\n0x087f: { n:\"ContinueFrt12\" },\n0x0884: { n:\"MDTInfo\" },\n0x0885: { n:\"MDXStr\" },\n0x0886: { n:\"MDXTuple\" },\n0x0887: { n:\"MDXSet\" },\n0x0888: { n:\"MDXProp\" },\n0x0889: { n:\"MDXKPI\" },\n0x088a: { n:\"MDB\" },\n0x088b: { n:\"PLV\" },\n0x088c: { n:\"Compat12\", f:parsebool, r:12 },\n0x088d: { n:\"DXF\" },\n0x088e: { n:\"TableStyles\", r:12 },\n0x088f: { n:\"TableStyle\" },\n0x0890: { n:\"TableStyleElement\" },\n0x0892: { n:\"StyleExt\" },\n0x0893: { n:\"NamePublish\" },\n0x0894: { n:\"NameCmt\", f:parse_NameCmt, r:12 },\n0x0895: { n:\"SortData\" },\n0x0896: { n:\"Theme\", f:parse_Theme, r:12 },\n0x0897: { n:\"GUIDTypeLib\" },\n0x0898: { n:\"FnGrp12\" },\n0x0899: { n:\"NameFnGrp12\" },\n0x089a: { n:\"MTRSettings\", f:parse_MTRSettings, r:12 },\n0x089b: { n:\"CompressPictures\", f:parsenoop2 },\n0x089c: { n:\"HeaderFooter\" },\n0x089d: { n:\"CrtLayout12\" },\n0x089e: { n:\"CrtMlFrt\" },\n0x089f: { n:\"CrtMlFrtContinue\" },\n0x08a3: { n:\"ForceFullCalculation\", f:parse_ForceFullCalculation },\n0x08a4: { n:\"ShapePropsStream\" },\n0x08a5: { n:\"TextPropsStream\" },\n0x08a6: { n:\"RichTextStream\" },\n0x08a7: { n:\"CrtLayout12A\" },\n0x1001: { n:\"Units\" },\n0x1002: { n:\"Chart\" },\n0x1003: { n:\"Series\" },\n0x1006: { n:\"DataFormat\" },\n0x1007: { n:\"LineFormat\" },\n0x1009: { n:\"MarkerFormat\" },\n0x100a: { n:\"AreaFormat\" },\n0x100b: { n:\"PieFormat\" },\n0x100c: { n:\"AttachedLabel\" },\n0x100d: { n:\"SeriesText\" },\n0x1014: { n:\"ChartFormat\" },\n0x1015: { n:\"Legend\" },\n0x1016: { n:\"SeriesList\" },\n0x1017: { n:\"Bar\" },\n0x1018: { n:\"Line\" },\n0x1019: { n:\"Pie\" },\n0x101a: { n:\"Area\" },\n0x101b: { n:\"Scatter\" },\n0x101c: { n:\"CrtLine\" },\n0x101d: { n:\"Axis\" },\n0x101e: { n:\"Tick\" },\n0x101f: { n:\"ValueRange\" },\n0x1020: { n:\"CatSerRange\" },\n0x1021: { n:\"AxisLine\" },\n0x1022: { n:\"CrtLink\" },\n0x1024: { n:\"DefaultText\" },\n0x1025: { n:\"Text\" },\n0x1026: { n:\"FontX\", f:parseuint16 },\n0x1027: { n:\"ObjectLink\" },\n0x1032: { n:\"Frame\" },\n0x1033: { n:\"Begin\" },\n0x1034: { n:\"End\" },\n0x1035: { n:\"PlotArea\" },\n0x103a: { n:\"Chart3d\" },\n0x103c: { n:\"PicF\" },\n0x103d: { n:\"DropBar\" },\n0x103e: { n:\"Radar\" },\n0x103f: { n:\"Surf\" },\n0x1040: { n:\"RadarArea\" },\n0x1041: { n:\"AxisParent\" },\n0x1043: { n:\"LegendException\" },\n0x1044: { n:\"ShtProps\", f:parse_ShtProps },\n0x1045: { n:\"SerToCrt\" },\n0x1046: { n:\"AxesUsed\" },\n0x1048: { n:\"SBaseRef\" },\n0x104a: { n:\"SerParent\" },\n0x104b: { n:\"SerAuxTrend\" },\n0x104e: { n:\"IFmtRecord\" },\n0x104f: { n:\"Pos\" },\n0x1050: { n:\"AlRuns\" },\n0x1051: { n:\"BRAI\" },\n0x105b: { n:\"SerAuxErrBar\" },\n0x105c: { n:\"ClrtClient\", f:parse_ClrtClient },\n0x105d: { n:\"SerFmt\" },\n0x105f: { n:\"Chart3DBarShape\" },\n0x1060: { n:\"Fbi\" },\n0x1061: { n:\"BopPop\" },\n0x1062: { n:\"AxcExt\" },\n0x1063: { n:\"Dat\" },\n0x1064: { n:\"PlotGrowth\" },\n0x1065: { n:\"SIIndex\" },\n0x1066: { n:\"GelFrame\" },\n0x1067: { n:\"BopPopCustom\" },\n0x1068: { n:\"Fbi2\" },\n\n0x0000: { n:\"Dimensions\", f:parse_Dimensions },\n0x0002: { n:\"BIFF2INT\", f:parse_BIFF2INT },\n0x0005: { n:\"BoolErr\", f:parse_BoolErr },\n0x0007: { n:\"String\", f:parse_BIFF2STRING },\n0x0008: { n:\"BIFF2ROW\" },\n0x000b: { n:\"Index\" },\n0x0016: { n:\"ExternCount\", f:parseuint16 },\n0x001e: { n:\"BIFF2FORMAT\", f:parse_BIFF2Format },\n0x001f: { n:\"BIFF2FMTCNT\" }, /* 16-bit cnt of BIFF2FORMAT records */\n0x0020: { n:\"BIFF2COLINFO\" },\n0x0021: { n:\"Array\", f:parse_Array },\n0x0025: { n:\"DefaultRowHeight\", f:parse_DefaultRowHeight },\n0x0032: { n:\"BIFF2FONTXTRA\", f:parse_BIFF2FONTXTRA },\n0x0034: { n:\"DDEObjName\" },\n0x003e: { n:\"BIFF2WINDOW2\" },\n0x0043: { n:\"BIFF2XF\" },\n0x0045: { n:\"BIFF2FONTCLR\" },\n0x0056: { n:\"BIFF4FMTCNT\" }, /* 16-bit cnt, similar to BIFF2 */\n0x007e: { n:\"RK\" }, /* Not necessarily same as 0x027e */\n0x007f: { n:\"ImData\", f:parse_ImData },\n0x0087: { n:\"Addin\" },\n0x0088: { n:\"Edg\" },\n0x0089: { n:\"Pub\" },\n0x0091: { n:\"Sub\" },\n0x0094: { n:\"LHRecord\" },\n0x0095: { n:\"LHNGraph\" },\n0x0096: { n:\"Sound\" },\n0x00a9: { n:\"CoordList\" },\n0x00ab: { n:\"GCW\" },\n0x00bc: { n:\"ShrFmla\" }, /* Not necessarily same as 0x04bc */\n0x00bf: { n:\"ToolbarHdr\" },\n0x00c0: { n:\"ToolbarEnd\" },\n0x00c2: { n:\"AddMenu\" },\n0x00c3: { n:\"DelMenu\" },\n0x00d6: { n:\"RString\", f:parse_RString },\n0x00df: { n:\"UDDesc\" },\n0x00ea: { n:\"TabIdConf\" },\n0x0162: { n:\"XL5Modify\" },\n0x01a5: { n:\"FileSharing2\" },\n0x0209: { n:'BOF', f:parse_BOF },\n0x0218: { n:\"Lbl\", f:parse_Lbl },\n0x0223: { n:\"ExternName\", f:parse_ExternName },\n0x0231: { n:\"Font\" },\n0x0243: { n:\"BIFF3XF\" },\n0x0409: { n:'BOF', f:parse_BOF },\n0x0443: { n:\"BIFF4XF\" },\n0x086d: { n:\"FeatInfo\" },\n0x0873: { n:\"FeatInfo11\" },\n0x0881: { n:\"SXAddl12\" },\n0x08c0: { n:\"AutoWebPub\" },\n0x08c1: { n:\"ListObj\" },\n0x08c2: { n:\"ListField\" },\n0x08c3: { n:\"ListDV\" },\n0x08c4: { n:\"ListCondFmt\" },\n0x08c5: { n:\"ListCF\" },\n0x08c6: { n:\"FMQry\" },\n0x08c7: { n:\"FMSQry\" },\n0x08c8: { n:\"PLV\" },\n0x08c9: { n:\"LnExt\" },\n0x08ca: { n:\"MkrExt\" },\n0x08cb: { n:\"CrtCoopt\" },\n0x08d6: { n:\"FRTArchId$\", r:12 },\n\n0x7262: {}\n};\n\nvar XLSRE = evert_key(XLSRecordEnum, 'n');\nfunction write_biff_rec(ba, type, payload, length) {\n\tvar t = +type || +XLSRE[type];\n\tif(isNaN(t)) return;\n\tvar len = length || (payload||[]).length || 0;\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, len);\n\tif(len > 0 && is_buf(payload)) ba.push(payload);\n}\n\nfunction write_biff_continue(ba, type, payload, length) {\n\tvar len = length || (payload||[]).length || 0;\n\tif(len <= 8224) return write_biff_rec(ba, type, payload, len);\n\tvar t = +type || +XLSRE[type];\n\tif(isNaN(t)) return;\n\tvar parts = payload.parts || [], sidx = 0;\n\tvar i = 0, w = 0;\n\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, w);\n\tba.push(payload.slice(i, i + w));\n\ti += w;\n\twhile(i < len) {\n\t\to = ba.next(4);\n\t\to.write_shift(2, 0x3c); // TODO: figure out correct continue type\n\t\tw = 0;\n\t\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\t\to.write_shift(2, w);\n\t\tba.push(payload.slice(i, i+w)); i+= w;\n\t}\n}\n\nfunction write_BIFF2Cell(out, r, c) {\n\tif(!out) out = new_buf(7);\n\tout.write_shift(2, r);\n\tout.write_shift(2, c);\n\tout.write_shift(2, 0);\n\tout.write_shift(1, 0);\n\treturn out;\n}\n\nfunction write_BIFF2BERR(r, c, val, t) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\tif(t == 'e') { out.write_shift(1, val); out.write_shift(1, 1); }\n\telse { out.write_shift(1, val?1:0); out.write_shift(1, 0); }\n\treturn out;\n}\n\n/* TODO: codepage, large strings */\nfunction write_BIFF2LABEL(r, c, val) {\n\tvar out = new_buf(8 + 2*val.length);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(1, val.length);\n\tout.write_shift(val.length, val, 'sbcs');\n\treturn out.l < out.length ? out.slice(0, out.l) : out;\n}\n\nfunction write_ws_biff2_cell(ba, cell, R, C) {\n\tif(cell.v != null) switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v;\n\t\t\tif((v == (v|0)) && (v >= 0) && (v < 65536))\n\t\t\t\twrite_biff_rec(ba, 0x0002, write_BIFF2INT(R, C, v));\n\t\t\telse\n\t\t\t\twrite_biff_rec(ba, 0x0003, write_BIFF2NUM(R,C, v));\n\t\t\treturn;\n\t\tcase 'b': case 'e': write_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, cell.v, cell.t)); return;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\twrite_biff_rec(ba, 0x0004, write_BIFF2LABEL(R, C, cell.v));\n\t\t\treturn;\n\t}\n\twrite_biff_rec(ba, 0x0001, write_BIFF2Cell(null, R, C));\n}\n\nfunction write_ws_biff2(ba, ws, idx, opts) {\n\tvar dense = Array.isArray(ws);\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols = [];\n\tif(range.e.c > 0xFF || range.e.r > 0x3FFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, 0x3FFF);\n\t\tref = encode_range(range);\n\t}\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff2_cell(ba, cell, R, C, opts);\n\t\t}\n\t}\n}\n\n/* Based on test files */\nfunction write_biff2_buf(wb, opts) {\n\tvar o = opts || {};\n\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\tvar ba = buf_array();\n\tvar idx = 0;\n\tfor(var i=0;i<wb.SheetNames.length;++i) if(wb.SheetNames[i] == o.sheet) idx=i;\n\tif(idx == 0 && !!o.sheet && wb.SheetNames[0] != o.sheet) throw new Error(\"Sheet not found: \" + o.sheet);\n\twrite_biff_rec(ba, 0x0009, write_BOF(wb, 0x10, o));\n\t/* ... */\n\twrite_ws_biff2(ba, wb.Sheets[wb.SheetNames[idx]], idx, o, wb);\n\t/* ... */\n\twrite_biff_rec(ba, 0x000A);\n\treturn ba.end();\n}\n\nfunction write_FONTS_biff8(ba, data, opts) {\n\twrite_biff_rec(ba, \"Font\", write_Font({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Arial\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}, opts));\n}\n\n\nfunction write_FMTS_biff8(ba, NF, opts) {\n\tif(!NF) return;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\nfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_biff_rec(ba, \"Format\", write_Format(i, NF[i], opts));\n\t});\n}\n\nfunction write_FEAT(ba, ws) {\n\t/* [MS-XLS] 2.4.112 */\n\tvar o = new_buf(19);\n\to.write_shift(4, 0x867); o.write_shift(4, 0); o.write_shift(4, 0);\n\to.write_shift(2, 3); o.write_shift(1, 1); o.write_shift(4, 0);\n\twrite_biff_rec(ba, \"FeatHdr\", o);\n\t/* [MS-XLS] 2.4.111 */\n\to = new_buf(39);\n\to.write_shift(4, 0x868); o.write_shift(4, 0); o.write_shift(4, 0);\n\to.write_shift(2, 3); o.write_shift(1, 0); o.write_shift(4, 0);\n\to.write_shift(2, 1); o.write_shift(4, 4); o.write_shift(2, 0);\n\twrite_Ref8U(safe_decode_range(ws['!ref']||\"A1\"), o);\n\to.write_shift(4, 4);\n\twrite_biff_rec(ba, \"Feat\", o);\n}\n\nfunction write_CELLXFS_biff8(ba, opts) {\n\tfor(var i = 0; i < 16; ++i) write_biff_rec(ba, \"XF\", write_XF({numFmtId:0, style:true}, 0, opts));\n\topts.cellXfs.forEach(function(c) {\n\t\twrite_biff_rec(ba, \"XF\", write_XF(c, 0, opts));\n\t});\n}\n\nfunction write_ws_biff8_hlinks(ba, ws) {\n\tfor(var R=0; R<ws['!links'].length; ++R) {\n\t\tvar HL = ws['!links'][R];\n\t\twrite_biff_rec(ba, \"HLink\", write_HLink(HL));\n\t\tif(HL[1].Tooltip) write_biff_rec(ba, \"HLinkTooltip\", write_HLinkTooltip(HL));\n\t}\n\tdelete ws['!links'];\n}\n\nfunction write_ws_biff8_cell(ba, cell, R, C, opts) {\n\tvar os = 16 + get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.v == null && !cell.bf) {\n\t\twrite_biff_rec(ba, \"Blank\", write_XLSCell(R, C, os));\n\t\treturn;\n\t}\n\tif(cell.bf) write_biff_rec(ba, \"Formula\", write_Formula(cell, R, C, opts, os));\n\telse switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v;\n\t\t\t/* TODO: emit RK as appropriate */\n\t\t\twrite_biff_rec(ba, \"Number\", write_Number(R, C, v, os, opts));\n\t\t\tbreak;\n\t\tcase 'b': case 'e':\n\t\t\twrite_biff_rec(ba, 0x0205, write_BoolErr(R, C, cell.v, os, opts, cell.t));\n\t\t\tbreak;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvar isst = get_sst_id(opts.Strings, cell.v, opts.revStrings);\n\t\t\t\twrite_biff_rec(ba, \"LabelSst\", write_LabelSst(R, C, isst, os, opts));\n\t\t\t} else write_biff_rec(ba, \"Label\", write_Label(R, C, cell.v, os, opts));\n\t\t\tbreak;\n\t\tdefault:\n\t\t\twrite_biff_rec(ba, \"Blank\", write_XLSCell(R, C, os));\n\t}\n}\n\n/* [MS-XLS] 2.1.7.20.5 */\nfunction write_ws_biff8(idx, opts, wb) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar _WB = ((wb||{}).Workbook||{});\n\tvar _sheet = ((_WB.Sheets||[])[idx]||{});\n\tvar dense = Array.isArray(ws);\n\tvar b8 = opts.biff == 8;\n\tvar ref, rr = \"\", cols = [];\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\");\n\tvar MAX_ROWS = b8 ? 65536 : 16384;\n\tif(range.e.c > 0xFF || range.e.r >= MAX_ROWS) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, MAX_ROWS-1);\n\t}\n\n\twrite_biff_rec(ba, 0x0809, write_BOF(wb, 0x10, opts));\n\t/* [Uncalced] Index */\n\twrite_biff_rec(ba, \"CalcMode\", writeuint16(1));\n\twrite_biff_rec(ba, \"CalcCount\", writeuint16(100));\n\twrite_biff_rec(ba, \"CalcRefMode\", writebool(true));\n\twrite_biff_rec(ba, \"CalcIter\", writebool(false));\n\twrite_biff_rec(ba, \"CalcDelta\", write_Xnum(0.001));\n\twrite_biff_rec(ba, \"CalcSaveRecalc\", writebool(true));\n\twrite_biff_rec(ba, \"PrintRowCol\", writebool(false));\n\twrite_biff_rec(ba, \"PrintGrid\", writebool(false));\n\twrite_biff_rec(ba, \"GridSet\", writeuint16(1));\n\twrite_biff_rec(ba, \"Guts\", write_Guts([0,0]));\n\t/* DefaultRowHeight WsBool [Sync] [LPr] [HorizontalPageBreaks] [VerticalPageBreaks] */\n\t/* Header (string) */\n\t/* Footer (string) */\n\twrite_biff_rec(ba, \"HCenter\", writebool(false));\n\twrite_biff_rec(ba, \"VCenter\", writebool(false));\n\t/* ... */\n\twrite_biff_rec(ba, 0x200, write_Dimensions(range, opts));\n\t/* ... */\n\n\tif(b8) ws['!links'] = [];\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff8_cell(ba, cell, R, C, opts);\n\t\t\tif(b8 && cell.l) ws['!links'].push([ref, cell.l]);\n\t\t}\n\t}\n\tvar cname = _sheet.CodeName || _sheet.name || s;\n\t/* ... */\n\tif(b8) write_biff_rec(ba, \"Window2\", write_Window2((_WB.Views||[])[0]));\n\t/* ... */\n\tif(b8 && (ws['!merges']||[]).length) write_biff_rec(ba, \"MergeCells\", write_MergeCells(ws['!merges']));\n\t/* [LRng] *QUERYTABLE [PHONETICINFO] CONDFMTS */\n\tif(b8) write_ws_biff8_hlinks(ba, ws);\n\t/* [DVAL] */\n\twrite_biff_rec(ba, \"CodeName\", write_XLUnicodeString(cname, opts));\n\t/* *WebPub *CellWatch [SheetExt] */\n\tif(b8) write_FEAT(ba, ws);\n\t/* *FEAT11 *RECORD12 */\n\twrite_biff_rec(ba, \"EOF\");\n\treturn ba.end();\n}\n\n/* [MS-XLS] 2.1.7.20.3 */\nfunction write_biff8_global(wb, bufs, opts) {\n\tvar A = buf_array();\n\tvar _WB = ((wb||{}).Workbook||{});\n\tvar _sheets = (_WB.Sheets||[]);\n\tvar _wb = _WB.WBProps||{};\n\tvar b8 = opts.biff == 8, b5 = opts.biff == 5;\n\twrite_biff_rec(A, 0x0809, write_BOF(wb, 0x05, opts));\n\tif(opts.bookType == \"xla\") write_biff_rec(A, \"Addin\");\n\twrite_biff_rec(A, \"InterfaceHdr\", b8 ? writeuint16(0x04b0) : null);\n\twrite_biff_rec(A, \"Mms\", writezeroes(2));\n\tif(b5) write_biff_rec(A, \"ToolbarHdr\");\n\tif(b5) write_biff_rec(A, \"ToolbarEnd\");\n\twrite_biff_rec(A, \"InterfaceEnd\");\n\twrite_biff_rec(A, \"WriteAccess\", write_WriteAccess(\"SheetJS\", opts));\n\t/* [FileSharing] */\n\twrite_biff_rec(A, \"CodePage\", writeuint16(b8 ? 0x04b0 : 0x04E4));\n\t/* *2047 Lel */\n\tif(b8) write_biff_rec(A, \"DSF\", writeuint16(0));\n\tif(b8) write_biff_rec(A, \"Excel9File\");\n\twrite_biff_rec(A, \"RRTabId\", write_RRTabId(wb.SheetNames.length));\n\tif(b8 && wb.vbaraw) write_biff_rec(A, \"ObProj\");\n\t/* [ObNoMacros] */\n\tif(b8 && wb.vbaraw) {\n\t\tvar cname = _wb.CodeName || \"ThisWorkbook\";\n\t\twrite_biff_rec(A, \"CodeName\", write_XLUnicodeString(cname, opts));\n\t}\n\twrite_biff_rec(A, \"BuiltInFnGroupCount\", writeuint16(0x11));\n\t/* *FnGroupName *FnGrp12 */\n\t/* *Lbl */\n\t/* [OleObjectSize] */\n\twrite_biff_rec(A, \"WinProtect\", writebool(false));\n\twrite_biff_rec(A, \"Protect\", writebool(false));\n\twrite_biff_rec(A, \"Password\", writeuint16(0));\n\tif(b8) write_biff_rec(A, \"Prot4Rev\", writebool(false));\n\tif(b8) write_biff_rec(A, \"Prot4RevPass\", writeuint16(0));\n\twrite_biff_rec(A, \"Window1\", write_Window1(opts));\n\twrite_biff_rec(A, \"Backup\", writebool(false));\n\twrite_biff_rec(A, \"HideObj\", writeuint16(0));\n\twrite_biff_rec(A, \"Date1904\", writebool(safe1904(wb)==\"true\"));\n\twrite_biff_rec(A, \"CalcPrecision\", writebool(true));\n\tif(b8) write_biff_rec(A, \"RefreshAll\", writebool(false));\n\twrite_biff_rec(A, \"BookBool\", writeuint16(0));\n\t/* ... */\n\twrite_FONTS_biff8(A, wb, opts);\n\twrite_FMTS_biff8(A, wb.SSF, opts);\n\twrite_CELLXFS_biff8(A, opts);\n\t/* ... */\n\tif(b8) write_biff_rec(A, \"UsesELFs\", writebool(false));\n\tvar a = A.end();\n\n\tvar C = buf_array();\n\t/* METADATA [MTRSettings] [ForceFullCalculation] */\n\tif(b8) write_biff_rec(C, \"Country\", write_Country());\n\t/* *SUPBOOK *LBL *RTD [RecalcId] *HFPicture *MSODRAWINGGROUP */\n\n\t/* BIFF8: [SST *Continue] ExtSST */\n\tif(b8 && opts.Strings) write_biff_continue(C, \"SST\", write_SST(opts.Strings, opts));\n\n\t/* *WebPub [WOpt] [CrErr] [BookExt] *FeatHdr *DConn [THEME] [CompressPictures] [Compat12] [GUIDTypeLib] */\n\twrite_biff_rec(C, \"EOF\");\n\tvar c = C.end();\n\n\tvar B = buf_array();\n\tvar blen = 0, j = 0;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) blen += (b8 ? 12 : 11) + (b8 ? 2 : 1) * wb.SheetNames[j].length;\n\tvar start = a.length + blen + c.length;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) {\n\t\tvar _sheet = _sheets[j] || ({});\n\t\twrite_biff_rec(B, \"BoundSheet8\", write_BoundSheet8({pos:start, hs:_sheet.Hidden||0, dt:0, name:wb.SheetNames[j]}, opts));\n\t\tstart += bufs[j].length;\n\t}\n\t/* 1*BoundSheet8 */\n\tvar b = B.end();\n\tif(blen != b.length) throw new Error(\"BS8 \" + blen + \" != \" + b.length);\n\n\tvar out = [];\n\tif(a.length) out.push(a);\n\tif(b.length) out.push(b);\n\tif(c.length) out.push(c);\n\treturn __toBuffer([out]);\n}\n\n/* [MS-XLS] 2.1.7.20 Workbook Stream */\nfunction write_biff8_buf(wb, opts) {\n\tvar o = opts || {};\n\tvar bufs = [];\n\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = SSF.get_table();\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\to.revssf = evert_num(wb.SSF); o.revssf[wb.SSF[65535]] = 0;\n\t\to.ssf = wb.SSF;\n\t}\n\n\to.Strings = []; o.Strings.Count = 0; o.Strings.Unique = 0;\n\tfix_write_opts(o);\n\n\to.cellXfs = [];\n\tget_cell_style(o.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) bufs[bufs.length] = write_ws_biff8(i, o, wb);\n\tbufs.unshift(write_biff8_global(wb, bufs, o));\n\treturn __toBuffer([bufs]);\n}\n\nfunction write_biff_buf(wb, opts) {\n\tvar o = opts || {};\n\tswitch(o.biff || 2) {\n\t\tcase 8: case 5: return write_biff8_buf(wb, opts);\n\t\tcase 4: case 3: case 2: return write_biff2_buf(wb, opts);\n\t}\n\tthrow new Error(\"invalid type \" + o.bookType + \" for BIFF\");\n}\n/* note: browser DOM element cannot see mso- style attrs, must parse */\nvar HTML_ = (function() {\n\tfunction html_to_sheet(str, _opts) {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar ws = opts.dense ? ([]) : ({});\n\t\tstr = str.replace(/<!--.*?-->/g, \"\");\n\t\tvar mtch = str.match(/<table/i);\n\t\tif(!mtch) throw new Error(\"Invalid HTML: could not find <table>\");\n\t\tvar mtch2 = str.match(/<\\/table/i);\n\t\tvar i = mtch.index, j = mtch2 && mtch2.index || str.length;\n\t\tvar rows = split_regex(str.slice(i, j), /(:?<tr[^>]*>)/i, \"<tr>\");\n\t\tvar R = -1, C = 0, RS = 0, CS = 0;\n\t\tvar range = {s:{r:10000000, c:10000000},e:{r:0,c:0}};\n\t\tvar merges = [];\n\t\tfor(i = 0; i < rows.length; ++i) {\n\t\t\tvar row = rows[i].trim();\n\t\t\tvar hd = row.slice(0,3).toLowerCase();\n\t\t\tif(hd == \"<tr\") { ++R; if(opts.sheetRows && opts.sheetRows <= R) { --R; break; } C = 0; continue; }\n\t\t\tif(hd != \"<td\" && hd != \"<th\") continue;\n\t\t\tvar cells = row.split(/<\\/t[dh]>/i);\n\t\t\tfor(j = 0; j < cells.length; ++j) {\n\t\t\t\tvar cell = cells[j].trim();\n\t\t\t\tif(!cell.match(/<t[dh]/i)) continue;\n\t\t\t\tvar m = cell, cc = 0;\n\t\t\t\t/* TODO: parse styles etc */\n\t\t\t\twhile(m.charAt(0) == \"<\" && (cc = m.indexOf(\">\")) > -1) m = m.slice(cc+1);\n\t\t\t\tfor(var midx = 0; midx < merges.length; ++midx) {\n\t\t\t\t\tvar _merge = merges[midx];\n\t\t\t\t\tif(_merge.s.c == C && _merge.s.r < R && R <= _merge.e.r) { C = _merge.e.c + 1; midx = -1; }\n\t\t\t\t}\n\t\t\t\tvar tag = parsexmltag(cell.slice(0, cell.indexOf(\">\")));\n\t\t\t\tCS = tag.colspan ? +tag.colspan : 1;\n\t\t\t\tif((RS = +tag.rowspan)>1 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 1}});\n\t\t\t\tvar _t = tag.t || \"\";\n\t\t\t\t/* TODO: generate stub cells */\n\t\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\t\tm = htmldecode(m);\n\t\t\t\tif(range.s.r > R) range.s.r = R; if(range.e.r < R) range.e.r = R;\n\t\t\t\tif(range.s.c > C) range.s.c = C; if(range.e.c < C) range.e.c = C;\n\t\t\t\tif(!m.length) continue;\n\t\t\t\tvar o = {t:'s', v:m};\n\t\t\t\tif(opts.raw || !m.trim().length || _t == 's'){}\n\t\t\t\telse if(m === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(m === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(m))) o = {t:'n', v:fuzzynum(m)};\n\t\t\t\telse if(!isNaN(fuzzydate(m).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(m)});\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)});\n\t\t\t\t\to.z = opts.dateNF || SSF._table[14];\n\t\t\t\t}\n\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = o; }\n\t\t\t\telse ws[encode_cell({r:R, c:C})] = o;\n\t\t\t\tC += CS;\n\t\t\t}\n\t\t}\n\t\tws['!ref'] = encode_range(range);\n\t\tif(merges.length) ws[\"!merges\"] = merges;\n\t\treturn ws;\n\t}\n\tfunction html_to_book(str, opts) {\n\t\treturn sheet_to_workbook(html_to_sheet(str, opts), opts);\n\t}\n\tfunction make_html_row(ws, r, R, o) {\n\t\tvar M = (ws['!merges'] ||[]);\n\t\tvar oo = [];\n\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\tvar RS = 0, CS = 0;\n\t\t\tfor(var j = 0; j < M.length; ++j) {\n\t\t\t\tif(M[j].s.r > R || M[j].s.c > C) continue;\n\t\t\t\tif(M[j].e.r < R || M[j].e.c < C) continue;\n\t\t\t\tif(M[j].s.r < R || M[j].s.c < C) { RS = -1; break; }\n\t\t\t\tRS = M[j].e.r - M[j].s.r + 1; CS = M[j].e.c - M[j].s.c + 1; break;\n\t\t\t}\n\t\t\tif(RS < 0) continue;\n\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\tvar cell = o.dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t/* TODO: html entities */\n\t\t\tvar w = (cell && cell.v != null) && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || \"\")) || \"\";\n\t\t\tvar sp = ({});\n\t\t\tif(RS > 1) sp.rowspan = RS;\n\t\t\tif(CS > 1) sp.colspan = CS;\n\t\t\tsp.t = cell && cell.t || 'z';\n\t\t\tif(o.editable) w = '<span contenteditable=\"true\">' + w + '</span>';\n\t\t\tsp.id = (o.id || \"sjs\") + \"-\" + coord;\n\t\t\tif(sp.t != \"z\") { sp.v = cell.v; if(cell.z != null) sp.z = cell.z; }\n\t\t\too.push(writextag('td', w, sp));\n\t\t}\n\t\tvar preamble = \"<tr>\";\n\t\treturn preamble + oo.join(\"\") + \"</tr>\";\n\t}\n\tfunction make_html_preamble(ws, R, o) {\n\t\tvar out = [];\n\t\treturn out.join(\"\") + '<table' + (o && o.id ? ' id=\"' + o.id + '\"' : \"\") + '>';\n\t}\n\tvar _BEGIN = '<html><head><meta charset=\"utf-8\"/><title>SheetJS Table Export';\n\tvar _END = '';\n\tfunction sheet_to_html(ws, opts/*, wb:?Workbook*/) {\n\t\tvar o = opts || {};\n\t\tvar header = o.header != null ? o.header : _BEGIN;\n\t\tvar footer = o.footer != null ? o.footer : _END;\n\t\tvar out = [header];\n\t\tvar r = decode_range(ws['!ref']);\n\t\to.dense = Array.isArray(ws);\n\t\tout.push(make_html_preamble(ws, r, o));\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));\n\t\tout.push(\"\" + footer);\n\t\treturn out.join(\"\");\n\n\t}\n\treturn {\n\t\tto_workbook: html_to_book,\n\t\tto_sheet: html_to_sheet,\n\t\t_row: make_html_row,\n\t\tBEGIN: _BEGIN,\n\t\tEND: _END,\n\t\t_preamble: make_html_preamble,\n\t\tfrom_sheet: sheet_to_html\n\t};\n})();\n\nfunction sheet_add_dom(ws, table, _opts) {\n\tvar opts = _opts || {};\n\tif(DENSE != null) opts.dense = DENSE;\n\tvar or_R = 0, or_C = 0;\n\tif(opts.origin != null) {\n\t\tif(typeof opts.origin == 'number') or_R = opts.origin;\n\t\telse {\n\t\t\tvar _origin = typeof opts.origin == \"string\" ? decode_cell(opts.origin) : opts.origin;\n\t\t\tor_R = _origin.r; or_C = _origin.c;\n\t\t}\n\t}\n\tvar rows = table.getElementsByTagName('tr');\n\tvar sheetRows = Math.min(opts.sheetRows||10000000, rows.length);\n\tvar range = {s:{r:0,c:0},e:{r:or_R,c:or_C}};\n\tif(ws[\"!ref\"]) {\n\t\tvar _range = decode_range(ws[\"!ref\"]);\n\t\trange.s.r = Math.min(range.s.r, _range.s.r);\n\t\trange.s.c = Math.min(range.s.c, _range.s.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\tif(or_R == -1) range.e.r = or_R = _range.e.r + 1;\n\t}\n\tvar merges = [], midx = 0;\n\tvar rowinfo = ws[\"!rows\"] || (ws[\"!rows\"] = []);\n\tvar _R = 0, R = 0, _C = 0, C = 0, RS = 0, CS = 0;\n\tif(!ws[\"!cols\"]) ws['!cols'] = [];\n\tfor(; _R < rows.length && R < sheetRows; ++_R) {\n\t\tvar row = rows[_R];\n\t\tif (is_dom_element_hidden(row)) {\n\t\t\tif (opts.display) continue;\n\t\t\trowinfo[R] = {hidden: true};\n\t\t}\n\t\tvar elts = (row.children);\n\t\tfor(_C = C = 0; _C < elts.length; ++_C) {\n\t\t\tvar elt = elts[_C];\n\t\t\tif (opts.display && is_dom_element_hidden(elt)) continue;\n\t\t\tvar v = elt.hasAttribute('v') ? elt.getAttribute('v') : htmldecode(elt.innerHTML);\n\t\t\tvar z = elt.getAttribute('z');\n\t\t\tfor(midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar m = merges[midx];\n\t\t\t\tif(m.s.c == C + or_C && m.s.r < R + or_R && R + or_R <= m.e.r) { C = m.e.c+1 - or_C; midx = -1; }\n\t\t\t}\n\t\t\t/* TODO: figure out how to extract nonstandard mso- style */\n\t\t\tCS = +elt.getAttribute(\"colspan\") || 1;\n\t\t\tif( ((RS = (+elt.getAttribute(\"rowspan\") || 1)))>1 || CS>1) merges.push({s:{r:R + or_R,c:C + or_C},e:{r:R + or_R + (RS||1) - 1, c:C + or_C + (CS||1) - 1}});\n\t\t\tvar o = {t:'s', v:v};\n\t\t\tvar _t = elt.getAttribute(\"t\") || \"\";\n\t\t\tif(v != null) {\n\t\t\t\tif(v.length == 0) o.t = _t || 'z';\n\t\t\t\telse if(opts.raw || v.trim().length == 0 || _t == \"s\"){}\n\t\t\t\telse if(v === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(v === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(v))) o = {t:'n', v:fuzzynum(v)};\n\t\t\t\telse if(!isNaN(fuzzydate(v).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(v)});\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)});\n\t\t\t\t\to.z = opts.dateNF || SSF._table[14];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(o.z === undefined && z != null) o.z = z;\n\t\t\tif(opts.dense) { if(!ws[R + or_R]) ws[R + or_R] = []; ws[R + or_R][C + or_C] = o; }\n\t\t\telse ws[encode_cell({c:C + or_C, r:R + or_R})] = o;\n\t\t\tif(range.e.c < C + or_C) range.e.c = C + or_C;\n\t\t\tC += CS;\n\t\t}\n\t\t++R;\n\t}\n\tif(merges.length) ws['!merges'] = (ws[\"!merges\"] || []).concat(merges);\n\trange.e.r = Math.max(range.e.r, R - 1 + or_R);\n\tws['!ref'] = encode_range(range);\n\tif(R >= sheetRows) ws['!fullref'] = encode_range((range.e.r = rows.length-_R+R-1 + or_R,range)); // We can count the real number of rows to parse but we don't to improve the performance\n\treturn ws;\n}\n\nfunction parse_dom_table(table, _opts) {\n\tvar opts = _opts || {};\n\tvar ws = opts.dense ? ([]) : ({});\n\treturn sheet_add_dom(ws, table, _opts);\n}\n\nfunction table_to_book(table, opts) {\n\treturn sheet_to_workbook(parse_dom_table(table, opts), opts);\n}\n\nfunction is_dom_element_hidden(element) {\n\tvar display = '';\n\tvar get_computed_style = get_get_computed_style_function(element);\n\tif(get_computed_style) display = get_computed_style(element).getPropertyValue('display');\n\tif(!display) display = element.style.display; // Fallback for cases when getComputedStyle is not available (e.g. an old browser or some Node.js environments) or doesn't work (e.g. if the element is not inserted to a document)\n\treturn display === 'none';\n}\n\n/* global getComputedStyle */\nfunction get_get_computed_style_function(element) {\n\t// The proper getComputedStyle implementation is the one defined in the element window\n\tif(element.ownerDocument.defaultView && typeof element.ownerDocument.defaultView.getComputedStyle === 'function') return element.ownerDocument.defaultView.getComputedStyle;\n\t// If it is not available, try to get one from the global namespace\n\tif(typeof getComputedStyle === 'function') return getComputedStyle;\n\treturn null;\n}\n/* OpenDocument */\nvar parse_content_xml = (function() {\n\n\tvar parse_text_p = function(text) {\n\t\t/* 6.1.2 White Space Characters */\n\t\tvar fixed = text\n\t\t\t.replace(/[\\t\\r\\n]/g, \" \").trim().replace(/ +/g, \" \")\n\t\t\t.replace(//g,\" \")\n\t\t\t.replace(//g, function($$,$1) { return Array(parseInt($1,10)+1).join(\" \"); })\n\t\t\t.replace(/]*\\/>/g,\"\\t\")\n\t\t\t.replace(//g,\"\\n\");\n\t\tvar v = unescapexml(fixed.replace(/<[^>]*>/g,\"\"));\n\n\t\treturn [v];\n\t};\n\n\tvar number_formats = {\n\t\t/* ods name: [short ssf fmt, long ssf fmt] */\n\t\tday: [\"d\", \"dd\"],\n\t\tmonth: [\"m\", \"mm\"],\n\t\tyear: [\"y\", \"yy\"],\n\t\thours: [\"h\", \"hh\"],\n\t\tminutes: [\"m\", \"mm\"],\n\t\tseconds: [\"s\", \"ss\"],\n\t\t\"am-pm\": [\"A/P\", \"AM/PM\"],\n\t\t\"day-of-week\": [\"ddd\", \"dddd\"],\n\t\tera: [\"e\", \"ee\"],\n\t\t/* there is no native representation of LO \"Q\" format */\n\t\tquarter: [\"\\\\Qm\", \"m\\\\\\\"th quarter\\\"\"]\n\t};\n\n\treturn function pcx(d, _opts) {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar str = xlml_normalize(d);\n\t\tvar state = [], tmp;\n\t\tvar tag;\n\t\tvar NFtag = {name:\"\"}, NF = \"\", pidx = 0;\n\t\tvar sheetag;\n\t\tvar rowtag;\n\t\tvar Sheets = {}, SheetNames = [];\n\t\tvar ws = opts.dense ? ([]) : ({});\n\t\tvar Rn, q;\n\t\tvar ctag = ({value:\"\"});\n\t\tvar textp = \"\", textpidx = 0, textptag;\n\t\tvar textR = [];\n\t\tvar R = -1, C = -1, range = {s: {r:1000000,c:10000000}, e: {r:0, c:0}};\n\t\tvar row_ol = 0;\n\t\tvar number_format_map = {};\n\t\tvar merges = [], mrange = {}, mR = 0, mC = 0;\n\t\tvar rowinfo = [], rowpeat = 1, colpeat = 1;\n\t\tvar arrayf = [];\n\t\tvar WB = {Names:[]};\n\t\tvar atag = ({});\n\t\tvar _Ref = [\"\", \"\"];\n\t\tvar comments = [], comment = ({});\n\t\tvar creator = \"\", creatoridx = 0;\n\t\tvar isstub = false, intable = false;\n\t\tvar i = 0;\n\t\txlmlregex.lastIndex = 0;\n\t\tstr = str.replace(//mg,\"\").replace(//gm,\"\");\n\t\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3]=Rn[3].replace(/_.*$/,\"\"))) {\n\n\t\t\tcase 'table': case '工作表': // 9.1.2 \n\t\t\t\tif(Rn[1]==='/') {\n\t\t\t\t\tif(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range);\n\t\t\t\t\telse ws['!ref'] = \"A1:A1\";\n\t\t\t\t\tif(opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {\n\t\t\t\t\t\tws['!fullref'] = ws['!ref'];\n\t\t\t\t\t\trange.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tws['!ref'] = encode_range(range);\n\t\t\t\t\t}\n\t\t\t\t\tif(merges.length) ws['!merges'] = merges;\n\t\t\t\t\tif(rowinfo.length) ws[\"!rows\"] = rowinfo;\n\t\t\t\t\tsheetag.name = sheetag['名称'] || sheetag.name;\n\t\t\t\t\tif(typeof JSON !== 'undefined') JSON.stringify(sheetag);\n\t\t\t\t\tSheetNames.push(sheetag.name);\n\t\t\t\t\tSheets[sheetag.name] = ws;\n\t\t\t\t\tintable = false;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tsheetag = parsexmltag(Rn[0], false);\n\t\t\t\t\tR = C = -1;\n\t\t\t\t\trange.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0;\n\t\t\t\t\tws = opts.dense ? ([]) : ({}); merges = [];\n\t\t\t\t\trowinfo = [];\n\t\t\t\t\tintable = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'table-row-group': // 9.1.9 \n\t\t\t\tif(Rn[1] === \"/\") --row_ol; else ++row_ol;\n\t\t\t\tbreak;\n\t\t\tcase 'table-row': case '行': // 9.1.3 \n\t\t\t\tif(Rn[1] === '/') { R+=rowpeat; rowpeat = 1; break; }\n\t\t\t\trowtag = parsexmltag(Rn[0], false);\n\t\t\t\tif(rowtag['行号']) R = rowtag['行号'] - 1; else if(R == -1) R = 0;\n\t\t\t\trowpeat = +rowtag['number-rows-repeated'] || 1;\n\t\t\t\t/* TODO: remove magic */\n\t\t\t\tif(rowpeat < 10) for(i = 0; i < rowpeat; ++i) if(row_ol > 0) rowinfo[R + i] = {level: row_ol};\n\t\t\t\tC = -1; break;\n\t\t\tcase 'covered-table-cell': // 9.1.5 \n\t\t\t\tif(Rn[1] !== '/') ++C;\n\t\t\t\tif(opts.sheetStubs) {\n\t\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = {t:'z'}; }\n\t\t\t\t\telse ws[encode_cell({r:R,c:C})] = {t:'z'};\n\t\t\t\t}\n\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\tbreak; /* stub */\n\t\t\tcase 'table-cell': case '数据':\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) === '/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tq = ({t:'z', v:null});\n\t\t\t\t\tif(ctag.formula && opts.cellFormula != false) q.f = ods_to_csf_formula(unescapexml(ctag.formula));\n\t\t\t\t\tif((ctag['数据类型'] || ctag['value-type']) == \"string\") {\n\t\t\t\t\t\tq.t = \"s\"; q.v = unescapexml(ctag['string-value'] || \"\");\n\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\tif(!ws[R]) ws[R] = [];\n\t\t\t\t\t\t\tws[R][C] = q;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tws[encode_cell({r:R,c:C})] = q;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tC+= colpeat-1;\n\t\t\t\t} else if(Rn[1]!=='/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tcolpeat = 1;\n\t\t\t\t\tvar rptR = rowpeat ? R + rowpeat - 1 : R;\n\t\t\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t\t\t\tif(C < range.s.c) range.s.c = C;\n\t\t\t\t\tif(R < range.s.r) range.s.r = R;\n\t\t\t\t\tif(rptR > range.e.r) range.e.r = rptR;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcomments = []; comment = ({});\n\t\t\t\t\tq = ({t:ctag['数据类型'] || ctag['value-type'], v:null});\n\t\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\t\tif(ctag.formula) ctag.formula = unescapexml(ctag.formula);\n\t\t\t\t\t\tif(ctag['number-matrix-columns-spanned'] && ctag['number-matrix-rows-spanned']) {\n\t\t\t\t\t\t\tmR = parseInt(ctag['number-matrix-rows-spanned'],10) || 0;\n\t\t\t\t\t\t\tmC = parseInt(ctag['number-matrix-columns-spanned'],10) || 0;\n\t\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\t\tq.F = encode_range(mrange);\n\t\t\t\t\t\t\tarrayf.push([mrange, q.F]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ctag.formula) q.f = ods_to_csf_formula(ctag.formula);\n\t\t\t\t\t\telse for(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\t\t\tif(R >= arrayf[i][0].s.r && R <= arrayf[i][0].e.r)\n\t\t\t\t\t\t\t\tif(C >= arrayf[i][0].s.c && C <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\t\t\tq.F = arrayf[i][1];\n\t\t\t\t\t}\n\t\t\t\t\tif(ctag['number-columns-spanned'] || ctag['number-rows-spanned']) {\n\t\t\t\t\t\tmR = parseInt(ctag['number-rows-spanned'],10) || 0;\n\t\t\t\t\t\tmC = parseInt(ctag['number-columns-spanned'],10) || 0;\n\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\tmerges.push(mrange);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* 19.675.2 table:number-columns-repeated */\n\t\t\t\t\tif(ctag['number-columns-repeated']) colpeat = parseInt(ctag['number-columns-repeated'], 10);\n\n\t\t\t\t\t/* 19.385 office:value-type */\n\t\t\t\t\tswitch(q.t) {\n\t\t\t\t\t\tcase 'boolean': q.t = 'b'; q.v = parsexmlbool(ctag['boolean-value']); break;\n\t\t\t\t\t\tcase 'float': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'percentage': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'currency': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'date': q.t = 'd'; q.v = parseDate(ctag['date-value']);\n\t\t\t\t\t\t\tif(!opts.cellDates) { q.t = 'n'; q.v = datenum(q.v); }\n\t\t\t\t\t\t\tq.z = 'm/d/yy'; break;\n\t\t\t\t\t\tcase 'time': q.t = 'n'; q.v = parse_isodur(ctag['time-value'])/86400; break;\n\t\t\t\t\t\tcase 'number': q.t = 'n'; q.v = parseFloat(ctag['数据数值']); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif(q.t === 'string' || q.t === 'text' || !q.t) {\n\t\t\t\t\t\t\t\tq.t = 's';\n\t\t\t\t\t\t\t\tif(ctag['string-value'] != null) { textp = unescapexml(ctag['string-value']); textR = []; }\n\t\t\t\t\t\t\t} else throw new Error('Unsupported value type ' + q.t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tisstub = false;\n\t\t\t\t\tif(q.t === 's') {\n\t\t\t\t\t\tq.v = textp || '';\n\t\t\t\t\t\tif(textR.length) q.R = textR;\n\t\t\t\t\t\tisstub = textpidx == 0;\n\t\t\t\t\t}\n\t\t\t\t\tif(atag.Target) q.l = atag;\n\t\t\t\t\tif(comments.length > 0) { q.c = comments; comments = []; }\n\t\t\t\t\tif(textp && opts.cellText !== false) q.w = textp;\n\t\t\t\t\tif(isstub) { q.t = \"z\"; delete q.v; }\n\t\t\t\t\tif(!isstub || opts.sheetStubs) {\n\t\t\t\t\t\tif(!(opts.sheetRows && opts.sheetRows <= R)) {\n\t\t\t\t\t\t\tfor(var rpt = 0; rpt < rowpeat; ++rpt) {\n\t\t\t\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!ws[R + rpt]) ws[R + rpt] = [];\n\t\t\t\t\t\t\t\t\tws[R + rpt][C] = rpt == 0 ? q : dup(q);\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[R + rpt][C + colpeat] = dup(q);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tws[encode_cell({r:R + rpt,c:C})] = q;\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[encode_cell({r:R + rpt,c:C + colpeat})] = dup(q);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(range.e.c <= C) range.e.c = C;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tC += colpeat-1; colpeat = 0;\n\t\t\t\t\tq = {};\n\t\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\t}\n\t\t\t\tatag = ({});\n\t\t\t\tbreak; // 9.1.4 \n\n\t\t\t/* pure state */\n\t\t\tcase 'document': // TODO: is the root for FODS\n\t\t\tcase 'document-content': case '电子表格文档': // 3.1.3.2 \n\t\t\tcase 'spreadsheet': case '主体': // 3.7 \n\t\t\tcase 'scripts': // 3.12 \n\t\t\tcase 'styles': // TODO \n\t\t\tcase 'font-face-decls': // 3.14 \n\t\t\tcase 'master-styles': //3.15.4 -- relevant for FODS\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\n\t\t\tcase 'annotation': // 14.1 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t\tcomment.t = textp;\n\t\t\t\t\tif(textR.length) comment.R = textR;\n\t\t\t\t\tcomment.a = creator;\n\t\t\t\t\tcomments.push(comment);\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {state.push([Rn[3], false]);}\n\t\t\t\tcreator = \"\"; creatoridx = 0;\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'creator': // 4.3.2.7 \n\t\t\t\tif(Rn[1]==='/') { creator = str.slice(creatoridx,Rn.index); }\n\t\t\t\telse creatoridx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\t/* ignore state */\n\t\t\tcase 'meta': case '元数据': // TODO: FODS/UOF\n\t\t\tcase 'settings': // TODO: \n\t\t\tcase 'config-item-set': // TODO: \n\t\t\tcase 'config-item-map-indexed': // TODO: \n\t\t\tcase 'config-item-map-entry': // TODO: \n\t\t\tcase 'config-item-map-named': // TODO: \n\t\t\tcase 'shapes': // 9.2.8 \n\t\t\tcase 'frame': // 10.4.2 \n\t\t\tcase 'text-box': // 10.4.3 \n\t\t\tcase 'image': // 10.4.4 \n\t\t\tcase 'data-pilot-tables': // 9.6.2 \n\t\t\tcase 'list-style': // 16.30 \n\t\t\tcase 'form': // 13.13 \n\t\t\tcase 'dde-links': // 9.8 \n\t\t\tcase 'event-listeners': // TODO\n\t\t\tcase 'chart': // TODO\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], false]);\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'scientific-number': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-symbol': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-style': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'number-style': // 16.27.2 \n\t\t\tcase 'percentage-style': // 16.27.9 \n\t\t\tcase 'date-style': // 16.27.10 \n\t\t\tcase 'time-style': // 16.27.18 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tnumber_format_map[NFtag.name] = NF;\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tNF = \"\";\n\t\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t\t} break;\n\n\t\t\tcase 'script': break; // 3.13 \n\t\t\tcase 'libraries': break; // TODO: \n\t\t\tcase 'automatic-styles': break; // 3.15.3 \n\n\t\t\tcase 'default-style': // TODO: \n\t\t\tcase 'page-layout': break; // TODO: \n\t\t\tcase 'style': // 16.2 \n\t\t\t\tbreak;\n\t\t\tcase 'map': break; // 16.3 \n\t\t\tcase 'font-face': break; // 16.21 \n\n\t\t\tcase 'paragraph-properties': break; // 17.6 \n\t\t\tcase 'table-properties': break; // 17.15 \n\t\t\tcase 'table-column-properties': break; // 17.16 \n\t\t\tcase 'table-row-properties': break; // 17.17 \n\t\t\tcase 'table-cell-properties': break; // 17.18 \n\n\t\t\tcase 'number': // 16.27.3 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'fraction': break; // TODO 16.27.6 \n\n\t\t\tcase 'day': // 16.27.11 \n\t\t\tcase 'month': // 16.27.12 \n\t\t\tcase 'year': // 16.27.13 \n\t\t\tcase 'era': // 16.27.14 \n\t\t\tcase 'day-of-week': // 16.27.15 \n\t\t\tcase 'week-of-year': // 16.27.16 \n\t\t\tcase 'quarter': // 16.27.17 \n\t\t\tcase 'hours': // 16.27.19 \n\t\t\tcase 'minutes': // 16.27.20 \n\t\t\tcase 'seconds': // 16.27.21 \n\t\t\tcase 'am-pm': // 16.27.22 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'boolean-style': break; // 16.27.23 \n\t\t\tcase 'boolean': break; // 16.27.24 \n\t\t\tcase 'text-style': break; // 16.27.25 \n\t\t\tcase 'text': // 16.27.26 \n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") switch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'number-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\t\tNF += str.slice(pidx, Rn.index);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\tcase 'named-range': // 9.4.12 \n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t_Ref = ods_to_csf_3D(tag['cell-range-address']);\n\t\t\t\tvar nrange = ({Name:tag.name, Ref:_Ref[0] + '!' + _Ref[1]});\n\t\t\t\tif(intable) nrange.Sheet = SheetNames.length;\n\t\t\t\tWB.Names.push(nrange);\n\t\t\t\tbreak;\n\n\t\t\tcase 'text-content': break; // 16.27.27 \n\t\t\tcase 'text-properties': break; // 16.27.27 \n\t\t\tcase 'embedded-text': break; // 16.27.4 \n\n\t\t\tcase 'body': case '电子表格': break; // 3.3 16.9.6 19.726.3\n\n\t\t\tcase 'forms': break; // 12.25.2 13.2\n\t\t\tcase 'table-column': break; // 9.1.6 \n\t\t\tcase 'table-header-rows': break; // 9.1.7 \n\t\t\tcase 'table-rows': break; // 9.1.12 \n\t\t\t/* TODO: outline levels */\n\t\t\tcase 'table-column-group': break; // 9.1.10 \n\t\t\tcase 'table-header-columns': break; // 9.1.11 \n\t\t\tcase 'table-columns': break; // 9.1.12 \n\n\t\t\tcase 'null-date': break; // 9.4.2 TODO: date1904\n\n\t\t\tcase 'graphic-properties': break; // 17.21 \n\t\t\tcase 'calculation-settings': break; // 9.4.1 \n\t\t\tcase 'named-expressions': break; // 9.4.11 \n\t\t\tcase 'label-range': break; // 9.4.9 \n\t\t\tcase 'label-ranges': break; // 9.4.10 \n\t\t\tcase 'named-expression': break; // 9.4.13 \n\t\t\tcase 'sort': break; // 9.4.19 \n\t\t\tcase 'sort-by': break; // 9.4.20 \n\t\t\tcase 'sort-groups': break; // 9.4.22 \n\n\t\t\tcase 'tab': break; // 6.1.4 \n\t\t\tcase 'line-break': break; // 6.1.5 \n\t\t\tcase 'span': break; // 6.1.7 \n\t\t\tcase 'p': case '文本串': // 5.1.3 \n\t\t\t\tif(['master-styles'].indexOf(state[state.length-1][0]) > -1) break;\n\t\t\t\tif(Rn[1]==='/' && (!ctag || !ctag['string-value'])) {\n\t\t\t\t\tvar ptp = parse_text_p(str.slice(textpidx,Rn.index), textptag);\n\t\t\t\t\ttextp = (textp.length > 0 ? textp + \"\\n\" : \"\") + ptp[0];\n\t\t\t\t} else { textptag = parsexmltag(Rn[0], false); textpidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak; // \n\t\t\tcase 's': break; // \n\n\t\t\tcase 'database-range': // 9.4.15 \n\t\t\t\tif(Rn[1]==='/') break;\n\t\t\t\ttry {\n\t\t\t\t\t_Ref = ods_to_csf_3D(parsexmltag(Rn[0])['target-range-address']);\n\t\t\t\t\tSheets[_Ref[0]]['!autofilter'] = { ref:_Ref[1] };\n\t\t\t\t} catch(e) {/* empty */}\n\t\t\t\tbreak;\n\n\t\t\tcase 'date': break; // <*:date>\n\n\t\t\tcase 'object': break; // 10.4.6.2 \n\t\t\tcase 'title': case '标题': break; // <*:title> OR \n\t\t\tcase 'desc': break; // <*:desc>\n\t\t\tcase 'binary-data': break; // 10.4.5 TODO: b64 blob\n\n\t\t\t/* 9.2 Advanced Tables */\n\t\t\tcase 'table-source': break; // 9.2.6\n\t\t\tcase 'scenario': break; // 9.2.6\n\n\t\t\tcase 'iteration': break; // 9.4.3 \n\t\t\tcase 'content-validations': break; // 9.4.4 \n\t\t\tcase 'filter': break; // 9.5.2 \n\t\t\tcase 'filter-and': break; // 9.5.3 \n\t\t\tcase 'filter-or': break; // 9.5.4 \n\t\t\tcase 'filter-condition': break; // 9.5.5 \n\n\t\t\tcase 'list-level-style-bullet': break; // 16.31 \n\t\t\tcase 'page-count': break; // TODO \n\t\t\tcase 'time': break; // TODO \n\n\t\t\t/* 9.3 Advanced Table Cells */\n\t\t\tcase 'cell-range-source': break; // 9.3.1 \n\t\t\tcase 'property': break; // 13.8 \n\n\t\t\tcase 'a': // 6.1.8 hyperlink\n\t\t\t\tif(Rn[1]!== '/') {\n\t\t\t\t\tatag = parsexmltag(Rn[0], false);\n\t\t\t\t\tif(!atag.href) break;\n\t\t\t\t\tatag.Target = atag.href; delete atag.href;\n\t\t\t\t\tif(atag.Target.charAt(0) == \"#\" && atag.Target.indexOf(\".\") > -1) {\n\t\t\t\t\t\t_Ref = ods_to_csf_3D(atag.Target.slice(1));\n\t\t\t\t\t\tatag.Target = \"#\" + _Ref[0] + \"!\" + _Ref[1];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t/* non-standard */\n\t\t\tcase 'table-protection': break;\n\t\t\tcase 'data-pilot-grand-total': break; // ';\n\treturn function wso() {\n\t\treturn XML_HEADER + payload;\n\t};\n})();\nvar write_content_ods = (function() {\n\t/* 6.1.2 White Space Characters */\n\tvar write_text_p = function(text) {\n\t\treturn escapexml(text)\n\t\t\t.replace(/ +/g, function($$){return '';})\n\t\t\t.replace(/\\t/g, \"\")\n\t\t\t.replace(/\\n/g, \"\")\n\t\t\t.replace(/^ /, \"\").replace(/ $/, \"\");\n\t};\n\n\tvar null_cell_xml = ' \\n';\n\tvar covered_cell_xml = ' \\n';\n\tvar write_ws = function(ws, wb, i) {\n\t\t/* Section 9 Tables */\n\t\tvar o = [];\n\t\to.push(' \\n');\n\t\tvar R=0,C=0, range = decode_range(ws['!ref']);\n\t\tvar marr = ws['!merges'] || [], mi = 0;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(R = 0; R < range.s.r; ++R) o.push(' \\n');\n\t\tfor(; R <= range.e.r; ++R) {\n\t\t\to.push(' \\n');\n\t\t\tfor(C=0; C < range.s.c; ++C) o.push(null_cell_xml);\n\t\t\tfor(; C <= range.e.c; ++C) {\n\t\t\t\tvar skip = false, ct = {}, textp = \"\";\n\t\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\t\tct['table:number-columns-spanned'] = (marr[mi].e.c - marr[mi].s.c + 1);\n\t\t\t\t\tct['table:number-rows-spanned'] = (marr[mi].e.r - marr[mi].s.r + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(skip) { o.push(covered_cell_xml); continue; }\n\t\t\t\tvar ref = encode_cell({r:R, c:C}), cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\t\tif(cell && cell.f) {\n\t\t\t\t\tct['table:formula'] = escapexml(csf_to_ods_formula(cell.f));\n\t\t\t\t\tif(cell.F) {\n\t\t\t\t\t\tif(cell.F.slice(0, ref.length) == ref) {\n\t\t\t\t\t\t\tvar _Fref = decode_range(cell.F);\n\t\t\t\t\t\t\tct['table:number-matrix-columns-spanned'] = (_Fref.e.c - _Fref.s.c + 1);\n\t\t\t\t\t\t\tct['table:number-matrix-rows-spanned'] = (_Fref.e.r - _Fref.s.r + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cell) { o.push(null_cell_xml); continue; }\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\ttextp = (cell.v ? 'TRUE' : 'FALSE');\n\t\t\t\t\t\tct['office:value-type'] = \"boolean\";\n\t\t\t\t\t\tct['office:boolean-value'] = (cell.v ? 'true' : 'false');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\ttextp = (cell.w||String(cell.v||0));\n\t\t\t\t\t\tct['office:value-type'] = \"float\";\n\t\t\t\t\t\tct['office:value'] = (cell.v||0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's': case 'str':\n\t\t\t\t\t\ttextp = cell.v == null ? \"\" : cell.v;\n\t\t\t\t\t\tct['office:value-type'] = \"string\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\ttextp = (cell.w||(parseDate(cell.v).toISOString()));\n\t\t\t\t\t\tct['office:value-type'] = \"date\";\n\t\t\t\t\t\tct['office:date-value'] = (parseDate(cell.v).toISOString());\n\t\t\t\t\t\tct['table:style-name'] = \"ce1\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t//case 'e':\n\t\t\t\t\tdefault: o.push(null_cell_xml); continue;\n\t\t\t\t}\n\t\t\t\tvar text_p = write_text_p(textp);\n\t\t\t\tif(cell.l && cell.l.Target) {\n\t\t\t\t\tvar _tgt = cell.l.Target; _tgt = _tgt.charAt(0) == \"#\" ? \"#\" + csf_to_ods_3D(_tgt.slice(1)) : _tgt;\n\t\t\t\t\ttext_p = writextag('text:a', text_p, {'xlink:href': _tgt});\n\t\t\t\t}\n\t\t\t\to.push(' ' + writextag('table:table-cell', writextag('text:p', text_p, {}), ct) + '\\n');\n\t\t\t}\n\t\t\to.push(' \\n');\n\t\t}\n\t\to.push(' \\n');\n\t\treturn o.join(\"\");\n\t};\n\n\tvar write_automatic_styles_ods = function(o) {\n\t\to.push(' \\n');\n\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* table */\n\t\to.push(' \\n'); // style:master-page-name=\"mp1\">\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* table cells, text */\n\t\to.push(' \\n');\n\n\t\t/* page-layout */\n\n\t\to.push(' \\n');\n\t};\n\n\treturn function wcx(wb, opts) {\n\t\tvar o = [XML_HEADER];\n\t\t/* 3.1.3.2 */\n\t\tvar attr = wxt_helper({\n\t\t\t'xmlns:office': \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\n\t\t\t'xmlns:table': \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\n\t\t\t'xmlns:style': \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\n\t\t\t'xmlns:text': \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\n\t\t\t'xmlns:draw': \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\n\t\t\t'xmlns:fo': \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\n\t\t\t'xmlns:xlink': \"http://www.w3.org/1999/xlink\",\n\t\t\t'xmlns:dc': \"http://purl.org/dc/elements/1.1/\",\n\t\t\t'xmlns:meta': \"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\",\n\t\t\t'xmlns:number': \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\n\t\t\t'xmlns:presentation': \"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\",\n\t\t\t'xmlns:svg': \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\n\t\t\t'xmlns:chart': \"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\",\n\t\t\t'xmlns:dr3d': \"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\",\n\t\t\t'xmlns:math': \"http://www.w3.org/1998/Math/MathML\",\n\t\t\t'xmlns:form': \"urn:oasis:names:tc:opendocument:xmlns:form:1.0\",\n\t\t\t'xmlns:script': \"urn:oasis:names:tc:opendocument:xmlns:script:1.0\",\n\t\t\t'xmlns:ooo': \"http://openoffice.org/2004/office\",\n\t\t\t'xmlns:ooow': \"http://openoffice.org/2004/writer\",\n\t\t\t'xmlns:oooc': \"http://openoffice.org/2004/calc\",\n\t\t\t'xmlns:dom': \"http://www.w3.org/2001/xml-events\",\n\t\t\t'xmlns:xforms': \"http://www.w3.org/2002/xforms\",\n\t\t\t'xmlns:xsd': \"http://www.w3.org/2001/XMLSchema\",\n\t\t\t'xmlns:xsi': \"http://www.w3.org/2001/XMLSchema-instance\",\n\t\t\t'xmlns:sheet': \"urn:oasis:names:tc:opendocument:sh33tjs:1.0\",\n\t\t\t'xmlns:rpt': \"http://openoffice.org/2005/report\",\n\t\t\t'xmlns:of': \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\n\t\t\t'xmlns:xhtml': \"http://www.w3.org/1999/xhtml\",\n\t\t\t'xmlns:grddl': \"http://www.w3.org/2003/g/data-view#\",\n\t\t\t'xmlns:tableooo': \"http://openoffice.org/2009/table\",\n\t\t\t'xmlns:drawooo': \"http://openoffice.org/2010/draw\",\n\t\t\t'xmlns:calcext': \"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\",\n\t\t\t'xmlns:loext': \"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\",\n\t\t\t'xmlns:field': \"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\",\n\t\t\t'xmlns:formx': \"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0\",\n\t\t\t'xmlns:css3t': \"http://www.w3.org/TR/css3-text/\",\n\t\t\t'office:version': \"1.2\"\n\t\t});\n\n\t\tvar fods = wxt_helper({\n\t\t\t'xmlns:config': \"urn:oasis:names:tc:opendocument:xmlns:config:1.0\",\n\t\t\t'office:mimetype': \"application/vnd.oasis.opendocument.spreadsheet\"\n\t\t});\n\n\t\tif(opts.bookType == \"fods\") o.push('\\n');\n\t\telse o.push('\\n');\n\t\twrite_automatic_styles_ods(o);\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tfor(var i = 0; i != wb.SheetNames.length; ++i) o.push(write_ws(wb.Sheets[wb.SheetNames[i]], wb, i, opts));\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tif(opts.bookType == \"fods\") o.push('');\n\t\telse o.push('');\n\t\treturn o.join(\"\");\n\t};\n})();\n\nfunction write_ods(wb, opts) {\n\tif(opts.bookType == \"fods\") return write_content_ods(wb, opts);\n\nvar zip = zip_new();\n\tvar f = \"\";\n\n\tvar manifest = [];\n\tvar rdf = [];\n\n\t/* Part 3 Section 3.3 MIME Media Type */\n\tf = \"mimetype\";\n\tzip_add_file(zip, f, \"application/vnd.oasis.opendocument.spreadsheet\");\n\n\t/* Part 1 Section 2.2 Documents */\n\tf = \"content.xml\";\n\tzip_add_file(zip, f, write_content_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"ContentFile\"]);\n\n\t/* TODO: these are hard-coded styles to satiate excel */\n\tf = \"styles.xml\";\n\tzip_add_file(zip, f, write_styles_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"StylesFile\"]);\n\n\t/* TODO: this is hard-coded to satiate excel */\n\tf = \"meta.xml\";\n\tzip_add_file(zip, f, write_meta_ods());\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"MetadataFile\"]);\n\n\t/* Part 3 Section 6 Metadata Manifest File */\n\tf = \"manifest.rdf\";\n\tzip_add_file(zip, f, write_rdf(rdf/*, opts*/));\n\tmanifest.push([f, \"application/rdf+xml\"]);\n\n\t/* Part 3 Section 4 Manifest File */\n\tf = \"META-INF/manifest.xml\";\n\tzip_add_file(zip, f, write_manifest(manifest/*, opts*/));\n\n\treturn zip;\n}\n\nfunction write_sheet_index(wb, sheet) {\n\tif(!sheet) return 0;\n\tvar idx = wb.SheetNames.indexOf(sheet);\n\tif(idx == -1) throw new Error(\"Sheet not found: \" + sheet);\n\treturn idx;\n}\n\nfunction write_obj_str(factory) {\n\treturn function write_str(wb, o) {\n\t\tvar idx = write_sheet_index(wb, o.sheet);\n\t\treturn factory.from_sheet(wb.Sheets[wb.SheetNames[idx]], o, wb);\n\t};\n}\n\nvar write_htm_str = write_obj_str(HTML_);\nvar write_csv_str = write_obj_str({from_sheet:sheet_to_csv});\nvar write_slk_str = write_obj_str(typeof SYLK !== \"undefined\" ? SYLK : {});\nvar write_dif_str = write_obj_str(typeof DIF !== \"undefined\" ? DIF : {});\nvar write_prn_str = write_obj_str(typeof PRN !== \"undefined\" ? PRN : {});\nvar write_rtf_str = write_obj_str(typeof RTF !== \"undefined\" ? RTF : {});\nvar write_txt_str = write_obj_str({from_sheet:sheet_to_txt});\nvar write_dbf_buf = write_obj_str(typeof DBF !== \"undefined\" ? DBF : {});\nvar write_eth_str = write_obj_str(typeof ETH !== \"undefined\" ? ETH : {});\n\nfunction fix_opts_func(defaults) {\n\treturn function fix_opts(opts) {\n\t\tfor(var i = 0; i != defaults.length; ++i) {\n\t\t\tvar d = defaults[i];\n\t\t\tif(opts[d[0]] === undefined) opts[d[0]] = d[1];\n\t\t\tif(d[2] === 'n') opts[d[0]] = Number(opts[d[0]]);\n\t\t}\n\t};\n}\n\nvar fix_read_opts = function(opts) {\nfix_opts_func([\n\t['cellNF', false], /* emit cell number format string as .z */\n\t['cellHTML', true], /* emit html string as .h */\n\t['cellFormula', true], /* emit formulae as .f */\n\t['cellStyles', false], /* emits style/theme as .s */\n\t['cellText', true], /* emit formatted text as .w */\n\t['cellDates', false], /* emit date cells with type `d` */\n\n\t['sheetStubs', false], /* emit empty cells */\n\t['sheetRows', 0, 'n'], /* read n rows (0 = read all rows) */\n\n\t['bookDeps', false], /* parse calculation chains */\n\t['bookSheets', false], /* only try to get sheet names (no Sheets) */\n\t['bookProps', false], /* only try to get properties (no Sheets) */\n\t['bookFiles', false], /* include raw file structure (keys, files, cfb) */\n\t['bookVBA', false], /* include vba raw data (vbaraw) */\n\n\t['password',''], /* password */\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n};\n\nvar fix_write_opts = fix_opts_func([\n\t['cellDates', false], /* write date cells with type `d` */\n\n\t['bookSST', false], /* Generate Shared String Table */\n\n\t['bookType', 'xlsx'], /* Type of workbook (xlsx/m/b) */\n\n\t['compression', false], /* Use file compression */\n\n\t['WTF', false] /* WTF mode (throws errors) */\n]);\nfunction get_sheet_type(n) {\n\tif(RELS.WS.indexOf(n) > -1) return \"sheet\";\n\tif(RELS.CS && n == RELS.CS) return \"chart\";\n\tif(RELS.DS && n == RELS.DS) return \"dialog\";\n\tif(RELS.MS && n == RELS.MS) return \"macro\";\n\treturn (n && n.length) ? n : \"sheet\";\n}\nfunction safe_parse_wbrels(wbrels, sheets) {\n\tif(!wbrels) return 0;\n\ttry {\n\t\twbrels = sheets.map(function pwbr(w) { if(!w.id) w.id = w.strRelID; return [w.name, wbrels['!id'][w.id].Target, get_sheet_type(wbrels['!id'][w.id].Type)]; });\n\t} catch(e) { return null; }\n\treturn !wbrels || wbrels.length === 0 ? null : wbrels;\n}\n\nfunction safe_parse_sheet(zip, path, relsPath, sheet, idx, sheetRels, sheets, stype, opts, wb, themes, styles) {\n\ttry {\n\t\tsheetRels[sheet]=parse_rels(getzipstr(zip, relsPath, true), path);\n\t\tvar data = getzipdata(zip, path);\n\t\tvar _ws;\n\t\tswitch(stype) {\n\t\t\tcase 'sheet': _ws = parse_ws(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'chart': _ws = parse_cs(data, path, idx, opts, sheetRels[sheet], wb, themes, styles);\n\t\t\t\tif(!_ws || !_ws['!drawel']) break;\n\t\t\t\tvar dfile = resolve_path(_ws['!drawel'].Target, path);\n\t\t\t\tvar drelsp = get_rels_path(dfile);\n\t\t\t\tvar draw = parse_drawing(getzipstr(zip, dfile, true), parse_rels(getzipstr(zip, drelsp, true), dfile));\n\t\t\t\tvar chartp = resolve_path(draw, dfile);\n\t\t\t\tvar crelsp = get_rels_path(chartp);\n\t\t\t\t_ws = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, _ws);\n\t\t\t\tbreak;\n\t\t\tcase 'macro': _ws = parse_ms(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'dialog': _ws = parse_ds(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tdefault: throw new Error(\"Unrecognized sheet type \" + stype);\n\t\t}\n\t\tsheets[sheet] = _ws;\n\n\t\t/* scan rels for comments */\n\t\tvar comments = [];\n\t\tif(sheetRels && sheetRels[sheet]) keys(sheetRels[sheet]).forEach(function(n) {\n\t\t\tif(sheetRels[sheet][n].Type == RELS.CMNT) {\n\t\t\t\tvar dfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\tcomments = parse_cmnt(getzipdata(zip, dfile, true), dfile, opts);\n\t\t\t\tif(!comments || !comments.length) return;\n\t\t\t\tsheet_insert_comments(_ws, comments);\n\t\t\t}\n\t\t});\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nfunction strip_front_slash(x) { return x.charAt(0) == '/' ? x.slice(1) : x; }\n\nfunction parse_zip(zip, opts) {\n\tmake_ssf(SSF);\n\topts = opts || {};\n\tfix_read_opts(opts);\n\n\t/* OpenDocument Part 3 Section 2.2.1 OpenDocument Package */\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) return parse_ods(zip, opts);\n\t/* UOC */\n\tif(safegetzipfile(zip, 'objectdata.xml')) return parse_ods(zip, opts);\n\t/* Numbers */\n\tif(safegetzipfile(zip, 'Index/Document.iwa')) throw new Error('Unsupported NUMBERS file');\n\n\tvar entries = zipentries(zip);\n\tvar dir = parse_ct((getzipstr(zip, '[Content_Types].xml')));\n\tvar xlsb = false;\n\tvar sheets, binname;\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.xml\";\n\t\tif(getzipdata(zip,binname, true)) dir.workbooks.push(binname);\n\t}\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.bin\";\n\t\tif(!getzipdata(zip,binname,true)) throw new Error(\"Could not find workbook\");\n\t\tdir.workbooks.push(binname);\n\t\txlsb = true;\n\t}\n\tif(dir.workbooks[0].slice(-3) == \"bin\") xlsb = true;\n\n\tvar themes = ({});\n\tvar styles = ({});\n\tif(!opts.bookSheets && !opts.bookProps) {\n\t\tstrs = [];\n\t\tif(dir.sst) try { strs=parse_sst(getzipdata(zip, strip_front_slash(dir.sst)), dir.sst, opts); } catch(e) { if(opts.WTF) throw e; }\n\n\t\tif(opts.cellStyles && dir.themes.length) themes = parse_theme(getzipstr(zip, dir.themes[0].replace(/^\\//,''), true)||\"\",dir.themes[0], opts);\n\n\t\tif(dir.style) styles = parse_sty(getzipdata(zip, strip_front_slash(dir.style)), dir.style, themes, opts);\n\t}\n\n\t/*var externbooks = */dir.links.map(function(link) {\n\t\ttry {\n\t\t\tvar rels = parse_rels(getzipstr(zip, get_rels_path(strip_front_slash(link))), link);\n\t\t\treturn parse_xlink(getzipdata(zip, strip_front_slash(link)), rels, link, opts);\n\t\t} catch(e) {}\n\t});\n\n\tvar wb = parse_wb(getzipdata(zip, strip_front_slash(dir.workbooks[0])), dir.workbooks[0], opts);\n\n\tvar props = {}, propdata = \"\";\n\n\tif(dir.coreprops.length) {\n\t\tpropdata = getzipdata(zip, strip_front_slash(dir.coreprops[0]), true);\n\t\tif(propdata) props = parse_core_props(propdata);\n\t\tif(dir.extprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, strip_front_slash(dir.extprops[0]), true);\n\t\t\tif(propdata) parse_ext_props(propdata, props, opts);\n\t\t}\n\t}\n\n\tvar custprops = {};\n\tif(!opts.bookSheets || opts.bookProps) {\n\t\tif (dir.custprops.length !== 0) {\n\t\t\tpropdata = getzipstr(zip, strip_front_slash(dir.custprops[0]), true);\n\t\t\tif(propdata) custprops = parse_cust_props(propdata, opts);\n\t\t}\n\t}\n\n\tvar out = ({});\n\tif(opts.bookSheets || opts.bookProps) {\n\t\tif(wb.Sheets) sheets = wb.Sheets.map(function pluck(x){ return x.name; });\n\t\telse if(props.Worksheets && props.SheetNames.length > 0) sheets=props.SheetNames;\n\t\tif(opts.bookProps) { out.Props = props; out.Custprops = custprops; }\n\t\tif(opts.bookSheets && typeof sheets !== 'undefined') out.SheetNames = sheets;\n\t\tif(opts.bookSheets ? out.SheetNames : opts.bookProps) return out;\n\t}\n\tsheets = {};\n\n\tvar deps = {};\n\tif(opts.bookDeps && dir.calcchain) deps=parse_cc(getzipdata(zip, strip_front_slash(dir.calcchain)),dir.calcchain,opts);\n\n\tvar i=0;\n\tvar sheetRels = ({});\n\tvar path, relsPath;\n\n\t{\n\t\tvar wbsheets = wb.Sheets;\n\t\tprops.Worksheets = wbsheets.length;\n\t\tprops.SheetNames = [];\n\t\tfor(var j = 0; j != wbsheets.length; ++j) {\n\t\t\tprops.SheetNames[j] = wbsheets[j].name;\n\t\t}\n\t}\n\n\tvar wbext = xlsb ? \"bin\" : \"xml\";\n\tvar wbrelsi = dir.workbooks[0].lastIndexOf(\"/\");\n\tvar wbrelsfile = (dir.workbooks[0].slice(0, wbrelsi+1) + \"_rels/\" + dir.workbooks[0].slice(wbrelsi+1) + \".rels\").replace(/^\\//,\"\");\n\tif(!safegetzipfile(zip, wbrelsfile)) wbrelsfile = 'xl/_rels/workbook.' + wbext + '.rels';\n\tvar wbrels = parse_rels(getzipstr(zip, wbrelsfile, true), wbrelsfile);\n\tif(wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);\n\n\t/* Numbers iOS hack */\n\tvar nmode = (getzipdata(zip,\"xl/worksheets/sheet.xml\",true))?1:0;\n\twsloop: for(i = 0; i != props.Worksheets; ++i) {\n\t\tvar stype = \"sheet\";\n\t\tif(wbrels && wbrels[i]) {\n\t\t\tpath = 'xl/' + (wbrels[i][1]).replace(/[\\/]?xl\\//, \"\");\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrels[i][1];\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrelsfile.replace(/_rels\\/.*$/,\"\") + wbrels[i][1];\n\t\t\tstype = wbrels[i][2];\n\t\t} else {\n\t\t\tpath = 'xl/worksheets/sheet'+(i+1-nmode)+\".\" + wbext;\n\t\t\tpath = path.replace(/sheet0\\./,\"sheet.\");\n\t\t}\n\t\trelsPath = path.replace(/^(.*)(\\/)([^\\/]*)$/, \"$1/_rels/$3.rels\");\n\t\tif(opts && opts.sheets != null) switch(typeof opts.sheets) {\n\t\t\tcase \"number\": if(i != opts.sheets) continue wsloop; break;\n\t\t\tcase \"string\": if(props.SheetNames[i].toLowerCase() != opts.sheets.toLowerCase()) continue wsloop; break;\n\t\t\tdefault: if(Array.isArray && Array.isArray(opts.sheets)) {\n\t\t\t\tvar snjseen = false;\n\t\t\t\tfor(var snj = 0; snj != opts.sheets.length; ++snj) {\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"number\" && opts.sheets[snj] == i) snjseen=1;\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"string\" && opts.sheets[snj].toLowerCase() == props.SheetNames[i].toLowerCase()) snjseen = 1;\n\t\t\t\t}\n\t\t\t\tif(!snjseen) continue wsloop;\n\t\t\t}\n\t\t}\n\t\tsafe_parse_sheet(zip, path, relsPath, props.SheetNames[i], i, sheetRels, sheets, stype, opts, wb, themes, styles);\n\t}\n\n\tout = ({\n\t\tDirectory: dir,\n\t\tWorkbook: wb,\n\t\tProps: props,\n\t\tCustprops: custprops,\n\t\tDeps: deps,\n\t\tSheets: sheets,\n\t\tSheetNames: props.SheetNames,\n\t\tStrings: strs,\n\t\tStyles: styles,\n\t\tThemes: themes,\n\t\tSSF: SSF.get_table()\n\t});\n\tif(opts && opts.bookFiles) {\n\t\tout.keys = entries;\n\t\tout.files = zip.files;\n\t}\n\tif(opts && opts.bookVBA) {\n\t\tif(dir.vba.length > 0) out.vbaraw = getzipdata(zip,strip_front_slash(dir.vba[0]),true);\n\t\telse if(dir.defaults && dir.defaults.bin === CT_VBA) out.vbaraw = getzipdata(zip, 'xl/vbaProject.bin',true);\n\t}\n\treturn out;\n}\n\n/* [MS-OFFCRYPTO] 2.1.1 */\nfunction parse_xlsxcfb(cfb, _opts) {\n\tvar opts = _opts || {};\n\tvar f = 'Workbook', data = CFB.find(cfb, f);\n\ttry {\n\tf = '/!DataSpaces/Version';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var version = */parse_DataSpaceVersionInfo(data.content);\n\n\t/* 2.3.4.1 */\n\tf = '/!DataSpaces/DataSpaceMap';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar dsm = parse_DataSpaceMap(data.content);\n\tif(dsm.length !== 1 || dsm[0].comps.length !== 1 || dsm[0].comps[0].t !== 0 || dsm[0].name !== \"StrongEncryptionDataSpace\" || dsm[0].comps[0].v !== \"EncryptedPackage\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.2 */\n\tf = '/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar seds = parse_DataSpaceDefinition(data.content);\n\tif(seds.length != 1 || seds[0] != \"StrongEncryptionTransform\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.3 */\n\tf = '/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var hdr = */parse_Primary(data.content);\n\t} catch(e) {}\n\n\tf = '/EncryptionInfo';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar einfo = parse_EncryptionInfo(data.content);\n\n\t/* 2.3.4.4 */\n\tf = '/EncryptedPackage';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\n/*global decrypt_agile */\nif(einfo[0] == 0x04 && typeof decrypt_agile !== 'undefined') return decrypt_agile(einfo[1], data.content, opts.password || \"\", opts);\n/*global decrypt_std76 */\nif(einfo[0] == 0x02 && typeof decrypt_std76 !== 'undefined') return decrypt_std76(einfo[1], data.content, opts.password || \"\", opts);\n\tthrow new Error(\"File is password-protected\");\n}\n\nfunction write_zip(wb, opts) {\n\t_shapeid = 1024;\n\tif(opts.bookType == \"ods\") return write_ods(wb, opts);\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = SSF.get_table();\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = []; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = opts.bookType == \"xlsb\" ? \"bin\" : \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\nvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\nf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws(rId-1, f, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tvar cf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_cmnt(comments, cf, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst(opts.Strings, f, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb(wb, f, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty(wb, f, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\nfunction firstbyte(f,o) {\n\tvar x = \"\";\n\tswitch((o||{}).type || \"base64\") {\n\t\tcase 'buffer': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tcase 'base64': x = Base64.decode(f.slice(0,12)); break;\n\t\tcase 'binary': x = f; break;\n\t\tcase 'array': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tdefault: throw new Error(\"Unrecognized type \" + (o && o.type || \"undefined\"));\n\t}\n\treturn [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3), x.charCodeAt(4), x.charCodeAt(5), x.charCodeAt(6), x.charCodeAt(7)];\n}\n\nfunction read_cfb(cfb, opts) {\n\tif(CFB.find(cfb, \"EncryptedPackage\")) return parse_xlsxcfb(cfb, opts);\n\treturn parse_xlscfb(cfb, opts);\n}\n\nfunction read_zip(data, opts) {\nvar zip, d = data;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tzip = zip_read(d, o);\n\treturn parse_zip(zip, o);\n}\n\nfunction read_plaintext(data, o) {\n\tvar i = 0;\n\tmain: while(i < data.length) switch(data.charCodeAt(i)) {\n\t\tcase 0x0A: case 0x0D: case 0x20: ++i; break;\n\t\tcase 0x3C: return parse_xlml(data.slice(i),o);\n\t\tdefault: break main;\n\t}\n\treturn PRN.to_workbook(data, o);\n}\n\nfunction read_plaintext_raw(data, o) {\n\tvar str = \"\", bytes = firstbyte(data, o);\n\tswitch(o.type) {\n\t\tcase 'base64': str = Base64.decode(data); break;\n\t\tcase 'binary': str = data; break;\n\t\tcase 'buffer': str = data.toString('binary'); break;\n\t\tcase 'array': str = cc2str(data); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str);\n\treturn read_plaintext(str, o);\n}\n\nfunction read_utf16(data, o) {\n\tvar d = data;\n\tif(o.type == 'base64') d = Base64.decode(d);\n\td = cptable.utils.decode(1200, d.slice(2), 'str');\n\to.type = \"binary\";\n\treturn read_plaintext(d, o);\n}\n\nfunction bstrify(data) {\n\treturn !data.match(/[^\\x00-\\x7F]/) ? data : utf8write(data);\n}\n\nfunction read_prn(data, d, o, str) {\n\tif(str) { o.type = \"string\"; return PRN.to_workbook(data, o); }\n\treturn PRN.to_workbook(d, o);\n}\n\nfunction readSync(data, opts) {\n\treset_cp();\n\tif(typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) return readSync(new Uint8Array(data), opts);\n\tvar d = data, n = [0,0,0,0], str = false;\n\tvar o = opts||{};\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\t_ssfopts = {};\n\tif(o.dateNF) _ssfopts.dateNF = o.dateNF;\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tif(o.type == \"file\") { o.type = has_buf ? \"buffer\" : \"binary\"; d = read_binary(data); }\n\tif(o.type == \"string\") { str = true; o.type = \"binary\"; o.codepage = 65001; d = bstrify(data); }\n\tif(o.type == 'array' && typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && typeof ArrayBuffer !== 'undefined') {\n\t\t// $FlowIgnore\n\t\tvar ab=new ArrayBuffer(3), vu=new Uint8Array(ab); vu.foo=\"bar\";\n\t\t// $FlowIgnore\n\t\tif(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}\n\t}\n\tswitch((n = firstbyte(d, o))[0]) {\n\t\tcase 0xD0: if(n[1] === 0xCF && n[2] === 0x11 && n[3] === 0xE0 && n[4] === 0xA1 && n[5] === 0xB1 && n[6] === 0x1A && n[7] === 0xE1) return read_cfb(CFB.read(d, o), o); break;\n\t\tcase 0x09: if(n[1] <= 0x04) return parse_xlscfb(d, o); break;\n\t\tcase 0x3C: return parse_xlml(d, o);\n\t\tcase 0x49: if(n[1] === 0x44) return read_wb_ID(d, o); break;\n\t\tcase 0x54: if(n[1] === 0x41 && n[2] === 0x42 && n[3] === 0x4C) return DIF.to_workbook(d, o); break;\n\t\tcase 0x50: return (n[1] === 0x4B && n[2] < 0x09 && n[3] < 0x09) ? read_zip(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xEF: return n[3] === 0x3C ? parse_xlml(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xFF: if(n[1] === 0xFE) { return read_utf16(d, o); } break;\n\t\tcase 0x00: if(n[1] === 0x00 && n[2] >= 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o); break;\n\t\tcase 0x03: case 0x83: case 0x8B: case 0x8C: return DBF.to_workbook(d, o);\n\t\tcase 0x7B: if(n[1] === 0x5C && n[2] === 0x72 && n[3] === 0x74) return RTF.to_workbook(d, o); break;\n\t\tcase 0x0A: case 0x0D: case 0x20: return read_plaintext_raw(d, o);\n\t}\n\tif(DBF.versions.indexOf(n[0]) > -1 && n[2] <= 12 && n[3] <= 31) return DBF.to_workbook(d, o);\n\treturn read_prn(data, d, o, str);\n}\n\nfunction readFileSync(filename, opts) {\n\tvar o = opts||{}; o.type = 'file';\n\treturn readSync(filename, o);\n}\nfunction write_cfb_ctr(cfb, o) {\n\tswitch(o.type) {\n\t\tcase \"base64\": case \"binary\": break;\n\t\tcase \"buffer\": case \"array\": o.type = \"\"; break;\n\t\tcase \"file\": return write_dl(o.file, CFB.write(cfb, {type:has_buf ? 'buffer' : \"\"}));\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn CFB.write(cfb, o);\n}\n\nfunction write_zip_type(wb, opts) {\n\tvar o = opts||{};\n\tvar z = write_zip(wb, o);\n\tvar oopts = {};\n\tif(o.compression) oopts.compression = 'DEFLATE';\n\tif(o.password) oopts.type = has_buf ? \"nodebuffer\" : \"string\";\n\telse switch(o.type) {\n\t\tcase \"base64\": oopts.type = \"base64\"; break;\n\t\tcase \"binary\": oopts.type = \"string\"; break;\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tcase \"buffer\":\n\t\tcase \"file\": oopts.type = has_buf ? \"nodebuffer\" : \"string\"; break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tvar out = z.FullPaths ? CFB.write(z, {fileType:\"zip\", type: {\"nodebuffer\": \"buffer\", \"string\": \"binary\"}[oopts.type] || oopts.type}) : z.generate(oopts);\n/*jshint -W083 */\n\tif(o.password && typeof encrypt_agile !== 'undefined') return write_cfb_ctr(encrypt_agile(out, o.password), o); // eslint-disable-line no-undef\n/*jshint +W083 */\n\tif(o.type === \"file\") return write_dl(o.file, out);\n\treturn o.type == \"string\" ? utf8read(out) : out;\n}\n\nfunction write_cfb_type(wb, opts) {\n\tvar o = opts||{};\n\tvar cfb = write_xlscfb(wb, o);\n\treturn write_cfb_ctr(cfb, o);\n}\n\nfunction write_string_type(out, opts, bom) {\n\tif(!bom) bom = \"\";\n\tvar o = bom + out;\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64.encode(utf8write(o));\n\t\tcase \"binary\": return utf8write(o);\n\t\tcase \"string\": return out;\n\t\tcase \"file\": return write_dl(opts.file, o, 'utf8');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(o, 'utf8');\n\t\t\telse return write_string_type(o, {type:'binary'}).split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\nfunction write_stxt_type(out, opts) {\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64.encode(out);\n\t\tcase \"binary\": return out;\n\t\tcase \"string\": return out; /* override in sheet_to_txt */\n\t\tcase \"file\": return write_dl(opts.file, out, 'binary');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(out, 'binary');\n\t\t\telse return out.split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\n/* TODO: test consistency */\nfunction write_binary_type(out, opts) {\n\tswitch(opts.type) {\n\t\tcase \"string\":\n\t\tcase \"base64\":\n\t\tcase \"binary\":\n\t\t\tvar bstr = \"\";\n\t\t\t// $FlowIgnore\n\t\t\tfor(var i = 0; i < out.length; ++i) bstr += String.fromCharCode(out[i]);\n\t\t\treturn opts.type == 'base64' ? Base64.encode(bstr) : opts.type == 'string' ? utf8read(bstr) : bstr;\n\t\tcase \"file\": return write_dl(opts.file, out);\n\t\tcase \"buffer\": return out;\n\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t}\n}\n\nfunction writeSync(wb, opts) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = opts||{};\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out = (writeSync(wb, o)); o.type = \"array\"; return s2ab(out); }\n\tswitch(o.bookType || 'xlsb') {\n\t\tcase 'xml':\n\t\tcase 'xlml': return write_string_type(write_xlml(wb, o), o);\n\t\tcase 'slk':\n\t\tcase 'sylk': return write_string_type(write_slk_str(wb, o), o);\n\t\tcase 'htm':\n\t\tcase 'html': return write_string_type(write_htm_str(wb, o), o);\n\t\tcase 'txt': return write_stxt_type(write_txt_str(wb, o), o);\n\t\tcase 'csv': return write_string_type(write_csv_str(wb, o), o, \"\\ufeff\");\n\t\tcase 'dif': return write_string_type(write_dif_str(wb, o), o);\n\t\tcase 'dbf': return write_binary_type(write_dbf_buf(wb, o), o);\n\t\tcase 'prn': return write_string_type(write_prn_str(wb, o), o);\n\t\tcase 'rtf': return write_string_type(write_rtf_str(wb, o), o);\n\t\tcase 'eth': return write_string_type(write_eth_str(wb, o), o);\n\t\tcase 'fods': return write_string_type(write_ods(wb, o), o);\n\t\tcase 'biff2': if(!o.biff) o.biff = 2; /* falls through */\n\t\tcase 'biff3': if(!o.biff) o.biff = 3; /* falls through */\n\t\tcase 'biff4': if(!o.biff) o.biff = 4; return write_binary_type(write_biff_buf(wb, o), o);\n\t\tcase 'biff5': if(!o.biff) o.biff = 5; /* falls through */\n\t\tcase 'biff8':\n\t\tcase 'xla':\n\t\tcase 'xls': if(!o.biff) o.biff = 8; return write_cfb_type(wb, o);\n\t\tcase 'xlsx':\n\t\tcase 'xlsm':\n\t\tcase 'xlam':\n\t\tcase 'xlsb':\n\t\tcase 'ods': return write_zip_type(wb, o);\n\t\tdefault: throw new Error (\"Unrecognized bookType |\" + o.bookType + \"|\");\n\t}\n}\n\nfunction resolve_book_type(o) {\n\tif(o.bookType) return;\n\tvar _BT = {\n\t\t\"xls\": \"biff8\",\n\t\t\"htm\": \"html\",\n\t\t\"slk\": \"sylk\",\n\t\t\"socialcalc\": \"eth\",\n\t\t\"Sh33tJS\": \"WTF\"\n\t};\n\tvar ext = o.file.slice(o.file.lastIndexOf(\".\")).toLowerCase();\n\tif(ext.match(/^\\.[a-z]+$/)) o.bookType = ext.slice(1);\n\to.bookType = _BT[o.bookType] || o.bookType;\n}\n\nfunction writeFileSync(wb, filename, opts) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSync(wb, o);\n}\n\nfunction writeFileAsync(filename, wb, opts, cb) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\to.type = 'buffer';\n\tvar _cb = cb; if(!(_cb instanceof Function)) _cb = (opts);\n\treturn _fs.writeFile(filename, writeSync(wb, o), _cb);\n}\nfunction make_json_row(sheet, r, R, cols, header, hdr, dense, o) {\n\tvar rr = encode_row(R);\n\tvar defval = o.defval, raw = o.raw || !Object.prototype.hasOwnProperty.call(o, \"raw\");\n\tvar isempty = true;\n\tvar row = (header === 1) ? [] : {};\n\tif(header !== 1) {\n\t\tif(Object.defineProperty) try { Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); } catch(e) { row.__rowNum__ = R; }\n\t\telse row.__rowNum__ = R;\n\t}\n\tif(!dense || sheet[R]) for (var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar val = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tif(val === undefined || val.t === undefined) {\n\t\t\tif(defval === undefined) continue;\n\t\t\tif(hdr[C] != null) { row[hdr[C]] = defval; }\n\t\t\tcontinue;\n\t\t}\n\t\tvar v = val.v;\n\t\tswitch(val.t){\n\t\t\tcase 'z': if(v == null) break; continue;\n\t\t\tcase 'e': v = void 0; break;\n\t\t\tcase 's': case 'd': case 'b': case 'n': break;\n\t\t\tdefault: throw new Error('unrecognized type ' + val.t);\n\t\t}\n\t\tif(hdr[C] != null) {\n\t\t\tif(v == null) {\n\t\t\t\tif(defval !== undefined) row[hdr[C]] = defval;\n\t\t\t\telse if(raw && v === null) row[hdr[C]] = null;\n\t\t\t\telse continue;\n\t\t\t} else {\n\t\t\t\trow[hdr[C]] = raw || (o.rawNumbers && val.t == \"n\") ? v : format_cell(val,v,o);\n\t\t\t}\n\t\t\tif(v != null) isempty = false;\n\t\t}\n\t}\n\treturn { row: row, isempty: isempty };\n}\n\n\nfunction sheet_to_json(sheet, opts) {\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\telse if(o.header == null) header = 0;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols = [];\n\tvar out = [];\n\tvar outi = 0, counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0, CC = 0;\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = 0;\n\t\t\t\tfor(CC = 0; CC < hdr.length; ++CC) if(hdr[CC] == vv) vv = v + \"_\" + (++counter);\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tfor (R = r.s.r + offset; R <= r.e.r; ++R) {\n\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) out[outi++] = row.row;\n\t}\n\tout.length = outi;\n\treturn out;\n}\n\nvar qreg = /\"/g;\nfunction make_csv_row(sheet, r, R, cols, fs, rs, FS, o) {\n\tvar isempty = true;\n\tvar row = [], txt = \"\", rr = encode_row(R);\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tif (!cols[C]) continue;\n\t\tvar val = o.dense ? (sheet[R]||[])[C]: sheet[cols[C] + rr];\n\t\tif(val == null) txt = \"\";\n\t\telse if(val.v != null) {\n\t\t\tisempty = false;\n\t\t\ttxt = ''+(o.rawNumbers && val.t == \"n\" ? val.v : format_cell(val, null, o));\n\t\t\tfor(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = \"\\\"\" + txt.replace(qreg, '\"\"') + \"\\\"\"; break; }\n\t\t\tif(txt == \"ID\") txt = '\"ID\"';\n\t\t} else if(val.f != null && !val.F) {\n\t\t\tisempty = false;\n\t\t\ttxt = '=' + val.f; if(txt.indexOf(\",\") >= 0) txt = '\"' + txt.replace(qreg, '\"\"') + '\"';\n\t\t} else txt = \"\";\n\t\t/* NOTE: Excel CSV does not support array formulae */\n\t\trow.push(txt);\n\t}\n\tif(o.blankrows === false && isempty) return null;\n\treturn row.join(FS);\n}\n\nfunction sheet_to_csv(sheet, opts) {\n\tvar out = [];\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row = \"\", cols = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\trow = make_csv_row(sheet, r, R, cols, fs, rs, FS, o);\n\t\tif(row == null) { continue; }\n\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\tout.push(row + RS);\n\t}\n\tdelete o.dense;\n\treturn out.join(\"\");\n}\n\nfunction sheet_to_txt(sheet, opts) {\n\tif(!opts) opts = {}; opts.FS = \"\\t\"; opts.RS = \"\\n\";\n\tvar s = sheet_to_csv(sheet, opts);\n\tif(typeof cptable == 'undefined' || opts.type == 'string') return s;\n\tvar o = cptable.utils.encode(1200, s, 'str');\n\treturn String.fromCharCode(255) + String.fromCharCode(254) + o;\n}\n\nfunction sheet_to_formulae(sheet) {\n\tvar y = \"\", x, val=\"\";\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar r = safe_decode_range(sheet['!ref']), rr = \"\", cols = [], C;\n\tvar cmds = [];\n\tvar dense = Array.isArray(sheet);\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\ty = cols[C] + rr;\n\t\t\tx = dense ? (sheet[R]||[])[C] : sheet[y];\n\t\t\tval = \"\";\n\t\t\tif(x === undefined) continue;\n\t\t\telse if(x.F != null) {\n\t\t\t\ty = x.F;\n\t\t\t\tif(!x.f) continue;\n\t\t\t\tval = x.f;\n\t\t\t\tif(y.indexOf(\":\") == -1) y = y + \":\" + y;\n\t\t\t}\n\t\t\tif(x.f != null) val = x.f;\n\t\t\telse if(x.t == 'z') continue;\n\t\t\telse if(x.t == 'n' && x.v != null) val = \"\" + x.v;\n\t\t\telse if(x.t == 'b') val = x.v ? \"TRUE\" : \"FALSE\";\n\t\t\telse if(x.w !== undefined) val = \"'\" + x.w;\n\t\t\telse if(x.v === undefined) continue;\n\t\t\telse if(x.t == 's') val = \"'\" + x.v;\n\t\t\telse val = \"\"+x.v;\n\t\t\tcmds[cmds.length] = y + \"=\" + val;\n\t\t}\n\t}\n\treturn cmds;\n}\n\nfunction sheet_add_json(_ws, js, opts) {\n\tvar o = opts || {};\n\tvar offset = +!o.skipHeader;\n\tvar ws = _ws || ({});\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t}\n\tvar cell;\n\tvar range = ({s: {c:0, r:0}, e: {c:_C, r:_R + js.length - 1 + offset}});\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) { _R = _range.e.r + 1; range.e.r = _R + js.length - 1 + offset; }\n\t} else {\n\t\tif(_R == -1) { _R = 0; range.e.r = js.length - 1 + offset; }\n\t}\n\tvar hdr = o.header || [], C = 0;\n\n\tjs.forEach(function (JS, R) {\n\t\tkeys(JS).forEach(function(k) {\n\t\t\tif((C=hdr.indexOf(k)) == -1) hdr[C=hdr.length] = k;\n\t\t\tvar v = JS[k];\n\t\t\tvar t = 'z';\n\t\t\tvar z = \"\";\n\t\t\tvar ref = encode_cell({c:_C + C,r:_R + R + offset});\n\t\t\tcell = utils.sheet_get_cell(ws, ref);\n\t\t\tif(v && typeof v === 'object' && !(v instanceof Date)){\n\t\t\t\tws[ref] = v;\n\t\t\t} else {\n\t\t\t\tif(typeof v == 'number') t = 'n';\n\t\t\t\telse if(typeof v == 'boolean') t = 'b';\n\t\t\t\telse if(typeof v == 'string') t = 's';\n\t\t\t\telse if(v instanceof Date) {\n\t\t\t\t\tt = 'd';\n\t\t\t\t\tif(!o.cellDates) { t = 'n'; v = datenum(v); }\n\t\t\t\t\tz = (o.dateNF || SSF._table[14]);\n\t\t\t\t}\n\t\t\t\tif(!cell) ws[ref] = cell = ({t:t, v:v});\n\t\t\t\telse {\n\t\t\t\t\tcell.t = t; cell.v = v;\n\t\t\t\t\tdelete cell.w; delete cell.R;\n\t\t\t\t\tif(z) cell.z = z;\n\t\t\t\t}\n\t\t\t\tif(z) cell.z = z;\n\t\t\t}\n\t\t});\n\t});\n\trange.e.c = Math.max(range.e.c, _C + hdr.length - 1);\n\tvar __R = encode_row(_R);\n\tif(offset) for(C = 0; C < hdr.length; ++C) ws[encode_col(C + _C) + __R] = {t:'s', v:hdr[C]};\n\tws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction json_to_sheet(js, opts) { return sheet_add_json(null, js, opts); }\n\nvar utils = {\n\tencode_col: encode_col,\n\tencode_row: encode_row,\n\tencode_cell: encode_cell,\n\tencode_range: encode_range,\n\tdecode_col: decode_col,\n\tdecode_row: decode_row,\n\tsplit_cell: split_cell,\n\tdecode_cell: decode_cell,\n\tdecode_range: decode_range,\n\tformat_cell: format_cell,\n\tget_formulae: sheet_to_formulae,\n\tmake_csv: sheet_to_csv,\n\tmake_json: sheet_to_json,\n\tmake_formulae: sheet_to_formulae,\n\tsheet_add_aoa: sheet_add_aoa,\n\tsheet_add_json: sheet_add_json,\n\tsheet_add_dom: sheet_add_dom,\n\taoa_to_sheet: aoa_to_sheet,\n\tjson_to_sheet: json_to_sheet,\n\ttable_to_sheet: parse_dom_table,\n\ttable_to_book: table_to_book,\n\tsheet_to_csv: sheet_to_csv,\n\tsheet_to_txt: sheet_to_txt,\n\tsheet_to_json: sheet_to_json,\n\tsheet_to_html: HTML_.from_sheet,\n\tsheet_to_formulae: sheet_to_formulae,\n\tsheet_to_row_object_array: sheet_to_json\n};\n\n(function(utils) {\nutils.consts = utils.consts || {};\nfunction add_consts(R/*Array*/) { R.forEach(function(a){ utils.consts[a[0]] = a[1]; }); }\n\nfunction get_default(x, y, z) { return x[y] != null ? x[y] : (x[y] = z); }\n\n/* get cell, creating a stub if necessary */\nfunction ws_get_cell_stub(ws, R, C) {\n\t/* A1 cell address */\n\tif(typeof R == \"string\") {\n\t\t/* dense */\n\t\tif(Array.isArray(ws)) {\n\t\t\tvar RC = decode_cell(R);\n\t\t\tif(!ws[RC.r]) ws[RC.r] = [];\n\t\t\treturn ws[RC.r][RC.c] || (ws[RC.r][RC.c] = {t:'z'});\n\t\t}\n\t\treturn ws[R] || (ws[R] = {t:'z'});\n\t}\n\t/* cell address object */\n\tif(typeof R != \"number\") return ws_get_cell_stub(ws, encode_cell(R));\n\t/* R and C are 0-based indices */\n\treturn ws_get_cell_stub(ws, encode_cell({r:R,c:C||0}));\n}\nutils.sheet_get_cell = ws_get_cell_stub;\n\n/* find sheet index for given name / validate index */\nfunction wb_sheet_idx(wb, sh) {\n\tif(typeof sh == \"number\") {\n\t\tif(sh >= 0 && wb.SheetNames.length > sh) return sh;\n\t\tthrow new Error(\"Cannot find sheet # \" + sh);\n\t} else if(typeof sh == \"string\") {\n\t\tvar idx = wb.SheetNames.indexOf(sh);\n\t\tif(idx > -1) return idx;\n\t\tthrow new Error(\"Cannot find sheet name |\" + sh + \"|\");\n\t} else throw new Error(\"Cannot find sheet |\" + sh + \"|\");\n}\n\n/* simple blank workbook object */\nutils.book_new = function() {\n\treturn { SheetNames: [], Sheets: {} };\n};\n\n/* add a worksheet to the end of a given workbook */\nutils.book_append_sheet = function(wb, ws, name) {\n\tif(!name) for(var i = 1; i <= 0xFFFF; ++i, name = undefined) if(wb.SheetNames.indexOf(name = \"Sheet\" + i) == -1) break;\n\tif(!name || wb.SheetNames.length >= 0xFFFF) throw new Error(\"Too many worksheets\");\n\tcheck_ws_name(name);\n\tif(wb.SheetNames.indexOf(name) >= 0) throw new Error(\"Worksheet with name |\" + name + \"| already exists!\");\n\n\twb.SheetNames.push(name);\n\twb.Sheets[name] = ws;\n};\n\n/* set sheet visibility (visible/hidden/very hidden) */\nutils.book_set_sheet_visibility = function(wb, sh, vis) {\n\tget_default(wb,\"Workbook\",{});\n\tget_default(wb.Workbook,\"Sheets\",[]);\n\n\tvar idx = wb_sheet_idx(wb, sh);\n\t// $FlowIgnore\n\tget_default(wb.Workbook.Sheets,idx, {});\n\n\tswitch(vis) {\n\t\tcase 0: case 1: case 2: break;\n\t\tdefault: throw new Error(\"Bad sheet visibility setting \" + vis);\n\t}\n\t// $FlowIgnore\n\twb.Workbook.Sheets[idx].Hidden = vis;\n};\nadd_consts([\n\t[\"SHEET_VISIBLE\", 0],\n\t[\"SHEET_HIDDEN\", 1],\n\t[\"SHEET_VERY_HIDDEN\", 2]\n]);\n\n/* set number format */\nutils.cell_set_number_format = function(cell, fmt) {\n\tcell.z = fmt;\n\treturn cell;\n};\n\n/* set cell hyperlink */\nutils.cell_set_hyperlink = function(cell, target, tooltip) {\n\tif(!target) {\n\t\tdelete cell.l;\n\t} else {\n\t\tcell.l = ({ Target: target });\n\t\tif(tooltip) cell.l.Tooltip = tooltip;\n\t}\n\treturn cell;\n};\nutils.cell_set_internal_link = function(cell, range, tooltip) { return utils.cell_set_hyperlink(cell, \"#\" + range, tooltip); };\n\n/* add to cell comments */\nutils.cell_add_comment = function(cell, text, author) {\n\tif(!cell.c) cell.c = [];\n\tcell.c.push({t:text, a:author||\"SheetJS\"});\n};\n\n/* set array formula and flush related cells */\nutils.sheet_set_array_formula = function(ws, range, formula) {\n\tvar rng = typeof range != \"string\" ? range : safe_decode_range(range);\n\tvar rngstr = typeof range == \"string\" ? range : encode_range(range);\n\tfor(var R = rng.s.r; R <= rng.e.r; ++R) for(var C = rng.s.c; C <= rng.e.c; ++C) {\n\t\tvar cell = ws_get_cell_stub(ws, R, C);\n\t\tcell.t = 'n';\n\t\tcell.F = rngstr;\n\t\tdelete cell.v;\n\t\tif(R == rng.s.r && C == rng.s.c) cell.f = formula;\n\t}\n\treturn ws;\n};\n\nreturn utils;\n})(utils);\n\nif(has_buf && typeof require != 'undefined') (function() {\n\tvar Readable = require('stream').Readable;\n\n\tvar write_csv_stream = function(sheet, opts) {\n\t\tvar stream = Readable();\n\t\tvar o = opts == null ? {} : opts;\n\t\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\t\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\t\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\t\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\t\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\t\tvar row = \"\", cols = [];\n\t\to.dense = Array.isArray(sheet);\n\t\tvar colinfo = o.skipHidden && sheet[\"!cols\"] || [];\n\t\tvar rowinfo = o.skipHidden && sheet[\"!rows\"] || [];\n\t\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\t\tvar R = r.s.r;\n\t\tvar BOM = false;\n\t\tstream._read = function() {\n\t\t\tif(!BOM) { BOM = true; return stream.push(\"\\uFEFF\"); }\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\t++R;\n\t\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\t\trow = make_csv_row(sheet, r, R-1, cols, fs, rs, FS, o);\n\t\t\t\tif(row != null) {\n\t\t\t\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\t\t\t\tstream.push(row + RS);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(R > r.e.r) return stream.push(null);\n\t\t};\n\t\treturn stream;\n\t};\n\n\tvar write_html_stream = function(ws, opts) {\n\t\tvar stream = Readable();\n\n\t\tvar o = opts || {};\n\t\tvar header = o.header != null ? o.header : HTML_.BEGIN;\n\t\tvar footer = o.footer != null ? o.footer : HTML_.END;\n\t\tstream.push(header);\n\t\tvar r = decode_range(ws['!ref']);\n\t\to.dense = Array.isArray(ws);\n\t\tstream.push(HTML_._preamble(ws, r, o));\n\t\tvar R = r.s.r;\n\t\tvar end = false;\n\t\tstream._read = function() {\n\t\t\tif(R > r.e.r) {\n\t\t\t\tif(!end) { end = true; stream.push(\"\" + footer); }\n\t\t\t\treturn stream.push(null);\n\t\t\t}\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\tstream.push(HTML_._row(ws, r, R, o));\n\t\t\t\t++R;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\t\treturn stream;\n\t};\n\n\tvar write_json_stream = function(sheet, opts) {\n\t\tvar stream = Readable({objectMode:true});\n\n\t\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\t\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr = [], v=0, vv=\"\";\n\t\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tvar o = opts || {};\n\t\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\t\tif(o.header === 1) header = 1;\n\t\telse if(o.header === \"A\") header = 2;\n\t\telse if(Array.isArray(o.header)) header = 3;\n\t\tswitch(typeof range) {\n\t\t\tcase 'string': r = safe_decode_range(range); break;\n\t\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\t\tdefault: r = range;\n\t\t}\n\t\tif(header > 0) offset = 0;\n\t\tvar rr = encode_row(r.s.r);\n\t\tvar cols = [];\n\t\tvar counter = 0;\n\t\tvar dense = Array.isArray(sheet);\n\t\tvar R = r.s.r, C = 0, CC = 0;\n\t\tif(dense && !sheet[R]) sheet[R] = [];\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\tcols[C] = encode_col(C);\n\t\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\t\tswitch(header) {\n\t\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\t\tdefault:\n\t\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\t\tcounter = 0;\n\t\t\t\t\tfor(CC = 0; CC < hdr.length; ++CC) if(hdr[CC] == vv) vv = v + \"_\" + (++counter);\n\t\t\t\t\thdr[C] = vv;\n\t\t\t}\n\t\t}\n\t\tR = r.s.r + offset;\n\t\tstream._read = function() {\n\t\t\tif(R > r.e.r) return stream.push(null);\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\t//if ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\t\t\t++R;\n\t\t\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) {\n\t\t\t\t\tstream.push(row.row);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn stream;\n\t};\n\n\tXLSX.stream = {\n\t\tto_json: write_json_stream,\n\t\tto_html: write_html_stream,\n\t\tto_csv: write_csv_stream\n\t};\n})();\n\nif(typeof parse_xlscfb !== \"undefined\") XLSX.parse_xlscfb = parse_xlscfb;\nXLSX.parse_zip = parse_zip;\nXLSX.read = readSync; //xlsread\nXLSX.readFile = readFileSync; //readFile\nXLSX.readFileSync = readFileSync;\nXLSX.write = writeSync;\nXLSX.writeFile = writeFileSync;\nXLSX.writeFileSync = writeFileSync;\nXLSX.writeFileAsync = writeFileAsync;\nXLSX.utils = utils;\nXLSX.SSF = SSF;\nif(typeof CFB !== \"undefined\") XLSX.CFB = CFB;\n}\n/*global define */\nif(typeof exports !== 'undefined') make_xlsx_lib(exports);\nelse if(typeof module !== 'undefined' && module.exports) make_xlsx_lib(module.exports);\nelse if(typeof define === 'function' && define.amd) define(function() { if(!XLSX.version) make_xlsx_lib(XLSX); return XLSX; });\nelse make_xlsx_lib(XLSX);\n/*exported XLS, ODS */\nvar XLS = XLSX, ODS = XLSX;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \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 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 _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\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 * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","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;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport TransitionGroup from './TransitionGroup';\n/**\n * The `` component is a specialized `Transition` component\n * that animates between two children.\n *\n * ```jsx\n * \n *
I appear first
\n *
I replace the above
\n *
\n * ```\n */\n\nvar ReplaceTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ReplaceTransition, _React$Component);\n\n function ReplaceTransition() {\n var _this;\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n\n _this.handleEnter = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _this.handleLifecycle('onEnter', 0, args);\n };\n\n _this.handleEntering = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return _this.handleLifecycle('onEntering', 0, args);\n };\n\n _this.handleEntered = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return _this.handleLifecycle('onEntered', 0, args);\n };\n\n _this.handleExit = function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return _this.handleLifecycle('onExit', 1, args);\n };\n\n _this.handleExiting = function () {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return _this.handleLifecycle('onExiting', 1, args);\n };\n\n _this.handleExited = function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return _this.handleLifecycle('onExited', 1, args);\n };\n\n return _this;\n }\n\n var _proto = ReplaceTransition.prototype;\n\n _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {\n var _child$props;\n\n var children = this.props.children;\n var child = React.Children.toArray(children)[idx];\n if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);\n\n if (this.props[handler]) {\n var maybeNode = child.props.nodeRef ? undefined : ReactDOM.findDOMNode(this);\n this.props[handler](maybeNode);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n inProp = _this$props.in,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\"]);\n\n var _React$Children$toArr = React.Children.toArray(children),\n first = _React$Children$toArr[0],\n second = _React$Children$toArr[1];\n\n delete props.onEnter;\n delete props.onEntering;\n delete props.onEntered;\n delete props.onExit;\n delete props.onExiting;\n delete props.onExited;\n return /*#__PURE__*/React.createElement(TransitionGroup, props, inProp ? React.cloneElement(first, {\n key: 'first',\n onEnter: this.handleEnter,\n onEntering: this.handleEntering,\n onEntered: this.handleEntered\n }) : React.cloneElement(second, {\n key: 'second',\n onEnter: this.handleExit,\n onEntering: this.handleExiting,\n onEntered: this.handleExited\n }));\n };\n\n return ReplaceTransition;\n}(React.Component);\n\nReplaceTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n in: PropTypes.bool.isRequired,\n children: function children(props, propName) {\n if (React.Children.count(props[propName]) !== 2) return new Error(\"\\\"\" + propName + \"\\\" must be exactly two transition components.\");\n return null;\n }\n} : {};\nexport default ReplaceTransition;","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\n\nvar _leaveRenders, _enterRenders;\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { ENTERED, ENTERING, EXITING } from './Transition';\nimport TransitionGroupContext from './TransitionGroupContext';\n\nfunction areChildrenDifferent(oldChildren, newChildren) {\n if (oldChildren === newChildren) return false;\n\n if (React.isValidElement(oldChildren) && React.isValidElement(newChildren) && oldChildren.key != null && oldChildren.key === newChildren.key) {\n return false;\n }\n\n return true;\n}\n/**\n * Enum of modes for SwitchTransition component\n * @enum { string }\n */\n\n\nexport var modes = {\n out: 'out-in',\n in: 'in-out'\n};\n\nvar callHook = function callHook(element, name, cb) {\n return function () {\n var _element$props;\n\n element.props[name] && (_element$props = element.props)[name].apply(_element$props, arguments);\n cb();\n };\n};\n\nvar leaveRenders = (_leaveRenders = {}, _leaveRenders[modes.out] = function (_ref) {\n var current = _ref.current,\n changeState = _ref.changeState;\n return React.cloneElement(current, {\n in: false,\n onExited: callHook(current, 'onExited', function () {\n changeState(ENTERING, null);\n })\n });\n}, _leaveRenders[modes.in] = function (_ref2) {\n var current = _ref2.current,\n changeState = _ref2.changeState,\n children = _ref2.children;\n return [current, React.cloneElement(children, {\n in: true,\n onEntered: callHook(children, 'onEntered', function () {\n changeState(ENTERING);\n })\n })];\n}, _leaveRenders);\nvar enterRenders = (_enterRenders = {}, _enterRenders[modes.out] = function (_ref3) {\n var children = _ref3.children,\n changeState = _ref3.changeState;\n return React.cloneElement(children, {\n in: true,\n onEntered: callHook(children, 'onEntered', function () {\n changeState(ENTERED, React.cloneElement(children, {\n in: true\n }));\n })\n });\n}, _enterRenders[modes.in] = function (_ref4) {\n var current = _ref4.current,\n children = _ref4.children,\n changeState = _ref4.changeState;\n return [React.cloneElement(current, {\n in: false,\n onExited: callHook(current, 'onExited', function () {\n changeState(ENTERED, React.cloneElement(children, {\n in: true\n }));\n })\n }), React.cloneElement(children, {\n in: true\n })];\n}, _enterRenders);\n/**\n * A transition component inspired by the [vue transition modes](https://vuejs.org/v2/guide/transitions.html#Transition-Modes).\n * You can use it when you want to control the render between state transitions.\n * Based on the selected mode and the child's key which is the `Transition` or `CSSTransition` component, the `SwitchTransition` makes a consistent transition between them.\n *\n * If the `out-in` mode is selected, the `SwitchTransition` waits until the old child leaves and then inserts a new child.\n * If the `in-out` mode is selected, the `SwitchTransition` inserts a new child first, waits for the new child to enter and then removes the old child.\n *\n * **Note**: If you want the animation to happen simultaneously\n * (that is, to have the old child removed and a new child inserted **at the same time**),\n * you should use\n * [`TransitionGroup`](https://reactcommunity.org/react-transition-group/transition-group)\n * instead.\n *\n * ```jsx\n * function App() {\n * const [state, setState] = useState(false);\n * return (\n * \n * node.addEventListener(\"transitionend\", done, false)}\n * classNames='fade'\n * >\n * \n * \n * \n * );\n * }\n * ```\n *\n * ```css\n * .fade-enter{\n * opacity: 0;\n * }\n * .fade-exit{\n * opacity: 1;\n * }\n * .fade-enter-active{\n * opacity: 1;\n * }\n * .fade-exit-active{\n * opacity: 0;\n * }\n * .fade-enter-active,\n * .fade-exit-active{\n * transition: opacity 500ms;\n * }\n * ```\n */\n\nvar SwitchTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(SwitchTransition, _React$Component);\n\n function SwitchTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.state = {\n status: ENTERED,\n current: null\n };\n _this.appeared = false;\n\n _this.changeState = function (status, current) {\n if (current === void 0) {\n current = _this.state.current;\n }\n\n _this.setState({\n status: status,\n current: current\n });\n };\n\n return _this;\n }\n\n var _proto = SwitchTransition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n };\n\n SwitchTransition.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n if (props.children == null) {\n return {\n current: null\n };\n }\n\n if (state.status === ENTERING && props.mode === modes.in) {\n return {\n status: ENTERING\n };\n }\n\n if (state.current && areChildrenDifferent(state.current, props.children)) {\n return {\n status: EXITING\n };\n }\n\n return {\n current: React.cloneElement(props.children, {\n in: true\n })\n };\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n mode = _this$props.mode,\n _this$state = this.state,\n status = _this$state.status,\n current = _this$state.current;\n var data = {\n children: children,\n current: current,\n changeState: this.changeState,\n status: status\n };\n var component;\n\n switch (status) {\n case ENTERING:\n component = enterRenders[mode](data);\n break;\n\n case EXITING:\n component = leaveRenders[mode](data);\n break;\n\n case ENTERED:\n component = current;\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: {\n isMounting: !this.appeared\n }\n }, component);\n };\n\n return SwitchTransition;\n}(React.Component);\n\nSwitchTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * Transition modes.\n * `out-in`: Current element transitions out first, then when complete, the new element transitions in.\n * `in-out`: New element transitions in first, then when complete, the current element transitions out.\n *\n * @type {'out-in'|'in-out'}\n */\n mode: PropTypes.oneOf([modes.in, modes.out]),\n\n /**\n * Any `Transition` or `CSSTransition` component.\n */\n children: PropTypes.oneOfType([PropTypes.element.isRequired])\n} : {};\nSwitchTransition.defaultProps = {\n mode: modes.out\n};\nexport default SwitchTransition;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nexport { _arrayLikeToArray as arrayLikeToArray, _arrayWithHoles as arrayWithHoles, _defineProperty as defineProperty, _iterableToArrayLimit as iterableToArrayLimit, _nonIterableRest as nonIterableRest, _objectSpread2 as objectSpread2, _objectWithoutProperties as objectWithoutProperties, _objectWithoutPropertiesLoose as objectWithoutPropertiesLoose, _slicedToArray as slicedToArray, _unsupportedIterableToArray as unsupportedIterableToArray };\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction compose() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (x) {\n return fns.reduceRight(function (y, f) {\n return f(y);\n }, x);\n };\n}\n\nfunction curry(fn) {\n return function curried() {\n var _this = this;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return args.length >= fn.length ? fn.apply(this, args) : function () {\n for (var _len3 = arguments.length, nextArgs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n nextArgs[_key3] = arguments[_key3];\n }\n\n return curried.apply(_this, [].concat(args, nextArgs));\n };\n };\n}\n\nfunction isObject(value) {\n return {}.toString.call(value).includes('Object');\n}\n\nfunction isEmpty(obj) {\n return !Object.keys(obj).length;\n}\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nfunction hasOwnProperty(object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n}\n\nfunction validateChanges(initial, changes) {\n if (!isObject(changes)) errorHandler('changeType');\n if (Object.keys(changes).some(function (field) {\n return !hasOwnProperty(initial, field);\n })) errorHandler('changeField');\n return changes;\n}\n\nfunction validateSelector(selector) {\n if (!isFunction(selector)) errorHandler('selectorType');\n}\n\nfunction validateHandler(handler) {\n if (!(isFunction(handler) || isObject(handler))) errorHandler('handlerType');\n if (isObject(handler) && Object.values(handler).some(function (_handler) {\n return !isFunction(_handler);\n })) errorHandler('handlersType');\n}\n\nfunction validateInitial(initial) {\n if (!initial) errorHandler('initialIsRequired');\n if (!isObject(initial)) errorHandler('initialType');\n if (isEmpty(initial)) errorHandler('initialContent');\n}\n\nfunction throwError(errorMessages, type) {\n throw new Error(errorMessages[type] || errorMessages[\"default\"]);\n}\n\nvar errorMessages = {\n initialIsRequired: 'initial state is required',\n initialType: 'initial state should be an object',\n initialContent: 'initial state shouldn\\'t be an empty object',\n handlerType: 'handler should be an object or a function',\n handlersType: 'all handlers should be a functions',\n selectorType: 'selector should be a function',\n changeType: 'provided value of changes should be an object',\n changeField: 'it seams you want to change a field in the state which is not specified in the \"initial\" state',\n \"default\": 'an unknown error accured in `state-local` package'\n};\nvar errorHandler = curry(throwError)(errorMessages);\nvar validators = {\n changes: validateChanges,\n selector: validateSelector,\n handler: validateHandler,\n initial: validateInitial\n};\n\nfunction create(initial) {\n var handler = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n validators.initial(initial);\n validators.handler(handler);\n var state = {\n current: initial\n };\n var didUpdate = curry(didStateUpdate)(state, handler);\n var update = curry(updateState)(state);\n var validate = curry(validators.changes)(initial);\n var getChanges = curry(extractChanges)(state);\n\n function getState() {\n var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (state) {\n return state;\n };\n validators.selector(selector);\n return selector(state.current);\n }\n\n function setState(causedChanges) {\n compose(didUpdate, update, validate, getChanges)(causedChanges);\n }\n\n return [getState, setState];\n}\n\nfunction extractChanges(state, causedChanges) {\n return isFunction(causedChanges) ? causedChanges(state.current) : causedChanges;\n}\n\nfunction updateState(state, changes) {\n state.current = _objectSpread2(_objectSpread2({}, state.current), changes);\n return changes;\n}\n\nfunction didStateUpdate(state, handler, changes) {\n isFunction(handler) ? handler(state.current) : Object.keys(changes).forEach(function (field) {\n var _handler$field;\n\n return (_handler$field = handler[field]) === null || _handler$field === void 0 ? void 0 : _handler$field.call(handler, state.current[field]);\n });\n return changes;\n}\n\nvar index = {\n create: create\n};\n\nexport default index;\n","var config = {\n paths: {\n vs: 'https://cdn.jsdelivr.net/npm/monaco-editor@0.33.0/min/vs'\n }\n};\n\nexport default config;\n","function isObject(value) {\n return {}.toString.call(value).includes('Object');\n}\n\nexport default isObject;\n","import curry from '../utils/curry.js';\nimport isObject from '../utils/isObject.js';\n\n/**\n * validates the configuration object and informs about deprecation\n * @param {Object} config - the configuration object \n * @return {Object} config - the validated configuration object\n */\n\nfunction validateConfig(config) {\n if (!config) errorHandler('configIsRequired');\n if (!isObject(config)) errorHandler('configType');\n\n if (config.urls) {\n informAboutDeprecation();\n return {\n paths: {\n vs: config.urls.monacoBase\n }\n };\n }\n\n return config;\n}\n/**\n * logs deprecation message\n */\n\n\nfunction informAboutDeprecation() {\n console.warn(errorMessages.deprecation);\n}\n\nfunction throwError(errorMessages, type) {\n throw new Error(errorMessages[type] || errorMessages[\"default\"]);\n}\n\nvar errorMessages = {\n configIsRequired: 'the configuration object is required',\n configType: 'the configuration object should be an object',\n \"default\": 'an unknown error accured in `@monaco-editor/loader` package',\n deprecation: \"Deprecation warning!\\n You are using deprecated way of configuration.\\n\\n Instead of using\\n monaco.config({ urls: { monacoBase: '...' } })\\n use\\n monaco.config({ paths: { vs: '...' } })\\n\\n For more please check the link https://github.com/suren-atoyan/monaco-loader#config\\n \"\n};\nvar errorHandler = curry(throwError)(errorMessages);\nvar validators = {\n config: validateConfig\n};\n\nexport default validators;\nexport { errorHandler, errorMessages };\n","function curry(fn) {\n return function curried() {\n var _this = this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return args.length >= fn.length ? fn.apply(this, args) : function () {\n for (var _len2 = arguments.length, nextArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n nextArgs[_key2] = arguments[_key2];\n }\n\n return curried.apply(_this, [].concat(args, nextArgs));\n };\n };\n}\n\nexport default curry;\n","var compose = function compose() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (x) {\n return fns.reduceRight(function (y, f) {\n return f(y);\n }, x);\n };\n};\n\nexport default compose;\n","import { objectSpread2 as _objectSpread2 } from '../_virtual/_rollupPluginBabelHelpers.js';\n\nfunction merge(target, source) {\n Object.keys(source).forEach(function (key) {\n if (source[key] instanceof Object) {\n if (target[key]) {\n Object.assign(source[key], merge(target[key], source[key]));\n }\n }\n });\n return _objectSpread2(_objectSpread2({}, target), source);\n}\n\nexport default merge;\n","// The source (has been changed) is https://github.com/facebook/react/issues/5465#issuecomment-157888325\nvar CANCELATION_MESSAGE = {\n type: 'cancelation',\n msg: 'operation is manually canceled'\n};\n\nfunction makeCancelable(promise) {\n var hasCanceled_ = false;\n var wrappedPromise = new Promise(function (resolve, reject) {\n promise.then(function (val) {\n return hasCanceled_ ? reject(CANCELATION_MESSAGE) : resolve(val);\n });\n promise[\"catch\"](reject);\n });\n return wrappedPromise.cancel = function () {\n return hasCanceled_ = true;\n }, wrappedPromise;\n}\n\nexport default makeCancelable;\nexport { CANCELATION_MESSAGE };\n","import { slicedToArray as _slicedToArray, objectWithoutProperties as _objectWithoutProperties } from '../_virtual/_rollupPluginBabelHelpers.js';\nimport state from 'state-local';\nimport config$1 from '../config/index.js';\nimport validators from '../validators/index.js';\nimport compose from '../utils/compose.js';\nimport merge from '../utils/deepMerge.js';\nimport makeCancelable from '../utils/makeCancelable.js';\n\n/** the local state of the module */\n\nvar _state$create = state.create({\n config: config$1,\n isInitialized: false,\n resolve: null,\n reject: null,\n monaco: null\n}),\n _state$create2 = _slicedToArray(_state$create, 2),\n getState = _state$create2[0],\n setState = _state$create2[1];\n/**\n * set the loader configuration\n * @param {Object} config - the configuration object\n */\n\n\nfunction config(globalConfig) {\n var _validators$config = validators.config(globalConfig),\n monaco = _validators$config.monaco,\n config = _objectWithoutProperties(_validators$config, [\"monaco\"]);\n\n setState(function (state) {\n return {\n config: merge(state.config, config),\n monaco: monaco\n };\n });\n}\n/**\n * handles the initialization of the monaco-editor\n * @return {Promise} - returns an instance of monaco (with a cancelable promise)\n */\n\n\nfunction init() {\n var state = getState(function (_ref) {\n var monaco = _ref.monaco,\n isInitialized = _ref.isInitialized,\n resolve = _ref.resolve;\n return {\n monaco: monaco,\n isInitialized: isInitialized,\n resolve: resolve\n };\n });\n\n if (!state.isInitialized) {\n setState({\n isInitialized: true\n });\n\n if (state.monaco) {\n state.resolve(state.monaco);\n return makeCancelable(wrapperPromise);\n }\n\n if (window.monaco && window.monaco.editor) {\n storeMonacoInstance(window.monaco);\n state.resolve(window.monaco);\n return makeCancelable(wrapperPromise);\n }\n\n compose(injectScripts, getMonacoLoaderScript)(configureLoader);\n }\n\n return makeCancelable(wrapperPromise);\n}\n/**\n * injects provided scripts into the document.body\n * @param {Object} script - an HTML script element\n * @return {Object} - the injected HTML script element\n */\n\n\nfunction injectScripts(script) {\n return document.body.appendChild(script);\n}\n/**\n * creates an HTML script element with/without provided src\n * @param {string} [src] - the source path of the script\n * @return {Object} - the created HTML script element\n */\n\n\nfunction createScript(src) {\n var script = document.createElement('script');\n return src && (script.src = src), script;\n}\n/**\n * creates an HTML script element with the monaco loader src\n * @return {Object} - the created HTML script element\n */\n\n\nfunction getMonacoLoaderScript(configureLoader) {\n var state = getState(function (_ref2) {\n var config = _ref2.config,\n reject = _ref2.reject;\n return {\n config: config,\n reject: reject\n };\n });\n var loaderScript = createScript(\"\".concat(state.config.paths.vs, \"/loader.js\"));\n\n loaderScript.onload = function () {\n return configureLoader();\n };\n\n loaderScript.onerror = state.reject;\n return loaderScript;\n}\n/**\n * configures the monaco loader\n */\n\n\nfunction configureLoader() {\n var state = getState(function (_ref3) {\n var config = _ref3.config,\n resolve = _ref3.resolve,\n reject = _ref3.reject;\n return {\n config: config,\n resolve: resolve,\n reject: reject\n };\n });\n var require = window.require;\n\n require.config(state.config);\n\n require(['vs/editor/editor.main'], function (monaco) {\n storeMonacoInstance(monaco);\n state.resolve(monaco);\n }, function (error) {\n state.reject(error);\n });\n}\n/**\n * store monaco instance in local state\n */\n\n\nfunction storeMonacoInstance(monaco) {\n if (!getState().monaco) {\n setState({\n monaco: monaco\n });\n }\n}\n/**\n * internal helper function\n * extracts stored monaco instance\n * @return {Object|null} - the monaco instance\n */\n\n\nfunction __getMonacoInstance() {\n return getState(function (_ref4) {\n var monaco = _ref4.monaco;\n return monaco;\n });\n}\n\nvar wrapperPromise = new Promise(function (resolve, reject) {\n return setState({\n resolve: resolve,\n reject: reject\n });\n});\nvar loader = {\n config: config,\n init: init,\n __getMonacoInstance: __getMonacoInstance\n};\n\nexport default loader;\n","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nexport { _extends as extends };\n","import React from 'react';\n\nconst loadingStyles = {\n display: 'flex',\n height: '100%',\n width: '100%',\n justifyContent: 'center',\n alignItems: 'center'\n};\n\nfunction Loading({\n content\n}) {\n return /*#__PURE__*/React.createElement(\"div\", {\n style: loadingStyles\n }, content);\n}\n\nexport default Loading;\n","const styles = {\n wrapper: {\n display: 'flex',\n position: 'relative',\n textAlign: 'initial'\n },\n fullWidth: {\n width: '100%'\n },\n hide: {\n display: 'none'\n }\n};\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { extends as _extends } from '../_virtual/_rollupPluginBabelHelpers.js';\nimport Loading from '../Loading/Loading.js';\nimport styles from './styles.js';\n\n// one of the reasons why we use a separate prop for passing ref instead of using forwardref\n\nfunction MonacoContainer({\n width,\n height,\n isEditorReady,\n loading,\n _ref,\n className,\n wrapperProps\n}) {\n return /*#__PURE__*/React.createElement(\"section\", _extends({\n style: { ...styles.wrapper,\n width,\n height\n }\n }, wrapperProps), !isEditorReady && /*#__PURE__*/React.createElement(Loading, {\n content: loading\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: _ref,\n style: { ...styles.fullWidth,\n ...(!isEditorReady && styles.hide)\n },\n className: className\n }));\n}\n\nMonacoContainer.propTypes = {\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n loading: PropTypes.oneOfType([PropTypes.element, PropTypes.string]).isRequired,\n isEditorReady: PropTypes.bool.isRequired,\n className: PropTypes.string,\n wrapperProps: PropTypes.object\n};\n\nexport default MonacoContainer;\n","import { memo } from 'react';\nimport MonacoContainer$1 from './MonacoContainer.js';\n\nvar MonacoContainer = /*#__PURE__*/memo(MonacoContainer$1);\n\nexport default MonacoContainer;\n","import { useEffect } from 'react';\n\nfunction useMount(effect) {\n useEffect(effect, []);\n}\n\nexport default useMount;\n","import { useRef, useEffect } from 'react';\n\nfunction useUpdate(effect, deps, applyChanges = true) {\n const isInitialMount = useRef(true);\n useEffect(isInitialMount.current || !applyChanges ? () => {\n isInitialMount.current = false;\n } : effect, deps);\n}\n\nexport default useUpdate;\n","function noop() {}\n\nfunction getOrCreateModel(monaco, value, language, path) {\n return getModel(monaco, path) || createModel(monaco, value, language, path);\n}\n\nfunction getModel(monaco, path) {\n return monaco.editor.getModel(createModelUri(monaco, path));\n}\n\nfunction createModel(monaco, value, language, path) {\n return monaco.editor.createModel(value, language, path && createModelUri(monaco, path));\n}\n\nfunction createModelUri(monaco, path) {\n return monaco.Uri.parse(path);\n}\n\nfunction isUndefined(input) {\n return input === undefined;\n}\n\nexport { getOrCreateModel, isUndefined, noop };\n","import loader from '@monaco-editor/loader';\nimport React, { useState, useRef, useCallback, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport MonacoContainer from '../MonacoContainer/index.js';\nimport useMount from '../hooks/useMount/index.js';\nimport useUpdate from '../hooks/useUpdate/index.js';\nimport { getOrCreateModel, noop } from '../utils/index.js';\n\nfunction DiffEditor({\n original,\n modified,\n language,\n originalLanguage,\n modifiedLanguage,\n\n /* === */\n originalModelPath,\n modifiedModelPath,\n keepCurrentOriginalModel,\n keepCurrentModifiedModel,\n theme,\n loading,\n options,\n\n /* === */\n height,\n width,\n className,\n wrapperProps,\n\n /* === */\n beforeMount,\n onMount\n}) {\n const [isEditorReady, setIsEditorReady] = useState(false);\n const [isMonacoMounting, setIsMonacoMounting] = useState(true);\n const editorRef = useRef(null);\n const monacoRef = useRef(null);\n const containerRef = useRef(null);\n const onMountRef = useRef(onMount);\n const beforeMountRef = useRef(beforeMount);\n useMount(() => {\n const cancelable = loader.init();\n cancelable.then(monaco => (monacoRef.current = monaco) && setIsMonacoMounting(false)).catch(error => (error === null || error === void 0 ? void 0 : error.type) !== 'cancelation' && console.error('Monaco initialization: error:', error));\n return () => editorRef.current ? disposeEditor() : cancelable.cancel();\n });\n useUpdate(() => {\n const modifiedEditor = editorRef.current.getModifiedEditor();\n\n if (modifiedEditor.getOption(monacoRef.current.editor.EditorOption.readOnly)) {\n modifiedEditor.setValue(modified);\n } else {\n if (modified !== modifiedEditor.getValue()) {\n modifiedEditor.executeEdits('', [{\n range: modifiedEditor.getModel().getFullModelRange(),\n text: modified,\n forceMoveMarkers: true\n }]);\n modifiedEditor.pushUndoStop();\n }\n }\n }, [modified], isEditorReady);\n useUpdate(() => {\n editorRef.current.getModel().original.setValue(original);\n }, [original], isEditorReady);\n useUpdate(() => {\n const {\n original,\n modified\n } = editorRef.current.getModel();\n monacoRef.current.editor.setModelLanguage(original, originalLanguage || language);\n monacoRef.current.editor.setModelLanguage(modified, modifiedLanguage || language);\n }, [language, originalLanguage, modifiedLanguage], isEditorReady);\n useUpdate(() => {\n monacoRef.current.editor.setTheme(theme);\n }, [theme], isEditorReady);\n useUpdate(() => {\n editorRef.current.updateOptions(options);\n }, [options], isEditorReady);\n const setModels = useCallback(() => {\n beforeMountRef.current(monacoRef.current);\n const originalModel = getOrCreateModel(monacoRef.current, original, originalLanguage || language, originalModelPath);\n const modifiedModel = getOrCreateModel(monacoRef.current, modified, modifiedLanguage || language, modifiedModelPath);\n editorRef.current.setModel({\n original: originalModel,\n modified: modifiedModel\n });\n }, [language, modified, modifiedLanguage, original, originalLanguage, originalModelPath, modifiedModelPath]);\n const createEditor = useCallback(() => {\n editorRef.current = monacoRef.current.editor.createDiffEditor(containerRef.current, {\n automaticLayout: true,\n ...options\n });\n setModels();\n monacoRef.current.editor.setTheme(theme);\n setIsEditorReady(true);\n }, [options, theme, setModels]);\n useEffect(() => {\n if (isEditorReady) {\n onMountRef.current(editorRef.current, monacoRef.current);\n }\n }, [isEditorReady]);\n useEffect(() => {\n !isMonacoMounting && !isEditorReady && createEditor();\n }, [isMonacoMounting, isEditorReady, createEditor]);\n\n function disposeEditor() {\n const models = editorRef.current.getModel();\n\n if (!keepCurrentOriginalModel) {\n var _models$original;\n\n (_models$original = models.original) === null || _models$original === void 0 ? void 0 : _models$original.dispose();\n }\n\n if (!keepCurrentModifiedModel) {\n var _models$modified;\n\n (_models$modified = models.modified) === null || _models$modified === void 0 ? void 0 : _models$modified.dispose();\n }\n\n editorRef.current.dispose();\n }\n\n return /*#__PURE__*/React.createElement(MonacoContainer, {\n width: width,\n height: height,\n isEditorReady: isEditorReady,\n loading: loading,\n _ref: containerRef,\n className: className,\n wrapperProps: wrapperProps\n });\n}\n\nDiffEditor.propTypes = {\n original: PropTypes.string,\n modified: PropTypes.string,\n language: PropTypes.string,\n originalLanguage: PropTypes.string,\n modifiedLanguage: PropTypes.string,\n\n /* === */\n originalModelPath: PropTypes.string,\n modifiedModelPath: PropTypes.string,\n keepCurrentOriginalModel: PropTypes.bool,\n keepCurrentModifiedModel: PropTypes.bool,\n theme: PropTypes.string,\n loading: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\n options: PropTypes.object,\n\n /* === */\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n className: PropTypes.string,\n wrapperProps: PropTypes.object,\n\n /* === */\n beforeMount: PropTypes.func,\n onMount: PropTypes.func\n};\nDiffEditor.defaultProps = {\n theme: 'light',\n loading: 'Loading...',\n options: {},\n keepCurrentOriginalModel: false,\n keepCurrentModifiedModel: false,\n\n /* === */\n width: '100%',\n height: '100%',\n wrapperProps: {},\n\n /* === */\n beforeMount: noop,\n onMount: noop\n};\n\nexport default DiffEditor;\n","import { useRef, useEffect } from 'react';\n\nfunction usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\nexport default usePrevious;\n","import loader from '@monaco-editor/loader';\nimport React, { useState, useRef, useCallback, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport MonacoContainer from '../MonacoContainer/index.js';\nimport useMount from '../hooks/useMount/index.js';\nimport useUpdate from '../hooks/useUpdate/index.js';\nimport { getOrCreateModel, noop, isUndefined } from '../utils/index.js';\nimport usePrevious from '../hooks/usePrevious/index.js';\n\nconst viewStates = new Map();\n\nfunction Editor({\n defaultValue,\n defaultLanguage,\n defaultPath,\n value,\n language,\n path,\n\n /* === */\n theme,\n line,\n loading,\n options,\n overrideServices,\n saveViewState,\n keepCurrentModel,\n\n /* === */\n width,\n height,\n className,\n wrapperProps,\n\n /* === */\n beforeMount,\n onMount,\n onChange,\n onValidate\n}) {\n const [isEditorReady, setIsEditorReady] = useState(false);\n const [isMonacoMounting, setIsMonacoMounting] = useState(true);\n const monacoRef = useRef(null);\n const editorRef = useRef(null);\n const containerRef = useRef(null);\n const onMountRef = useRef(onMount);\n const beforeMountRef = useRef(beforeMount);\n const subscriptionRef = useRef(null);\n const valueRef = useRef(value);\n const previousPath = usePrevious(path);\n useMount(() => {\n const cancelable = loader.init();\n cancelable.then(monaco => (monacoRef.current = monaco) && setIsMonacoMounting(false)).catch(error => (error === null || error === void 0 ? void 0 : error.type) !== 'cancelation' && console.error('Monaco initialization: error:', error));\n return () => editorRef.current ? disposeEditor() : cancelable.cancel();\n });\n useUpdate(() => {\n const model = getOrCreateModel(monacoRef.current, defaultValue || value, defaultLanguage || language, path);\n\n if (model !== editorRef.current.getModel()) {\n saveViewState && viewStates.set(previousPath, editorRef.current.saveViewState());\n editorRef.current.setModel(model);\n saveViewState && editorRef.current.restoreViewState(viewStates.get(path));\n }\n }, [path], isEditorReady);\n useUpdate(() => {\n editorRef.current.updateOptions(options);\n }, [options], isEditorReady);\n useUpdate(() => {\n if (editorRef.current.getOption(monacoRef.current.editor.EditorOption.readOnly)) {\n editorRef.current.setValue(value);\n } else {\n if (value !== editorRef.current.getValue()) {\n editorRef.current.executeEdits('', [{\n range: editorRef.current.getModel().getFullModelRange(),\n text: value,\n forceMoveMarkers: true\n }]);\n editorRef.current.pushUndoStop();\n }\n }\n }, [value], isEditorReady);\n useUpdate(() => {\n monacoRef.current.editor.setModelLanguage(editorRef.current.getModel(), language);\n }, [language], isEditorReady);\n useUpdate(() => {\n // reason for undefined check: https://github.com/suren-atoyan/monaco-react/pull/188\n if (!isUndefined(line)) {\n editorRef.current.revealLine(line);\n }\n }, [line], isEditorReady);\n useUpdate(() => {\n monacoRef.current.editor.setTheme(theme);\n }, [theme], isEditorReady);\n const createEditor = useCallback(() => {\n beforeMountRef.current(monacoRef.current);\n const autoCreatedModelPath = path || defaultPath;\n const defaultModel = getOrCreateModel(monacoRef.current, value || defaultValue, defaultLanguage || language, autoCreatedModelPath);\n editorRef.current = monacoRef.current.editor.create(containerRef.current, {\n model: defaultModel,\n automaticLayout: true,\n ...options\n }, overrideServices);\n saveViewState && editorRef.current.restoreViewState(viewStates.get(autoCreatedModelPath));\n monacoRef.current.editor.setTheme(theme);\n setIsEditorReady(true);\n }, [defaultValue, defaultLanguage, defaultPath, value, language, path, options, overrideServices, saveViewState, theme]);\n useEffect(() => {\n if (isEditorReady) {\n onMountRef.current(editorRef.current, monacoRef.current);\n }\n }, [isEditorReady]);\n useEffect(() => {\n !isMonacoMounting && !isEditorReady && createEditor();\n }, [isMonacoMounting, isEditorReady, createEditor]); // subscription\n // to avoid unnecessary updates (attach - dispose listener) in subscription\n\n valueRef.current = value;\n useEffect(() => {\n if (isEditorReady && onChange) {\n var _subscriptionRef$curr, _editorRef$current;\n\n (_subscriptionRef$curr = subscriptionRef.current) === null || _subscriptionRef$curr === void 0 ? void 0 : _subscriptionRef$curr.dispose();\n subscriptionRef.current = (_editorRef$current = editorRef.current) === null || _editorRef$current === void 0 ? void 0 : _editorRef$current.onDidChangeModelContent(event => {\n const editorValue = editorRef.current.getValue();\n\n if (valueRef.current !== editorValue) {\n onChange(editorValue, event);\n }\n });\n }\n }, [isEditorReady, onChange]); // onValidate\n\n useEffect(() => {\n if (isEditorReady) {\n const changeMarkersListener = monacoRef.current.editor.onDidChangeMarkers(uris => {\n var _editorRef$current$ge;\n\n const editorUri = (_editorRef$current$ge = editorRef.current.getModel()) === null || _editorRef$current$ge === void 0 ? void 0 : _editorRef$current$ge.uri;\n\n if (editorUri) {\n const currentEditorHasMarkerChanges = uris.find(uri => uri.path === editorUri.path);\n\n if (currentEditorHasMarkerChanges) {\n const markers = monacoRef.current.editor.getModelMarkers({\n resource: editorUri\n });\n onValidate === null || onValidate === void 0 ? void 0 : onValidate(markers);\n }\n }\n });\n return () => {\n changeMarkersListener === null || changeMarkersListener === void 0 ? void 0 : changeMarkersListener.dispose();\n };\n }\n }, [isEditorReady, onValidate]);\n\n function disposeEditor() {\n var _subscriptionRef$curr2;\n\n (_subscriptionRef$curr2 = subscriptionRef.current) === null || _subscriptionRef$curr2 === void 0 ? void 0 : _subscriptionRef$curr2.dispose();\n\n if (keepCurrentModel) {\n saveViewState && viewStates.set(path, editorRef.current.saveViewState());\n } else {\n var _editorRef$current$ge2;\n\n (_editorRef$current$ge2 = editorRef.current.getModel()) === null || _editorRef$current$ge2 === void 0 ? void 0 : _editorRef$current$ge2.dispose();\n }\n\n editorRef.current.dispose();\n }\n\n return /*#__PURE__*/React.createElement(MonacoContainer, {\n width: width,\n height: height,\n isEditorReady: isEditorReady,\n loading: loading,\n _ref: containerRef,\n className: className,\n wrapperProps: wrapperProps\n });\n}\n\nEditor.propTypes = {\n defaultValue: PropTypes.string,\n defaultPath: PropTypes.string,\n defaultLanguage: PropTypes.string,\n value: PropTypes.string,\n language: PropTypes.string,\n path: PropTypes.string,\n\n /* === */\n theme: PropTypes.string,\n line: PropTypes.number,\n loading: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\n options: PropTypes.object,\n overrideServices: PropTypes.object,\n saveViewState: PropTypes.bool,\n keepCurrentModel: PropTypes.bool,\n\n /* === */\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n className: PropTypes.string,\n wrapperProps: PropTypes.object,\n\n /* === */\n beforeMount: PropTypes.func,\n onMount: PropTypes.func,\n onChange: PropTypes.func,\n onValidate: PropTypes.func\n};\nEditor.defaultProps = {\n theme: 'light',\n loading: 'Loading...',\n options: {},\n overrideServices: {},\n saveViewState: true,\n keepCurrentModel: false,\n\n /* === */\n width: '100%',\n height: '100%',\n wrapperProps: {},\n\n /* === */\n beforeMount: noop,\n onMount: noop,\n onValidate: noop\n};\n\nexport default Editor;\n","import { memo } from 'react';\nimport Editor from './Editor.js';\n\nvar index = /*#__PURE__*/memo(Editor);\n\nexport default index;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","export default function setRafTimeout(callback) {\n var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var currTime = -1;\n\n var shouldUpdate = function shouldUpdate(now) {\n if (currTime < 0) {\n currTime = now;\n }\n\n if (now - currTime > timeout) {\n callback(now);\n currTime = -1;\n } else {\n requestAnimationFrame(shouldUpdate);\n }\n };\n\n requestAnimationFrame(shouldUpdate);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport setRafTimeout from './setRafTimeout';\nexport default function createAnimateManager() {\n var currStyle = {};\n\n var handleChange = function handleChange() {\n return null;\n };\n\n var shouldStop = false;\n\n var setStyle = function setStyle(_style) {\n if (shouldStop) {\n return;\n }\n\n if (Array.isArray(_style)) {\n if (!_style.length) {\n return;\n }\n\n var styles = _style;\n\n var _styles = _toArray(styles),\n curr = _styles[0],\n restStyles = _styles.slice(1);\n\n if (typeof curr === 'number') {\n setRafTimeout(setStyle.bind(null, restStyles), curr);\n return;\n }\n\n setStyle(curr);\n setRafTimeout(setStyle.bind(null, restStyles));\n return;\n }\n\n if (_typeof(_style) === 'object') {\n currStyle = _style;\n handleChange(currStyle);\n }\n\n if (typeof _style === 'function') {\n _style();\n }\n };\n\n return {\n stop: function stop() {\n shouldStop = true;\n },\n start: function start(style) {\n shouldStop = false;\n setStyle(style);\n },\n subscribe: function subscribe(_handleChange) {\n handleChange = _handleChange;\n return function () {\n handleChange = function handleChange() {\n return null;\n };\n };\n }\n };\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/* eslint no-console: 0 */\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nvar IN_LINE_PREFIX_LIST = ['-webkit-', '-moz-', '-o-', '-ms-'];\nvar IN_COMPATIBLE_PROPERTY = ['transform', 'transformOrigin', 'transition'];\nexport var getIntersectionKeys = function getIntersectionKeys(preObj, nextObj) {\n return [Object.keys(preObj), Object.keys(nextObj)].reduce(function (a, b) {\n return a.filter(function (c) {\n return b.includes(c);\n });\n });\n};\nexport var identity = function identity(param) {\n return param;\n};\n/*\n * @description: convert camel case to dash case\n * string => string\n */\n\nexport var getDashCase = function getDashCase(name) {\n return name.replace(/([A-Z])/g, function (v) {\n return \"-\".concat(v.toLowerCase());\n });\n};\n/*\n * @description: add compatible style prefix\n * (string, string) => object\n */\n\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (IN_COMPATIBLE_PROPERTY.indexOf(name) === -1) {\n return _defineProperty({}, name, value);\n }\n\n var isTransition = name === 'transition';\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var styleVal = value;\n return PREFIX_LIST.reduce(function (result, property, i) {\n if (isTransition) {\n styleVal = value.replace(/(transform|transform-origin)/gim, \"\".concat(IN_LINE_PREFIX_LIST[i], \"$1\"));\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, property + camelName, styleVal));\n }, {});\n};\nexport var log = function log() {\n var _console;\n\n (_console = console).log.apply(_console, arguments);\n};\n/*\n * @description: log the value of a varible\n * string => any => any\n */\n\nexport var debug = function debug(name) {\n return function (item) {\n log(name, item);\n return item;\n };\n};\n/*\n * @description: log name, args, return value of a function\n * function => function\n */\n\nexport var debugf = function debugf(tag, f) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var res = f.apply(void 0, args);\n var name = tag || f.name || 'anonymous function';\n var argNames = \"(\".concat(args.map(JSON.stringify).join(', '), \")\");\n log(\"\".concat(name, \": \").concat(argNames, \" => \").concat(JSON.stringify(res)));\n return res;\n };\n};\n/*\n * @description: map object on every element in this object.\n * (function, object) => object\n */\n\nexport var mapObject = function mapObject(fn, obj) {\n return Object.keys(obj).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, fn(key, obj[key])));\n }, {});\n};\n/*\n * @description: add compatible prefix to style\n * object => object\n */\n\nexport var translateStyle = function translateStyle(style) {\n return Object.keys(style).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), generatePrefixStyle(key, res[key]));\n }, style);\n};\nexport var compose = function compose() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (!args.length) {\n return identity;\n }\n\n var fns = args.reverse(); // first function can receive multiply arguments\n\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\nexport var getTransitionVal = function getTransitionVal(props, duration, easing) {\n return props.map(function (prop) {\n return \"\".concat(getDashCase(prop), \" \").concat(duration, \"ms \").concat(easing);\n }).join(',');\n};\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format, a, b, c, d, e, f) {\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { warn } from './util';\nvar ACCURACY = 1e-4;\n\nvar cubicBezierFactor = function cubicBezierFactor(c1, c2) {\n return [0, 3 * c1, 3 * c2 - 6 * c1, 3 * c1 - 3 * c2 + 1];\n};\n\nvar multyTime = function multyTime(params, t) {\n return params.map(function (param, i) {\n return param * Math.pow(t, i);\n }).reduce(function (pre, curr) {\n return pre + curr;\n });\n};\n\nvar cubicBezier = function cubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n return multyTime(params, t);\n };\n};\n\nvar derivativeCubicBezier = function derivativeCubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n var newParams = [].concat(_toConsumableArray(params.map(function (param, i) {\n return param * i;\n }).slice(1)), [0]);\n return multyTime(newParams, t);\n };\n}; // calculate cubic-bezier using Newton's method\n\n\nexport var configBezier = function configBezier() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var x1 = args[0],\n y1 = args[1],\n x2 = args[2],\n y2 = args[3];\n\n if (args.length === 1) {\n switch (args[0]) {\n case 'linear':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n\n case 'ease':\n x1 = 0.25;\n y1 = 0.1;\n x2 = 0.25;\n y2 = 1.0;\n break;\n\n case 'ease-in':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n\n case 'ease-out':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n\n case 'ease-in-out':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n\n default:\n {\n var easing = args[0].split('(');\n\n if (easing[0] === 'cubic-bezier' && easing[1].split(')')[0].split(',').length === 4) {\n var _easing$1$split$0$spl = easing[1].split(')')[0].split(',').map(function (x) {\n return parseFloat(x);\n });\n\n var _easing$1$split$0$spl2 = _slicedToArray(_easing$1$split$0$spl, 4);\n\n x1 = _easing$1$split$0$spl2[0];\n y1 = _easing$1$split$0$spl2[1];\n x2 = _easing$1$split$0$spl2[2];\n y2 = _easing$1$split$0$spl2[3];\n } else {\n warn(false, '[configBezier]: arguments should be one of ' + 'oneOf \\'linear\\', \\'ease\\', \\'ease-in\\', \\'ease-out\\', ' + '\\'ease-in-out\\',\\'cubic-bezier(x1,y1,x2,y2)\\', instead received %s', args);\n }\n }\n }\n }\n\n warn([x1, x2, y1, y2].every(function (num) {\n return typeof num === 'number' && num >= 0 && num <= 1;\n }), '[configBezier]: arguments should be x1, y1, x2, y2 of [0, 1] instead received %s', args);\n var curveX = cubicBezier(x1, x2);\n var curveY = cubicBezier(y1, y2);\n var derCurveX = derivativeCubicBezier(x1, x2);\n\n var rangeValue = function rangeValue(value) {\n if (value > 1) {\n return 1;\n } else if (value < 0) {\n return 0;\n }\n\n return value;\n };\n\n var bezier = function bezier(_t) {\n var t = _t > 1 ? 1 : _t;\n var x = t;\n\n for (var i = 0; i < 8; ++i) {\n var evalT = curveX(x) - t;\n var derVal = derCurveX(x);\n\n if (Math.abs(evalT - t) < ACCURACY || derVal < ACCURACY) {\n return curveY(x);\n }\n\n x = rangeValue(x - evalT / derVal);\n }\n\n return curveY(x);\n };\n\n bezier.isStepper = false;\n return bezier;\n};\nexport var configSpring = function configSpring() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _config$stiff = config.stiff,\n stiff = _config$stiff === void 0 ? 100 : _config$stiff,\n _config$damping = config.damping,\n damping = _config$damping === void 0 ? 8 : _config$damping,\n _config$dt = config.dt,\n dt = _config$dt === void 0 ? 17 : _config$dt;\n\n var stepper = function stepper(currX, destX, currV) {\n var FSpring = -(currX - destX) * stiff;\n var FDamping = currV * damping;\n var newV = currV + (FSpring - FDamping) * dt / 1000;\n var newX = currV * dt / 1000 + currX;\n\n if (Math.abs(newX - destX) < ACCURACY && Math.abs(newV) < ACCURACY) {\n return [destX, 0];\n }\n\n return [newX, newV];\n };\n\n stepper.isStepper = true;\n stepper.dt = dt;\n return stepper;\n};\nexport var configEasing = function configEasing() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var easing = args[0];\n\n if (typeof easing === 'string') {\n switch (easing) {\n case 'ease':\n case 'ease-in-out':\n case 'ease-out':\n case 'ease-in':\n case 'linear':\n return configBezier(easing);\n\n case 'spring':\n return configSpring();\n\n default:\n if (easing.split('(')[0] === 'cubic-bezier') {\n return configBezier(easing);\n }\n\n warn(false, '[configEasing]: first argument should be one of \\'ease\\', \\'ease-in\\', ' + '\\'ease-out\\', \\'ease-in-out\\',\\'cubic-bezier(x1,y1,x2,y2)\\', \\'linear\\' and \\'spring\\', instead received %s', args);\n }\n }\n\n if (typeof easing === 'function') {\n return easing;\n }\n\n warn(false, '[configEasing]: first argument type should be function or ' + 'string, instead received %s', args);\n return null;\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { getIntersectionKeys, mapObject } from './util';\n\nvar alpha = function alpha(begin, end, k) {\n return begin + (end - begin) * k;\n};\n\nvar needContinue = function needContinue(_ref) {\n var from = _ref.from,\n to = _ref.to;\n return from !== to;\n};\n/*\n * @description: cal new from value and velocity in each stepper\n * @return: { [styleProperty]: { from, to, velocity } }\n */\n\n\nvar calStepperVals = function calStepperVals(easing, preVals, steps) {\n var nextStepVals = mapObject(function (key, val) {\n if (needContinue(val)) {\n var _easing = easing(val.from, val.to, val.velocity),\n _easing2 = _slicedToArray(_easing, 2),\n newX = _easing2[0],\n newV = _easing2[1];\n\n return _objectSpread(_objectSpread({}, val), {}, {\n from: newX,\n velocity: newV\n });\n }\n\n return val;\n }, preVals);\n\n if (steps < 1) {\n return mapObject(function (key, val) {\n if (needContinue(val)) {\n return _objectSpread(_objectSpread({}, val), {}, {\n velocity: alpha(val.velocity, nextStepVals[key].velocity, steps),\n from: alpha(val.from, nextStepVals[key].from, steps)\n });\n }\n\n return val;\n }, preVals);\n }\n\n return calStepperVals(easing, nextStepVals, steps - 1);\n}; // configure update function\n\n\nexport default (function (from, to, easing, duration, render) {\n var interKeys = getIntersectionKeys(from, to);\n var timingStyle = interKeys.reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, [from[key], to[key]]));\n }, {});\n var stepperStyle = interKeys.reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, {\n from: from[key],\n velocity: 0,\n to: to[key]\n }));\n }, {});\n var cafId = -1;\n var preTime;\n var beginTime;\n\n var update = function update() {\n return null;\n };\n\n var getCurrStyle = function getCurrStyle() {\n return mapObject(function (key, val) {\n return val.from;\n }, stepperStyle);\n };\n\n var shouldStopAnimation = function shouldStopAnimation() {\n return !Object.values(stepperStyle).filter(needContinue).length;\n }; // stepper timing function like spring\n\n\n var stepperUpdate = function stepperUpdate(now) {\n if (!preTime) {\n preTime = now;\n }\n\n var deltaTime = now - preTime;\n var steps = deltaTime / easing.dt;\n stepperStyle = calStepperVals(easing, stepperStyle, steps); // get union set and add compatible prefix\n\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), getCurrStyle(stepperStyle)));\n preTime = now;\n\n if (!shouldStopAnimation()) {\n cafId = requestAnimationFrame(update);\n }\n }; // t => val timing function like cubic-bezier\n\n\n var timingUpdate = function timingUpdate(now) {\n if (!beginTime) {\n beginTime = now;\n }\n\n var t = (now - beginTime) / duration;\n var currStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(t)]));\n }, timingStyle); // get union set and add compatible prefix\n\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), currStyle));\n\n if (t < 1) {\n cafId = requestAnimationFrame(update);\n } else {\n var finalStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(1)]));\n }, timingStyle);\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), finalStyle));\n }\n };\n\n update = easing.isStepper ? stepperUpdate : timingUpdate; // return start animation method\n\n return function () {\n requestAnimationFrame(update); // return stop animation method\n\n return function () {\n cancelAnimationFrame(cafId);\n };\n };\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React, { PureComponent, cloneElement, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport { deepEqual } from 'fast-equals';\nimport createAnimateManager from './AnimateManager';\nimport { configEasing } from './easing';\nimport configUpdate from './configUpdate';\nimport { getTransitionVal, identity, translateStyle } from './util';\n\nvar Animate = /*#__PURE__*/function (_PureComponent) {\n _inherits(Animate, _PureComponent);\n\n var _super = _createSuper(Animate);\n\n function Animate(props, context) {\n var _this;\n\n _classCallCheck(this, Animate);\n\n _this = _super.call(this, props, context);\n var _this$props = _this.props,\n isActive = _this$props.isActive,\n attributeName = _this$props.attributeName,\n from = _this$props.from,\n to = _this$props.to,\n steps = _this$props.steps,\n children = _this$props.children;\n _this.handleStyleChange = _this.handleStyleChange.bind(_assertThisInitialized(_this));\n _this.changeStyle = _this.changeStyle.bind(_assertThisInitialized(_this));\n\n if (!isActive) {\n _this.state = {\n style: {}\n }; // if children is a function and animation is not active, set style to 'to'\n\n if (typeof children === 'function') {\n _this.state = {\n style: to\n };\n }\n\n return _possibleConstructorReturn(_this);\n }\n\n if (steps && steps.length) {\n _this.state = {\n style: steps[0].style\n };\n } else if (from) {\n if (typeof children === 'function') {\n _this.state = {\n style: from\n };\n return _possibleConstructorReturn(_this);\n }\n\n _this.state = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n } else {\n _this.state = {\n style: {}\n };\n }\n\n return _this;\n }\n\n _createClass(Animate, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props2 = this.props,\n isActive = _this$props2.isActive,\n canBegin = _this$props2.canBegin;\n this.mounted = true;\n\n if (!isActive || !canBegin) {\n return;\n }\n\n this.runAnimation(this.props);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props3 = this.props,\n isActive = _this$props3.isActive,\n canBegin = _this$props3.canBegin,\n attributeName = _this$props3.attributeName,\n shouldReAnimate = _this$props3.shouldReAnimate;\n\n if (!canBegin) {\n return;\n }\n\n if (!isActive) {\n var newState = {\n style: attributeName ? _defineProperty({}, attributeName, this.props.to) : this.props.to\n };\n\n if (this.state && this.state.style) {\n if (attributeName && this.state.style[attributeName] !== this.props.to || !attributeName && this.state.style !== this.props.to) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(newState);\n }\n }\n\n return;\n }\n\n if (deepEqual(prevProps.to, this.props.to) && prevProps.canBegin && prevProps.isActive) {\n return;\n }\n\n var isTriggered = !prevProps.canBegin || !prevProps.isActive;\n\n if (this.manager) {\n this.manager.stop();\n }\n\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n\n var from = isTriggered || shouldReAnimate ? this.props.from : prevProps.to;\n\n if (this.state && this.state.style) {\n var _newState = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n\n if (attributeName && this.state.style[attributeName] !== from || !attributeName && this.state.style !== from) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(_newState);\n }\n }\n\n this.runAnimation(_objectSpread(_objectSpread({}, this.props), {}, {\n from: from,\n begin: 0\n }));\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n\n if (this.unSubscribe) {\n this.unSubscribe();\n }\n\n if (this.manager) {\n this.manager.stop();\n this.manager = null;\n }\n\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n }\n }, {\n key: \"runJSAnimation\",\n value: function runJSAnimation(props) {\n var _this2 = this;\n\n var from = props.from,\n to = props.to,\n duration = props.duration,\n easing = props.easing,\n begin = props.begin,\n onAnimationEnd = props.onAnimationEnd,\n onAnimationStart = props.onAnimationStart;\n var startAnimation = configUpdate(from, to, configEasing(easing), duration, this.changeStyle);\n\n var finalStartAnimation = function finalStartAnimation() {\n _this2.stopJSAnimation = startAnimation();\n };\n\n this.manager.start([onAnimationStart, begin, finalStartAnimation, duration, onAnimationEnd]);\n }\n }, {\n key: \"runStepAnimation\",\n value: function runStepAnimation(props) {\n var _this3 = this;\n\n var steps = props.steps,\n begin = props.begin,\n onAnimationStart = props.onAnimationStart;\n var _steps$ = steps[0],\n initialStyle = _steps$.style,\n _steps$$duration = _steps$.duration,\n initialTime = _steps$$duration === void 0 ? 0 : _steps$$duration;\n\n var addStyle = function addStyle(sequence, nextItem, index) {\n if (index === 0) {\n return sequence;\n }\n\n var duration = nextItem.duration,\n _nextItem$easing = nextItem.easing,\n easing = _nextItem$easing === void 0 ? 'ease' : _nextItem$easing,\n style = nextItem.style,\n nextProperties = nextItem.properties,\n onAnimationEnd = nextItem.onAnimationEnd;\n var preItem = index > 0 ? steps[index - 1] : nextItem;\n var properties = nextProperties || Object.keys(style);\n\n if (typeof easing === 'function' || easing === 'spring') {\n return [].concat(_toConsumableArray(sequence), [_this3.runJSAnimation.bind(_this3, {\n from: preItem.style,\n to: style,\n duration: duration,\n easing: easing\n }), duration]);\n }\n\n var transition = getTransitionVal(properties, duration, easing);\n\n var newStyle = _objectSpread(_objectSpread(_objectSpread({}, preItem.style), style), {}, {\n transition: transition\n });\n\n return [].concat(_toConsumableArray(sequence), [newStyle, duration, onAnimationEnd]).filter(identity);\n };\n\n return this.manager.start([onAnimationStart].concat(_toConsumableArray(steps.reduce(addStyle, [initialStyle, Math.max(initialTime, begin)])), [props.onAnimationEnd]));\n }\n }, {\n key: \"runAnimation\",\n value: function runAnimation(props) {\n if (!this.manager) {\n this.manager = createAnimateManager();\n }\n\n var begin = props.begin,\n duration = props.duration,\n attributeName = props.attributeName,\n propsTo = props.to,\n easing = props.easing,\n onAnimationStart = props.onAnimationStart,\n onAnimationEnd = props.onAnimationEnd,\n steps = props.steps,\n children = props.children;\n var manager = this.manager;\n this.unSubscribe = manager.subscribe(this.handleStyleChange);\n\n if (typeof easing === 'function' || typeof children === 'function' || easing === 'spring') {\n this.runJSAnimation(props);\n return;\n }\n\n if (steps.length > 1) {\n this.runStepAnimation(props);\n return;\n }\n\n var to = attributeName ? _defineProperty({}, attributeName, propsTo) : propsTo;\n var transition = getTransitionVal(Object.keys(to), duration, easing);\n manager.start([onAnimationStart, begin, _objectSpread(_objectSpread({}, to), {}, {\n transition: transition\n }), duration, onAnimationEnd]);\n }\n }, {\n key: \"handleStyleChange\",\n value: function handleStyleChange(style) {\n this.changeStyle(style);\n }\n }, {\n key: \"changeStyle\",\n value: function changeStyle(style) {\n if (this.mounted) {\n this.setState({\n style: style\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n children = _this$props4.children,\n begin = _this$props4.begin,\n duration = _this$props4.duration,\n attributeName = _this$props4.attributeName,\n easing = _this$props4.easing,\n isActive = _this$props4.isActive,\n steps = _this$props4.steps,\n from = _this$props4.from,\n to = _this$props4.to,\n canBegin = _this$props4.canBegin,\n onAnimationEnd = _this$props4.onAnimationEnd,\n shouldReAnimate = _this$props4.shouldReAnimate,\n onAnimationReStart = _this$props4.onAnimationReStart,\n others = _objectWithoutProperties(_this$props4, [\"children\", \"begin\", \"duration\", \"attributeName\", \"easing\", \"isActive\", \"steps\", \"from\", \"to\", \"canBegin\", \"onAnimationEnd\", \"shouldReAnimate\", \"onAnimationReStart\"]);\n\n var count = Children.count(children);\n var stateStyle = translateStyle(this.state.style);\n\n if (typeof children === 'function') {\n return children(stateStyle);\n }\n\n if (!isActive || count === 0) {\n return children;\n }\n\n var cloneContainer = function cloneContainer(container) {\n var _container$props = container.props,\n _container$props$styl = _container$props.style,\n style = _container$props$styl === void 0 ? {} : _container$props$styl,\n className = _container$props.className;\n var res = /*#__PURE__*/cloneElement(container, _objectSpread(_objectSpread({}, others), {}, {\n style: _objectSpread(_objectSpread({}, style), stateStyle),\n className: className\n }));\n return res;\n };\n\n if (count === 1) {\n return cloneContainer(Children.only(children));\n }\n\n return /*#__PURE__*/React.createElement(\"div\", null, Children.map(children, function (child) {\n return cloneContainer(child);\n }));\n }\n }]);\n\n return Animate;\n}(PureComponent);\n\nAnimate.displayName = 'Animate';\nAnimate.propTypes = {\n from: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n to: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n attributeName: PropTypes.string,\n // animation duration\n duration: PropTypes.number,\n begin: PropTypes.number,\n easing: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n steps: PropTypes.arrayOf(PropTypes.shape({\n duration: PropTypes.number.isRequired,\n style: PropTypes.object.isRequired,\n easing: PropTypes.oneOfType([PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']), PropTypes.func]),\n // transition css properties(dash case), optional\n properties: PropTypes.arrayOf('string'),\n onAnimationEnd: PropTypes.func\n })),\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n isActive: PropTypes.bool,\n canBegin: PropTypes.bool,\n onAnimationEnd: PropTypes.func,\n // decide if it should reanimate with initial from style when props change\n shouldReAnimate: PropTypes.bool,\n onAnimationStart: PropTypes.func,\n onAnimationReStart: PropTypes.func\n};\nAnimate.defaultProps = {\n begin: 0,\n duration: 1000,\n from: '',\n to: '',\n attributeName: '',\n easing: 'ease',\n isActive: true,\n canBegin: true,\n steps: [],\n onAnimationEnd: function onAnimationEnd() {},\n onAnimationStart: function onAnimationStart() {}\n};\nexport default Animate;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React, { Component, Children } from 'react';\nimport { Transition } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport Animate from './Animate';\n\nif (Number.isFinite === undefined) {\n Number.isFinite = function (value) {\n return typeof value === 'number' && isFinite(value);\n };\n}\n\nvar parseDurationOfSingleTransition = function parseDurationOfSingleTransition() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var steps = options.steps,\n duration = options.duration;\n\n if (steps && steps.length) {\n return steps.reduce(function (result, entry) {\n return result + (Number.isFinite(entry.duration) && entry.duration > 0 ? entry.duration : 0);\n }, 0);\n }\n\n if (Number.isFinite(duration)) {\n return duration;\n }\n\n return 0;\n};\n\nvar AnimateGroupChild = /*#__PURE__*/function (_Component) {\n _inherits(AnimateGroupChild, _Component);\n\n var _super = _createSuper(AnimateGroupChild);\n\n function AnimateGroupChild() {\n var _this;\n\n _classCallCheck(this, AnimateGroupChild);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n isActive: false\n };\n\n _this.handleEnter = function (node, isAppearing) {\n var _this$props = _this.props,\n appearOptions = _this$props.appearOptions,\n enterOptions = _this$props.enterOptions;\n\n _this.handleStyleActive(isAppearing ? appearOptions : enterOptions);\n };\n\n _this.handleExit = function () {\n _this.handleStyleActive(_this.props.leaveOptions);\n };\n\n return _this;\n }\n\n _createClass(AnimateGroupChild, [{\n key: \"handleStyleActive\",\n value: function handleStyleActive(style) {\n if (style) {\n var onAnimationEnd = style.onAnimationEnd ? function () {\n style.onAnimationEnd();\n } : null;\n this.setState(_objectSpread(_objectSpread({}, style), {}, {\n onAnimationEnd: onAnimationEnd,\n isActive: true\n }));\n }\n }\n }, {\n key: \"parseTimeout\",\n value: function parseTimeout() {\n var _this$props2 = this.props,\n appearOptions = _this$props2.appearOptions,\n enterOptions = _this$props2.enterOptions,\n leaveOptions = _this$props2.leaveOptions;\n return parseDurationOfSingleTransition(appearOptions) + parseDurationOfSingleTransition(enterOptions) + parseDurationOfSingleTransition(leaveOptions);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props3 = this.props,\n children = _this$props3.children,\n appearOptions = _this$props3.appearOptions,\n enterOptions = _this$props3.enterOptions,\n leaveOptions = _this$props3.leaveOptions,\n props = _objectWithoutProperties(_this$props3, [\"children\", \"appearOptions\", \"enterOptions\", \"leaveOptions\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.handleEnter,\n onExit: this.handleExit,\n timeout: this.parseTimeout()\n }), function () {\n return /*#__PURE__*/React.createElement(Animate, _this2.state, Children.only(children));\n });\n }\n }]);\n\n return AnimateGroupChild;\n}(Component);\n\nAnimateGroupChild.propTypes = {\n appearOptions: PropTypes.object,\n enterOptions: PropTypes.object,\n leaveOptions: PropTypes.object,\n children: PropTypes.element\n};\nexport default AnimateGroupChild;","import React, { Children } from 'react';\nimport { TransitionGroup } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport AnimateGroupChild from './AnimateGroupChild';\n\nfunction AnimateGroup(props) {\n var component = props.component,\n children = props.children,\n appear = props.appear,\n enter = props.enter,\n leave = props.leave;\n return /*#__PURE__*/React.createElement(TransitionGroup, {\n component: component\n }, Children.map(children, function (child, index) {\n return /*#__PURE__*/React.createElement(AnimateGroupChild, {\n appearOptions: appear,\n enterOptions: enter,\n leaveOptions: leave,\n key: \"child-\".concat(index) // eslint-disable-line\n\n }, child);\n }));\n}\n\nAnimateGroup.propTypes = {\n appear: PropTypes.object,\n enter: PropTypes.object,\n leave: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.element]),\n component: PropTypes.any\n};\nAnimateGroup.defaultProps = {\n component: 'span'\n};\nexport default AnimateGroup;","import Animate from './Animate';\nimport { configBezier, configSpring } from './easing';\nimport { translateStyle } from './util';\nimport AnimateGroup from './AnimateGroup';\nexport { configSpring, configBezier, AnimateGroup, translateStyle };\nexport default Animate;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nexport function defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\nexport function hasXMLHttpRequest() {\n return typeof XMLHttpRequest === 'function' || (typeof XMLHttpRequest === \"undefined\" ? \"undefined\" : _typeof(XMLHttpRequest)) === 'object';\n}\n\nfunction isPromise(maybePromise) {\n return !!maybePromise && typeof maybePromise.then === 'function';\n}\n\nexport function makePromise(maybePromise) {\n if (isPromise(maybePromise)) {\n return maybePromise;\n }\n\n return Promise.resolve(maybePromise);\n}","/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n Separators,\n CacheAccountType,\n CacheType,\n Constants,\n} from \"../../utils/Constants\";\nimport { Authority } from \"../../authority/Authority\";\nimport { AuthToken } from \"../../account/AuthToken\";\nimport { ICrypto } from \"../../crypto/ICrypto\";\nimport { buildClientInfo } from \"../../account/ClientInfo\";\nimport { StringUtils } from \"../../utils/StringUtils\";\nimport { AccountInfo } from \"../../account/AccountInfo\";\nimport { ClientAuthError } from \"../../error/ClientAuthError\";\nimport { AuthorityType } from \"../../authority/AuthorityType\";\nimport { Logger } from \"../../logger/Logger\";\nimport { TokenClaims } from \"../../account/TokenClaims\";\n\n/**\n * Type that defines required and optional parameters for an Account field (based on universal cache schema implemented by all MSALs).\n *\n * Key : Value Schema\n *\n * Key: --\n *\n * Value Schema:\n * {\n * homeAccountId: home account identifier for the auth scheme,\n * environment: entity that issued the token, represented as a full host\n * realm: Full tenant or organizational identifier that the account belongs to\n * localAccountId: Original tenant-specific accountID, usually used for legacy cases\n * username: primary username that represents the user, usually corresponds to preferred_username in the v2 endpt\n * authorityType: Accounts authority type as a string\n * name: Full name for the account, including given name and family name,\n * clientInfo: Full base64 encoded client info received from ESTS\n * lastModificationTime: last time this entity was modified in the cache\n * lastModificationApp:\n * idTokenClaims: Object containing claims parsed from ID token\n * nativeAccountId: Account identifier on the native device\n * }\n */\nexport class AccountEntity {\n homeAccountId: string;\n environment: string;\n realm: string;\n localAccountId: string;\n username: string;\n authorityType: string;\n name?: string;\n clientInfo?: string;\n lastModificationTime?: string;\n lastModificationApp?: string;\n cloudGraphHostName?: string;\n msGraphHost?: string;\n idTokenClaims?: TokenClaims;\n nativeAccountId?: string;\n\n /**\n * Generate Account Id key component as per the schema: -\n */\n generateAccountId(): string {\n const accountId: Array = [this.homeAccountId, this.environment];\n return accountId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\n }\n\n /**\n * Generate Account Cache Key as per the schema: --\n */\n generateAccountKey(): string {\n return AccountEntity.generateAccountCacheKey({\n homeAccountId: this.homeAccountId,\n environment: this.environment,\n tenantId: this.realm,\n username: this.username,\n localAccountId: this.localAccountId\n });\n }\n\n /**\n * returns the type of the cache (in this case account)\n */\n generateType(): number {\n switch (this.authorityType) {\n case CacheAccountType.ADFS_ACCOUNT_TYPE:\n return CacheType.ADFS;\n case CacheAccountType.MSAV1_ACCOUNT_TYPE:\n return CacheType.MSA;\n case CacheAccountType.MSSTS_ACCOUNT_TYPE:\n return CacheType.MSSTS;\n case CacheAccountType.GENERIC_ACCOUNT_TYPE:\n return CacheType.GENERIC;\n default: {\n throw ClientAuthError.createUnexpectedAccountTypeError();\n }\n }\n }\n\n /**\n * Returns the AccountInfo interface for this account.\n */\n getAccountInfo(): AccountInfo {\n return {\n homeAccountId: this.homeAccountId,\n environment: this.environment,\n tenantId: this.realm,\n username: this.username,\n localAccountId: this.localAccountId,\n name: this.name,\n idTokenClaims: this.idTokenClaims,\n nativeAccountId: this.nativeAccountId\n };\n }\n\n /**\n * Generates account key from interface\n * @param accountInterface\n */\n static generateAccountCacheKey(accountInterface: AccountInfo): string {\n const accountKey = [\n accountInterface.homeAccountId,\n accountInterface.environment || Constants.EMPTY_STRING,\n accountInterface.tenantId || Constants.EMPTY_STRING,\n ];\n\n return accountKey.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\n }\n\n /**\n * Build Account cache from IdToken, clientInfo and authority/policy. Associated with AAD.\n * @param clientInfo\n * @param authority\n * @param idToken\n * @param policy\n */\n static createAccount(\n clientInfo: string,\n homeAccountId: string,\n idToken: AuthToken,\n authority?: Authority,\n cloudGraphHostName?: string,\n msGraphHost?: string,\n environment?: string,\n nativeAccountId?: string\n ): AccountEntity {\n const account: AccountEntity = new AccountEntity();\n\n account.authorityType = CacheAccountType.MSSTS_ACCOUNT_TYPE;\n account.clientInfo = clientInfo;\n account.homeAccountId = homeAccountId;\n account.nativeAccountId = nativeAccountId;\n\n const env = environment || (authority && authority.getPreferredCache());\n\n if (!env) {\n throw ClientAuthError.createInvalidCacheEnvironmentError();\n }\n\n account.environment = env;\n // non AAD scenarios can have empty realm\n account.realm = idToken?.claims?.tid || Constants.EMPTY_STRING;\n\n if (idToken) {\n account.idTokenClaims = idToken.claims;\n\n // How do you account for MSA CID here?\n account.localAccountId = idToken?.claims?.oid || idToken?.claims?.sub || Constants.EMPTY_STRING;\n\n /*\n * In B2C scenarios the emails claim is used instead of preferred_username and it is an array.\n * In most cases it will contain a single email. This field should not be relied upon if a custom \n * policy is configured to return more than 1 email.\n */\n const preferredUsername = idToken?.claims?.preferred_username;\n const email = (idToken?.claims?.emails) ? idToken.claims.emails[0] : null;\n \n account.username = preferredUsername || email || Constants.EMPTY_STRING;\n account.name = idToken?.claims?.name;\n }\n\n account.cloudGraphHostName = cloudGraphHostName;\n account.msGraphHost = msGraphHost;\n\n return account;\n }\n\n /**\n * Builds non-AAD/ADFS account.\n * @param authority\n * @param idToken\n */\n static createGenericAccount(\n homeAccountId: string,\n idToken: AuthToken,\n authority?: Authority,\n cloudGraphHostName?: string,\n msGraphHost?: string,\n environment?: string\n ): AccountEntity {\n const account: AccountEntity = new AccountEntity();\n\n account.authorityType = (\n authority &&\n authority.authorityType === AuthorityType.Adfs\n ) ? CacheAccountType.ADFS_ACCOUNT_TYPE : CacheAccountType.GENERIC_ACCOUNT_TYPE;\n \n account.homeAccountId = homeAccountId;\n // non AAD scenarios can have empty realm\n account.realm = Constants.EMPTY_STRING;\n\n const env = environment || authority && authority.getPreferredCache();\n\n if (!env) {\n throw ClientAuthError.createInvalidCacheEnvironmentError();\n }\n\n if (idToken) {\n // How do you account for MSA CID here?\n account.localAccountId = idToken?.claims?.oid || idToken?.claims?.sub || Constants.EMPTY_STRING;\n // upn claim for most ADFS scenarios\n account.username = idToken?.claims?.upn || Constants.EMPTY_STRING;\n account.name = idToken?.claims?.name || Constants.EMPTY_STRING;\n account.idTokenClaims = idToken?.claims;\n }\n\n account.environment = env;\n\n account.cloudGraphHostName = cloudGraphHostName;\n account.msGraphHost = msGraphHost;\n\n /*\n * add uniqueName to claims\n * account.name = idToken.claims.uniqueName;\n */\n\n return account;\n }\n\n /**\n * Generate HomeAccountId from server response\n * @param serverClientInfo\n * @param authType\n */\n static generateHomeAccountId(\n serverClientInfo: string,\n authType: AuthorityType,\n logger: Logger,\n cryptoObj: ICrypto,\n idToken?: AuthToken\n ): string {\n\n const accountId = idToken?.claims?.sub ? idToken.claims.sub : Constants.EMPTY_STRING;\n\n // since ADFS does not have tid and does not set client_info\n if (authType === AuthorityType.Adfs || authType === AuthorityType.Dsts) {\n return accountId;\n }\n\n // for cases where there is clientInfo\n if (serverClientInfo) {\n try {\n const clientInfo = buildClientInfo(serverClientInfo, cryptoObj);\n if (!StringUtils.isEmpty(clientInfo.uid) && !StringUtils.isEmpty(clientInfo.utid)) {\n return `${clientInfo.uid}${Separators.CLIENT_INFO_SEPARATOR}${clientInfo.utid}`;\n }\n } catch (e) {}\n }\n\n // default to \"sub\" claim\n logger.verbose(\"No client info in response\");\n return accountId;\n }\n\n /**\n * Validates an entity: checks for all expected params\n * @param entity\n */\n static isAccountEntity(entity: object): boolean {\n\n if (!entity) {\n return false;\n }\n\n return (\n entity.hasOwnProperty(\"homeAccountId\") &&\n entity.hasOwnProperty(\"environment\") &&\n entity.hasOwnProperty(\"realm\") &&\n entity.hasOwnProperty(\"localAccountId\") &&\n entity.hasOwnProperty(\"username\") &&\n entity.hasOwnProperty(\"authorityType\")\n );\n }\n\n /**\n * Helper function to determine whether 2 accountInfo objects represent the same account\n * @param accountA\n * @param accountB\n * @param compareClaims - If set to true idTokenClaims will also be compared to determine account equality\n */\n static accountInfoIsEqual(accountA: AccountInfo | null, accountB: AccountInfo | null, compareClaims?: boolean): boolean {\n if (!accountA || !accountB) {\n return false;\n }\n\n let claimsMatch = true; // default to true so as to not fail comparison below if compareClaims: false\n if (compareClaims) {\n const accountAClaims = (accountA.idTokenClaims || {}) as TokenClaims;\n const accountBClaims = (accountB.idTokenClaims || {}) as TokenClaims;\n\n // issued at timestamp and nonce are expected to change each time a new id token is acquired\n claimsMatch = (accountAClaims.iat === accountBClaims.iat) &&\n (accountAClaims.nonce === accountBClaims.nonce);\n }\n\n return (accountA.homeAccountId === accountB.homeAccountId) &&\n (accountA.localAccountId === accountB.localAccountId) &&\n (accountA.username === accountB.username) &&\n (accountA.tenantId === accountB.tenantId) &&\n (accountA.environment === accountB.environment) &&\n (accountA.nativeAccountId === accountB.nativeAccountId) &&\n claimsMatch;\n }\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _default;\nvar lastId = 0;\n\nfunction _default() {\n var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'pr_id_';\n lastId++;\n return \"\".concat(prefix).concat(lastId);\n}","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","export default function number(x) {\n return +x;\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isNil from \"lodash/isNil\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React, { Component } from 'react';\nimport reduceCSSCalc from 'reduce-css-calc';\nimport classNames from 'classnames';\nimport { isNumber, isNumOrStr } from '../util/DataUtils';\nimport { Global } from '../util/Global';\nimport { filterProps } from '../util/types';\nimport { getStringSize } from '../util/DOMUtils';\nvar BREAKING_SPACES = /[ \\f\\n\\r\\t\\v\\u2028\\u2029]+/;\n\nvar calculateWordWidths = function calculateWordWidths(props) {\n try {\n var words = [];\n\n if (!_isNil(props.children)) {\n if (props.breakAll) {\n words = props.children.toString().split('');\n } else {\n words = props.children.toString().split(BREAKING_SPACES);\n }\n }\n\n var wordsWithComputedWidth = words.map(function (word) {\n return {\n word: word,\n width: getStringSize(word, props.style).width\n };\n });\n var spaceWidth = props.breakAll ? 0 : getStringSize(\"\\xA0\", props.style).width;\n return {\n wordsWithComputedWidth: wordsWithComputedWidth,\n spaceWidth: spaceWidth\n };\n } catch (e) {\n return null;\n }\n};\n\nvar calculateWordsByLines = function calculateWordsByLines(props, initialWordsWithComputedWith, spaceWidth, lineWidth, scaleToFit) {\n var shouldLimitLines = isNumber(props.maxLines);\n var text = props.children;\n\n var calculate = function calculate() {\n var words = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return words.reduce(function (result, _ref) {\n var word = _ref.word,\n width = _ref.width;\n var currentLine = result[result.length - 1];\n\n if (currentLine && (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < lineWidth)) {\n // Word can be added to an existing line\n currentLine.words.push(word);\n currentLine.width += width + spaceWidth;\n } else {\n // Add first word to line or word is too long to scaleToFit on existing line\n var newLine = {\n words: [word],\n width: width\n };\n result.push(newLine);\n }\n\n return result;\n }, []);\n };\n\n var originalResult = calculate(initialWordsWithComputedWith);\n\n var findLongestLine = function findLongestLine(words) {\n return words.reduce(function (a, b) {\n return a.width > b.width ? a : b;\n });\n };\n\n if (!shouldLimitLines) {\n return originalResult;\n }\n\n var suffix = '…';\n\n var checkOverflow = function checkOverflow(index) {\n var tempText = text.slice(0, index);\n var words = calculateWordWidths(_objectSpread(_objectSpread({}, props), {}, {\n children: tempText + suffix\n })).wordsWithComputedWidth;\n var result = calculate(words);\n var doesOverflow = result.length > props.maxLines || findLongestLine(result).width > lineWidth;\n return [doesOverflow, result];\n };\n\n var start = 0;\n var end = text.length - 1;\n var iterations = 0;\n var trimmedResult;\n\n while (start <= end && iterations <= text.length - 1) {\n var middle = Math.floor((start + end) / 2);\n var prev = middle - 1;\n\n var _checkOverflow = checkOverflow(prev),\n _checkOverflow2 = _slicedToArray(_checkOverflow, 2),\n doesPrevOverflow = _checkOverflow2[0],\n result = _checkOverflow2[1];\n\n var _checkOverflow3 = checkOverflow(middle),\n _checkOverflow4 = _slicedToArray(_checkOverflow3, 1),\n doesMiddleOverflow = _checkOverflow4[0];\n\n if (!doesPrevOverflow && !doesMiddleOverflow) {\n start = middle + 1;\n }\n\n if (doesPrevOverflow && doesMiddleOverflow) {\n end = middle - 1;\n }\n\n if (!doesPrevOverflow && doesMiddleOverflow) {\n trimmedResult = result;\n break;\n }\n\n iterations++;\n } // Fallback to originalResult (result without trimming) if we cannot find the\n // where to trim. This should not happen :tm:\n\n\n return trimmedResult || originalResult;\n};\n\nvar getWordsWithoutCalculate = function getWordsWithoutCalculate(children) {\n var words = !_isNil(children) ? children.toString().split(BREAKING_SPACES) : [];\n return [{\n words: words\n }];\n};\n\nvar getWordsByLines = function getWordsByLines(props, needCalculate) {\n // Only perform calculations if using features that require them (multiline, scaleToFit)\n if ((props.width || props.scaleToFit) && !Global.isSsr) {\n var wordsWithComputedWidth, spaceWidth;\n\n if (needCalculate) {\n var wordWidths = calculateWordWidths(props);\n\n if (wordWidths) {\n var wcw = wordWidths.wordsWithComputedWidth,\n sw = wordWidths.spaceWidth;\n wordsWithComputedWidth = wcw;\n spaceWidth = sw;\n } else {\n return getWordsWithoutCalculate(props.children);\n }\n\n return calculateWordsByLines(props, wordsWithComputedWidth, spaceWidth, props.width, props.scaleToFit);\n }\n }\n\n return getWordsWithoutCalculate(props.children);\n};\n\nexport var Text = /*#__PURE__*/function (_Component) {\n _inherits(Text, _Component);\n\n var _super = _createSuper(Text);\n\n function Text() {\n var _this;\n\n _classCallCheck(this, Text);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {};\n return _this;\n }\n\n _createClass(Text, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n dx = _this$props.dx,\n dy = _this$props.dy,\n textAnchor = _this$props.textAnchor,\n verticalAnchor = _this$props.verticalAnchor,\n scaleToFit = _this$props.scaleToFit,\n angle = _this$props.angle,\n lineHeight = _this$props.lineHeight,\n capHeight = _this$props.capHeight,\n className = _this$props.className,\n breakAll = _this$props.breakAll,\n textProps = _objectWithoutProperties(_this$props, [\"dx\", \"dy\", \"textAnchor\", \"verticalAnchor\", \"scaleToFit\", \"angle\", \"lineHeight\", \"capHeight\", \"className\", \"breakAll\"]);\n\n var wordsByLines = this.state.wordsByLines;\n\n if (!isNumOrStr(textProps.x) || !isNumOrStr(textProps.y)) {\n return null;\n }\n\n var x = textProps.x + (isNumber(dx) ? dx : 0);\n var y = textProps.y + (isNumber(dy) ? dy : 0);\n var startDy;\n\n switch (verticalAnchor) {\n case 'start':\n startDy = reduceCSSCalc(\"calc(\".concat(capHeight, \")\"));\n break;\n\n case 'middle':\n startDy = reduceCSSCalc(\"calc(\".concat((wordsByLines.length - 1) / 2, \" * -\").concat(lineHeight, \" + (\").concat(capHeight, \" / 2))\"));\n break;\n\n default:\n startDy = reduceCSSCalc(\"calc(\".concat(wordsByLines.length - 1, \" * -\").concat(lineHeight, \")\"));\n break;\n }\n\n var transforms = [];\n\n if (scaleToFit) {\n var lineWidth = wordsByLines[0].width;\n var width = this.props.width;\n transforms.push(\"scale(\".concat((isNumber(width) ? width / lineWidth : 1) / lineWidth, \")\"));\n }\n\n if (angle) {\n transforms.push(\"rotate(\".concat(angle, \", \").concat(x, \", \").concat(y, \")\"));\n }\n\n if (transforms.length) {\n textProps.transform = transforms.join(' ');\n }\n\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, filterProps(textProps, true), {\n x: x,\n y: y,\n className: classNames('recharts-text', className),\n textAnchor: textAnchor,\n fill: textProps.fill.includes('url') ? Text.defaultProps.fill : textProps.fill\n }), wordsByLines.map(function (line, index) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"tspan\", {\n x: x,\n dy: index === 0 ? startDy : lineHeight,\n key: index\n }, line.words.join(breakAll ? '' : ' '))\n );\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.width !== prevState.prevWidth || nextProps.scaleToFit !== prevState.prevScaleToFit || nextProps.children !== prevState.prevChildren || nextProps.style !== prevState.prevStyle || nextProps.breakAll !== prevState.prevBreakAll) {\n var needCalculate = nextProps.children !== prevState.prevChildren || nextProps.style !== prevState.prevStyle || nextProps.breakAll !== prevState.prevBreakAll;\n return {\n prevWidth: nextProps.width,\n prevScaleToFit: nextProps.scaleToFit,\n prevChildren: nextProps.children,\n prevStyle: nextProps.style,\n wordsByLines: getWordsByLines(nextProps, needCalculate)\n };\n }\n\n return null;\n }\n }]);\n\n return Text;\n}(Component);\nText.defaultProps = {\n x: 0,\n y: 0,\n lineHeight: '1em',\n capHeight: '0.71em',\n // Magic number from d3\n scaleToFit: false,\n textAnchor: 'start',\n verticalAnchor: 'end',\n // Maintain compat with existing charts / default SVG behavior\n fill: '#808080'\n};","'use strict';\n\nmodule.exports = require('./components/tabview/TabView');","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Dot\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { adaptEventHandlers, filterProps } from '../util/types';\nexport var Dot = /*#__PURE__*/function (_PureComponent) {\n _inherits(Dot, _PureComponent);\n\n var _super = _createSuper(Dot);\n\n function Dot() {\n _classCallCheck(this, Dot);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Dot, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n r = _this$props.r,\n className = _this$props.className;\n var layerClass = classNames('recharts-dot', className);\n\n if (cx === +cx && cy === +cy && r === +r) {\n return /*#__PURE__*/React.createElement(\"circle\", _extends({}, filterProps(this.props), adaptEventHandlers(this.props), {\n className: layerClass,\n cx: cx,\n cy: cy,\n r: r\n }));\n }\n\n return null;\n }\n }]);\n\n return Dot;\n}(PureComponent);","var createRange = require('./_createRange');\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nmodule.exports = range;\n","var isNumber = require('./isNumber');\n\n/**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\nfunction isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n}\n\nmodule.exports = isNaN;\n","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _get from \"lodash/get\";\nimport _isFunction from \"lodash/isFunction\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Cartesian Axis\n */\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { getStringSize } from '../util/DOMUtils';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { Label } from '../component/Label';\nimport { Global } from '../util/Global';\nimport { isNumber, mathSign } from '../util/DataUtils';\nimport { filterProps, adaptEventsOfChild } from '../util/types';\nexport var CartesianAxis = /*#__PURE__*/function (_Component) {\n _inherits(CartesianAxis, _Component);\n\n var _super = _createSuper(CartesianAxis);\n\n function CartesianAxis(props) {\n var _this;\n\n _classCallCheck(this, CartesianAxis);\n\n _this = _super.call(this, props);\n _this.layerReference = void 0;\n _this.state = {\n fontSize: '',\n letterSpacing: ''\n };\n return _this;\n } // todo Array\n\n\n _createClass(CartesianAxis, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(_ref, nextState) {\n var viewBox = _ref.viewBox,\n restProps = _objectWithoutProperties(_ref, [\"viewBox\"]);\n\n // props.viewBox is sometimes generated every time -\n // check that specially as object equality is likely to fail\n var _this$props = this.props,\n viewBoxOld = _this$props.viewBox,\n restPropsOld = _objectWithoutProperties(_this$props, [\"viewBox\"]);\n\n return !shallowEqual(viewBox, viewBoxOld) || !shallowEqual(restProps, restPropsOld) || !shallowEqual(nextState, this.state);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var htmlLayer = this.layerReference;\n if (!htmlLayer) return;\n var tick = htmlLayer.getElementsByClassName('recharts-cartesian-axis-tick-value')[0];\n\n if (tick) {\n this.setState({\n fontSize: window.getComputedStyle(tick).fontSize,\n letterSpacing: window.getComputedStyle(tick).letterSpacing\n });\n }\n }\n /**\n * Calculate the coordinates of endpoints in ticks\n * @param {Object} data The data of a simple tick\n * @return {Object} (x1, y1): The coordinate of endpoint close to tick text\n * (x2, y2): The coordinate of endpoint close to axis\n */\n\n }, {\n key: \"getTickLineCoord\",\n value: function getTickLineCoord(data) {\n var _this$props2 = this.props,\n x = _this$props2.x,\n y = _this$props2.y,\n width = _this$props2.width,\n height = _this$props2.height,\n orientation = _this$props2.orientation,\n tickSize = _this$props2.tickSize,\n mirror = _this$props2.mirror,\n tickMargin = _this$props2.tickMargin;\n var x1, x2, y1, y2, tx, ty;\n var sign = mirror ? -1 : 1;\n var finalTickSize = data.tickSize || tickSize;\n var tickCoord = isNumber(data.tickCoord) ? data.tickCoord : data.coordinate;\n\n switch (orientation) {\n case 'top':\n x1 = x2 = data.coordinate;\n y2 = y + +!mirror * height;\n y1 = y2 - sign * finalTickSize;\n ty = y1 - sign * tickMargin;\n tx = tickCoord;\n break;\n\n case 'left':\n y1 = y2 = data.coordinate;\n x2 = x + +!mirror * width;\n x1 = x2 - sign * finalTickSize;\n tx = x1 - sign * tickMargin;\n ty = tickCoord;\n break;\n\n case 'right':\n y1 = y2 = data.coordinate;\n x2 = x + +mirror * width;\n x1 = x2 + sign * finalTickSize;\n tx = x1 + sign * tickMargin;\n ty = tickCoord;\n break;\n\n default:\n x1 = x2 = data.coordinate;\n y2 = y + +mirror * height;\n y1 = y2 + sign * finalTickSize;\n ty = y1 + sign * tickMargin;\n tx = tickCoord;\n break;\n }\n\n return {\n line: {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n },\n tick: {\n x: tx,\n y: ty\n }\n };\n }\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor() {\n var _this$props3 = this.props,\n orientation = _this$props3.orientation,\n mirror = _this$props3.mirror;\n var textAnchor;\n\n switch (orientation) {\n case 'left':\n textAnchor = mirror ? 'start' : 'end';\n break;\n\n case 'right':\n textAnchor = mirror ? 'end' : 'start';\n break;\n\n default:\n textAnchor = 'middle';\n break;\n }\n\n return textAnchor;\n }\n }, {\n key: \"getTickVerticalAnchor\",\n value: function getTickVerticalAnchor() {\n var _this$props4 = this.props,\n orientation = _this$props4.orientation,\n mirror = _this$props4.mirror;\n var verticalAnchor = 'end';\n\n switch (orientation) {\n case 'left':\n case 'right':\n verticalAnchor = 'middle';\n break;\n\n case 'top':\n verticalAnchor = mirror ? 'start' : 'end';\n break;\n\n default:\n verticalAnchor = mirror ? 'end' : 'start';\n break;\n }\n\n return verticalAnchor;\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props5 = this.props,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height,\n orientation = _this$props5.orientation,\n mirror = _this$props5.mirror,\n axisLine = _this$props5.axisLine;\n\n var props = _objectSpread(_objectSpread(_objectSpread({}, filterProps(this.props)), filterProps(axisLine)), {}, {\n fill: 'none'\n });\n\n if (orientation === 'top' || orientation === 'bottom') {\n var needHeight = +(orientation === 'top' && !mirror || orientation === 'bottom' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x,\n y1: y + needHeight * height,\n x2: x + width,\n y2: y + needHeight * height\n });\n } else {\n var needWidth = +(orientation === 'left' && !mirror || orientation === 'right' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x + needWidth * width,\n y1: y,\n x2: x + needWidth * width,\n y2: y + height\n });\n }\n\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: classNames('recharts-cartesian-axis-line', _get(axisLine, 'className'))\n }));\n }\n }, {\n key: \"renderTicks\",\n value:\n /**\n * render the ticks\n * @param {Array} ticks The ticks to actually render (overrides what was passed in props)\n * @param {string} fontSize Fontsize to consider for tick spacing\n * @param {string} letterSpacing Letterspacing to consider for tick spacing\n * @return {ReactComponent} renderedTicks\n */\n function renderTicks(ticks, fontSize, letterSpacing) {\n var _this2 = this;\n\n var _this$props6 = this.props,\n tickLine = _this$props6.tickLine,\n stroke = _this$props6.stroke,\n tick = _this$props6.tick,\n tickFormatter = _this$props6.tickFormatter,\n unit = _this$props6.unit;\n var finalTicks = CartesianAxis.getTicks(_objectSpread(_objectSpread({}, this.props), {}, {\n ticks: ticks\n }), fontSize, letterSpacing);\n var textAnchor = this.getTickTextAnchor();\n var verticalAnchor = this.getTickVerticalAnchor();\n var axisProps = filterProps(this.props);\n var customTickProps = filterProps(tick);\n\n var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {\n fill: 'none'\n }, filterProps(tickLine));\n\n var items = finalTicks.map(function (entry, i) {\n var _this2$getTickLineCoo = _this2.getTickLineCoord(entry),\n lineCoord = _this2$getTickLineCoo.line,\n tickCoord = _this2$getTickLineCoo.tick;\n\n var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n textAnchor: textAnchor,\n verticalAnchor: verticalAnchor\n }, axisProps), {}, {\n stroke: 'none',\n fill: stroke\n }, customTickProps), tickCoord), {}, {\n index: i,\n payload: entry,\n visibleTicksCount: finalTicks.length,\n tickFormatter: tickFormatter\n });\n\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-cartesian-axis-tick\",\n key: \"tick-\".concat(i) // eslint-disable-line react/no-array-index-key\n\n }, adaptEventsOfChild(_this2.props, entry, i)), tickLine && /*#__PURE__*/React.createElement(\"line\", _extends({}, tickLineProps, lineCoord, {\n className: classNames('recharts-cartesian-axis-tick-line', _get(tickLine, 'className'))\n })), tick && CartesianAxis.renderTickItem(tick, tickProps, \"\".concat(_isFunction(tickFormatter) ? tickFormatter(entry.value, i) : entry.value).concat(unit || '')));\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var _this$props7 = this.props,\n axisLine = _this$props7.axisLine,\n width = _this$props7.width,\n height = _this$props7.height,\n ticksGenerator = _this$props7.ticksGenerator,\n className = _this$props7.className,\n hide = _this$props7.hide;\n\n if (hide) {\n return null;\n }\n\n var _this$props8 = this.props,\n ticks = _this$props8.ticks,\n noTicksProps = _objectWithoutProperties(_this$props8, [\"ticks\"]);\n\n var finalTicks = ticks;\n\n if (_isFunction(ticksGenerator)) {\n finalTicks = ticks && ticks.length > 0 ? ticksGenerator(this.props) : ticksGenerator(noTicksProps);\n }\n\n if (width <= 0 || height <= 0 || !finalTicks || !finalTicks.length) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-cartesian-axis', className),\n ref: function ref(_ref2) {\n _this3.layerReference = _ref2;\n }\n }, axisLine && this.renderAxisLine(), this.renderTicks(finalTicks, this.state.fontSize, this.state.letterSpacing), Label.renderCallByParent(this.props));\n }\n }], [{\n key: \"getTicks\",\n value: function getTicks(props, fontSize, letterSpacing) {\n var tick = props.tick,\n ticks = props.ticks,\n viewBox = props.viewBox,\n minTickGap = props.minTickGap,\n orientation = props.orientation,\n interval = props.interval,\n tickFormatter = props.tickFormatter,\n unit = props.unit;\n\n if (!ticks || !ticks.length || !tick) {\n return [];\n }\n\n if (isNumber(interval) || Global.isSsr) {\n return CartesianAxis.getNumberIntervalTicks(ticks, typeof interval === 'number' && isNumber(interval) ? interval : 0);\n }\n\n if (interval === 'preserveStartEnd') {\n return CartesianAxis.getTicksStart({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit,\n fontSize: fontSize,\n letterSpacing: letterSpacing\n }, true);\n }\n\n if (interval === 'preserveStart') {\n return CartesianAxis.getTicksStart({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit,\n fontSize: fontSize,\n letterSpacing: letterSpacing\n });\n }\n\n return CartesianAxis.getTicksEnd({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit,\n fontSize: fontSize,\n letterSpacing: letterSpacing\n });\n }\n }, {\n key: \"getNumberIntervalTicks\",\n value: function getNumberIntervalTicks(ticks, interval) {\n return ticks.filter(function (entry, i) {\n return i % (interval + 1) === 0;\n });\n }\n }, {\n key: \"getTicksStart\",\n value: function getTicksStart(_ref3, preserveEnd) {\n var ticks = _ref3.ticks,\n tickFormatter = _ref3.tickFormatter,\n viewBox = _ref3.viewBox,\n orientation = _ref3.orientation,\n minTickGap = _ref3.minTickGap,\n unit = _ref3.unit,\n fontSize = _ref3.fontSize,\n letterSpacing = _ref3.letterSpacing;\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';\n var result = (ticks || []).slice(); // we need add the width of 'unit' only when sizeKey === 'width'\n\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n })[sizeKey] : 0;\n var len = result.length;\n var sign = len >= 2 ? mathSign(result[1].coordinate - result[0].coordinate) : 1;\n var start, end;\n\n if (sign === 1) {\n start = sizeKey === 'width' ? x : y;\n end = sizeKey === 'width' ? x + width : y + height;\n } else {\n start = sizeKey === 'width' ? x + width : y + height;\n end = sizeKey === 'width' ? x : y;\n }\n\n if (preserveEnd) {\n // Try to guarantee the tail to be displayed\n var tail = ticks[len - 1];\n var tailContent = _isFunction(tickFormatter) ? tickFormatter(tail.value, len - 1) : tail.value;\n var tailSize = getStringSize(tailContent, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n })[sizeKey] + unitSize;\n var tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);\n result[len - 1] = tail = _objectSpread(_objectSpread({}, tail), {}, {\n tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate\n });\n var isTailShow = sign * (tail.tickCoord - sign * tailSize / 2 - start) >= 0 && sign * (tail.tickCoord + sign * tailSize / 2 - end) <= 0;\n\n if (isTailShow) {\n end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);\n result[len - 1] = _objectSpread(_objectSpread({}, tail), {}, {\n isShow: true\n });\n }\n }\n\n var count = preserveEnd ? len - 1 : len;\n\n for (var i = 0; i < count; i++) {\n var entry = result[i];\n var content = _isFunction(tickFormatter) ? tickFormatter(entry.value, i) : entry.value;\n var size = getStringSize(content, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n })[sizeKey] + unitSize;\n\n if (i === 0) {\n var gap = sign * (entry.coordinate - sign * size / 2 - start);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n\n var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;\n\n if (isShow) {\n start = entry.tickCoord + sign * (size / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n }\n\n return result.filter(function (entry) {\n return entry.isShow;\n });\n }\n }, {\n key: \"getTicksEnd\",\n value: function getTicksEnd(_ref4) {\n var ticks = _ref4.ticks,\n tickFormatter = _ref4.tickFormatter,\n viewBox = _ref4.viewBox,\n orientation = _ref4.orientation,\n minTickGap = _ref4.minTickGap,\n unit = _ref4.unit,\n fontSize = _ref4.fontSize,\n letterSpacing = _ref4.letterSpacing;\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height'; // we need add the width of 'unit' only when sizeKey === 'width'\n\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n })[sizeKey] : 0;\n var result = (ticks || []).slice();\n var len = result.length;\n var sign = len >= 2 ? mathSign(result[1].coordinate - result[0].coordinate) : 1;\n var start, end;\n\n if (sign === 1) {\n start = sizeKey === 'width' ? x : y;\n end = sizeKey === 'width' ? x + width : y + height;\n } else {\n start = sizeKey === 'width' ? x + width : y + height;\n end = sizeKey === 'width' ? x : y;\n }\n\n for (var i = len - 1; i >= 0; i--) {\n var entry = result[i];\n var content = _isFunction(tickFormatter) ? tickFormatter(entry.value, len - i - 1) : entry.value;\n var size = getStringSize(content, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n })[sizeKey] + unitSize;\n\n if (i === len - 1) {\n var gap = sign * (entry.coordinate + sign * size / 2 - end);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n\n var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;\n\n if (isShow) {\n end = entry.tickCoord - sign * (size / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n }\n\n return result.filter(function (entry) {\n return entry.isShow;\n });\n }\n }, {\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n tickItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, props, {\n className: \"recharts-cartesian-axis-tick-value\"\n }), value);\n }\n\n return tickItem;\n }\n }]);\n\n return CartesianAxis;\n}(Component);\nCartesianAxis.displayName = 'CartesianAxis';\nCartesianAxis.defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n viewBox: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n // The orientation of axis\n orientation: 'bottom',\n // The ticks\n ticks: [],\n stroke: '#666',\n tickLine: true,\n axisLine: true,\n tick: true,\n mirror: false,\n minTickGap: 5,\n // The width or height of tick\n tickSize: 6,\n tickMargin: 2,\n interval: 'preserveEnd'\n};","'use strict';\n\nmodule.exports = require('./components/fieldset/Fieldset');","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _DomHandler = _interopRequireDefault(require(\"./DomHandler\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar ConnectedOverlayScrollHandler = /*#__PURE__*/function () {\n function ConnectedOverlayScrollHandler(element) {\n var listener = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};\n\n _classCallCheck(this, ConnectedOverlayScrollHandler);\n\n this.element = element;\n this.listener = listener;\n }\n\n _createClass(ConnectedOverlayScrollHandler, [{\n key: \"bindScrollListener\",\n value: function bindScrollListener() {\n this.scrollableParents = _DomHandler.default.getScrollableParents(this.element);\n\n for (var i = 0; i < this.scrollableParents.length; i++) {\n this.scrollableParents[i].addEventListener('scroll', this.listener);\n }\n }\n }, {\n key: \"unbindScrollListener\",\n value: function unbindScrollListener() {\n if (this.scrollableParents) {\n for (var i = 0; i < this.scrollableParents.length; i++) {\n this.scrollableParents[i].removeEventListener('scroll', this.listener);\n }\n }\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.unbindScrollListener();\n this.element = null;\n this.listener = null;\n this.scrollableParents = null;\n }\n }]);\n\n return ConnectedOverlayScrollHandler;\n}();\n\nexports.default = ConnectedOverlayScrollHandler;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.InputText = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _ClassNames = require(\"../utils/ClassNames\");\n\nvar _KeyFilter = _interopRequireDefault(require(\"../keyfilter/KeyFilter\"));\n\nvar _Tooltip = require(\"../tooltip/Tooltip\");\n\nvar _DomHandler = _interopRequireDefault(require(\"../utils/DomHandler\"));\n\nvar _ObjectUtils = _interopRequireDefault(require(\"../utils/ObjectUtils\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar InputText = /*#__PURE__*/function (_Component) {\n _inherits(InputText, _Component);\n\n var _super = _createSuper(InputText);\n\n function InputText(props) {\n var _this;\n\n _classCallCheck(this, InputText);\n\n _this = _super.call(this, props);\n _this.onInput = _this.onInput.bind(_assertThisInitialized(_this));\n _this.onKeyPress = _this.onKeyPress.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(InputText, [{\n key: \"onKeyPress\",\n value: function onKeyPress(event) {\n if (this.props.onKeyPress) {\n this.props.onKeyPress(event);\n }\n\n if (this.props.keyfilter) {\n _KeyFilter.default.onKeyPress(event, this.props.keyfilter, this.props.validateOnly);\n }\n }\n }, {\n key: \"onInput\",\n value: function onInput(event) {\n var validatePattern = true;\n\n if (this.props.keyfilter && this.props.validateOnly) {\n validatePattern = _KeyFilter.default.validate(event, this.props.keyfilter);\n }\n\n if (this.props.onInput) {\n this.props.onInput(event, validatePattern);\n }\n\n if (!this.props.onChange) {\n if (event.target.value.length > 0) _DomHandler.default.addClass(event.target, 'p-filled');else _DomHandler.default.removeClass(event.target, 'p-filled');\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.tooltip) {\n this.renderTooltip();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.tooltip !== this.props.tooltip) {\n if (this.tooltip) this.tooltip.updateContent(this.props.tooltip);else this.renderTooltip();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n }\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n this.tooltip = (0, _Tooltip.tip)({\n target: this.element,\n content: this.props.tooltip,\n options: this.props.tooltipOptions\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var className = (0, _ClassNames.classNames)('p-inputtext p-component', this.props.className, {\n 'p-disabled': this.props.disabled,\n 'p-filled': this.props.value != null && this.props.value.toString().length > 0 || this.props.defaultValue != null && this.props.defaultValue.toString().length > 0\n });\n\n var inputProps = _ObjectUtils.default.findDiffKeys(this.props, InputText.defaultProps);\n\n return /*#__PURE__*/_react.default.createElement(\"input\", _extends({\n ref: function ref(el) {\n return _this2.element = el;\n }\n }, inputProps, {\n className: className,\n onInput: this.onInput,\n onKeyPress: this.onKeyPress\n }));\n }\n }]);\n\n return InputText;\n}(_react.Component);\n\nexports.InputText = InputText;\n\n_defineProperty(InputText, \"defaultProps\", {\n onInput: null,\n onKeyPress: null,\n keyfilter: null,\n validateOnly: false,\n tooltip: null,\n tooltipOptions: null\n});\n\n_defineProperty(InputText, \"propTypes\", {\n onInput: _propTypes.default.func,\n onKeyPress: _propTypes.default.func,\n keyfilter: _propTypes.default.any,\n validateOnly: _propTypes.default.bool,\n tooltip: _propTypes.default.string,\n tooltipOptions: _propTypes.default.object\n});","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","import {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new Map(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new Map();\n for (const value of _) {\n const key = value + \"\";\n if (index.has(key)) continue;\n index.set(key, domain.push(value));\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","/*!\n * \n * jsPDF AutoTable plugin v3.5.25\n *\n * Copyright (c) 2022 Simon Bengtsson, https://github.com/simonbengtsson/jsPDF-AutoTable\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n *\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory((function webpackLoadOptionalExternalModule() { try { return require(\"jspdf\"); } catch(e) {} }()));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"jspdf\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory((function webpackLoadOptionalExternalModule() { try { return require(\"jspdf\"); } catch(e) {} }())) : factory(root[\"jspdf\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(typeof this !== 'undefined' ? this : window, function(__WEBPACK_EXTERNAL_MODULE__84__) {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 662:\n/***/ (function(__unused_webpack_module, exports) {\n\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.CellHookData = exports.HookData = void 0;\nvar HookData = /** @class */ (function () {\n function HookData(doc, table, cursor) {\n this.table = table;\n this.pageNumber = table.pageNumber;\n this.pageCount = this.pageNumber;\n this.settings = table.settings;\n this.cursor = cursor;\n this.doc = doc.getDocument();\n }\n return HookData;\n}());\nexports.HookData = HookData;\nvar CellHookData = /** @class */ (function (_super) {\n __extends(CellHookData, _super);\n function CellHookData(doc, table, cell, row, column, cursor) {\n var _this = _super.call(this, doc, table, cursor) || this;\n _this.cell = cell;\n _this.row = row;\n _this.column = column;\n _this.section = row.section;\n return _this;\n }\n return CellHookData;\n}(HookData));\nexports.CellHookData = CellHookData;\n\n\n/***/ }),\n\n/***/ 790:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar htmlParser_1 = __webpack_require__(148);\nvar autoTableText_1 = __webpack_require__(938);\nvar documentHandler_1 = __webpack_require__(323);\nvar inputParser_1 = __webpack_require__(587);\nvar tableDrawer_1 = __webpack_require__(49);\nvar tableCalculator_1 = __webpack_require__(858);\nfunction default_1(jsPDF) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n jsPDF.API.autoTable = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var options;\n if (args.length === 1) {\n options = args[0];\n }\n else {\n console.error('Use of deprecated autoTable initiation');\n options = args[2] || {};\n options.columns = args[0];\n options.body = args[1];\n }\n var input = (0, inputParser_1.parseInput)(this, options);\n var table = (0, tableCalculator_1.createTable)(this, input);\n (0, tableDrawer_1.drawTable)(this, table);\n return this;\n };\n // Assign false to enable `doc.lastAutoTable.finalY || 40` sugar\n jsPDF.API.lastAutoTable = false;\n jsPDF.API.previousAutoTable = false; // deprecated in v3\n jsPDF.API.autoTable.previous = false; // deprecated in v3\n jsPDF.API.autoTableText = function (text, x, y, styles) {\n (0, autoTableText_1.default)(text, x, y, styles, this);\n };\n jsPDF.API.autoTableSetDefaults = function (defaults) {\n documentHandler_1.DocHandler.setDefaults(defaults, this);\n return this;\n };\n jsPDF.autoTableSetDefaults = function (defaults, doc) {\n documentHandler_1.DocHandler.setDefaults(defaults, doc);\n };\n jsPDF.API.autoTableHtmlToJson = function (tableElem, includeHiddenElements) {\n if (includeHiddenElements === void 0) { includeHiddenElements = false; }\n if (typeof window === 'undefined') {\n console.error('Cannot run autoTableHtmlToJson in non browser environment');\n return null;\n }\n var doc = new documentHandler_1.DocHandler(this);\n var _a = (0, htmlParser_1.parseHtml)(doc, tableElem, window, includeHiddenElements, false), head = _a.head, body = _a.body;\n var columns = head[0].map(function (c) { return c.content; });\n return { columns: columns, rows: body, data: body };\n };\n /**\n * @deprecated\n */\n jsPDF.API.autoTableEndPosY = function () {\n console.error('Use of deprecated function: autoTableEndPosY. Use doc.lastAutoTable.finalY instead.');\n var prev = this.lastAutoTable;\n if (prev && prev.finalY) {\n return prev.finalY;\n }\n else {\n return 0;\n }\n };\n /**\n * @deprecated\n */\n jsPDF.API.autoTableAddPageContent = function (hook) {\n console.error('Use of deprecated function: autoTableAddPageContent. Use jsPDF.autoTableSetDefaults({didDrawPage: () => {}}) instead.');\n if (!jsPDF.API.autoTable.globalDefaults) {\n jsPDF.API.autoTable.globalDefaults = {};\n }\n jsPDF.API.autoTable.globalDefaults.addPageContent = hook;\n return this;\n };\n /**\n * @deprecated\n */\n jsPDF.API.autoTableAddPage = function () {\n console.error('Use of deprecated function: autoTableAddPage. Use doc.addPage()');\n this.addPage();\n return this;\n };\n}\nexports[\"default\"] = default_1;\n\n\n/***/ }),\n\n/***/ 938:\n/***/ (function(__unused_webpack_module, exports) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n/**\n * Improved text function with halign and valign support\n * Inspiration from: http://stackoverflow.com/questions/28327510/align-text-right-using-jspdf/28433113#28433113\n */\nfunction default_1(text, x, y, styles, doc) {\n styles = styles || {};\n var FONT_ROW_RATIO = 1.15;\n var k = doc.internal.scaleFactor;\n var fontSize = doc.internal.getFontSize() / k;\n var splitRegex = /\\r\\n|\\r|\\n/g;\n var splitText = '';\n var lineCount = 1;\n if (styles.valign === 'middle' ||\n styles.valign === 'bottom' ||\n styles.halign === 'center' ||\n styles.halign === 'right') {\n splitText = typeof text === 'string' ? text.split(splitRegex) : text;\n lineCount = splitText.length || 1;\n }\n // Align the top\n y += fontSize * (2 - FONT_ROW_RATIO);\n if (styles.valign === 'middle')\n y -= (lineCount / 2) * fontSize * FONT_ROW_RATIO;\n else if (styles.valign === 'bottom')\n y -= lineCount * fontSize * FONT_ROW_RATIO;\n if (styles.halign === 'center' || styles.halign === 'right') {\n var alignSize = fontSize;\n if (styles.halign === 'center')\n alignSize *= 0.5;\n if (splitText && lineCount >= 1) {\n for (var iLine = 0; iLine < splitText.length; iLine++) {\n doc.text(splitText[iLine], x - doc.getStringUnitWidth(splitText[iLine]) * alignSize, y);\n y += fontSize * FONT_ROW_RATIO;\n }\n return doc;\n }\n x -= doc.getStringUnitWidth(text) * alignSize;\n }\n if (styles.halign === 'justify') {\n doc.text(text, x, y, {\n maxWidth: styles.maxWidth || 100,\n align: 'justify',\n });\n }\n else {\n doc.text(text, x, y);\n }\n return doc;\n}\nexports[\"default\"] = default_1;\n\n\n/***/ }),\n\n/***/ 200:\n/***/ (function(__unused_webpack_module, exports) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.parseSpacing = exports.getFillStyle = exports.addTableBorder = exports.getStringWidth = void 0;\nfunction getStringWidth(text, styles, doc) {\n doc.applyStyles(styles, true);\n var textArr = Array.isArray(text) ? text : [text];\n var widestLineWidth = textArr\n .map(function (text) { return doc.getTextWidth(text); })\n .reduce(function (a, b) { return Math.max(a, b); }, 0);\n return widestLineWidth;\n}\nexports.getStringWidth = getStringWidth;\nfunction addTableBorder(doc, table, startPos, cursor) {\n var lineWidth = table.settings.tableLineWidth;\n var lineColor = table.settings.tableLineColor;\n doc.applyStyles({ lineWidth: lineWidth, lineColor: lineColor });\n var fillStyle = getFillStyle(lineWidth, false);\n if (fillStyle) {\n doc.rect(startPos.x, startPos.y, table.getWidth(doc.pageSize().width), cursor.y - startPos.y, fillStyle);\n }\n}\nexports.addTableBorder = addTableBorder;\nfunction getFillStyle(lineWidth, fillColor) {\n var drawLine = lineWidth > 0;\n var drawBackground = fillColor || fillColor === 0;\n if (drawLine && drawBackground) {\n return 'DF'; // Fill then stroke\n }\n else if (drawLine) {\n return 'S'; // Only stroke (transparent background)\n }\n else if (drawBackground) {\n return 'F'; // Only fill, no stroke\n }\n else {\n return null;\n }\n}\nexports.getFillStyle = getFillStyle;\nfunction parseSpacing(value, defaultValue) {\n var _a, _b, _c, _d;\n value = value || defaultValue;\n if (Array.isArray(value)) {\n if (value.length >= 4) {\n return {\n top: value[0],\n right: value[1],\n bottom: value[2],\n left: value[3],\n };\n }\n else if (value.length === 3) {\n return {\n top: value[0],\n right: value[1],\n bottom: value[2],\n left: value[1],\n };\n }\n else if (value.length === 2) {\n return {\n top: value[0],\n right: value[1],\n bottom: value[0],\n left: value[1],\n };\n }\n else if (value.length === 1) {\n value = value[0];\n }\n else {\n value = defaultValue;\n }\n }\n if (typeof value === 'object') {\n if (typeof value.vertical === 'number') {\n value.top = value.vertical;\n value.bottom = value.vertical;\n }\n if (typeof value.horizontal === 'number') {\n value.right = value.horizontal;\n value.left = value.horizontal;\n }\n return {\n left: (_a = value.left) !== null && _a !== void 0 ? _a : defaultValue,\n top: (_b = value.top) !== null && _b !== void 0 ? _b : defaultValue,\n right: (_c = value.right) !== null && _c !== void 0 ? _c : defaultValue,\n bottom: (_d = value.bottom) !== null && _d !== void 0 ? _d : defaultValue,\n };\n }\n if (typeof value !== 'number') {\n value = defaultValue;\n }\n return { top: value, right: value, bottom: value, left: value };\n}\nexports.parseSpacing = parseSpacing;\n\n\n/***/ }),\n\n/***/ 913:\n/***/ (function(__unused_webpack_module, exports) {\n\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.getTheme = exports.defaultStyles = exports.HtmlRowInput = exports.FONT_ROW_RATIO = void 0;\n/**\n * Ratio between font size and font height. The number comes from jspdf's source code\n */\nexports.FONT_ROW_RATIO = 1.15;\nvar HtmlRowInput = /** @class */ (function (_super) {\n __extends(HtmlRowInput, _super);\n function HtmlRowInput(element) {\n var _this = _super.call(this) || this;\n _this._element = element;\n return _this;\n }\n return HtmlRowInput;\n}(Array));\nexports.HtmlRowInput = HtmlRowInput;\n// Base style for all themes\nfunction defaultStyles(scaleFactor) {\n return {\n font: 'helvetica',\n fontStyle: 'normal',\n overflow: 'linebreak',\n fillColor: false,\n textColor: 20,\n halign: 'left',\n valign: 'top',\n fontSize: 10,\n cellPadding: 5 / scaleFactor,\n lineColor: 200,\n lineWidth: 0,\n cellWidth: 'auto',\n minCellHeight: 0,\n minCellWidth: 0,\n };\n}\nexports.defaultStyles = defaultStyles;\nfunction getTheme(name) {\n var themes = {\n striped: {\n table: { fillColor: 255, textColor: 80, fontStyle: 'normal' },\n head: { textColor: 255, fillColor: [41, 128, 185], fontStyle: 'bold' },\n body: {},\n foot: { textColor: 255, fillColor: [41, 128, 185], fontStyle: 'bold' },\n alternateRow: { fillColor: 245 },\n },\n grid: {\n table: {\n fillColor: 255,\n textColor: 80,\n fontStyle: 'normal',\n lineWidth: 0.1,\n },\n head: {\n textColor: 255,\n fillColor: [26, 188, 156],\n fontStyle: 'bold',\n lineWidth: 0,\n },\n body: {},\n foot: {\n textColor: 255,\n fillColor: [26, 188, 156],\n fontStyle: 'bold',\n lineWidth: 0,\n },\n alternateRow: {},\n },\n plain: {\n head: { fontStyle: 'bold' },\n foot: { fontStyle: 'bold' },\n },\n };\n return themes[name];\n}\nexports.getTheme = getTheme;\n\n\n/***/ }),\n\n/***/ 259:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.parseCss = void 0;\n// Limitations\n// - No support for border spacing\n// - No support for transparency\nvar common_1 = __webpack_require__(200);\nfunction parseCss(supportedFonts, element, scaleFactor, style, window) {\n var result = {};\n var pxScaleFactor = 96 / 72;\n var backgroundColor = parseColor(element, function (elem) {\n return window.getComputedStyle(elem)['backgroundColor'];\n });\n if (backgroundColor != null)\n result.fillColor = backgroundColor;\n var textColor = parseColor(element, function (elem) {\n return window.getComputedStyle(elem)['color'];\n });\n if (textColor != null)\n result.textColor = textColor;\n var borderColor = parseColor(element, function (elem) {\n return window.getComputedStyle(elem)['borderTopColor'];\n });\n if (borderColor != null)\n result.lineColor = borderColor;\n var padding = parsePadding(style, scaleFactor);\n if (padding)\n result.cellPadding = padding;\n // style.borderWidth only works in chrome (borderTopWidth etc works in firefox and ie as well)\n var bw = parseInt(style.borderTopWidth || '');\n bw = bw / pxScaleFactor / scaleFactor;\n if (bw)\n result.lineWidth = bw;\n var accepted = ['left', 'right', 'center', 'justify'];\n if (accepted.indexOf(style.textAlign) !== -1) {\n result.halign = style.textAlign;\n }\n accepted = ['middle', 'bottom', 'top'];\n if (accepted.indexOf(style.verticalAlign) !== -1) {\n result.valign = style.verticalAlign;\n }\n var res = parseInt(style.fontSize || '');\n if (!isNaN(res))\n result.fontSize = res / pxScaleFactor;\n var fontStyle = parseFontStyle(style);\n if (fontStyle)\n result.fontStyle = fontStyle;\n var font = (style.fontFamily || '').toLowerCase();\n if (supportedFonts.indexOf(font) !== -1) {\n result.font = font;\n }\n return result;\n}\nexports.parseCss = parseCss;\nfunction parseFontStyle(style) {\n var res = '';\n if (style.fontWeight === 'bold' ||\n style.fontWeight === 'bolder' ||\n parseInt(style.fontWeight) >= 700) {\n res = 'bold';\n }\n if (style.fontStyle === 'italic' || style.fontStyle === 'oblique') {\n res += 'italic';\n }\n return res;\n}\nfunction parseColor(element, styleGetter) {\n var cssColor = realColor(element, styleGetter);\n if (!cssColor)\n return null;\n var rgba = cssColor.match(/^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d*\\.?\\d*))?\\)$/);\n if (!rgba || !Array.isArray(rgba)) {\n return null;\n }\n var color = [\n parseInt(rgba[1]),\n parseInt(rgba[2]),\n parseInt(rgba[3]),\n ];\n var alpha = parseInt(rgba[4]);\n if (alpha === 0 || isNaN(color[0]) || isNaN(color[1]) || isNaN(color[2])) {\n return null;\n }\n return color;\n}\nfunction realColor(elem, styleGetter) {\n var bg = styleGetter(elem);\n if (bg === 'rgba(0, 0, 0, 0)' ||\n bg === 'transparent' ||\n bg === 'initial' ||\n bg === 'inherit') {\n if (elem.parentElement == null) {\n return null;\n }\n return realColor(elem.parentElement, styleGetter);\n }\n else {\n return bg;\n }\n}\nfunction parsePadding(style, scaleFactor) {\n var val = [\n style.paddingTop,\n style.paddingRight,\n style.paddingBottom,\n style.paddingLeft,\n ];\n var pxScaleFactor = 96 / (72 / scaleFactor);\n var linePadding = (parseInt(style.lineHeight) - parseInt(style.fontSize)) / scaleFactor / 2;\n var inputPadding = val.map(function (n) {\n return parseInt(n || '0') / pxScaleFactor;\n });\n var padding = (0, common_1.parseSpacing)(inputPadding, 0);\n if (linePadding > padding.top) {\n padding.top = linePadding;\n }\n if (linePadding > padding.bottom) {\n padding.bottom = linePadding;\n }\n return padding;\n}\n\n\n/***/ }),\n\n/***/ 323:\n/***/ (function(__unused_webpack_module, exports) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.DocHandler = void 0;\nvar globalDefaults = {};\nvar DocHandler = /** @class */ (function () {\n function DocHandler(jsPDFDocument) {\n this.jsPDFDocument = jsPDFDocument;\n this.userStyles = {\n // Black for versions of jspdf without getTextColor\n textColor: jsPDFDocument.getTextColor\n ? this.jsPDFDocument.getTextColor()\n : 0,\n fontSize: jsPDFDocument.internal.getFontSize(),\n fontStyle: jsPDFDocument.internal.getFont().fontStyle,\n font: jsPDFDocument.internal.getFont().fontName,\n };\n }\n DocHandler.setDefaults = function (defaults, doc) {\n if (doc === void 0) { doc = null; }\n if (doc) {\n doc.__autoTableDocumentDefaults = defaults;\n }\n else {\n globalDefaults = defaults;\n }\n };\n DocHandler.unifyColor = function (c) {\n if (Array.isArray(c)) {\n return c;\n }\n else if (typeof c === 'number') {\n return [c, c, c];\n }\n else if (typeof c === 'string') {\n return [c];\n }\n else {\n return null;\n }\n };\n DocHandler.prototype.applyStyles = function (styles, fontOnly) {\n // Font style needs to be applied before font\n // https://github.com/simonbengtsson/jsPDF-AutoTable/issues/632\n var _a, _b, _c;\n if (fontOnly === void 0) { fontOnly = false; }\n if (styles.fontStyle)\n this.jsPDFDocument.setFontStyle &&\n this.jsPDFDocument.setFontStyle(styles.fontStyle);\n var _d = this.jsPDFDocument.internal.getFont(), fontStyle = _d.fontStyle, fontName = _d.fontName;\n if (styles.font)\n fontName = styles.font;\n if (styles.fontStyle) {\n fontStyle = styles.fontStyle;\n var availableFontStyles = this.getFontList()[fontName];\n if (availableFontStyles &&\n availableFontStyles.indexOf(fontStyle) === -1) {\n // Common issue was that the default bold in headers\n // made custom fonts not work. For example:\n // https://github.com/simonbengtsson/jsPDF-AutoTable/issues/653\n this.jsPDFDocument.setFontStyle &&\n this.jsPDFDocument.setFontStyle(availableFontStyles[0]);\n fontStyle = availableFontStyles[0];\n }\n }\n this.jsPDFDocument.setFont(fontName, fontStyle);\n if (styles.fontSize)\n this.jsPDFDocument.setFontSize(styles.fontSize);\n if (fontOnly) {\n return; // Performance improvement\n }\n var color = DocHandler.unifyColor(styles.fillColor);\n if (color)\n (_a = this.jsPDFDocument).setFillColor.apply(_a, color);\n color = DocHandler.unifyColor(styles.textColor);\n if (color)\n (_b = this.jsPDFDocument).setTextColor.apply(_b, color);\n color = DocHandler.unifyColor(styles.lineColor);\n if (color)\n (_c = this.jsPDFDocument).setDrawColor.apply(_c, color);\n if (typeof styles.lineWidth === 'number') {\n this.jsPDFDocument.setLineWidth(styles.lineWidth);\n }\n };\n DocHandler.prototype.splitTextToSize = function (text, size, opts) {\n return this.jsPDFDocument.splitTextToSize(text, size, opts);\n };\n DocHandler.prototype.rect = function (x, y, width, height, fillStyle) {\n return this.jsPDFDocument.rect(x, y, width, height, fillStyle);\n };\n DocHandler.prototype.getLastAutoTable = function () {\n return this.jsPDFDocument.lastAutoTable || null;\n };\n DocHandler.prototype.getTextWidth = function (text) {\n return this.jsPDFDocument.getTextWidth(text);\n };\n DocHandler.prototype.getDocument = function () {\n return this.jsPDFDocument;\n };\n DocHandler.prototype.setPage = function (page) {\n this.jsPDFDocument.setPage(page);\n };\n DocHandler.prototype.addPage = function () {\n return this.jsPDFDocument.addPage();\n };\n DocHandler.prototype.getFontList = function () {\n return this.jsPDFDocument.getFontList();\n };\n DocHandler.prototype.getGlobalOptions = function () {\n return globalDefaults || {};\n };\n DocHandler.prototype.getDocumentOptions = function () {\n return this.jsPDFDocument.__autoTableDocumentDefaults || {};\n };\n DocHandler.prototype.pageSize = function () {\n var pageSize = this.jsPDFDocument.internal.pageSize;\n // JSPDF 1.4 uses get functions instead of properties on pageSize\n if (pageSize.width == null) {\n pageSize = {\n width: pageSize.getWidth(),\n height: pageSize.getHeight(),\n };\n }\n return pageSize;\n };\n DocHandler.prototype.scaleFactor = function () {\n return this.jsPDFDocument.internal.scaleFactor;\n };\n DocHandler.prototype.pageNumber = function () {\n var pageInfo = this.jsPDFDocument.internal.getCurrentPageInfo();\n if (!pageInfo) {\n // Only recent versions of jspdf has pageInfo\n return this.jsPDFDocument.internal.getNumberOfPages();\n }\n return pageInfo.pageNumber;\n };\n return DocHandler;\n}());\nexports.DocHandler = DocHandler;\n\n\n/***/ }),\n\n/***/ 148:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.parseHtml = void 0;\nvar cssParser_1 = __webpack_require__(259);\nvar config_1 = __webpack_require__(913);\nfunction parseHtml(doc, input, window, includeHiddenHtml, useCss) {\n var _a, _b;\n if (includeHiddenHtml === void 0) { includeHiddenHtml = false; }\n if (useCss === void 0) { useCss = false; }\n var tableElement;\n if (typeof input === 'string') {\n tableElement = window.document.querySelector(input);\n }\n else {\n tableElement = input;\n }\n var supportedFonts = Object.keys(doc.getFontList());\n var scaleFactor = doc.scaleFactor();\n var head = [], body = [], foot = [];\n if (!tableElement) {\n console.error('Html table could not be found with input: ', input);\n return { head: head, body: body, foot: foot };\n }\n for (var i = 0; i < tableElement.rows.length; i++) {\n var element = tableElement.rows[i];\n var tagName = (_b = (_a = element === null || element === void 0 ? void 0 : element.parentElement) === null || _a === void 0 ? void 0 : _a.tagName) === null || _b === void 0 ? void 0 : _b.toLowerCase();\n var row = parseRowContent(supportedFonts, scaleFactor, window, element, includeHiddenHtml, useCss);\n if (!row)\n continue;\n if (tagName === 'thead') {\n head.push(row);\n }\n else if (tagName === 'tfoot') {\n foot.push(row);\n }\n else {\n // Add to body both if parent is tbody or table\n body.push(row);\n }\n }\n return { head: head, body: body, foot: foot };\n}\nexports.parseHtml = parseHtml;\nfunction parseRowContent(supportedFonts, scaleFactor, window, row, includeHidden, useCss) {\n var resultRow = new config_1.HtmlRowInput(row);\n for (var i = 0; i < row.cells.length; i++) {\n var cell = row.cells[i];\n var style_1 = window.getComputedStyle(cell);\n if (includeHidden || style_1.display !== 'none') {\n var cellStyles = void 0;\n if (useCss) {\n cellStyles = (0, cssParser_1.parseCss)(supportedFonts, cell, scaleFactor, style_1, window);\n }\n resultRow.push({\n rowSpan: cell.rowSpan,\n colSpan: cell.colSpan,\n styles: cellStyles,\n _element: cell,\n content: parseCellContent(cell),\n });\n }\n }\n var style = window.getComputedStyle(row);\n if (resultRow.length > 0 && (includeHidden || style.display !== 'none')) {\n return resultRow;\n }\n}\nfunction parseCellContent(orgCell) {\n // Work on cloned node to make sure no changes are applied to html table\n var cell = orgCell.cloneNode(true);\n // Remove extra space and line breaks in markup to make it more similar to\n // what would be shown in html\n cell.innerHTML = cell.innerHTML.replace(/\\n/g, '').replace(/ +/g, ' ');\n // Preserve
tags as line breaks in the pdf\n cell.innerHTML = cell.innerHTML\n .split(/\\/) //start with ''.\n .map(function (part) { return part.trim(); })\n .join('\\n');\n // innerText for ie\n return cell.innerText || cell.textContent || '';\n}\n\n\n/***/ }),\n\n/***/ 587:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.parseInput = void 0;\nvar htmlParser_1 = __webpack_require__(148);\nvar polyfills_1 = __webpack_require__(360);\nvar common_1 = __webpack_require__(200);\nvar documentHandler_1 = __webpack_require__(323);\nvar inputValidator_1 = __webpack_require__(291);\nfunction parseInput(d, current) {\n var doc = new documentHandler_1.DocHandler(d);\n var document = doc.getDocumentOptions();\n var global = doc.getGlobalOptions();\n (0, inputValidator_1.default)(doc, global, document, current);\n var options = (0, polyfills_1.assign)({}, global, document, current);\n var win;\n if (typeof window !== 'undefined') {\n win = window;\n }\n var styles = parseStyles(global, document, current);\n var hooks = parseHooks(global, document, current);\n var settings = parseSettings(doc, options);\n var content = parseContent(doc, options, win);\n return {\n id: current.tableId,\n content: content,\n hooks: hooks,\n styles: styles,\n settings: settings,\n };\n}\nexports.parseInput = parseInput;\nfunction parseStyles(gInput, dInput, cInput) {\n var styleOptions = {\n styles: {},\n headStyles: {},\n bodyStyles: {},\n footStyles: {},\n alternateRowStyles: {},\n columnStyles: {},\n };\n var _loop_1 = function (prop) {\n if (prop === 'columnStyles') {\n var global_1 = gInput[prop];\n var document_1 = dInput[prop];\n var current = cInput[prop];\n styleOptions.columnStyles = (0, polyfills_1.assign)({}, global_1, document_1, current);\n }\n else {\n var allOptions = [gInput, dInput, cInput];\n var styles = allOptions.map(function (opts) { return opts[prop] || {}; });\n styleOptions[prop] = (0, polyfills_1.assign)({}, styles[0], styles[1], styles[2]);\n }\n };\n for (var _i = 0, _a = Object.keys(styleOptions); _i < _a.length; _i++) {\n var prop = _a[_i];\n _loop_1(prop);\n }\n return styleOptions;\n}\nfunction parseHooks(global, document, current) {\n var allOptions = [global, document, current];\n var result = {\n didParseCell: [],\n willDrawCell: [],\n didDrawCell: [],\n didDrawPage: [],\n };\n for (var _i = 0, allOptions_1 = allOptions; _i < allOptions_1.length; _i++) {\n var options = allOptions_1[_i];\n if (options.didParseCell)\n result.didParseCell.push(options.didParseCell);\n if (options.willDrawCell)\n result.willDrawCell.push(options.willDrawCell);\n if (options.didDrawCell)\n result.didDrawCell.push(options.didDrawCell);\n if (options.didDrawPage)\n result.didDrawPage.push(options.didDrawPage);\n }\n return result;\n}\nfunction parseSettings(doc, options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;\n var margin = (0, common_1.parseSpacing)(options.margin, 40 / doc.scaleFactor());\n var startY = (_a = getStartY(doc, options.startY)) !== null && _a !== void 0 ? _a : margin.top;\n var showFoot;\n if (options.showFoot === true) {\n showFoot = 'everyPage';\n }\n else if (options.showFoot === false) {\n showFoot = 'never';\n }\n else {\n showFoot = (_b = options.showFoot) !== null && _b !== void 0 ? _b : 'everyPage';\n }\n var showHead;\n if (options.showHead === true) {\n showHead = 'everyPage';\n }\n else if (options.showHead === false) {\n showHead = 'never';\n }\n else {\n showHead = (_c = options.showHead) !== null && _c !== void 0 ? _c : 'everyPage';\n }\n var useCss = (_d = options.useCss) !== null && _d !== void 0 ? _d : false;\n var theme = options.theme || (useCss ? 'plain' : 'striped');\n var horizontalPageBreak = options.horizontalPageBreak\n ? true\n : false;\n var horizontalPageBreakRepeat = (_e = options.horizontalPageBreakRepeat) !== null && _e !== void 0 ? _e : null;\n return {\n includeHiddenHtml: (_f = options.includeHiddenHtml) !== null && _f !== void 0 ? _f : false,\n useCss: useCss,\n theme: theme,\n startY: startY,\n margin: margin,\n pageBreak: (_g = options.pageBreak) !== null && _g !== void 0 ? _g : 'auto',\n rowPageBreak: (_h = options.rowPageBreak) !== null && _h !== void 0 ? _h : 'auto',\n tableWidth: (_j = options.tableWidth) !== null && _j !== void 0 ? _j : 'auto',\n showHead: showHead,\n showFoot: showFoot,\n tableLineWidth: (_k = options.tableLineWidth) !== null && _k !== void 0 ? _k : 0,\n tableLineColor: (_l = options.tableLineColor) !== null && _l !== void 0 ? _l : 200,\n horizontalPageBreak: horizontalPageBreak,\n horizontalPageBreakRepeat: horizontalPageBreakRepeat,\n };\n}\nfunction getStartY(doc, userStartY) {\n var previous = doc.getLastAutoTable();\n var sf = doc.scaleFactor();\n var currentPage = doc.pageNumber();\n var isSamePageAsPreviousTable = false;\n if (previous && previous.startPageNumber) {\n var endingPage = previous.startPageNumber + previous.pageNumber - 1;\n isSamePageAsPreviousTable = endingPage === currentPage;\n }\n if (typeof userStartY === 'number') {\n return userStartY;\n }\n else if (userStartY == null || userStartY === false) {\n if (isSamePageAsPreviousTable && (previous === null || previous === void 0 ? void 0 : previous.finalY) != null) {\n // Some users had issues with overlapping tables when they used multiple\n // tables without setting startY so setting it here to a sensible default.\n return previous.finalY + 20 / sf;\n }\n }\n return null;\n}\nfunction parseContent(doc, options, window) {\n var head = options.head || [];\n var body = options.body || [];\n var foot = options.foot || [];\n if (options.html) {\n var hidden = options.includeHiddenHtml;\n if (window) {\n var htmlContent = (0, htmlParser_1.parseHtml)(doc, options.html, window, hidden, options.useCss) || {};\n head = htmlContent.head || head;\n body = htmlContent.body || head;\n foot = htmlContent.foot || head;\n }\n else {\n console.error('Cannot parse html in non browser environment');\n }\n }\n var columns = options.columns || parseColumns(head, body, foot);\n return {\n columns: columns,\n head: head,\n body: body,\n foot: foot,\n };\n}\nfunction parseColumns(head, body, foot) {\n var firstRow = head[0] || body[0] || foot[0] || [];\n var result = [];\n Object.keys(firstRow)\n .filter(function (key) { return key !== '_element'; })\n .forEach(function (key) {\n var colSpan = 1;\n var input;\n if (Array.isArray(firstRow)) {\n input = firstRow[parseInt(key)];\n }\n else {\n input = firstRow[key];\n }\n if (typeof input === 'object' && !Array.isArray(input)) {\n colSpan = (input === null || input === void 0 ? void 0 : input.colSpan) || 1;\n }\n for (var i = 0; i < colSpan; i++) {\n var id = void 0;\n if (Array.isArray(firstRow)) {\n id = result.length;\n }\n else {\n id = key + (i > 0 ? \"_\".concat(i) : '');\n }\n var rowResult = { dataKey: id };\n result.push(rowResult);\n }\n });\n return result;\n}\n\n\n/***/ }),\n\n/***/ 291:\n/***/ (function(__unused_webpack_module, exports) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nfunction default_1(doc, global, document, current) {\n var _loop_1 = function (options) {\n if (options && typeof options !== 'object') {\n console.error('The options parameter should be of type object, is: ' + typeof options);\n }\n if (typeof options.extendWidth !== 'undefined') {\n options.tableWidth = options.extendWidth ? 'auto' : 'wrap';\n console.error('Use of deprecated option: extendWidth, use tableWidth instead.');\n }\n if (typeof options.margins !== 'undefined') {\n if (typeof options.margin === 'undefined')\n options.margin = options.margins;\n console.error('Use of deprecated option: margins, use margin instead.');\n }\n if (options.startY && typeof options.startY !== 'number') {\n console.error('Invalid value for startY option', options.startY);\n delete options.startY;\n }\n if (!options.didDrawPage &&\n (options.afterPageContent ||\n options.beforePageContent ||\n options.afterPageAdd)) {\n console.error('The afterPageContent, beforePageContent and afterPageAdd hooks are deprecated. Use didDrawPage instead');\n options.didDrawPage = function (data) {\n doc.applyStyles(doc.userStyles);\n if (options.beforePageContent)\n options.beforePageContent(data);\n doc.applyStyles(doc.userStyles);\n if (options.afterPageContent)\n options.afterPageContent(data);\n doc.applyStyles(doc.userStyles);\n if (options.afterPageAdd && data.pageNumber > 1) {\n ;\n data.afterPageAdd(data);\n }\n doc.applyStyles(doc.userStyles);\n };\n }\n ;\n [\n 'createdHeaderCell',\n 'drawHeaderRow',\n 'drawRow',\n 'drawHeaderCell',\n ].forEach(function (name) {\n if (options[name]) {\n console.error(\"The \\\"\".concat(name, \"\\\" hook has changed in version 3.0, check the changelog for how to migrate.\"));\n }\n });\n [\n ['showFoot', 'showFooter'],\n ['showHead', 'showHeader'],\n ['didDrawPage', 'addPageContent'],\n ['didParseCell', 'createdCell'],\n ['headStyles', 'headerStyles'],\n ].forEach(function (_a) {\n var current = _a[0], deprecated = _a[1];\n if (options[deprecated]) {\n console.error(\"Use of deprecated option \".concat(deprecated, \". Use \").concat(current, \" instead\"));\n options[current] = options[deprecated];\n }\n });\n [\n ['padding', 'cellPadding'],\n ['lineHeight', 'rowHeight'],\n 'fontSize',\n 'overflow',\n ].forEach(function (o) {\n var deprecatedOption = typeof o === 'string' ? o : o[0];\n var style = typeof o === 'string' ? o : o[1];\n if (typeof options[deprecatedOption] !== 'undefined') {\n if (typeof options.styles[style] === 'undefined') {\n options.styles[style] = options[deprecatedOption];\n }\n console.error('Use of deprecated option: ' +\n deprecatedOption +\n ', use the style ' +\n style +\n ' instead.');\n }\n });\n for (var _b = 0, _c = [\n 'styles',\n 'bodyStyles',\n 'headStyles',\n 'footStyles',\n ]; _b < _c.length; _b++) {\n var styleProp = _c[_b];\n checkStyles(options[styleProp] || {});\n }\n var columnStyles = options['columnStyles'] || {};\n for (var _d = 0, _e = Object.keys(columnStyles); _d < _e.length; _d++) {\n var key = _e[_d];\n checkStyles(columnStyles[key] || {});\n }\n };\n for (var _i = 0, _a = [global, document, current]; _i < _a.length; _i++) {\n var options = _a[_i];\n _loop_1(options);\n }\n}\nexports[\"default\"] = default_1;\nfunction checkStyles(styles) {\n if (styles.rowHeight) {\n console.error('Use of deprecated style rowHeight. It is renamed to minCellHeight.');\n if (!styles.minCellHeight) {\n styles.minCellHeight = styles.rowHeight;\n }\n }\n else if (styles.columnWidth) {\n console.error('Use of deprecated style columnWidth. It is renamed to cellWidth.');\n if (!styles.cellWidth) {\n styles.cellWidth = styles.columnWidth;\n }\n }\n}\n\n\n/***/ }),\n\n/***/ 287:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Column = exports.Cell = exports.Row = exports.Table = void 0;\nvar config_1 = __webpack_require__(913);\nvar HookData_1 = __webpack_require__(662);\nvar common_1 = __webpack_require__(200);\nvar Table = /** @class */ (function () {\n function Table(input, content) {\n this.pageNumber = 1;\n // Deprecated, use pageNumber instead\n // Not using getter since:\n // https://github.com/simonbengtsson/jsPDF-AutoTable/issues/596\n this.pageCount = 1;\n this.id = input.id;\n this.settings = input.settings;\n this.styles = input.styles;\n this.hooks = input.hooks;\n this.columns = content.columns;\n this.head = content.head;\n this.body = content.body;\n this.foot = content.foot;\n }\n Table.prototype.getHeadHeight = function (columns) {\n return this.head.reduce(function (acc, row) { return acc + row.getMaxCellHeight(columns); }, 0);\n };\n Table.prototype.getFootHeight = function (columns) {\n return this.foot.reduce(function (acc, row) { return acc + row.getMaxCellHeight(columns); }, 0);\n };\n Table.prototype.allRows = function () {\n return this.head.concat(this.body).concat(this.foot);\n };\n Table.prototype.callCellHooks = function (doc, handlers, cell, row, column, cursor) {\n for (var _i = 0, handlers_1 = handlers; _i < handlers_1.length; _i++) {\n var handler = handlers_1[_i];\n var data = new HookData_1.CellHookData(doc, this, cell, row, column, cursor);\n var result = handler(data) === false;\n // Make sure text is always string[] since user can assign string\n cell.text = Array.isArray(cell.text) ? cell.text : [cell.text];\n if (result) {\n return false;\n }\n }\n return true;\n };\n Table.prototype.callEndPageHooks = function (doc, cursor) {\n doc.applyStyles(doc.userStyles);\n for (var _i = 0, _a = this.hooks.didDrawPage; _i < _a.length; _i++) {\n var handler = _a[_i];\n handler(new HookData_1.HookData(doc, this, cursor));\n }\n };\n Table.prototype.getWidth = function (pageWidth) {\n if (typeof this.settings.tableWidth === 'number') {\n return this.settings.tableWidth;\n }\n else if (this.settings.tableWidth === 'wrap') {\n var wrappedWidth = this.columns.reduce(function (total, col) { return total + col.wrappedWidth; }, 0);\n return wrappedWidth;\n }\n else {\n var margin = this.settings.margin;\n return pageWidth - margin.left - margin.right;\n }\n };\n return Table;\n}());\nexports.Table = Table;\nvar Row = /** @class */ (function () {\n function Row(raw, index, section, cells, spansMultiplePages) {\n if (spansMultiplePages === void 0) { spansMultiplePages = false; }\n this.height = 0;\n this.raw = raw;\n if (raw instanceof config_1.HtmlRowInput) {\n this.raw = raw._element;\n this.element = raw._element;\n }\n this.index = index;\n this.section = section;\n this.cells = cells;\n this.spansMultiplePages = spansMultiplePages;\n }\n Row.prototype.getMaxCellHeight = function (columns) {\n var _this = this;\n return columns.reduce(function (acc, column) { var _a; return Math.max(acc, ((_a = _this.cells[column.index]) === null || _a === void 0 ? void 0 : _a.height) || 0); }, 0);\n };\n Row.prototype.hasRowSpan = function (columns) {\n var _this = this;\n return (columns.filter(function (column) {\n var cell = _this.cells[column.index];\n if (!cell)\n return false;\n return cell.rowSpan > 1;\n }).length > 0);\n };\n Row.prototype.canEntireRowFit = function (height, columns) {\n return this.getMaxCellHeight(columns) <= height;\n };\n Row.prototype.getMinimumRowHeight = function (columns, doc) {\n var _this = this;\n return columns.reduce(function (acc, column) {\n var cell = _this.cells[column.index];\n if (!cell)\n return 0;\n var fontHeight = (cell.styles.fontSize / doc.scaleFactor()) * config_1.FONT_ROW_RATIO;\n var vPadding = cell.padding('vertical');\n var oneRowHeight = vPadding + fontHeight;\n return oneRowHeight > acc ? oneRowHeight : acc;\n }, 0);\n };\n return Row;\n}());\nexports.Row = Row;\nvar Cell = /** @class */ (function () {\n function Cell(raw, styles, section) {\n var _a, _b;\n this.contentHeight = 0;\n this.contentWidth = 0;\n this.wrappedWidth = 0;\n this.minReadableWidth = 0;\n this.minWidth = 0;\n this.width = 0;\n this.height = 0;\n this.x = 0;\n this.y = 0;\n this.styles = styles;\n this.section = section;\n this.raw = raw;\n var content = raw;\n if (raw != null && typeof raw === 'object' && !Array.isArray(raw)) {\n this.rowSpan = raw.rowSpan || 1;\n this.colSpan = raw.colSpan || 1;\n content = (_b = (_a = raw.content) !== null && _a !== void 0 ? _a : raw.title) !== null && _b !== void 0 ? _b : raw;\n if (raw._element) {\n this.raw = raw._element;\n }\n }\n else {\n this.rowSpan = 1;\n this.colSpan = 1;\n }\n // Stringify 0 and false, but not undefined or null\n var text = content != null ? '' + content : '';\n var splitRegex = /\\r\\n|\\r|\\n/g;\n this.text = text.split(splitRegex);\n }\n Cell.prototype.getTextPos = function () {\n var y;\n if (this.styles.valign === 'top') {\n y = this.y + this.padding('top');\n }\n else if (this.styles.valign === 'bottom') {\n y = this.y + this.height - this.padding('bottom');\n }\n else {\n var netHeight = this.height - this.padding('vertical');\n y = this.y + netHeight / 2 + this.padding('top');\n }\n var x;\n if (this.styles.halign === 'right') {\n x = this.x + this.width - this.padding('right');\n }\n else if (this.styles.halign === 'center') {\n var netWidth = this.width - this.padding('horizontal');\n x = this.x + netWidth / 2 + this.padding('left');\n }\n else {\n x = this.x + this.padding('left');\n }\n return { x: x, y: y };\n };\n Cell.prototype.getContentHeight = function (scaleFactor) {\n var lineCount = Array.isArray(this.text) ? this.text.length : 1;\n var fontHeight = (this.styles.fontSize / scaleFactor) * config_1.FONT_ROW_RATIO;\n var height = lineCount * fontHeight + this.padding('vertical');\n return Math.max(height, this.styles.minCellHeight);\n };\n Cell.prototype.padding = function (name) {\n var padding = (0, common_1.parseSpacing)(this.styles.cellPadding, 0);\n if (name === 'vertical') {\n return padding.top + padding.bottom;\n }\n else if (name === 'horizontal') {\n return padding.left + padding.right;\n }\n else {\n return padding[name];\n }\n };\n return Cell;\n}());\nexports.Cell = Cell;\nvar Column = /** @class */ (function () {\n function Column(dataKey, raw, index) {\n this.wrappedWidth = 0;\n this.minReadableWidth = 0;\n this.minWidth = 0;\n this.width = 0;\n this.dataKey = dataKey;\n this.raw = raw;\n this.index = index;\n }\n Column.prototype.getMaxCustomCellWidth = function (table) {\n var max = 0;\n for (var _i = 0, _a = table.allRows(); _i < _a.length; _i++) {\n var row = _a[_i];\n var cell = row.cells[this.index];\n if (cell && typeof cell.styles.cellWidth === 'number') {\n max = Math.max(max, cell.styles.cellWidth);\n }\n }\n return max;\n };\n return Column;\n}());\nexports.Column = Column;\n\n\n/***/ }),\n\n/***/ 360:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.assign = void 0;\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\nfunction assign(target, s, s1, s2, s3) {\n if (target == null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n var to = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n // eslint-disable-next-line prefer-rest-params\n var nextSource = arguments[index];\n if (nextSource != null) {\n // Skip over if undefined or null\n for (var nextKey in nextSource) {\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n return to;\n}\nexports.assign = assign;\n\n\n/***/ }),\n\n/***/ 858:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.createTable = void 0;\nvar documentHandler_1 = __webpack_require__(323);\nvar models_1 = __webpack_require__(287);\nvar widthCalculator_1 = __webpack_require__(189);\nvar config_1 = __webpack_require__(913);\nvar polyfills_1 = __webpack_require__(360);\nfunction createTable(jsPDFDoc, input) {\n var doc = new documentHandler_1.DocHandler(jsPDFDoc);\n var content = parseContent(input, doc.scaleFactor());\n var table = new models_1.Table(input, content);\n (0, widthCalculator_1.calculateWidths)(doc, table);\n doc.applyStyles(doc.userStyles);\n return table;\n}\nexports.createTable = createTable;\nfunction parseContent(input, sf) {\n var content = input.content;\n var columns = createColumns(content.columns);\n // If no head or foot is set, try generating it with content from columns\n if (content.head.length === 0) {\n var sectionRow = generateSectionRow(columns, 'head');\n if (sectionRow)\n content.head.push(sectionRow);\n }\n if (content.foot.length === 0) {\n var sectionRow = generateSectionRow(columns, 'foot');\n if (sectionRow)\n content.foot.push(sectionRow);\n }\n var theme = input.settings.theme;\n var styles = input.styles;\n return {\n columns: columns,\n head: parseSection('head', content.head, columns, styles, theme, sf),\n body: parseSection('body', content.body, columns, styles, theme, sf),\n foot: parseSection('foot', content.foot, columns, styles, theme, sf),\n };\n}\nfunction parseSection(sectionName, sectionRows, columns, styleProps, theme, scaleFactor) {\n var rowSpansLeftForColumn = {};\n var result = sectionRows.map(function (rawRow, rowIndex) {\n var skippedRowForRowSpans = 0;\n var cells = {};\n var colSpansAdded = 0;\n var columnSpansLeft = 0;\n for (var _i = 0, columns_1 = columns; _i < columns_1.length; _i++) {\n var column = columns_1[_i];\n if (rowSpansLeftForColumn[column.index] == null ||\n rowSpansLeftForColumn[column.index].left === 0) {\n if (columnSpansLeft === 0) {\n var rawCell = void 0;\n if (Array.isArray(rawRow)) {\n rawCell =\n rawRow[column.index - colSpansAdded - skippedRowForRowSpans];\n }\n else {\n rawCell = rawRow[column.dataKey];\n }\n var cellInputStyles = {};\n if (typeof rawCell === 'object' && !Array.isArray(rawCell)) {\n cellInputStyles = (rawCell === null || rawCell === void 0 ? void 0 : rawCell.styles) || {};\n }\n var styles = cellStyles(sectionName, column, rowIndex, theme, styleProps, scaleFactor, cellInputStyles);\n var cell = new models_1.Cell(rawCell, styles, sectionName);\n // dataKey is not used internally no more but keep for\n // backwards compat in hooks\n cells[column.dataKey] = cell;\n cells[column.index] = cell;\n columnSpansLeft = cell.colSpan - 1;\n rowSpansLeftForColumn[column.index] = {\n left: cell.rowSpan - 1,\n times: columnSpansLeft,\n };\n }\n else {\n columnSpansLeft--;\n colSpansAdded++;\n }\n }\n else {\n rowSpansLeftForColumn[column.index].left--;\n columnSpansLeft = rowSpansLeftForColumn[column.index].times;\n skippedRowForRowSpans++;\n }\n }\n return new models_1.Row(rawRow, rowIndex, sectionName, cells);\n });\n return result;\n}\nfunction generateSectionRow(columns, section) {\n var sectionRow = {};\n columns.forEach(function (col) {\n if (col.raw != null) {\n var title = getSectionTitle(section, col.raw);\n if (title != null)\n sectionRow[col.dataKey] = title;\n }\n });\n return Object.keys(sectionRow).length > 0 ? sectionRow : null;\n}\nfunction getSectionTitle(section, column) {\n if (section === 'head') {\n if (typeof column === 'object') {\n return column.header || column.title || null;\n }\n else if (typeof column === 'string' || typeof column === 'number') {\n return column;\n }\n }\n else if (section === 'foot' && typeof column === 'object') {\n return column.footer;\n }\n return null;\n}\nfunction createColumns(columns) {\n return columns.map(function (input, index) {\n var _a, _b;\n var key;\n if (typeof input === 'object') {\n key = (_b = (_a = input.dataKey) !== null && _a !== void 0 ? _a : input.key) !== null && _b !== void 0 ? _b : index;\n }\n else {\n key = index;\n }\n return new models_1.Column(key, input, index);\n });\n}\nfunction cellStyles(sectionName, column, rowIndex, themeName, styles, scaleFactor, cellInputStyles) {\n var theme = (0, config_1.getTheme)(themeName);\n var sectionStyles;\n if (sectionName === 'head') {\n sectionStyles = styles.headStyles;\n }\n else if (sectionName === 'body') {\n sectionStyles = styles.bodyStyles;\n }\n else if (sectionName === 'foot') {\n sectionStyles = styles.footStyles;\n }\n var otherStyles = (0, polyfills_1.assign)({}, theme.table, theme[sectionName], styles.styles, sectionStyles);\n var columnStyles = styles.columnStyles[column.dataKey] ||\n styles.columnStyles[column.index] ||\n {};\n var colStyles = sectionName === 'body' ? columnStyles : {};\n var rowStyles = sectionName === 'body' && rowIndex % 2 === 0\n ? (0, polyfills_1.assign)({}, theme.alternateRow, styles.alternateRowStyles)\n : {};\n var defaultStyle = (0, config_1.defaultStyles)(scaleFactor);\n var themeStyles = (0, polyfills_1.assign)({}, defaultStyle, otherStyles, rowStyles, colStyles);\n return (0, polyfills_1.assign)(themeStyles, cellInputStyles);\n}\n\n\n/***/ }),\n\n/***/ 49:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.addPage = exports.drawTable = void 0;\nvar config_1 = __webpack_require__(913);\nvar common_1 = __webpack_require__(200);\nvar models_1 = __webpack_require__(287);\nvar documentHandler_1 = __webpack_require__(323);\nvar polyfills_1 = __webpack_require__(360);\nvar autoTableText_1 = __webpack_require__(938);\nvar tablePrinter_1 = __webpack_require__(435);\nfunction drawTable(jsPDFDoc, table) {\n var settings = table.settings;\n var startY = settings.startY;\n var margin = settings.margin;\n var cursor = {\n x: margin.left,\n y: startY,\n };\n var sectionsHeight = table.getHeadHeight(table.columns) + table.getFootHeight(table.columns);\n var minTableBottomPos = startY + margin.bottom + sectionsHeight;\n if (settings.pageBreak === 'avoid') {\n var rows = table.allRows();\n var tableHeight = rows.reduce(function (acc, row) { return acc + row.height; }, 0);\n minTableBottomPos += tableHeight;\n }\n var doc = new documentHandler_1.DocHandler(jsPDFDoc);\n if (settings.pageBreak === 'always' ||\n (settings.startY != null && minTableBottomPos > doc.pageSize().height)) {\n nextPage(doc);\n cursor.y = margin.top;\n }\n var startPos = (0, polyfills_1.assign)({}, cursor);\n table.startPageNumber = doc.pageNumber();\n if (settings.horizontalPageBreak === true) {\n // managed flow for split columns\n printTableWithHorizontalPageBreak(doc, table, startPos, cursor);\n }\n else {\n // normal flow\n doc.applyStyles(doc.userStyles);\n if (settings.showHead === 'firstPage' ||\n settings.showHead === 'everyPage') {\n table.head.forEach(function (row) {\n return printRow(doc, table, row, cursor, table.columns);\n });\n }\n doc.applyStyles(doc.userStyles);\n table.body.forEach(function (row, index) {\n var isLastRow = index === table.body.length - 1;\n printFullRow(doc, table, row, isLastRow, startPos, cursor, table.columns);\n });\n doc.applyStyles(doc.userStyles);\n if (settings.showFoot === 'lastPage' || settings.showFoot === 'everyPage') {\n table.foot.forEach(function (row) {\n return printRow(doc, table, row, cursor, table.columns);\n });\n }\n }\n (0, common_1.addTableBorder)(doc, table, startPos, cursor);\n table.callEndPageHooks(doc, cursor);\n table.finalY = cursor.y;\n jsPDFDoc.lastAutoTable = table;\n jsPDFDoc.previousAutoTable = table; // Deprecated\n if (jsPDFDoc.autoTable)\n jsPDFDoc.autoTable.previous = table; // Deprecated\n doc.applyStyles(doc.userStyles);\n}\nexports.drawTable = drawTable;\nfunction printTableWithHorizontalPageBreak(doc, table, startPos, cursor) {\n // calculate width of columns and render only those which can fit into page\n var allColumnsCanFitResult = tablePrinter_1.default.calculateAllColumnsCanFitInPage(doc, table);\n allColumnsCanFitResult.map(function (colsAndIndexes, index) {\n doc.applyStyles(doc.userStyles);\n // add page to print next columns in new page\n if (index > 0) {\n addPage(doc, table, startPos, cursor, colsAndIndexes.columns);\n }\n else {\n // print head for selected columns\n printHead(doc, table, cursor, colsAndIndexes.columns);\n }\n // print body for selected columns\n printBody(doc, table, startPos, cursor, colsAndIndexes.columns);\n // print foot for selected columns\n printFoot(doc, table, cursor, colsAndIndexes.columns);\n });\n}\nfunction printHead(doc, table, cursor, columns) {\n var settings = table.settings;\n doc.applyStyles(doc.userStyles);\n if (settings.showHead === 'firstPage' || settings.showHead === 'everyPage') {\n table.head.forEach(function (row) { return printRow(doc, table, row, cursor, columns); });\n }\n}\nfunction printBody(doc, table, startPos, cursor, columns) {\n doc.applyStyles(doc.userStyles);\n table.body.forEach(function (row, index) {\n var isLastRow = index === table.body.length - 1;\n printFullRow(doc, table, row, isLastRow, startPos, cursor, columns);\n });\n}\nfunction printFoot(doc, table, cursor, columns) {\n var settings = table.settings;\n doc.applyStyles(doc.userStyles);\n if (settings.showFoot === 'lastPage' || settings.showFoot === 'everyPage') {\n table.foot.forEach(function (row) { return printRow(doc, table, row, cursor, columns); });\n }\n}\nfunction getRemainingLineCount(cell, remainingPageSpace, doc) {\n var fontHeight = (cell.styles.fontSize / doc.scaleFactor()) * config_1.FONT_ROW_RATIO;\n var vPadding = cell.padding('vertical');\n var remainingLines = Math.floor((remainingPageSpace - vPadding) / fontHeight);\n return Math.max(0, remainingLines);\n}\nfunction modifyRowToFit(row, remainingPageSpace, table, doc) {\n var cells = {};\n row.spansMultiplePages = true;\n row.height = 0;\n var rowHeight = 0;\n for (var _i = 0, _a = table.columns; _i < _a.length; _i++) {\n var column = _a[_i];\n var cell = row.cells[column.index];\n if (!cell)\n continue;\n if (!Array.isArray(cell.text)) {\n cell.text = [cell.text];\n }\n var remainderCell = new models_1.Cell(cell.raw, cell.styles, cell.section);\n remainderCell = (0, polyfills_1.assign)(remainderCell, cell);\n remainderCell.text = [];\n var remainingLineCount = getRemainingLineCount(cell, remainingPageSpace, doc);\n if (cell.text.length > remainingLineCount) {\n remainderCell.text = cell.text.splice(remainingLineCount, cell.text.length);\n }\n var scaleFactor = doc.scaleFactor();\n cell.contentHeight = cell.getContentHeight(scaleFactor);\n if (cell.contentHeight >= remainingPageSpace) {\n cell.contentHeight = remainingPageSpace;\n remainderCell.styles.minCellHeight -= remainingPageSpace;\n }\n if (cell.contentHeight > row.height) {\n row.height = cell.contentHeight;\n }\n remainderCell.contentHeight = remainderCell.getContentHeight(scaleFactor);\n if (remainderCell.contentHeight > rowHeight) {\n rowHeight = remainderCell.contentHeight;\n }\n cells[column.index] = remainderCell;\n }\n var remainderRow = new models_1.Row(row.raw, -1, row.section, cells, true);\n remainderRow.height = rowHeight;\n for (var _b = 0, _c = table.columns; _b < _c.length; _b++) {\n var column = _c[_b];\n var remainderCell = remainderRow.cells[column.index];\n if (remainderCell) {\n remainderCell.height = remainderRow.height;\n }\n var cell = row.cells[column.index];\n if (cell) {\n cell.height = row.height;\n }\n }\n return remainderRow;\n}\nfunction shouldPrintOnCurrentPage(doc, row, remainingPageSpace, table) {\n var pageHeight = doc.pageSize().height;\n var margin = table.settings.margin;\n var marginHeight = margin.top + margin.bottom;\n var maxRowHeight = pageHeight - marginHeight;\n if (row.section === 'body') {\n // Should also take into account that head and foot is not\n // on every page with some settings\n maxRowHeight -=\n table.getHeadHeight(table.columns) + table.getFootHeight(table.columns);\n }\n var minRowHeight = row.getMinimumRowHeight(table.columns, doc);\n var minRowFits = minRowHeight < remainingPageSpace;\n if (minRowHeight > maxRowHeight) {\n console.error(\"Will not be able to print row \".concat(row.index, \" correctly since it's minimum height is larger than page height\"));\n return true;\n }\n if (!minRowFits) {\n return false;\n }\n var rowHasRowSpanCell = row.hasRowSpan(table.columns);\n var rowHigherThanPage = row.getMaxCellHeight(table.columns) > maxRowHeight;\n if (rowHigherThanPage) {\n if (rowHasRowSpanCell) {\n console.error(\"The content of row \".concat(row.index, \" will not be drawn correctly since drawing rows with a height larger than the page height and has cells with rowspans is not supported.\"));\n }\n return true;\n }\n if (rowHasRowSpanCell) {\n // Currently a new page is required whenever a rowspan row don't fit a page.\n return false;\n }\n if (table.settings.rowPageBreak === 'avoid') {\n return false;\n }\n // In all other cases print the row on current page\n return true;\n}\nfunction printFullRow(doc, table, row, isLastRow, startPos, cursor, columns) {\n var remainingSpace = getRemainingPageSpace(doc, table, isLastRow, cursor);\n if (row.canEntireRowFit(remainingSpace, columns)) {\n printRow(doc, table, row, cursor, columns);\n }\n else {\n if (shouldPrintOnCurrentPage(doc, row, remainingSpace, table)) {\n var remainderRow = modifyRowToFit(row, remainingSpace, table, doc);\n printRow(doc, table, row, cursor, columns);\n addPage(doc, table, startPos, cursor, columns);\n printFullRow(doc, table, remainderRow, isLastRow, startPos, cursor, columns);\n }\n else {\n addPage(doc, table, startPos, cursor, columns);\n printFullRow(doc, table, row, isLastRow, startPos, cursor, columns);\n }\n }\n}\nfunction printRow(doc, table, row, cursor, columns) {\n cursor.x = table.settings.margin.left;\n for (var _i = 0, columns_1 = columns; _i < columns_1.length; _i++) {\n var column = columns_1[_i];\n var cell = row.cells[column.index];\n if (!cell) {\n cursor.x += column.width;\n continue;\n }\n doc.applyStyles(cell.styles);\n cell.x = cursor.x;\n cell.y = cursor.y;\n var result = table.callCellHooks(doc, table.hooks.willDrawCell, cell, row, column, cursor);\n if (result === false) {\n cursor.x += column.width;\n continue;\n }\n drawCellBorders(doc, cell, cursor);\n var textPos = cell.getTextPos();\n (0, autoTableText_1.default)(cell.text, textPos.x, textPos.y, {\n halign: cell.styles.halign,\n valign: cell.styles.valign,\n maxWidth: Math.ceil(cell.width - cell.padding('left') - cell.padding('right')),\n }, doc.getDocument());\n table.callCellHooks(doc, table.hooks.didDrawCell, cell, row, column, cursor);\n cursor.x += column.width;\n }\n cursor.y += row.height;\n}\nfunction drawCellBorders(doc, cell, cursor) {\n var cellStyles = cell.styles;\n doc.getDocument().setFillColor(doc.getDocument().getFillColor());\n if (typeof cellStyles.lineWidth === 'number') {\n // prints normal cell border\n var fillStyle = (0, common_1.getFillStyle)(cellStyles.lineWidth, cellStyles.fillColor);\n if (fillStyle) {\n doc.rect(cell.x, cursor.y, cell.width, cell.height, fillStyle);\n }\n }\n else if (typeof cellStyles.lineWidth === 'object') {\n doc.rect(cell.x, cursor.y, cell.width, cell.height, 'F');\n var sides = Object.keys(cellStyles.lineWidth);\n var lineWidth_1 = cellStyles.lineWidth;\n sides.map(function (side) {\n var fillStyle = (0, common_1.getFillStyle)(lineWidth_1[side], cellStyles.fillColor);\n drawBorderForSide(doc, cell, cursor, side, fillStyle || 'S', lineWidth_1[side]);\n });\n }\n}\nfunction drawBorderForSide(doc, cell, cursor, side, fillStyle, lineWidth) {\n var x1, y1, x2, y2;\n switch (side) {\n case 'top':\n x1 = cursor.x;\n y1 = cursor.y;\n x2 = cursor.x + cell.width;\n y2 = cursor.y;\n break;\n case 'left':\n x1 = cursor.x;\n y1 = cursor.y;\n x2 = cursor.x;\n y2 = cursor.y + cell.height;\n break;\n case 'right':\n x1 = cursor.x + cell.width;\n y1 = cursor.y;\n x2 = cursor.x + cell.width;\n y2 = cursor.y + cell.height;\n break;\n default:\n // default it will print bottom\n x1 = cursor.x;\n y1 = cursor.y + cell.height - lineWidth;\n x2 = cursor.x + cell.width;\n y2 = cursor.y + cell.height - lineWidth;\n break;\n }\n doc.getDocument().setLineWidth(lineWidth);\n doc.getDocument().line(x1, y1, x2, y2, fillStyle);\n}\nfunction getRemainingPageSpace(doc, table, isLastRow, cursor) {\n var bottomContentHeight = table.settings.margin.bottom;\n var showFoot = table.settings.showFoot;\n if (showFoot === 'everyPage' || (showFoot === 'lastPage' && isLastRow)) {\n bottomContentHeight += table.getFootHeight(table.columns);\n }\n return doc.pageSize().height - cursor.y - bottomContentHeight;\n}\nfunction addPage(doc, table, startPos, cursor, columns) {\n if (columns === void 0) { columns = []; }\n doc.applyStyles(doc.userStyles);\n if (table.settings.showFoot === 'everyPage') {\n table.foot.forEach(function (row) { return printRow(doc, table, row, cursor, columns); });\n }\n // Add user content just before adding new page ensure it will\n // be drawn above other things on the page\n table.callEndPageHooks(doc, cursor);\n var margin = table.settings.margin;\n (0, common_1.addTableBorder)(doc, table, startPos, cursor);\n nextPage(doc);\n table.pageNumber++;\n table.pageCount++;\n cursor.x = margin.left;\n cursor.y = margin.top;\n startPos.y = margin.top;\n if (table.settings.showHead === 'everyPage') {\n table.head.forEach(function (row) { return printRow(doc, table, row, cursor, columns); });\n }\n}\nexports.addPage = addPage;\nfunction nextPage(doc) {\n var current = doc.pageNumber();\n doc.setPage(current + 1);\n var newCurrent = doc.pageNumber();\n if (newCurrent === current) {\n doc.addPage();\n }\n}\n\n\n/***/ }),\n\n/***/ 435:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar common_1 = __webpack_require__(200);\nvar getPageAvailableWidth = function (doc, table) {\n var margins = (0, common_1.parseSpacing)(table.settings.margin, 0);\n var availablePageWidth = doc.pageSize().width - (margins.left + margins.right);\n return availablePageWidth;\n};\n// get columns can be fit into page\nvar getColumnsCanFitInPage = function (doc, table, config) {\n if (config === void 0) { config = {}; }\n // get page width\n var availablePageWidth = getPageAvailableWidth(doc, table);\n var remainingWidth = availablePageWidth;\n // get column data key to repeat\n var horizontalPageBreakRepeat = table.settings.horizontalPageBreakRepeat;\n var repeatColumn = null;\n var cols = [];\n var columns = [];\n var len = table.columns.length;\n var i = config && config.start ? config.start : 0;\n // code to repeat the given column in split pages\n if (horizontalPageBreakRepeat != null) {\n repeatColumn = table.columns.find(function (item) {\n return item.dataKey === horizontalPageBreakRepeat ||\n item.index === horizontalPageBreakRepeat;\n });\n if (repeatColumn) {\n cols.push(repeatColumn.index);\n columns.push(table.columns[repeatColumn.index]);\n remainingWidth = remainingWidth - repeatColumn.wrappedWidth;\n }\n }\n while (i < len) {\n if ((repeatColumn === null || repeatColumn === void 0 ? void 0 : repeatColumn.index) === i) {\n i++; // prevent columnDataKeyToRepeat to be pushed twice in a page\n continue;\n }\n var colWidth = table.columns[i].wrappedWidth;\n if (remainingWidth < colWidth) {\n // check if it's first column in the sequence then add it into result\n if (i === 0 || i === config.start) {\n // this cell width is more than page width set it available pagewidth\n /* table.columns[i].wrappedWidth = availablePageWidth\n table.columns[i].minWidth = availablePageWidth */\n cols.push(i);\n columns.push(table.columns[i]);\n }\n // can't print more columns in same page\n break;\n }\n cols.push(i);\n columns.push(table.columns[i]);\n remainingWidth = remainingWidth - colWidth;\n i++;\n }\n return { colIndexes: cols, columns: columns, lastIndex: i };\n};\nvar calculateAllColumnsCanFitInPage = function (doc, table) {\n // const margins = table.settings.margin;\n // const availablePageWidth = doc.pageSize().width - (margins.left + margins.right);\n var allResults = [];\n var index = 0;\n var len = table.columns.length;\n while (index < len) {\n var result = getColumnsCanFitInPage(doc, table, {\n start: index === 0 ? 0 : index,\n });\n if (result && result.columns && result.columns.length) {\n index = result.lastIndex;\n allResults.push(result);\n }\n else {\n index++;\n }\n }\n return allResults;\n};\nexports[\"default\"] = {\n getColumnsCanFitInPage: getColumnsCanFitInPage,\n calculateAllColumnsCanFitInPage: calculateAllColumnsCanFitInPage,\n getPageAvailableWidth: getPageAvailableWidth,\n};\n\n\n/***/ }),\n\n/***/ 189:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ellipsize = exports.resizeColumns = exports.calculateWidths = void 0;\nvar common_1 = __webpack_require__(200);\nvar tablePrinter_1 = __webpack_require__(435);\n/**\n * Calculate the column widths\n */\nfunction calculateWidths(doc, table) {\n calculate(doc, table);\n var resizableColumns = [];\n var initialTableWidth = 0;\n table.columns.forEach(function (column) {\n var customWidth = column.getMaxCustomCellWidth(table);\n if (customWidth) {\n // final column width\n column.width = customWidth;\n }\n else {\n // initial column width (will be resized)\n column.width = column.wrappedWidth;\n resizableColumns.push(column);\n }\n initialTableWidth += column.width;\n });\n // width difference that needs to be distributed\n var resizeWidth = table.getWidth(doc.pageSize().width) - initialTableWidth;\n // first resize attempt: with respect to minReadableWidth and minWidth\n if (resizeWidth) {\n resizeWidth = resizeColumns(resizableColumns, resizeWidth, function (column) {\n return Math.max(column.minReadableWidth, column.minWidth);\n });\n }\n // second resize attempt: ignore minReadableWidth but respect minWidth\n if (resizeWidth) {\n resizeWidth = resizeColumns(resizableColumns, resizeWidth, function (column) { return column.minWidth; });\n }\n resizeWidth = Math.abs(resizeWidth);\n if (!table.settings.horizontalPageBreak &&\n resizeWidth > 0.1 / doc.scaleFactor()) {\n // Table can't get smaller due to custom-width or minWidth restrictions\n // We can't really do much here. Up to user to for example\n // reduce font size, increase page size or remove custom cell widths\n // to allow more columns to be reduced in size\n resizeWidth = resizeWidth < 1 ? resizeWidth : Math.round(resizeWidth);\n console.error(\"Of the table content, \".concat(resizeWidth, \" units width could not fit page\"));\n }\n applyColSpans(table);\n fitContent(table, doc);\n applyRowSpans(table);\n}\nexports.calculateWidths = calculateWidths;\nfunction calculate(doc, table) {\n var sf = doc.scaleFactor();\n var horizontalPageBreak = table.settings.horizontalPageBreak;\n var availablePageWidth = tablePrinter_1.default.getPageAvailableWidth(doc, table);\n table.allRows().forEach(function (row) {\n for (var _i = 0, _a = table.columns; _i < _a.length; _i++) {\n var column = _a[_i];\n var cell = row.cells[column.index];\n if (!cell)\n continue;\n var hooks = table.hooks.didParseCell;\n table.callCellHooks(doc, hooks, cell, row, column, null);\n var padding = cell.padding('horizontal');\n cell.contentWidth = (0, common_1.getStringWidth)(cell.text, cell.styles, doc) + padding;\n var longestWordWidth = (0, common_1.getStringWidth)(cell.text.join(' ').split(/\\s+/), cell.styles, doc);\n cell.minReadableWidth = longestWordWidth + cell.padding('horizontal');\n if (typeof cell.styles.cellWidth === 'number') {\n cell.minWidth = cell.styles.cellWidth;\n cell.wrappedWidth = cell.styles.cellWidth;\n }\n else if (cell.styles.cellWidth === 'wrap' ||\n horizontalPageBreak === true) {\n // cell width should not be more than available page width\n if (cell.contentWidth > availablePageWidth) {\n cell.minWidth = availablePageWidth;\n cell.wrappedWidth = availablePageWidth;\n }\n else {\n cell.minWidth = cell.contentWidth;\n cell.wrappedWidth = cell.contentWidth;\n }\n }\n else {\n // auto\n var defaultMinWidth = 10 / sf;\n cell.minWidth = cell.styles.minCellWidth || defaultMinWidth;\n cell.wrappedWidth = cell.contentWidth;\n if (cell.minWidth > cell.wrappedWidth) {\n cell.wrappedWidth = cell.minWidth;\n }\n }\n }\n });\n table.allRows().forEach(function (row) {\n for (var _i = 0, _a = table.columns; _i < _a.length; _i++) {\n var column = _a[_i];\n var cell = row.cells[column.index];\n // For now we ignore the minWidth and wrappedWidth of colspan cells when calculating colspan widths.\n // Could probably be improved upon however.\n if (cell && cell.colSpan === 1) {\n column.wrappedWidth = Math.max(column.wrappedWidth, cell.wrappedWidth);\n column.minWidth = Math.max(column.minWidth, cell.minWidth);\n column.minReadableWidth = Math.max(column.minReadableWidth, cell.minReadableWidth);\n }\n else {\n // Respect cellWidth set in columnStyles even if there is no cells for this column\n // or if the column only have colspan cells. Since the width of colspan cells\n // does not affect the width of columns, setting columnStyles cellWidth enables the\n // user to at least do it manually.\n // Note that this is not perfect for now since for example row and table styles are\n // not accounted for\n var columnStyles = table.styles.columnStyles[column.dataKey] ||\n table.styles.columnStyles[column.index] ||\n {};\n var cellWidth = columnStyles.cellWidth || columnStyles.minCellWidth;\n if (cellWidth && typeof cellWidth === 'number') {\n column.minWidth = cellWidth;\n column.wrappedWidth = cellWidth;\n }\n }\n if (cell) {\n // Make sure all columns get at least min width even though width calculations are not based on them\n if (cell.colSpan > 1 && !column.minWidth) {\n column.minWidth = cell.minWidth;\n }\n if (cell.colSpan > 1 && !column.wrappedWidth) {\n column.wrappedWidth = cell.minWidth;\n }\n }\n }\n });\n}\n/**\n * Distribute resizeWidth on passed resizable columns\n */\nfunction resizeColumns(columns, resizeWidth, getMinWidth) {\n var initialResizeWidth = resizeWidth;\n var sumWrappedWidth = columns.reduce(function (acc, column) { return acc + column.wrappedWidth; }, 0);\n for (var i = 0; i < columns.length; i++) {\n var column = columns[i];\n var ratio = column.wrappedWidth / sumWrappedWidth;\n var suggestedChange = initialResizeWidth * ratio;\n var suggestedWidth = column.width + suggestedChange;\n var minWidth = getMinWidth(column);\n var newWidth = suggestedWidth < minWidth ? minWidth : suggestedWidth;\n resizeWidth -= newWidth - column.width;\n column.width = newWidth;\n }\n resizeWidth = Math.round(resizeWidth * 1e10) / 1e10;\n // Run the resizer again if there's remaining width needs\n // to be distributed and there're columns that can be resized\n if (resizeWidth) {\n var resizableColumns = columns.filter(function (column) {\n return resizeWidth < 0\n ? column.width > getMinWidth(column) // check if column can shrink\n : true; // check if column can grow\n });\n if (resizableColumns.length) {\n resizeWidth = resizeColumns(resizableColumns, resizeWidth, getMinWidth);\n }\n }\n return resizeWidth;\n}\nexports.resizeColumns = resizeColumns;\nfunction applyRowSpans(table) {\n var rowSpanCells = {};\n var colRowSpansLeft = 1;\n var all = table.allRows();\n for (var rowIndex = 0; rowIndex < all.length; rowIndex++) {\n var row = all[rowIndex];\n for (var _i = 0, _a = table.columns; _i < _a.length; _i++) {\n var column = _a[_i];\n var data = rowSpanCells[column.index];\n if (colRowSpansLeft > 1) {\n colRowSpansLeft--;\n delete row.cells[column.index];\n }\n else if (data) {\n data.cell.height += row.height;\n colRowSpansLeft = data.cell.colSpan;\n delete row.cells[column.index];\n data.left--;\n if (data.left <= 1) {\n delete rowSpanCells[column.index];\n }\n }\n else {\n var cell = row.cells[column.index];\n if (!cell) {\n continue;\n }\n cell.height = row.height;\n if (cell.rowSpan > 1) {\n var remaining = all.length - rowIndex;\n var left = cell.rowSpan > remaining ? remaining : cell.rowSpan;\n rowSpanCells[column.index] = { cell: cell, left: left, row: row };\n }\n }\n }\n }\n}\nfunction applyColSpans(table) {\n var all = table.allRows();\n for (var rowIndex = 0; rowIndex < all.length; rowIndex++) {\n var row = all[rowIndex];\n var colSpanCell = null;\n var combinedColSpanWidth = 0;\n var colSpansLeft = 0;\n for (var columnIndex = 0; columnIndex < table.columns.length; columnIndex++) {\n var column = table.columns[columnIndex];\n // Width and colspan\n colSpansLeft -= 1;\n if (colSpansLeft > 1 && table.columns[columnIndex + 1]) {\n combinedColSpanWidth += column.width;\n delete row.cells[column.index];\n }\n else if (colSpanCell) {\n var cell = colSpanCell;\n delete row.cells[column.index];\n colSpanCell = null;\n cell.width = column.width + combinedColSpanWidth;\n }\n else {\n var cell = row.cells[column.index];\n if (!cell)\n continue;\n colSpansLeft = cell.colSpan;\n combinedColSpanWidth = 0;\n if (cell.colSpan > 1) {\n colSpanCell = cell;\n combinedColSpanWidth += column.width;\n continue;\n }\n cell.width = column.width + combinedColSpanWidth;\n }\n }\n }\n}\nfunction fitContent(table, doc) {\n var rowSpanHeight = { count: 0, height: 0 };\n for (var _i = 0, _a = table.allRows(); _i < _a.length; _i++) {\n var row = _a[_i];\n for (var _b = 0, _c = table.columns; _b < _c.length; _b++) {\n var column = _c[_b];\n var cell = row.cells[column.index];\n if (!cell)\n continue;\n doc.applyStyles(cell.styles, true);\n var textSpace = cell.width - cell.padding('horizontal');\n if (cell.styles.overflow === 'linebreak') {\n // Add one pt to textSpace to fix rounding error\n cell.text = doc.splitTextToSize(cell.text, textSpace + 1 / doc.scaleFactor(), { fontSize: cell.styles.fontSize });\n }\n else if (cell.styles.overflow === 'ellipsize') {\n cell.text = ellipsize(cell.text, textSpace, cell.styles, doc, '...');\n }\n else if (cell.styles.overflow === 'hidden') {\n cell.text = ellipsize(cell.text, textSpace, cell.styles, doc, '');\n }\n else if (typeof cell.styles.overflow === 'function') {\n cell.text = cell.styles.overflow(cell.text, textSpace);\n }\n cell.contentHeight = cell.getContentHeight(doc.scaleFactor());\n var realContentHeight = cell.contentHeight / cell.rowSpan;\n if (cell.rowSpan > 1 &&\n rowSpanHeight.count * rowSpanHeight.height <\n realContentHeight * cell.rowSpan) {\n rowSpanHeight = { height: realContentHeight, count: cell.rowSpan };\n }\n else if (rowSpanHeight && rowSpanHeight.count > 0) {\n if (rowSpanHeight.height > realContentHeight) {\n realContentHeight = rowSpanHeight.height;\n }\n }\n if (realContentHeight > row.height) {\n row.height = realContentHeight;\n }\n }\n rowSpanHeight.count--;\n }\n}\nfunction ellipsize(text, width, styles, doc, overflow) {\n return text.map(function (str) { return ellipsizeStr(str, width, styles, doc, overflow); });\n}\nexports.ellipsize = ellipsize;\nfunction ellipsizeStr(text, width, styles, doc, overflow) {\n var precision = 10000 * doc.scaleFactor();\n width = Math.ceil(width * precision) / precision;\n if (width >= (0, common_1.getStringWidth)(text, styles, doc)) {\n return text;\n }\n while (width < (0, common_1.getStringWidth)(text + overflow, styles, doc)) {\n if (text.length <= 1) {\n break;\n }\n text = text.substring(0, text.length - 1);\n }\n return text.trim() + overflow;\n}\n\n\n/***/ }),\n\n/***/ 84:\n/***/ (function(module) {\n\nif(typeof __WEBPACK_EXTERNAL_MODULE__84__ === 'undefined') { var e = new Error(\"Cannot find module 'undefined'\"); e.code = 'MODULE_NOT_FOUND'; throw e; }\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__84__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n!function() {\nvar exports = __webpack_exports__;\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Cell = exports.Column = exports.Row = exports.Table = exports.CellHookData = exports.__drawTable = exports.__createTable = exports.applyPlugin = void 0;\nvar applyPlugin_1 = __webpack_require__(790);\nvar inputParser_1 = __webpack_require__(587);\nvar tableDrawer_1 = __webpack_require__(49);\nvar tableCalculator_1 = __webpack_require__(858);\nvar models_1 = __webpack_require__(287);\nObject.defineProperty(exports, \"Table\", ({ enumerable: true, get: function () { return models_1.Table; } }));\nvar HookData_1 = __webpack_require__(662);\nObject.defineProperty(exports, \"CellHookData\", ({ enumerable: true, get: function () { return HookData_1.CellHookData; } }));\nvar models_2 = __webpack_require__(287);\nObject.defineProperty(exports, \"Cell\", ({ enumerable: true, get: function () { return models_2.Cell; } }));\nObject.defineProperty(exports, \"Column\", ({ enumerable: true, get: function () { return models_2.Column; } }));\nObject.defineProperty(exports, \"Row\", ({ enumerable: true, get: function () { return models_2.Row; } }));\n// export { applyPlugin } didn't export applyPlugin\n// to index.d.ts for some reason\nfunction applyPlugin(jsPDF) {\n (0, applyPlugin_1.default)(jsPDF);\n}\nexports.applyPlugin = applyPlugin;\nfunction autoTable(d, options) {\n var input = (0, inputParser_1.parseInput)(d, options);\n var table = (0, tableCalculator_1.createTable)(d, input);\n (0, tableDrawer_1.drawTable)(d, table);\n}\nexports[\"default\"] = autoTable;\n// Experimental export\nfunction __createTable(d, options) {\n var input = (0, inputParser_1.parseInput)(d, options);\n return (0, tableCalculator_1.createTable)(d, input);\n}\nexports.__createTable = __createTable;\nfunction __drawTable(d, table) {\n (0, tableDrawer_1.drawTable)(d, table);\n}\nexports.__drawTable = __drawTable;\ntry {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n var jsPDF = __webpack_require__(84);\n // Webpack imported jspdf instead of jsPDF for some reason\n // while it seemed to work everywhere else.\n if (jsPDF.jsPDF)\n jsPDF = jsPDF.jsPDF;\n applyPlugin(jsPDF);\n}\ncatch (error) {\n // Importing jspdf in nodejs environments does not work as of jspdf\n // 1.5.3 so we need to silence potential errors to support using for example\n // the nodejs jspdf dist files with the exported applyPlugin\n}\n\n}();\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * @fileOverview Surface\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nexport function Surface(props) {\n var children = props.children,\n width = props.width,\n height = props.height,\n viewBox = props.viewBox,\n className = props.className,\n style = props.style,\n others = _objectWithoutProperties(props, [\"children\", \"width\", \"height\", \"viewBox\", \"className\", \"style\"]);\n\n var svgView = viewBox || {\n width: width,\n height: height,\n x: 0,\n y: 0\n };\n var layerClass = classNames('recharts-surface', className);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, filterProps(others, true, true), {\n className: layerClass,\n width: width,\n height: height,\n style: style,\n viewBox: \"\".concat(svgView.x, \" \").concat(svgView.y, \" \").concat(svgView.width, \" \").concat(svgView.height),\n version: \"1.1\"\n }), /*#__PURE__*/React.createElement(\"title\", null, props.title), /*#__PURE__*/React.createElement(\"desc\", null, props.desc), children);\n}","export default function(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Rectangle\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport { filterProps } from '../util/types';\n\nvar getRectanglePath = function getRectanglePath(x, y, width, height, radius) {\n var maxRadius = Math.min(Math.abs(width) / 2, Math.abs(height) / 2);\n var ySign = height >= 0 ? 1 : -1;\n var xSign = width >= 0 ? 1 : -1;\n var clockWise = height >= 0 && width >= 0 || height < 0 && width < 0 ? 1 : 0;\n var path;\n\n if (maxRadius > 0 && radius instanceof Array) {\n var newRadius = [0, 0, 0, 0];\n\n for (var i = 0, len = 4; i < len; i++) {\n newRadius[i] = radius[i] > maxRadius ? maxRadius : radius[i];\n }\n\n path = \"M\".concat(x, \",\").concat(y + ySign * newRadius[0]);\n\n if (newRadius[0] > 0) {\n path += \"A \".concat(newRadius[0], \",\").concat(newRadius[0], \",0,0,\").concat(clockWise, \",\").concat(x + xSign * newRadius[0], \",\").concat(y);\n }\n\n path += \"L \".concat(x + width - xSign * newRadius[1], \",\").concat(y);\n\n if (newRadius[1] > 0) {\n path += \"A \".concat(newRadius[1], \",\").concat(newRadius[1], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width, \",\").concat(y + ySign * newRadius[1]);\n }\n\n path += \"L \".concat(x + width, \",\").concat(y + height - ySign * newRadius[2]);\n\n if (newRadius[2] > 0) {\n path += \"A \".concat(newRadius[2], \",\").concat(newRadius[2], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width - xSign * newRadius[2], \",\").concat(y + height);\n }\n\n path += \"L \".concat(x + xSign * newRadius[3], \",\").concat(y + height);\n\n if (newRadius[3] > 0) {\n path += \"A \".concat(newRadius[3], \",\").concat(newRadius[3], \",0,0,\").concat(clockWise, \",\\n \").concat(x, \",\").concat(y + height - ySign * newRadius[3]);\n }\n\n path += 'Z';\n } else if (maxRadius > 0 && radius === +radius && radius > 0) {\n var _newRadius = Math.min(maxRadius, radius);\n\n path = \"M \".concat(x, \",\").concat(y + ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + xSign * _newRadius, \",\").concat(y, \"\\n L \").concat(x + width - xSign * _newRadius, \",\").concat(y, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width, \",\").concat(y + ySign * _newRadius, \"\\n L \").concat(x + width, \",\").concat(y + height - ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width - xSign * _newRadius, \",\").concat(y + height, \"\\n L \").concat(x + xSign * _newRadius, \",\").concat(y + height, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x, \",\").concat(y + height - ySign * _newRadius, \" Z\");\n } else {\n path = \"M \".concat(x, \",\").concat(y, \" h \").concat(width, \" v \").concat(height, \" h \").concat(-width, \" Z\");\n }\n\n return path;\n};\n\nexport var isInRectangle = function isInRectangle(point, rect) {\n if (!point || !rect) {\n return false;\n }\n\n var px = point.x,\n py = point.y;\n var x = rect.x,\n y = rect.y,\n width = rect.width,\n height = rect.height;\n\n if (Math.abs(width) > 0 && Math.abs(height) > 0) {\n var minX = Math.min(x, x + width);\n var maxX = Math.max(x, x + width);\n var minY = Math.min(y, y + height);\n var maxY = Math.max(y, y + height);\n return px >= minX && px <= maxX && py >= minY && py <= maxY;\n }\n\n return false;\n};\nexport var Rectangle = /*#__PURE__*/function (_PureComponent) {\n _inherits(Rectangle, _PureComponent);\n\n var _super = _createSuper(Rectangle);\n\n function Rectangle() {\n var _this;\n\n _classCallCheck(this, Rectangle);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n totalLength: -1\n };\n _this.node = void 0;\n return _this;\n }\n\n _createClass(Rectangle, [{\n key: \"componentDidMount\",\n value:\n /* eslint-disable react/no-did-mount-set-state */\n function componentDidMount() {\n if (this.node && this.node.getTotalLength) {\n try {\n var totalLength = this.node.getTotalLength();\n\n if (totalLength) {\n this.setState({\n totalLength: totalLength\n });\n }\n } catch (err) {// calculate total length error\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n width = _this$props.width,\n height = _this$props.height,\n radius = _this$props.radius,\n className = _this$props.className;\n var totalLength = this.state.totalLength;\n var _this$props2 = this.props,\n animationEasing = _this$props2.animationEasing,\n animationDuration = _this$props2.animationDuration,\n animationBegin = _this$props2.animationBegin,\n isAnimationActive = _this$props2.isAnimationActive,\n isUpdateAnimationActive = _this$props2.isUpdateAnimationActive;\n\n if (x !== +x || y !== +y || width !== +width || height !== +height || width === 0 || height === 0) {\n return null;\n }\n\n var layerClass = classNames('recharts-rectangle', className);\n\n if (!isUpdateAnimationActive) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: layerClass,\n d: getRectanglePath(x, y, width, height, radius)\n }));\n }\n\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n to: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currWidth = _ref.width,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(_this2.props, true), {\n className: layerClass,\n d: getRectanglePath(currX, currY, currWidth, currHeight, radius),\n ref: function ref(node) {\n _this2.node = node;\n }\n })));\n });\n }\n }]);\n\n return Rectangle;\n}(PureComponent);\nRectangle.defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n // The radius of border\n // The radius of four corners when radius is a number\n // The radius of left-top, right-top, right-bottom, left-bottom when radius is an array\n radius: 0,\n isAnimationActive: false,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};","export default function() {}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // proceed\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import {path} from \"d3-path\";\nimport array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import {path} from \"d3-path\";\nimport array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x0, y0, y1) {\n var x1 = null,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n x0 = typeof x0 === \"function\" ? x0 : (x0 === undefined) ? pointX : constant(+x0);\n y0 = typeof y0 === \"function\" ? y0 : (y0 === undefined) ? constant(0) : constant(+y0);\n y1 = typeof y1 === \"function\" ? y1 : (y1 === undefined) ? pointY : constant(+y1);\n\n function area(data) {\n var i,\n j,\n k,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isArray from \"lodash/isArray\";\nimport _upperFirst from \"lodash/upperFirst\";\nimport _isFunction from \"lodash/isFunction\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Curve\n */\nimport React, { PureComponent } from 'react';\nimport { line as shapeLine, area as shapeArea, curveBasisClosed, curveBasisOpen, curveBasis, curveLinearClosed, curveLinear, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from 'd3-shape';\nimport classNames from 'classnames';\nimport { adaptEventHandlers, filterProps } from '../util/types';\nimport { isNumber } from '../util/DataUtils';\nvar CURVE_FACTORIES = {\n curveBasisClosed: curveBasisClosed,\n curveBasisOpen: curveBasisOpen,\n curveBasis: curveBasis,\n curveLinearClosed: curveLinearClosed,\n curveLinear: curveLinear,\n curveMonotoneX: curveMonotoneX,\n curveMonotoneY: curveMonotoneY,\n curveNatural: curveNatural,\n curveStep: curveStep,\n curveStepAfter: curveStepAfter,\n curveStepBefore: curveStepBefore\n};\n\nvar defined = function defined(p) {\n return p.x === +p.x && p.y === +p.y;\n};\n\nvar getX = function getX(p) {\n return p.x;\n};\n\nvar getY = function getY(p) {\n return p.y;\n};\n\nvar getCurveFactory = function getCurveFactory(type, layout) {\n if (_isFunction(type)) {\n return type;\n }\n\n var name = \"curve\".concat(_upperFirst(type));\n\n if (name === 'curveMonotone' && layout) {\n return CURVE_FACTORIES[\"\".concat(name).concat(layout === 'vertical' ? 'Y' : 'X')];\n }\n\n return CURVE_FACTORIES[name] || curveLinear;\n};\n\nexport var Curve = /*#__PURE__*/function (_PureComponent) {\n _inherits(Curve, _PureComponent);\n\n var _super = _createSuper(Curve);\n\n function Curve() {\n _classCallCheck(this, Curve);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Curve, [{\n key: \"getPath\",\n value:\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n function getPath() {\n var _this$props = this.props,\n type = _this$props.type,\n points = _this$props.points,\n baseLine = _this$props.baseLine,\n layout = _this$props.layout,\n connectNulls = _this$props.connectNulls;\n var curveFactory = getCurveFactory(type, layout);\n var formatPoints = connectNulls ? points.filter(function (entry) {\n return defined(entry);\n }) : points;\n var lineFunction;\n\n if (_isArray(baseLine)) {\n var formatBaseLine = connectNulls ? baseLine.filter(function (base) {\n return defined(base);\n }) : baseLine;\n var areaPoints = formatPoints.map(function (entry, index) {\n return _objectSpread(_objectSpread({}, entry), {}, {\n base: formatBaseLine[index]\n });\n });\n\n if (layout === 'vertical') {\n lineFunction = shapeArea().y(getY).x1(getX).x0(function (d) {\n return d.base.x;\n });\n } else {\n lineFunction = shapeArea().x(getX).y1(getY).y0(function (d) {\n return d.base.y;\n });\n }\n\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(areaPoints);\n }\n\n if (layout === 'vertical' && isNumber(baseLine)) {\n lineFunction = shapeArea().y(getY).x1(getX).x0(baseLine);\n } else if (isNumber(baseLine)) {\n lineFunction = shapeArea().x(getX).y1(getY).y0(baseLine);\n } else {\n lineFunction = shapeLine().x(getX).y(getY);\n }\n\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(formatPoints);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n points = _this$props2.points,\n path = _this$props2.path,\n pathRef = _this$props2.pathRef;\n\n if ((!points || !points.length) && !path) {\n return null;\n }\n\n var realPath = points && points.length ? this.getPath() : path;\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props), adaptEventHandlers(this.props), {\n className: classNames('recharts-curve', className),\n d: realPath,\n ref: pathRef\n }));\n }\n }]);\n\n return Curve;\n}(PureComponent);\nCurve.defaultProps = {\n type: 'linear',\n points: [],\n connectNulls: false\n};","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {pi, tau} from \"../math.js\";\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","export default {\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\n\nexport default {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","export default {\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","import {pi, tau} from \"../math.js\";\n\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n kx = Math.sin(tau / 10) * kr,\n ky = -Math.cos(tau / 10) * kr;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","var sqrt3 = Math.sqrt(3);\n\nexport default {\n draw: function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _upperFirst from \"lodash/upperFirst\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Curve\n */\nimport React, { PureComponent } from 'react';\nimport { symbol as shapeSymbol, symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye } from 'd3-shape';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nvar symbolFactories = {\n symbolCircle: symbolCircle,\n symbolCross: symbolCross,\n symbolDiamond: symbolDiamond,\n symbolSquare: symbolSquare,\n symbolStar: symbolStar,\n symbolTriangle: symbolTriangle,\n symbolWye: symbolWye\n};\nvar RADIAN = Math.PI / 180;\n\nvar getSymbolFactory = function getSymbolFactory(type) {\n var name = \"symbol\".concat(_upperFirst(type));\n return symbolFactories[name] || symbolCircle;\n};\n\nvar calculateAreaSize = function calculateAreaSize(size, sizeType, type) {\n if (sizeType === 'area') {\n return size;\n }\n\n switch (type) {\n case 'cross':\n return 5 * size * size / 9;\n\n case 'diamond':\n return 0.5 * size * size / Math.sqrt(3);\n\n case 'square':\n return size * size;\n\n case 'star':\n {\n var angle = 18 * RADIAN;\n return 1.25 * size * size * (Math.tan(angle) - Math.tan(angle * 2) * Math.pow(Math.tan(angle), 2));\n }\n\n case 'triangle':\n return Math.sqrt(3) * size * size / 4;\n\n case 'wye':\n return (21 - 10 * Math.sqrt(3)) * size * size / 8;\n\n default:\n return Math.PI * size * size / 4;\n }\n};\n\nexport var Symbols = /*#__PURE__*/function (_PureComponent) {\n _inherits(Symbols, _PureComponent);\n\n var _super = _createSuper(Symbols);\n\n function Symbols() {\n _classCallCheck(this, Symbols);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Symbols, [{\n key: \"getPath\",\n value:\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n function getPath() {\n var _this$props = this.props,\n size = _this$props.size,\n sizeType = _this$props.sizeType,\n type = _this$props.type;\n var symbolFactory = getSymbolFactory(type);\n var symbol = shapeSymbol().type(symbolFactory).size(calculateAreaSize(size, sizeType, type));\n return symbol();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n cx = _this$props2.cx,\n cy = _this$props2.cy,\n size = _this$props2.size;\n\n if (cx === +cx && cy === +cy && size === +size) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: classNames('recharts-symbols', className),\n transform: \"translate(\".concat(cx, \", \").concat(cy, \")\"),\n d: this.getPath()\n }));\n }\n\n return null;\n }\n }]);\n\n return Symbols;\n}(PureComponent);\nSymbols.defaultProps = {\n type: 'circle',\n size: 64,\n sizeType: 'area'\n};\n\nSymbols.registerSymbol = function (key, factory) {\n symbolFactories[\"symbol\".concat(_upperFirst(key))] = factory;\n};","import {path} from \"d3-path\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport star from \"./symbol/star.js\";\nimport square from \"./symbol/square.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport wye from \"./symbol/wye.js\";\nimport constant from \"./constant.js\";\n\nexport var symbols = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\nexport default function(type, size) {\n var context = null;\n type = typeof type === \"function\" ? type : constant(type || circle);\n size = typeof size === \"function\" ? size : constant(size === undefined ? 64 : +size);\n\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Default Legend Content\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { Surface } from '../container/Surface';\nimport { Symbols } from '../shape/Symbols';\nimport { adaptEventsOfChild } from '../util/types';\nvar SIZE = 32;\nexport var DefaultLegendContent = /*#__PURE__*/function (_PureComponent) {\n _inherits(DefaultLegendContent, _PureComponent);\n\n var _super = _createSuper(DefaultLegendContent);\n\n function DefaultLegendContent() {\n _classCallCheck(this, DefaultLegendContent);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(DefaultLegendContent, [{\n key: \"renderIcon\",\n value:\n /**\n * Render the path of icon\n * @param {Object} data Data of each legend item\n * @return {String} Path element\n */\n function renderIcon(data) {\n var inactiveColor = this.props.inactiveColor;\n var halfSize = SIZE / 2;\n var sixthSize = SIZE / 6;\n var thirdSize = SIZE / 3;\n var color = data.inactive ? inactiveColor : data.color;\n\n if (data.type === 'plainline') {\n return /*#__PURE__*/React.createElement(\"line\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n strokeDasharray: data.payload.strokeDasharray,\n x1: 0,\n y1: halfSize,\n x2: SIZE,\n y2: halfSize,\n className: \"recharts-legend-icon\"\n });\n }\n\n if (data.type === 'line') {\n return /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n d: \"M0,\".concat(halfSize, \"h\").concat(thirdSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n H\").concat(SIZE, \"M\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(thirdSize, \",\").concat(halfSize),\n className: \"recharts-legend-icon\"\n });\n }\n\n if (data.type === 'rect') {\n return /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"none\",\n fill: color,\n d: \"M0,\".concat(SIZE / 8, \"h\").concat(SIZE, \"v\").concat(SIZE * 3 / 4, \"h\").concat(-SIZE, \"z\"),\n className: \"recharts-legend-icon\"\n });\n }\n\n if ( /*#__PURE__*/React.isValidElement(data.legendIcon)) {\n var iconProps = _objectSpread({}, data);\n\n delete iconProps.legendIcon;\n return /*#__PURE__*/React.cloneElement(data.legendIcon, iconProps);\n }\n\n return /*#__PURE__*/React.createElement(Symbols, {\n fill: color,\n cx: halfSize,\n cy: halfSize,\n size: SIZE,\n sizeType: \"diameter\",\n type: data.type\n });\n }\n /**\n * Draw items of legend\n * @return {ReactElement} Items\n */\n\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this = this;\n\n var _this$props = this.props,\n payload = _this$props.payload,\n iconSize = _this$props.iconSize,\n layout = _this$props.layout,\n formatter = _this$props.formatter,\n inactiveColor = _this$props.inactiveColor;\n var viewBox = {\n x: 0,\n y: 0,\n width: SIZE,\n height: SIZE\n };\n var itemStyle = {\n display: layout === 'horizontal' ? 'inline-block' : 'block',\n marginRight: 10\n };\n var svgStyle = {\n display: 'inline-block',\n verticalAlign: 'middle',\n marginRight: 4\n };\n return payload.map(function (entry, i) {\n var _classNames;\n\n var finalFormatter = entry.formatter || formatter;\n var className = classNames((_classNames = {\n 'recharts-legend-item': true\n }, _defineProperty(_classNames, \"legend-item-\".concat(i), true), _defineProperty(_classNames, \"inactive\", entry.inactive), _classNames));\n\n if (entry.type === 'none') {\n return null;\n }\n\n var color = entry.inactive ? inactiveColor : entry.color;\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n className: className,\n style: itemStyle,\n key: \"legend-item-\".concat(i) // eslint-disable-line react/no-array-index-key\n\n }, adaptEventsOfChild(_this.props, entry, i)), /*#__PURE__*/React.createElement(Surface, {\n width: iconSize,\n height: iconSize,\n viewBox: viewBox,\n style: svgStyle\n }, _this.renderIcon(entry)), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-legend-item-text\",\n style: {\n color: color\n }\n }, finalFormatter ? finalFormatter(entry.value, entry, i) : entry.value));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n layout = _this$props2.layout,\n align = _this$props2.align;\n\n if (!payload || !payload.length) {\n return null;\n }\n\n var finalStyle = {\n padding: 0,\n margin: 0,\n textAlign: layout === 'horizontal' ? align : 'left'\n };\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-default-legend\",\n style: finalStyle\n }, this.renderItems());\n }\n }]);\n\n return DefaultLegendContent;\n}(PureComponent);\nDefaultLegendContent.displayName = 'Legend';\nDefaultLegendContent.defaultProps = {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'middle',\n inactiveColor: '#ccc'\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isFunction from \"lodash/isFunction\";\nimport _uniqBy from \"lodash/uniqBy\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * @fileOverview Legend\n */\nimport React, { PureComponent } from 'react';\nimport { DefaultLegendContent } from './DefaultLegendContent';\nimport { isNumber } from '../util/DataUtils';\n\nfunction defaultUniqBy(entry) {\n return entry.value;\n}\n\nfunction getUniqPayload(option, payload) {\n if (option === true) {\n return _uniqBy(payload, defaultUniqBy);\n }\n\n if (_isFunction(option)) {\n return _uniqBy(payload, option);\n }\n\n return payload;\n}\n\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n\n if (_isFunction(content)) {\n return /*#__PURE__*/React.createElement(content, props);\n }\n\n var ref = props.ref,\n otherProps = _objectWithoutProperties(props, [\"ref\"]);\n\n return /*#__PURE__*/React.createElement(DefaultLegendContent, otherProps);\n}\n\nvar EPS = 1;\nexport var Legend = /*#__PURE__*/function (_PureComponent) {\n _inherits(Legend, _PureComponent);\n\n var _super = _createSuper(Legend);\n\n function Legend() {\n var _this;\n\n _classCallCheck(this, Legend);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.wrapperNode = void 0;\n _this.state = {\n boxWidth: -1,\n boxHeight: -1\n };\n return _this;\n }\n\n _createClass(Legend, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"getBBox\",\n value: function getBBox() {\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n return this.wrapperNode.getBoundingClientRect();\n }\n\n return null;\n }\n }, {\n key: \"getBBoxSnapshot\",\n value: function getBBoxSnapshot() {\n var _this$state = this.state,\n boxWidth = _this$state.boxWidth,\n boxHeight = _this$state.boxHeight;\n\n if (boxWidth >= 0 && boxHeight >= 0) {\n return {\n width: boxWidth,\n height: boxHeight\n };\n }\n\n return null;\n }\n }, {\n key: \"getDefaultPosition\",\n value: function getDefaultPosition(style) {\n var _this$props = this.props,\n layout = _this$props.layout,\n align = _this$props.align,\n verticalAlign = _this$props.verticalAlign,\n margin = _this$props.margin,\n chartWidth = _this$props.chartWidth,\n chartHeight = _this$props.chartHeight;\n var hPos, vPos;\n\n if (!style || (style.left === undefined || style.left === null) && (style.right === undefined || style.right === null)) {\n if (align === 'center' && layout === 'vertical') {\n var _box = this.getBBoxSnapshot() || {\n width: 0\n };\n\n hPos = {\n left: ((chartWidth || 0) - _box.width) / 2\n };\n } else {\n hPos = align === 'right' ? {\n right: margin && margin.right || 0\n } : {\n left: margin && margin.left || 0\n };\n }\n }\n\n if (!style || (style.top === undefined || style.top === null) && (style.bottom === undefined || style.bottom === null)) {\n if (verticalAlign === 'middle') {\n var _box2 = this.getBBoxSnapshot() || {\n height: 0\n };\n\n vPos = {\n top: ((chartHeight || 0) - _box2.height) / 2\n };\n } else {\n vPos = verticalAlign === 'bottom' ? {\n bottom: margin && margin.bottom || 0\n } : {\n top: margin && margin.top || 0\n };\n }\n }\n\n return _objectSpread(_objectSpread({}, hPos), vPos);\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var _this$state2 = this.state,\n boxWidth = _this$state2.boxWidth,\n boxHeight = _this$state2.boxHeight;\n var onBBoxUpdate = this.props.onBBoxUpdate;\n\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var _box3 = this.wrapperNode.getBoundingClientRect();\n\n if (Math.abs(_box3.width - boxWidth) > EPS || Math.abs(_box3.height - boxHeight) > EPS) {\n this.setState({\n boxWidth: _box3.width,\n boxHeight: _box3.height\n }, function () {\n if (onBBoxUpdate) {\n onBBoxUpdate(_box3);\n }\n });\n }\n } else if (boxWidth !== -1 || boxHeight !== -1) {\n this.setState({\n boxWidth: -1,\n boxHeight: -1\n }, function () {\n if (onBBoxUpdate) {\n onBBoxUpdate(null);\n }\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n content = _this$props2.content,\n width = _this$props2.width,\n height = _this$props2.height,\n wrapperStyle = _this$props2.wrapperStyle,\n payloadUniqBy = _this$props2.payloadUniqBy,\n payload = _this$props2.payload;\n\n var outerStyle = _objectSpread(_objectSpread({\n position: 'absolute',\n width: width || 'auto',\n height: height || 'auto'\n }, this.getDefaultPosition(wrapperStyle)), wrapperStyle);\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"recharts-legend-wrapper\",\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: getUniqPayload(payloadUniqBy, payload)\n })));\n }\n }], [{\n key: \"getWithHeight\",\n value: function getWithHeight(item, chartWidth) {\n var layout = item.props.layout;\n\n if (layout === 'vertical' && isNumber(item.props.height)) {\n return {\n height: item.props.height\n };\n }\n\n if (layout === 'horizontal') {\n return {\n width: item.props.width || chartWidth\n };\n }\n\n return null;\n }\n }]);\n\n return Legend;\n}(PureComponent);\nLegend.displayName = 'Legend';\nLegend.defaultProps = {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'bottom'\n};","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\nexport default function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? Object(arguments[i]) : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys.push.apply(ownKeys, Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _objectSpread from '@babel/runtime/helpers/esm/objectSpread';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\n\nvar consoleLogger = {\n type: 'logger',\n log: function log(args) {\n this.output('log', args);\n },\n warn: function warn(args) {\n this.output('warn', args);\n },\n error: function error(args) {\n this.output('error', args);\n },\n output: function output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\n\nvar Logger = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Logger);\n\n this.init(concreteLogger, options);\n }\n\n _createClass(Logger, [{\n key: \"init\",\n value: function init(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n }, {\n key: \"setDebug\",\n value: function setDebug(bool) {\n this.debug = bool;\n }\n }, {\n key: \"log\",\n value: function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return this.forward(args, 'log', '', true);\n }\n }, {\n key: \"warn\",\n value: function warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return this.forward(args, 'warn', '', true);\n }\n }, {\n key: \"error\",\n value: function error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return this.forward(args, 'error', '');\n }\n }, {\n key: \"deprecate\",\n value: function deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n }, {\n key: \"forward\",\n value: function forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n return this.logger[lvl](args);\n }\n }, {\n key: \"create\",\n value: function create(moduleName) {\n return new Logger(this.logger, _objectSpread({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }, this.options));\n }\n }]);\n\n return Logger;\n}();\n\nvar baseLogger = new Logger();\n\nvar EventEmitter = function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n\n this.observers = {};\n }\n\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this = this;\n\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\n\n _this.observers[event].push(listener);\n });\n return this;\n }\n }, {\n key: \"off\",\n value: function off(event, listener) {\n if (!this.observers[event]) return;\n\n if (!listener) {\n delete this.observers[event];\n return;\n }\n\n this.observers[event] = this.observers[event].filter(function (l) {\n return l !== listener;\n });\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\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 if (this.observers[event]) {\n var cloned = [].concat(this.observers[event]);\n cloned.forEach(function (observer) {\n observer.apply(void 0, args);\n });\n }\n\n if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\n });\n }\n }\n }]);\n\n return EventEmitter;\n}();\n\nfunction defer() {\n var res;\n var rej;\n var promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\n\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\n\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n\n if (value !== undefined) {\n return value;\n }\n\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (var prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n\n return data;\n}\nvar isIE10 = typeof window !== 'undefined' && window.navigator && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\n\nvar ResourceStore = function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n\n function ResourceStore(data) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n\n _classCallCheck(this, ResourceStore);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ResourceStore).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.data = data || {};\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n return _this;\n }\n\n _createClass(ResourceStore, [{\n key: \"addNamespaces\",\n value: function addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n }, {\n key: \"removeNamespaces\",\n value: function removeNamespaces(ns) {\n var index = this.options.ns.indexOf(ns);\n\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n }, {\n key: \"getResource\",\n value: function getResource(lng, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n\n return getPath(this.data, path);\n }\n }, {\n key: \"addResource\",\n value: function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n var keySeparator = this.options.keySeparator;\n if (keySeparator === undefined) keySeparator = '.';\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n }, {\n key: \"addResources\",\n value: function addResources(lng, ns, resources) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n\n for (var m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"addResourceBundle\",\n value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n var path = [lng, ns];\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread({}, pack, resources);\n }\n\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"removeResourceBundle\",\n value: function removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n }, {\n key: \"hasResourceBundle\",\n value: function hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n }, {\n key: \"getResourceBundle\",\n value: function getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return _objectSpread({}, {}, this.getResource(lng, ns));\n return this.getResource(lng, ns);\n }\n }, {\n key: \"getDataByLanguage\",\n value: function getDataByLanguage(lng) {\n return this.data[lng];\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n\n return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n processors: {},\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _this = this;\n\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nvar checkedLoadedFor = {};\n\nvar Translator = function (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n\n function Translator(services) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Translator);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Translator).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n _this.logger = baseLogger.create('translator');\n return _this;\n }\n\n _createClass(Translator, [{\n key: \"changeLanguage\",\n value: function changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n }, {\n key: \"exists\",\n value: function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n }, {\n key: \"extractFromKey\",\n value: function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var namespaces = options.ns || this.options.defaultNS;\n\n if (nsSeparator && key.indexOf(nsSeparator) > -1) {\n var m = key.match(this.interpolator.nestingRegexp);\n\n if (m && m.length > 0) {\n return {\n key: key,\n namespaces: namespaces\n };\n }\n\n var parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key: key,\n namespaces: namespaces\n };\n }\n }, {\n key: \"translate\",\n value: function translate(keys, options, lastKey) {\n var _this2 = this;\n\n if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n\n var namespace = namespaces[namespaces.length - 1];\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n return namespace + nsSeparator + key;\n }\n\n return key;\n }\n\n var resolved = this.resolve(keys, options);\n var res = resolved && resolved.res;\n var resUsedKey = resolved && resolved.usedKey || key;\n var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n var resType = Object.prototype.toString.apply(res);\n var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n return this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, options) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n }\n\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy = resTypeIsArray ? [] : {};\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n\n for (var m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n copy[m] = this.translate(deepKey, _objectSpread({}, options, {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n var usedDefault = false;\n var usedKey = false;\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var hasDefaultValue = Translator.hasDefaultValue(options);\n var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count) : '';\n var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || options.defaultValue;\n\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n\n var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n\n if (keySeparator) {\n var fk = this.resolve(key, _objectSpread({}, options, {\n keySeparator: false\n }));\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (var i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n\n var send = function send(l, k, fallbackValue) {\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, updateMissing ? fallbackValue : res, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, updateMissing ? fallbackValue : res, updateMissing, options);\n }\n\n _this2.emit('missingKey', l, namespace, k, res);\n };\n\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (language) {\n _this2.pluralResolver.getSuffixes(language).forEach(function (suffix) {\n send([language], key + suffix, options[\"defaultValue\".concat(suffix)] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key);\n if (usedKey && this.options.parseMissingKeyHandler) res = this.options.parseMissingKeyHandler(res);\n }\n\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this3 = this;\n\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, options, resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread({}, options, {\n interpolation: _objectSpread({}, this.options.interpolation, options.interpolation)\n }));\n var skipOnVariables = options.interpolation && options.interpolation.skipOnVariables || this.options.interpolation.skipOnVariables;\n var nestBef;\n\n if (skipOnVariables) {\n var nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread({}, this.options.interpolation.defaultVariables, data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n\n if (skipOnVariables) {\n var na = res.match(this.interpolator.nestingRegexp);\n var nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this3.logger.warn(\"It seems you are nesting recursively key: \".concat(args[0], \" in key: \").concat(key[0]));\n\n return null;\n }\n\n return _this3.translate.apply(_this3, args.concat([key]));\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread({\n i18nResolved: resolved\n }, options) : options, this);\n }\n\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this4 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var found;\n var usedKey;\n var exactUsedKey;\n var usedLng;\n var usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(function (k) {\n if (_this4.isValidLookup(found)) return;\n\n var extracted = _this4.extractFromKey(k, options);\n\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var needsContextHandling = options.context !== undefined && typeof options.context === 'string' && options.context !== '';\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n\n if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n\n _this4.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for languages \\\"\").concat(codes.join(', '), \"\\\" won't get resolved as namespace \\\"\").concat(usedNS, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n\n codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKey = key;\n var finalKeys = [finalKey];\n\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count);\n if (needsPluralHandling && needsContextHandling) finalKeys.push(finalKey + pluralSuffix);\n if (needsContextHandling) finalKeys.push(finalKey += \"\".concat(_this4.options.contextSeparator).concat(options.context));\n if (needsPluralHandling) finalKeys.push(finalKey += pluralSuffix);\n }\n\n var possibleKey;\n\n while (possibleKey = finalKeys.pop()) {\n if (!_this4.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = _this4.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey: usedKey,\n exactUsedKey: exactUsedKey,\n usedLng: usedLng,\n usedNS: usedNS\n };\n }\n }, {\n key: \"isValidLookup\",\n value: function isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n }, {\n key: \"getResource\",\n value: function getResource(code, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n }], [{\n key: \"hasDefaultValue\",\n value: function hasDefaultValue(options) {\n var prefix = 'defaultValue';\n\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n\n return false;\n }\n }]);\n\n return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar LanguageUtil = function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n\n this.options = options;\n this.whitelist = this.options.supportedLngs || false;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n\n _createClass(LanguageUtil, [{\n key: \"getScriptPartFromCode\",\n value: function getScriptPartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return null;\n var p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n }, {\n key: \"getLanguagePartFromCode\",\n value: function getLanguagePartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return code;\n var p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n }, {\n key: \"formatLanguageCode\",\n value: function formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n\n if (this.options.lowerCaseLng) {\n p = p.map(function (part) {\n return part.toLowerCase();\n });\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n\n return p.join('-');\n }\n\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n }, {\n key: \"isWhitelisted\",\n value: function isWhitelisted(code) {\n this.logger.deprecate('languageUtils.isWhitelisted', 'function \"isWhitelisted\" will be renamed to \"isSupportedCode\" in the next major - please make sure to rename it\\'s usage asap.');\n return this.isSupportedCode(code);\n }\n }, {\n key: \"isSupportedCode\",\n value: function isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n }, {\n key: \"getBestMatchFromCodes\",\n value: function getBestMatchFromCodes(codes) {\n var _this = this;\n\n if (!codes) return null;\n var found;\n codes.forEach(function (code) {\n if (found) return;\n\n var cleanedLng = _this.formatLanguageCode(code);\n\n if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n\n if (!found && this.options.supportedLngs) {\n codes.forEach(function (code) {\n if (found) return;\n\n var lngOnly = _this.getLanguagePartFromCode(code);\n\n if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = _this.options.supportedLngs.find(function (supportedLng) {\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n }, {\n key: \"getFallbackCodes\",\n value: function getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks[\"default\"] || [];\n var found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks[\"default\"];\n return found || [];\n }\n }, {\n key: \"toResolveHierarchy\",\n value: function toResolveHierarchy(code, fallbackCode) {\n var _this2 = this;\n\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n\n var addCode = function addCode(c) {\n if (!c) return;\n\n if (_this2.isSupportedCode(c)) {\n codes.push(c);\n } else {\n _this2.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n }\n };\n\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));\n });\n return codes;\n }\n }]);\n\n return LanguageUtil;\n}();\n\nvar sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'kk', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nvar _rulesPluralsTypes = {\n 1: function _(n) {\n return Number(n > 1);\n },\n 2: function _(n) {\n return Number(n != 1);\n },\n 3: function _(n) {\n return 0;\n },\n 4: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function _(n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function _(n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function _(n) {\n return Number(n >= 2);\n },\n 10: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function _(n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function _(n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function _(n) {\n return Number(n !== 0);\n },\n 14: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function _(n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\n\nfunction createRules() {\n var rules = {};\n sets.forEach(function (set) {\n set.lngs.forEach(function (l) {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\n\nvar PluralResolver = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, PluralResolver);\n\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n this.rules = createRules();\n }\n\n _createClass(PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var rule = this.getRule(code);\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n return this.getSuffixes(code).map(function (suffix) {\n return key + suffix;\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this = this;\n\n var rule = this.getRule(code);\n\n if (!rule) {\n return [];\n }\n\n return rule.numbers.map(function (number) {\n return _this.getSuffix(code, number);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var _this2 = this;\n\n var rule = this.getRule(code);\n\n if (rule) {\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\n\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n\n var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n };\n\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }]);\n\n return PluralResolver;\n}();\n\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Interpolator);\n\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n\n this.init(options);\n }\n\n _createClass(Interpolator, [{\n key: \"init\",\n value: function init() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n var iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.options) this.init(this.options);\n }\n }, {\n key: \"resetRegExp\",\n value: function resetRegExp() {\n var regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n this.regexp = new RegExp(regexpStr, 'g');\n var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(str, data, lng, options) {\n var _this = this;\n\n var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) {\n var path = getPathWithDefaults(data, defaultData, key);\n return _this.alwaysFormat ? _this.format(path, undefined, lng) : path;\n }\n\n var p = key.split(_this.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this.formatSeparator).trim();\n return _this.format(getPathWithDefaults(data, defaultData, k), f, lng, options);\n };\n\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables || this.options.interpolation.skipOnVariables;\n var todos = [{\n regex: this.regexpUnescape,\n safeValue: function safeValue(val) {\n return regexSafe(val);\n }\n }, {\n regex: this.regexp,\n safeValue: function safeValue(val) {\n return _this.escapeValue ? regexSafe(_this.escape(val)) : regexSafe(val);\n }\n }];\n todos.forEach(function (todo) {\n replaces = 0;\n\n while (match = todo.regex.exec(str)) {\n value = handleFormat(match[1].trim());\n\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this.logger.warn(\"missed to pass in variable \".concat(match[1], \" for interpolating \").concat(str));\n\n value = '';\n }\n } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {\n value = makeString(value);\n }\n\n str = str.replace(match[0], todo.safeValue(value));\n todo.regex.lastIndex = 0;\n replaces++;\n\n if (replaces >= _this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var _this2 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n\n var clonedOptions = _objectSpread({}, options);\n\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n\n function handleHasOptions(key, inheritedOptions) {\n var sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n var c = key.split(new RegExp(\"\".concat(sep, \"[ ]*{\")));\n var optionsString = \"{\".concat(c[1]);\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n optionsString = optionsString.replace(/'/g, '\"');\n\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread({}, inheritedOptions, clonedOptions);\n } catch (e) {\n this.logger.warn(\"failed parsing options string in nesting for key \".concat(key), e);\n return \"\".concat(key).concat(sep).concat(optionsString);\n }\n\n delete clonedOptions.defaultValue;\n return key;\n }\n\n while (match = this.nestingRegexp.exec(str)) {\n var formatters = [];\n var doReduce = false;\n\n if (match[0].includes(this.formatSeparator) && !/{.*}/.test(match[1])) {\n var r = match[1].split(this.formatSeparator).map(function (elem) {\n return elem.trim();\n });\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n\n if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\n }\n\n if (doReduce) {\n value = formatters.reduce(function (v, f) {\n return _this2.format(v, f, options.lng, options);\n }, value.trim());\n }\n\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n\n return str;\n }\n }]);\n\n return Interpolator;\n}();\n\nfunction remove(arr, what) {\n var found = arr.indexOf(what);\n\n while (found !== -1) {\n arr.splice(found, 1);\n found = arr.indexOf(what);\n }\n}\n\nvar Connector = function (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n\n function Connector(backend, store, services) {\n var _this;\n\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n _classCallCheck(this, Connector);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Connector).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.backend = backend;\n _this.store = store;\n _this.services = services;\n _this.languageUtils = services.languageUtils;\n _this.options = options;\n _this.logger = baseLogger.create('backendConnector');\n _this.state = {};\n _this.queue = [];\n\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n\n return _this;\n }\n\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\n\n var toLoad = [];\n var pending = [];\n var toLoadLanguages = [];\n var toLoadNamespaces = [];\n languages.forEach(function (lng) {\n var hasAllNamespaces = true;\n namespaces.forEach(function (ns) {\n var name = \"\".concat(lng, \"|\").concat(ns);\n\n if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n _this2.state[name] = 2;\n } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {\n if (pending.indexOf(name) < 0) pending.push(name);\n } else {\n _this2.state[name] = 1;\n hasAllNamespaces = false;\n if (pending.indexOf(name) < 0) pending.push(name);\n if (toLoad.indexOf(name) < 0) toLoad.push(name);\n if (toLoadNamespaces.indexOf(ns) < 0) toLoadNamespaces.push(ns);\n }\n });\n if (!hasAllNamespaces) toLoadLanguages.push(lng);\n });\n\n if (toLoad.length || pending.length) {\n this.queue.push({\n pending: pending,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n\n return {\n toLoad: toLoad,\n pending: pending,\n toLoadLanguages: toLoadLanguages,\n toLoadNamespaces: toLoadNamespaces\n };\n }\n }, {\n key: \"loaded\",\n value: function loaded(name, err, data) {\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n\n this.state[name] = err ? -1 : 2;\n var loaded = {};\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n remove(q.pending, name);\n if (err) q.errors.push(err);\n\n if (q.pending.length === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = [];\n\n if (q.loaded[l].length) {\n q.loaded[l].forEach(function (ns) {\n if (loaded[l].indexOf(ns) < 0) loaded[l].push(ns);\n });\n }\n });\n q.done = true;\n\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(function (q) {\n return !q.done;\n });\n }\n }, {\n key: \"read\",\n value: function read(lng, ns, fcName) {\n var _this3 = this;\n\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 350;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n return this.backend[fcName](lng, ns, function (err, data) {\n if (err && data && tried < 5) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n\n callback(err, data);\n });\n }\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this4 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n\n toLoad.toLoad.forEach(function (name) {\n _this4.loadOne(name);\n });\n }\n }, {\n key: \"load\",\n value: function load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n }, {\n key: \"reload\",\n value: function reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n }, {\n key: \"loadOne\",\n value: function loadOne(name) {\n var _this5 = this;\n\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, function (err, data) {\n if (err) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n\n _this5.loaded(name, err, data);\n });\n }\n }, {\n key: \"saveMissing\",\n value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(\"did not save key \\\"\".concat(key, \"\\\" as the namespace \\\"\").concat(namespace, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n\n if (key === undefined || key === null || key === '') return;\n\n if (this.backend && this.backend.create) {\n this.backend.create(languages, namespace, key, fallbackValue, null, _objectSpread({}, options, {\n isUpdate: isUpdate\n }));\n }\n\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n }]);\n\n return Connector;\n}(EventEmitter);\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n whitelist: false,\n nonExplicitWhitelist: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: true,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n var ret = {};\n if (_typeof(args[1]) === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n\n if (_typeof(args[2]) === 'object' || _typeof(args[3]) === 'object') {\n var options = args[3] || args[2];\n Object.keys(options).forEach(function (key) {\n ret[key] = options[key];\n });\n }\n\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value, _format, lng, options) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: false\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n\n if (options.whitelist) {\n if (options.whitelist && options.whitelist.indexOf('cimode') < 0) {\n options.whitelist = options.whitelist.concat(['cimode']);\n }\n\n options.supportedLngs = options.whitelist;\n }\n\n if (options.nonExplicitWhitelist) {\n options.nonExplicitSupportedLngs = options.nonExplicitWhitelist;\n }\n\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n\n return options;\n}\n\nfunction noop() {}\n\nvar I18n = function (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n\n function I18n() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n _classCallCheck(this, I18n);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(I18n).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n\n if (callback && !_this.isInitialized && !options.isClone) {\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n\n return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n }\n\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n\n return _this;\n }\n\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (options.whitelist && !options.supportedLngs) {\n this.logger.deprecate('whitelist', 'option \"whitelist\" will be renamed to \"supportedLngs\" in the next major - please make sure to rename this option asap.');\n }\n\n if (options.nonExplicitWhitelist && !options.nonExplicitSupportedLngs) {\n this.logger.deprecate('whitelist', 'options \"nonExplicitWhitelist\" will be renamed to \"nonExplicitSupportedLngs\" in the next major - please make sure to rename this option asap.');\n }\n\n this.options = _objectSpread({}, get(), this.options, transformOptions(options));\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n\n var lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\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 _this2.emit.apply(_this2, [event].concat(args));\n });\n\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n s.languageDetector.init(s, this.options.detection, this.options);\n }\n\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this2);\n });\n }\n\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n\n var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store;\n\n return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n };\n });\n var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store2;\n\n (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n\n return _this2;\n };\n });\n var deferred = defer();\n\n var load = function load() {\n var finish = function finish(err, t) {\n if (_this2.isInitialized) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');\n _this2.isInitialized = true;\n if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);\n\n _this2.emit('initialized', _this2.options);\n\n deferred.resolve(t);\n callback(err, t);\n };\n\n if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n\n _this2.changeLanguage(_this2.options.lng, finish);\n };\n\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n\n return deferred;\n }\n }, {\n key: \"loadResources\",\n value: function loadResources(language) {\n var _this3 = this;\n\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var usedCallback = callback;\n var usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n var toLoad = [];\n\n var append = function append(lng) {\n if (!lng) return;\n\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n\n if (!usedLng) {\n var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(function (l) {\n return append(l);\n });\n } else {\n append(usedLng);\n }\n\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n\n this.services.backendConnector.load(toLoad, this.options.ns, usedCallback);\n } else {\n usedCallback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, function (err) {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n }, {\n key: \"use\",\n value: function use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n\n return this;\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n\n var done = function done(err, l) {\n if (l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n\n _this4.translator.changeLanguage(l);\n\n _this4.isLanguageChangingTo = undefined;\n\n _this4.emit('languageChanged', l);\n\n _this4.logger.log('languageChanged', l);\n } else {\n _this4.isLanguageChangingTo = undefined;\n }\n\n deferred.resolve(function () {\n return _this4.t.apply(_this4, arguments);\n });\n if (callback) callback(err, function () {\n return _this4.t.apply(_this4, arguments);\n });\n };\n\n var setLng = function setLng(lngs) {\n var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);\n\n if (l) {\n if (!_this4.language) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n }\n\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n\n _this4.loadResources(l, function (err) {\n done(err, l);\n });\n };\n\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n this.services.languageDetector.detect(setLng);\n } else {\n setLng(lng);\n }\n\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns) {\n var _this5 = this;\n\n var fixedT = function fixedT(key, opts) {\n var options;\n\n if (_typeof(opts) !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n\n options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread({}, opts);\n }\n\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n return _this5.t(key, options);\n };\n\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n\n fixedT.ns = ns;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n\n return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n }\n }, {\n key: \"exists\",\n value: function exists() {\n var _this$translator2;\n\n return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n }\n }, {\n key: \"setDefaultNamespace\",\n value: function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n }, {\n key: \"hasLoadedNamespace\",\n value: function hasLoadedNamespace(ns) {\n var _this6 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n\n var lng = this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n\n return loadState === -1 || loadState === 2;\n };\n\n if (options.precheck) {\n var preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n }, {\n key: \"loadNamespaces\",\n value: function loadNamespaces(ns, callback) {\n var _this7 = this;\n\n var deferred = defer();\n\n if (!this.options.ns) {\n callback && callback();\n return Promise.resolve();\n }\n\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);\n });\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"loadLanguages\",\n value: function loadLanguages(lngs, callback) {\n var deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n var preloaded = this.options.preload || [];\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0;\n });\n\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"dir\",\n value: function dir(lng) {\n if (!lng) lng = this.languages && this.languages.length > 0 ? this.languages[0] : this.language;\n if (!lng) return 'rtl';\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam'];\n return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) >= 0 ? 'rtl' : 'ltr';\n }\n }, {\n key: \"createInstance\",\n value: function createInstance() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n }, {\n key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n var mergedOptions = _objectSpread({}, this.options, options, {\n isClone: true\n });\n\n var clone = new I18n(mergedOptions);\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.services = _objectSpread({}, this.services);\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n clone.translator = new Translator(clone.services, clone.options);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = clone.options;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n }]);\n\n return I18n;\n}(EventEmitter);\n\nvar i18next = new I18n();\n\nexport default i18next;\n","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Much of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// Many optimizations have been made, so the bundle size is ultimately smaller but performance is similar.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var u = ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([c], { type: 'text/javascript' })));\n var w = new Worker(u);\n w.onerror = function (e) { return cb(e.error, null); };\n w.onmessage = function (e) { return cb(null, e.data); };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, u32 = Uint32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\n// see fleb note\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new u32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return [b, r];\n};\nvar _a = freb(fleb, 2), fl = _a[0], revfl = _a[1];\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b[0], revfd = _b[1];\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >>> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >>> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >>> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >>> 8) | ((x & 0x00FF) << 8)) >>> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i)\n ++l[cd[i] - 1];\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 0; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >>> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i)\n co[i] = rev[le[cd[i] - 1]++] >>> (15 - cd[i]);\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) >> 0;\n return ((d[o] | (d[o + 1] << 8)) >>> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) >> 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >>> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p / 8) >> 0) + (p & 7 && 1); };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n var n = new (v instanceof u16 ? u16 : v instanceof u32 ? u32 : u8)(e - s);\n n.set(v.subarray(s, e));\n return n;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, buf, st) {\n // source length\n var sl = dat.length;\n // have to estimate size\n var noBuf = !buf || st;\n // no state\n var noSt = !st || st.i;\n if (!st)\n st = {};\n // Assumes roughly 33% compression ratio average\n if (!buf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n st.f = final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n throw 'unexpected EOF';\n break;\n }\n // ensure size\n if (noBuf)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n if (!noSt && pos + tl * (clb + 7) > tbts)\n break;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >>> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n throw 'invalid block type';\n if (pos > tbts)\n throw 'unexpected EOF';\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17;\n if (noBuf)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var mxa = lbt + dbt + 18;\n while (noSt || pos + mxa < tbts) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >>> 4;\n pos += c & 15;\n if (pos > tbts)\n throw 'unexpected EOF';\n if (!c)\n throw 'invalid length/literal';\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >>> 4;\n if (!d)\n throw 'invalid distance';\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & ((1 << b) - 1), pos += b;\n }\n if (pos > tbts)\n throw 'unexpected EOF';\n if (noBuf)\n cbuf(bt + 131072);\n var end = bt + add;\n for (; bt < end; bt += 4) {\n buf[bt] = buf[bt - dt];\n buf[bt + 1] = buf[bt + 1 - dt];\n buf[bt + 2] = buf[bt + 2 - dt];\n buf[bt + 3] = buf[bt + 3 - dt];\n }\n bt = end;\n }\n }\n st.l = lm, st.p = pos, st.b = bt;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n return bt == buf.length ? buf : slc(buf, 0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) >> 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) >> 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n d[o + 2] |= v >>> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return [new u8(0), 0];\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return [v, 1];\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return [new u8(tr), mbt];\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return [cl.subarray(0, cli), s];\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >>> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a[0], mlb = _a[1];\n var _b = hTree(df, 15), ddt = _b[0], mdb = _b[1];\n var _c = lc(dlt), lclt = _c[0], nlc = _c[1];\n var _d = lc(ddt), lcdt = _d[0], ndc = _d[1];\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n lcfreq[lclt[i] & 31]++;\n for (var i = 0; i < lcdt.length; ++i)\n lcfreq[lcdt[i] & 31]++;\n var _e = hTree(lcfreq, 7), lct = _e[0], mlcb = _e[1];\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + (2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18]);\n if (flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >>> 5) & 127), p += clct[i] >>> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n if (syms[i] > 255) {\n var len = (syms[i] >>> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (syms[i] >>> 23) & 31), p += fleb[len];\n var dst = syms[i] & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (syms[i] >>> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[syms[i]]), p += ll[syms[i]];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new u32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, lst) {\n var s = dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.floor(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var pos = 0;\n if (!lvl || s < 8) {\n for (var i = 0; i <= s; i += 65535) {\n // end\n var e = i + 65535;\n if (e < s) {\n // write full block\n pos = wfblk(w, pos, dat.subarray(i, e));\n }\n else {\n // write final block\n w[i] = lst;\n pos = wfblk(w, pos, dat.subarray(i, s));\n }\n }\n }\n else {\n var opt = deo[lvl - 1];\n var n = opt >>> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = new u16(32768), head = new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new u32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx bitpos\n var lc_1 = 0, eb = 0, i = 0, li = 0, wi = 0, bs = 0;\n for (; i < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768\n var imod = i & 32767;\n // previous index with this value\n var pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && rem > 423) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = (imod - pimod) & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = (i - dif + j + 32768) & 32767;\n var pti = prev[ti];\n var cd = (ti - pti + 32768) & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += (imod - pimod + 32768) & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one Uint32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n // this is the easiest way to avoid needing to maintain state\n if (!lst)\n pos = wfblk(w, pos, et);\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new u32(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && 0xEDB88320) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = 0xFFFFFFFF;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return c ^ 0xFFFFFFFF; }\n };\n};\n// Alder32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 5552, l);\n for (; i < e; ++i)\n n += d[i], m += n;\n n %= 65521, m %= 65521;\n }\n a = n, b = m;\n },\n d: function () { return ((a >>> 8) << 16 | (b & 255) << 8 | (b >>> 8)) + ((a & 255) << 23) * 2; }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : (12 + opt.mem), pre, post, !st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/ /g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return [fnStr, td];\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k] instanceof u8 || v[k] instanceof u16 || v[k] instanceof u32)\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n var _a;\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n _a = wcln(fns[i], fnStr, td_1), fnStr = _a[0], td_1 = _a[1];\n ch[id] = wcln(fns[m], fnStr, td_1);\n }\n var td = mrg({}, ch[id][1]);\n return wk(ch[id][0] + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, u32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, hMap, max, bits, bits16, shft, slc, inflt, inflateSync, pbf, gu8]; };\nvar bDflt = function () { return [u8, u16, u32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zlv]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get u8\nvar gu8 = function (o) { return o && o.size && new u8(o.size); };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n if (!opts.consume)\n dat = new u8(dat);\n w.postMessage([dat, opts], [dat.buffer]);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) { return strm.push(ev.data[0], ev.data[1]); };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.push = function (d, f) {\n if (t)\n throw 'stream finished';\n if (!strm.ondata)\n throw 'no stream handler';\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16)) + (d[b + 3] << 23) * 2; };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n throw 'invalid gzip data';\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += d[10] | (d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16) + (2 * (d[l - 1] << 23));\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + ((o.filename && (o.filename.length + 1)) || 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (fl ? (32 - 2 * fl) : 1);\n};\n// zlib valid\nvar zlv = function (d) {\n if ((d[0] & 15) != 8 || (d[0] >>> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n throw 'invalid zlib data';\n if (d[1] & 32)\n throw 'invalid zlib data: preset dictionaries not supported';\n};\nfunction AsyncCmpStrm(opts, cb) {\n if (!cb && typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n// zlib footer: -4 to -0 is Adler32\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (!cb && typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, !f), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (this.d)\n throw 'stream finished';\n if (!this.ondata)\n throw 'no stream handler';\n this.d = final;\n this.p(chunk, final || false);\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n return dopt(data, opts, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n /**\n * Creates an inflation stream\n * @param cb The callback to call whenever data is inflated\n */\n function Inflate(cb) {\n this.s = {};\n this.p = new u8(0);\n this.ondata = cb;\n }\n Inflate.prototype.e = function (c) {\n if (this.d)\n throw 'stream finished';\n if (!this.ondata)\n throw 'no stream handler';\n var l = this.p.length;\n var n = new u8(l + c.length);\n n.set(this.p), n.set(c, l), this.p = n;\n };\n Inflate.prototype.c = function (final) {\n this.d = this.s.i = final || false;\n var bts = this.s.b;\n var dt = inflt(this.p, this.o, this.s);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) >> 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous inflation stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncInflate(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, 0, function () {\n var strm = new Inflate();\n onmessage = astrm(strm);\n }, 7);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gu8(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, out) {\n return inflt(data, out);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n this.c.p(c);\n this.l += c.length;\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, !f);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n /**\n * Creates a GUNZIP stream\n * @param cb The callback to call whenever data is inflated\n */\n function Gunzip(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n var s = gzs(this.p);\n if (s >= this.p.length && !final)\n return;\n this.p = this.p.subarray(s), this.v = 0;\n }\n if (final) {\n if (this.p.length < 8)\n throw 'invalid gzip stream';\n this.p = this.p.subarray(0, -8);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous GUNZIP stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncGunzip(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, 0, function () {\n var strm = new Gunzip();\n onmessage = astrm(strm);\n }, 9);\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param out Where to write the data. GZIP already encodes the output size, so providing this doesn't save memory.\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, out) {\n return inflt(data.subarray(gzs(data), -8), out || new u8(gzl(data)));\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n this.c.p(c);\n var raw = dopt(c, this.o, this.v && 2, f && 4, !f);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n /**\n * Creates a Zlib decompression stream\n * @param cb The callback to call whenever data is inflated\n */\n function Unzlib(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 2 && !final)\n return;\n this.p = this.p.subarray(2), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n throw 'invalid zlib stream';\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous Zlib decompression stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncUnzlib(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, 0, function () {\n var strm = new Unzlib();\n onmessage = astrm(strm);\n }, 11);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gu8(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, out) {\n return inflt((zlv(data), data.subarray(2, -4)), out);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n /**\n * Creates a decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function Decompress(cb) {\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n throw 'no stream handler';\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n var _this_1 = this;\n var cb = function () { _this_1.ondata.apply(_this_1, arguments); };\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(cb)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(cb)\n : new this.Z(cb);\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function AsyncDecompress(cb) {\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, out) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, out)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, out)\n : unzlibSync(data, out);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k;\n if (val instanceof u8)\n t[n] = [val, o];\n else if (Array.isArray(val))\n t[n] = [val[0], mrg(o, val[1])];\n else\n fltn(val, n + '/', t, o);\n }\n};\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n var l = str.length;\n if (!latin1 && typeof TextEncoder != 'undefined')\n return new TextEncoder().encode(str);\n var ar = new u8(str.length + (str.length >>> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >>> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >>> 18)), w(128 | ((c >>> 12) & 63)), w(128 | ((c >>> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >>> 12)), w(128 | ((c >>> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n var r = '';\n if (!latin1 && typeof TextDecoder != 'undefined')\n return new TextDecoder().decode(dat);\n for (var i = 0; i < dat.length;) {\n var c = dat[i++];\n if (c < 128 || latin1)\n r += String.fromCharCode(c);\n else if (c < 224)\n r += String.fromCharCode((c & 31) << 6 | (dat[i++] & 63));\n else if (c < 240)\n r += String.fromCharCode((c & 15) << 12 | (dat[i++] & 63) << 6 | (dat[i++] & 63));\n else\n c = ((c & 15) << 18 | (dat[i++] & 63) << 12 | (dat[i++] & 63) << 6 | (dat[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n return r;\n}\n;\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl;\n var _a = z ? z64e(d, es) : [b4(d, b + 20), b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b4(d, b + 12), b4(d, b + 4), b4(d, b + 20)];\n};\n// write zip header\nvar wzh = function (d, b, c, cmp, su, fn, u, o, ce, t) {\n var fl = fn.length, l = cmp.length;\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b] = 20, b += 2;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (t == 8 && (o.level == 1 ? 6 : o.level < 6 ? 4 : o.level == 9 ? 2 : 0)), d[b++] = u && 8;\n d[b] = t, b += 2;\n var dt = new Date(o.mtime || Date.now()), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n throw 'date not in range 1980-2099';\n wbytes(d, b, ((y << 24) * 2) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >>> 1));\n b += 4;\n wbytes(d, b, c);\n wbytes(d, b + 4, l);\n wbytes(d, b + 8, su);\n wbytes(d, b + 12, fl), b += 16; // skip extra field, comment\n if (ce != null)\n wbytes(d, b += 10, ce), b += 4;\n d.set(fn, b);\n b += fl;\n if (ce == null)\n d.set(cmp, b);\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n wzh(out, tot, f.c, f.d, f.m, f.n, f.u, f.p, null, f.t);\n wzh(out, o, f.c, f.d, f.m, f.n, f.u, f.p, tot, f.t), o += 46 + f.n.length, tot += 30 + f.n.length + f.d.length;\n }\n catch (e) {\n return cb(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cb(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), m = file.length;\n c.p(file);\n var n = strToU8(fn), s = n.length;\n var t = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cb(e, null);\n }\n else {\n var l = d.length;\n files[i] = {\n t: t,\n d: d,\n m: m,\n c: c.d(),\n u: fn.length != l,\n n: n,\n p: p\n };\n o += 30 + s + l;\n tot += 76 + 2 * s + l;\n if (!--lft)\n cbf();\n }\n };\n if (n.length > 65535)\n cbl('filename too long', null);\n if (!t)\n cbl(null, file);\n else if (m < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var t = p.level == 0 ? 0 : 8;\n var n = strToU8(fn), s = n.length;\n if (n.length > 65535)\n throw 'filename too long';\n var d = t ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push({\n t: t,\n d: d,\n m: file.length,\n c: c.d(),\n u: fn.length != s,\n n: n,\n o: o,\n p: p\n });\n o += 30 + s + l;\n tot += 76 + 2 * s + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f.c, f.d, f.m, f.n, f.u, f.p, null, f.t);\n wzh(out, o, f.c, f.d, f.m, f.n, f.u, f.p, f.o, f.t), o += 46 + f.n.length;\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Asynchronously decompresses a ZIP archive\n * @param data The raw compressed ZIP file\n * @param cb The callback to call with the decompressed files\n * @returns A function that can be used to immediately terminate the unzipping\n */\nexport function unzip(data, cb) {\n if (typeof cb != 'function')\n throw 'no callback';\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cb('invalid zip file', null);\n return;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (!lft)\n cb(null, {});\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295;\n if (z) {\n e = b4(data, e - 12);\n if (b4(data, e) != 0x6064B50)\n throw 'invalid zip file';\n c = lft = b4(data, e + 32);\n o = b4(data, e + 48);\n }\n var _loop_2 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cb(e, null);\n }\n else {\n files[fn] = d;\n if (!--lft)\n cb(null, files);\n }\n };\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n if (sc < 320000) {\n try {\n cbl(null, inflateSync(infl, new u8(su)));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl('unknown compression type ' + c_1, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_2(i);\n }\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @returns The decompressed files\n */\nexport function unzipSync(data) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n throw 'invalid zip file';\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295;\n if (z) {\n e = b4(data, e - 12);\n if (b4(data, e) != 0x6064B50)\n throw 'invalid zip file';\n c = b4(data, e + 32);\n o = b4(data, e + 48);\n }\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), new u8(su));\n else\n throw 'unknown compression type ' + c_2;\n }\n return files;\n}\n","var baseExtremum = require('./_baseExtremum'),\n baseGt = require('./_baseGt'),\n identity = require('./identity');\n\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nmodule.exports = max;\n","var baseExtremum = require('./_baseExtremum'),\n baseLt = require('./_baseLt'),\n identity = require('./identity');\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nmodule.exports = min;\n","var matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34);/g;\nvar htmlEntities = {\n '&': '&',\n '&': '&',\n '<': '<',\n '<': '<',\n '>': '>',\n '>': '>',\n ''': \"'\",\n ''': \"'\",\n '"': '\"',\n '"': '\"'\n};\n\nvar unescapeHtmlEntity = function unescapeHtmlEntity(m) {\n return htmlEntities[m];\n};\n\nexport var unescape = function unescape(text) {\n return text.replace(matchHtmlEntity, unescapeHtmlEntity);\n};","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { createContext } from 'react';\nimport { unescape } from './unescape';\nvar defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true,\n unescape: unescape\n};\nvar i18nInstance;\nexport var I18nContext = createContext();\nexport function setDefaults() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n defaultOptions = _objectSpread(_objectSpread({}, defaultOptions), options);\n}\nexport function getDefaults() {\n return defaultOptions;\n}\nexport var ReportNamespaces = function () {\n function ReportNamespaces() {\n _classCallCheck(this, ReportNamespaces);\n\n this.usedNamespaces = {};\n }\n\n _createClass(ReportNamespaces, [{\n key: \"addUsedNamespaces\",\n value: function addUsedNamespaces(namespaces) {\n var _this = this;\n\n namespaces.forEach(function (ns) {\n if (!_this.usedNamespaces[ns]) _this.usedNamespaces[ns] = true;\n });\n }\n }, {\n key: \"getUsedNamespaces\",\n value: function getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n }]);\n\n return ReportNamespaces;\n}();\nexport function setI18n(instance) {\n i18nInstance = instance;\n}\nexport function getI18n() {\n return i18nInstance;\n}\nexport var initReactI18next = {\n type: '3rdParty',\n init: function init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};\nexport function composeInitialProps(ForComponent) {\n return function (ctx) {\n return new Promise(function (resolve) {\n var i18nInitialProps = getInitialProps();\n\n if (ForComponent.getInitialProps) {\n ForComponent.getInitialProps(ctx).then(function (componentsInitialProps) {\n resolve(_objectSpread(_objectSpread({}, componentsInitialProps), i18nInitialProps));\n });\n } else {\n resolve(i18nInitialProps);\n }\n });\n };\n}\nexport function getInitialProps() {\n var i18n = getI18n();\n var namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : [];\n var ret = {};\n var initialI18nStore = {};\n i18n.languages.forEach(function (l) {\n initialI18nStore[l] = {};\n namespaces.forEach(function (ns) {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isNil from \"lodash/isNil\";\nimport _sortBy from \"lodash/sortBy\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { isNumOrStr } from '../util/DataUtils';\n\nfunction defaultFormatter(value) {\n return _isArray(value) && isNumOrStr(value[0]) && isNumOrStr(value[1]) ? value.join(' ~ ') : value;\n}\n\nexport var DefaultTooltipContent = /*#__PURE__*/function (_PureComponent) {\n _inherits(DefaultTooltipContent, _PureComponent);\n\n var _super = _createSuper(DefaultTooltipContent);\n\n function DefaultTooltipContent() {\n _classCallCheck(this, DefaultTooltipContent);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(DefaultTooltipContent, [{\n key: \"renderContent\",\n value: function renderContent() {\n var _this$props = this.props,\n payload = _this$props.payload,\n separator = _this$props.separator,\n formatter = _this$props.formatter,\n itemStyle = _this$props.itemStyle,\n itemSorter = _this$props.itemSorter;\n\n if (payload && payload.length) {\n var listStyle = {\n padding: 0,\n margin: 0\n };\n var items = (itemSorter ? _sortBy(payload, itemSorter) : payload).map(function (entry, i) {\n if (entry.type === 'none') {\n return null;\n }\n\n var finalItemStyle = _objectSpread({\n display: 'block',\n paddingTop: 4,\n paddingBottom: 4,\n color: entry.color || '#000'\n }, itemStyle);\n\n var finalFormatter = entry.formatter || formatter || defaultFormatter;\n var value = entry.value,\n name = entry.name;\n\n if (finalFormatter && value != null && name != null) {\n var formatted = finalFormatter(value, name, entry, i, payload);\n\n if (Array.isArray(formatted)) {\n var _ref = formatted;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n value = _ref2[0];\n name = _ref2[1];\n } else {\n value = formatted;\n }\n }\n\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n className: \"recharts-tooltip-item\",\n key: \"tooltip-item-\".concat(i),\n style: finalItemStyle\n }, isNumOrStr(name) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-name\"\n }, name) : null, isNumOrStr(name) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-separator\"\n }, separator) : null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-value\"\n }, value), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-unit\"\n }, entry.unit || ''))\n );\n });\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-tooltip-item-list\",\n style: listStyle\n }, items);\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n wrapperClassName = _this$props2.wrapperClassName,\n contentStyle = _this$props2.contentStyle,\n labelClassName = _this$props2.labelClassName,\n labelStyle = _this$props2.labelStyle,\n label = _this$props2.label,\n labelFormatter = _this$props2.labelFormatter,\n payload = _this$props2.payload;\n\n var finalStyle = _objectSpread({\n margin: 0,\n padding: 10,\n backgroundColor: '#fff',\n border: '1px solid #ccc',\n whiteSpace: 'nowrap'\n }, contentStyle);\n\n var finalLabelStyle = _objectSpread({\n margin: 0\n }, labelStyle);\n\n var hasLabel = !_isNil(label);\n var finalLabel = hasLabel ? label : '';\n var wrapperCN = classNames('recharts-default-tooltip', wrapperClassName);\n var labelCN = classNames('recharts-tooltip-label', labelClassName);\n\n if (hasLabel && labelFormatter && payload !== undefined && payload !== null) {\n finalLabel = labelFormatter(label, payload);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: wrapperCN,\n style: finalStyle\n }, /*#__PURE__*/React.createElement(\"p\", {\n className: labelCN,\n style: finalLabelStyle\n }, /*#__PURE__*/React.isValidElement(finalLabel) ? finalLabel : \"\".concat(finalLabel)), this.renderContent());\n }\n }]);\n\n return DefaultTooltipContent;\n}(PureComponent);\nDefaultTooltipContent.displayName = 'DefaultTooltipContent';\nDefaultTooltipContent.defaultProps = {\n separator: ' : ',\n contentStyle: {},\n itemStyle: {},\n labelStyle: {}\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isNil from \"lodash/isNil\";\nimport _isFunction from \"lodash/isFunction\";\nimport _uniqBy from \"lodash/uniqBy\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Tooltip\n */\nimport React, { PureComponent } from 'react';\nimport { translateStyle } from 'react-smooth';\nimport classNames from 'classnames';\nimport { DefaultTooltipContent } from './DefaultTooltipContent';\nimport { Global } from '../util/Global';\nimport { isNumber } from '../util/DataUtils';\nvar CLS_PREFIX = 'recharts-tooltip-wrapper';\nvar EPS = 1;\n\nfunction defaultUniqBy(entry) {\n return entry.dataKey;\n}\n\nfunction getUniqPayload(option, payload) {\n if (option === true) {\n return _uniqBy(payload, defaultUniqBy);\n }\n\n if (_isFunction(option)) {\n return _uniqBy(payload, option);\n }\n\n return payload;\n}\n\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n\n if (_isFunction(content)) {\n return /*#__PURE__*/React.createElement(content, props);\n }\n\n return /*#__PURE__*/React.createElement(DefaultTooltipContent, props);\n}\n\nexport var Tooltip = /*#__PURE__*/function (_PureComponent) {\n _inherits(Tooltip, _PureComponent);\n\n var _super = _createSuper(Tooltip);\n\n function Tooltip() {\n var _this;\n\n _classCallCheck(this, Tooltip);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n boxWidth: -1,\n boxHeight: -1,\n dismissed: false,\n dismissedAtCoordinate: {\n x: 0,\n y: 0\n }\n };\n _this.wrapperNode = void 0;\n\n _this.getTranslate = function (_ref) {\n var key = _ref.key,\n tooltipDimension = _ref.tooltipDimension,\n viewBoxDimension = _ref.viewBoxDimension;\n var _this$props = _this.props,\n allowEscapeViewBox = _this$props.allowEscapeViewBox,\n reverseDirection = _this$props.reverseDirection,\n coordinate = _this$props.coordinate,\n offset = _this$props.offset,\n position = _this$props.position,\n viewBox = _this$props.viewBox;\n\n if (position && isNumber(position[key])) {\n return position[key];\n }\n\n var negative = coordinate[key] - tooltipDimension - offset;\n var positive = coordinate[key] + offset;\n\n if (allowEscapeViewBox[key]) {\n return reverseDirection[key] ? negative : positive;\n }\n\n if (reverseDirection[key]) {\n var tooltipBoundary = negative;\n var viewBoxBoundary = viewBox[key];\n\n if (tooltipBoundary < viewBoxBoundary) {\n return Math.max(positive, viewBox[key]);\n }\n\n return Math.max(negative, viewBox[key]);\n } else {\n var _tooltipBoundary = positive + tooltipDimension;\n\n var _viewBoxBoundary = viewBox[key] + viewBoxDimension;\n\n if (_tooltipBoundary > _viewBoxBoundary) {\n return Math.max(negative, viewBox[key]);\n }\n\n return Math.max(positive, viewBox[key]);\n }\n };\n\n return _this;\n }\n\n _createClass(Tooltip, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var _this$state = this.state,\n boxWidth = _this$state.boxWidth,\n boxHeight = _this$state.boxHeight,\n dismissed = _this$state.dismissed;\n\n if (dismissed) {\n this.wrapperNode.blur();\n\n if (this.props.coordinate.x !== this.state.dismissedAtCoordinate.x || this.props.coordinate.y !== this.state.dismissedAtCoordinate.y) {\n this.setState({\n dismissed: false\n });\n }\n } else {\n this.wrapperNode.focus({\n preventScroll: true\n });\n }\n\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var box = this.wrapperNode.getBoundingClientRect();\n\n if (Math.abs(box.width - boxWidth) > EPS || Math.abs(box.height - boxHeight) > EPS) {\n this.setState({\n boxWidth: box.width,\n boxHeight: box.height\n });\n }\n } else if (boxWidth !== -1 || boxHeight !== -1) {\n this.setState({\n boxWidth: -1,\n boxHeight: -1\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames,\n _this2 = this;\n\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n isAnimationActive = _this$props2.isAnimationActive,\n animationDuration = _this$props2.animationDuration,\n animationEasing = _this$props2.animationEasing,\n filterNull = _this$props2.filterNull,\n payloadUniqBy = _this$props2.payloadUniqBy;\n var finalPayload = getUniqPayload(payloadUniqBy, filterNull && payload && payload.length ? payload.filter(function (entry) {\n return !_isNil(entry.value);\n }) : payload);\n var hasPayload = finalPayload && finalPayload.length;\n var _this$props3 = this.props,\n content = _this$props3.content,\n viewBox = _this$props3.viewBox,\n coordinate = _this$props3.coordinate,\n position = _this$props3.position,\n active = _this$props3.active,\n wrapperStyle = _this$props3.wrapperStyle;\n\n var outerStyle = _objectSpread({\n pointerEvents: 'none',\n visibility: !this.state.dismissed && active && hasPayload ? 'visible' : 'hidden',\n position: 'absolute',\n top: 0,\n left: 0\n }, wrapperStyle);\n\n var translateX, translateY;\n\n if (position && isNumber(position.x) && isNumber(position.y)) {\n translateX = position.x;\n translateY = position.y;\n } else {\n var _this$state2 = this.state,\n boxWidth = _this$state2.boxWidth,\n boxHeight = _this$state2.boxHeight;\n\n if (boxWidth > 0 && boxHeight > 0 && coordinate) {\n translateX = this.getTranslate({\n key: 'x',\n tooltipDimension: boxWidth,\n viewBoxDimension: viewBox.width\n });\n translateY = this.getTranslate({\n key: 'y',\n tooltipDimension: boxHeight,\n viewBoxDimension: viewBox.height\n });\n } else {\n outerStyle.visibility = 'hidden';\n }\n }\n\n outerStyle = _objectSpread(_objectSpread({}, translateStyle({\n transform: this.props.useTranslate3d ? \"translate3d(\".concat(translateX, \"px, \").concat(translateY, \"px, 0)\") : \"translate(\".concat(translateX, \"px, \").concat(translateY, \"px)\")\n })), outerStyle);\n\n if (isAnimationActive && active) {\n outerStyle = _objectSpread(_objectSpread({}, translateStyle({\n transition: \"transform \".concat(animationDuration, \"ms \").concat(animationEasing)\n })), outerStyle);\n }\n\n var cls = classNames(CLS_PREFIX, (_classNames = {}, _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-right\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX >= coordinate.x), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-left\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX < coordinate.x), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-bottom\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY >= coordinate.y), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-top\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY < coordinate.y), _classNames));\n return (\n /*#__PURE__*/\n // ESLint is disabled to allow listening to the `Escape` key. Refer to\n // https://github.com/recharts/recharts/pull/2925\n // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n React.createElement(\"div\", {\n tabIndex: -1,\n role: \"dialog\",\n onKeyDown: function onKeyDown(event) {\n if (event.key === 'Escape') {\n _this2.setState({\n dismissed: true,\n dismissedAtCoordinate: _objectSpread(_objectSpread({}, _this2.state.dismissedAtCoordinate), {}, {\n x: _this2.props.coordinate.x,\n y: _this2.props.coordinate.y\n })\n });\n }\n },\n className: cls,\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: finalPayload\n })))\n );\n }\n }]);\n\n return Tooltip;\n}(PureComponent);\nTooltip.displayName = 'Tooltip';\nTooltip.defaultProps = {\n active: false,\n allowEscapeViewBox: {\n x: false,\n y: false\n },\n reverseDirection: {\n x: false,\n y: false\n },\n offset: 10,\n viewBox: {\n x1: 0,\n x2: 0,\n y1: 0,\n y2: 0\n },\n coordinate: {\n x: 0,\n y: 0\n },\n cursorStyle: {},\n separator: ' : ',\n wrapperStyle: {},\n contentStyle: {},\n itemStyle: {},\n labelStyle: {},\n cursor: true,\n trigger: 'hover',\n isAnimationActive: !Global.isSsr,\n animationEasing: 'ease',\n animationDuration: 400,\n filterNull: true,\n useTranslate3d: false\n};","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.dontSetMe = dontSetMe;\nexports.findInArray = findInArray;\nexports.int = int;\nexports.isFunction = isFunction;\nexports.isNum = isNum;\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array\n/*: Array | TouchList*/\n, callback\n/*: Function*/\n)\n/*: any*/\n{\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction isFunction(func\n/*: any*/\n)\n/*: boolean %checks*/\n{\n // $FlowIgnore[method-unbinding]\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nfunction isNum(num\n/*: any*/\n)\n/*: boolean %checks*/\n{\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a\n/*: string*/\n)\n/*: number*/\n{\n return parseInt(a, 10);\n}\n\nfunction dontSetMe(props\n/*: Object*/\n, propName\n/*: string*/\n, componentName\n/*: string*/\n)\n/*: ?Error*/\n{\n if (props[propName]) {\n return new Error(\"Invalid prop \".concat(propName, \" passed to \").concat(componentName, \" - do not set this, set it on the child.\"));\n }\n}","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","export const toCodePoints = (str: string): number[] => {\n const codePoints = [];\n let i = 0;\n const length = str.length;\n while (i < length) {\n const value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n const extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n } else {\n codePoints.push(value);\n i--;\n }\n } else {\n codePoints.push(value);\n }\n }\n return codePoints;\n};\n\nexport const fromCodePoint = (...codePoints: number[]): string => {\n if (String.fromCodePoint) {\n return String.fromCodePoint(...codePoints);\n }\n\n const length = codePoints.length;\n if (!length) {\n return '';\n }\n\n const codeUnits = [];\n\n let index = -1;\n let result = '';\n while (++index < length) {\n let codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n } else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode(...codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n};\n\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const decode = (base64: string): ArrayBuffer | number[] => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const buffer =\n typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n const bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return buffer;\n};\n\nexport const polyUint16Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n\nexport const polyUint32Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n","import {Context} from '../../core/context';\n\nexport class Bounds {\n constructor(readonly left: number, readonly top: number, readonly width: number, readonly height: number) {}\n\n add(x: number, y: number, w: number, h: number): Bounds {\n return new Bounds(this.left + x, this.top + y, this.width + w, this.height + h);\n }\n\n static fromClientRect(context: Context, clientRect: ClientRect): Bounds {\n return new Bounds(\n clientRect.left + context.windowBounds.left,\n clientRect.top + context.windowBounds.top,\n clientRect.width,\n clientRect.height\n );\n }\n\n static fromDOMRectList(context: Context, domRectList: DOMRectList): Bounds {\n const domRect = Array.from(domRectList).find((rect) => rect.width !== 0);\n return domRect\n ? new Bounds(\n domRect.left + context.windowBounds.left,\n domRect.top + context.windowBounds.top,\n domRect.width,\n domRect.height\n )\n : Bounds.EMPTY;\n }\n\n static EMPTY = new Bounds(0, 0, 0, 0);\n}\n\nexport const parseBounds = (context: Context, node: Element): Bounds => {\n return Bounds.fromClientRect(context, node.getBoundingClientRect());\n};\n\nexport const parseDocumentSize = (document: Document): Bounds => {\n const body = document.body;\n const documentElement = document.documentElement;\n\n if (!body || !documentElement) {\n throw new Error(`Unable to get document size`);\n }\n const width = Math.max(\n Math.max(body.scrollWidth, documentElement.scrollWidth),\n Math.max(body.offsetWidth, documentElement.offsetWidth),\n Math.max(body.clientWidth, documentElement.clientWidth)\n );\n\n const height = Math.max(\n Math.max(body.scrollHeight, documentElement.scrollHeight),\n Math.max(body.offsetHeight, documentElement.offsetHeight),\n Math.max(body.clientHeight, documentElement.clientHeight)\n );\n\n return new Bounds(0, 0, width, height);\n};\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const decode = (base64: string): ArrayBuffer | number[] => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const buffer =\n typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n const bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return buffer;\n};\n\nexport const polyUint16Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n\nexport const polyUint32Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const encode = (arraybuffer: ArrayBuffer): string => {\n let bytes = new Uint8Array(arraybuffer),\n i,\n len = bytes.length,\n base64 = '';\n\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n\n return base64;\n};\n\nexport const decode = (base64: string): ArrayBuffer => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n};\n","import {decode, polyUint16Array, polyUint32Array} from './Util';\n\nexport type int = number;\n\n/** Shift size for getting the index-2 table offset. */\nexport const UTRIE2_SHIFT_2 = 5;\n\n/** Shift size for getting the index-1 table offset. */\nexport const UTRIE2_SHIFT_1 = 6 + 5;\n\n/**\n * Shift size for shifting left the index array values.\n * Increases possible data size with 16-bit index values at the cost\n * of compactability.\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\n */\nexport const UTRIE2_INDEX_SHIFT = 2;\n\n/**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\nexport const UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;\n\n/**\n * The part of the index-2 table for U+D800..U+DBFF stores values for\n * lead surrogate code _units_ not code _points_.\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\nexport const UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;\n\n/** Number of entries in a data block. 32=0x20 */\nexport const UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;\n/** Mask for getting the lower bits for the in-data-block offset. */\nexport const UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;\n\nexport const UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;\n/** Count the lengths of both BMP pieces. 2080=0x820 */\nexport const UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH;\n/**\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\n */\nexport const UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;\nexport const UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\n/**\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n * Variable length, for code points up to highStart, where the last single-value range starts.\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\n *\n * The part of the index-2 table for supplementary code points starts\n * after this index-1 table.\n *\n * Both the index-1 table and the following part of the index-2 table\n * are omitted completely if there is only BMP data.\n */\nexport const UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;\n\n/**\n * Number of index-1 entries for the BMP. 32=0x20\n * This part of the index-1 table is omitted from the serialized form.\n */\nexport const UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;\n\n/** Number of entries in an index-2 block. 64=0x40 */\nexport const UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;\n/** Mask for getting the lower bits for the in-index-2-block offset. */\nexport const UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;\n\nconst slice16 = (view: number[] | Uint16Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n};\n\nconst slice32 = (view: number[] | Uint32Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n};\n\nexport const createTrieFromBase64 = (base64: string, _byteLength: number): Trie => {\n const buffer = decode(base64);\n const view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer);\n const view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer);\n const headerLength = 24;\n\n const index = slice16(view16, headerLength / 2, view32[4] / 2);\n const data =\n view32[5] === 2\n ? slice16(view16, (headerLength + view32[4]) / 2)\n : slice32(view32, Math.ceil((headerLength + view32[4]) / 4));\n\n return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);\n};\n\nexport class Trie {\n initialValue: int;\n errorValue: int;\n highStart: int;\n highValueIndex: int;\n index: Uint16Array | number[];\n data: Uint32Array | Uint16Array | number[];\n\n constructor(\n initialValue: int,\n errorValue: int,\n highStart: int,\n highValueIndex: int,\n index: Uint16Array | number[],\n data: Uint32Array | Uint16Array | number[]\n ) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n get(codePoint: number): number {\n let ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n }\n}\n","export const base64 =\n 'KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA==';\nexport const byteLength = 39664;\n","'use strict';\n\nimport {createTrieFromBase64} from 'utrie';\nimport {base64, byteLength} from './linebreak-trie';\nimport {fromCodePoint, toCodePoints} from './Util';\n\nexport const LETTER_NUMBER_MODIFIER = 50;\n\n// Non-tailorable Line Breaking Classes\nconst BK = 1; // Cause a line break (after)\nconst CR = 2; // Cause a line break (after), except between CR and LF\nconst LF = 3; // Cause a line break (after)\nconst CM = 4; // Prohibit a line break between the character and the preceding character\nconst NL = 5; // Cause a line break (after)\nconst SG = 6; // Do not occur in well-formed text\nconst WJ = 7; // Prohibit line breaks before and after\nconst ZW = 8; // Provide a break opportunity\nconst GL = 9; // Prohibit line breaks before and after\nconst SP = 10; // Enable indirect line breaks\nconst ZWJ = 11; // Prohibit line breaks within joiner sequences\n// Break Opportunities\nconst B2 = 12; // Provide a line break opportunity before and after the character\nconst BA = 13; // Generally provide a line break opportunity after the character\nconst BB = 14; // Generally provide a line break opportunity before the character\nconst HY = 15; // Provide a line break opportunity after the character, except in numeric context\nconst CB = 16; // Provide a line break opportunity contingent on additional information\n// Characters Prohibiting Certain Breaks\nconst CL = 17; // Prohibit line breaks before\nconst CP = 18; // Prohibit line breaks before\nconst EX = 19; // Prohibit line breaks before\nconst IN = 20; // Allow only indirect line breaks between pairs\nconst NS = 21; // Allow only indirect line breaks before\nconst OP = 22; // Prohibit line breaks after\nconst QU = 23; // Act like they are both opening and closing\n// Numeric Context\nconst IS = 24; // Prevent breaks after any and before numeric\nconst NU = 25; // Form numeric expressions for line breaking purposes\nconst PO = 26; // Do not break following a numeric expression\nconst PR = 27; // Do not break in front of a numeric expression\nconst SY = 28; // Prevent a break before; and allow a break after\n// Other Characters\nconst AI = 29; // Act like AL when the resolvedEAW is N; otherwise; act as ID\nconst AL = 30; // Are alphabetic characters or symbols that are used with alphabetic characters\nconst CJ = 31; // Treat as NS or ID for strict or normal breaking.\nconst EB = 32; // Do not break from following Emoji Modifier\nconst EM = 33; // Do not break from preceding Emoji Base\nconst H2 = 34; // Form Korean syllable blocks\nconst H3 = 35; // Form Korean syllable blocks\nconst HL = 36; // Do not break around a following hyphen; otherwise act as Alphabetic\nconst ID = 37; // Break before or after; except in some numeric context\nconst JL = 38; // Form Korean syllable blocks\nconst JV = 39; // Form Korean syllable blocks\nconst JT = 40; // Form Korean syllable blocks\nconst RI = 41; // Keep pairs together. For pairs; break before and after other classes\nconst SA = 42; // Provide a line break opportunity contingent on additional, language-specific context analysis\nconst XX = 43; // Have as yet unknown line breaking behavior or unassigned code positions\n\nconst ea_OP = [0x2329, 0xff08];\n\nexport const classes: {[key: string]: number} = {\n BK,\n CR,\n LF,\n CM,\n NL,\n SG,\n WJ,\n ZW,\n GL,\n SP,\n ZWJ,\n B2,\n BA,\n BB,\n HY,\n CB,\n CL,\n CP,\n EX,\n IN,\n NS,\n OP,\n QU,\n IS,\n NU,\n PO,\n PR,\n SY,\n AI,\n AL,\n CJ,\n EB,\n EM,\n H2,\n H3,\n HL,\n ID,\n JL,\n JV,\n JT,\n RI,\n SA,\n XX,\n};\n\nexport const BREAK_MANDATORY = '!';\nexport const BREAK_NOT_ALLOWED = '×';\nexport const BREAK_ALLOWED = '÷';\nexport const UnicodeTrie = createTrieFromBase64(base64, byteLength);\n\nconst ALPHABETICS = [AL, HL];\nconst HARD_LINE_BREAKS = [BK, CR, LF, NL];\nconst SPACE = [SP, ZW];\nconst PREFIX_POSTFIX = [PR, PO];\nconst LINE_BREAKS = HARD_LINE_BREAKS.concat(SPACE);\nconst KOREAN_SYLLABLE_BLOCK = [JL, JV, JT, H2, H3];\nconst HYPHEN = [HY, BA];\n\nexport const codePointsToCharacterClasses = (\n codePoints: number[],\n lineBreak: string = 'strict'\n): [number[], number[], boolean[]] => {\n const types: number[] = [];\n const indices: number[] = [];\n const categories: boolean[] = [];\n codePoints.forEach((codePoint, index) => {\n let classType = UnicodeTrie.get(codePoint);\n if (classType > LETTER_NUMBER_MODIFIER) {\n categories.push(true);\n classType -= LETTER_NUMBER_MODIFIER;\n } else {\n categories.push(false);\n }\n\n if (['normal', 'auto', 'loose'].indexOf(lineBreak) !== -1) {\n // U+2010, – U+2013, 〜 U+301C, ゠ U+30A0\n if ([0x2010, 0x2013, 0x301c, 0x30a0].indexOf(codePoint) !== -1) {\n indices.push(index);\n return types.push(CB);\n }\n }\n\n if (classType === CM || classType === ZWJ) {\n // LB10 Treat any remaining combining mark or ZWJ as AL.\n if (index === 0) {\n indices.push(index);\n return types.push(AL);\n }\n\n // LB9 Do not break a combining character sequence; treat it as if it has the line breaking class of\n // the base character in all of the following rules. Treat ZWJ as if it were CM.\n const prev = types[index - 1];\n if (LINE_BREAKS.indexOf(prev) === -1) {\n indices.push(indices[index - 1]);\n return types.push(prev);\n }\n indices.push(index);\n return types.push(AL);\n }\n\n indices.push(index);\n\n if (classType === CJ) {\n return types.push(lineBreak === 'strict' ? NS : ID);\n }\n\n if (classType === SA) {\n return types.push(AL);\n }\n\n if (classType === AI) {\n return types.push(AL);\n }\n\n // For supplementary characters, a useful default is to treat characters in the range 10000..1FFFD as AL\n // and characters in the ranges 20000..2FFFD and 30000..3FFFD as ID, until the implementation can be revised\n // to take into account the actual line breaking properties for these characters.\n if (classType === XX) {\n if ((codePoint >= 0x20000 && codePoint <= 0x2fffd) || (codePoint >= 0x30000 && codePoint <= 0x3fffd)) {\n return types.push(ID);\n } else {\n return types.push(AL);\n }\n }\n\n types.push(classType);\n });\n\n return [indices, types, categories];\n};\n\nconst isAdjacentWithSpaceIgnored = (\n a: number[] | number,\n b: number,\n currentIndex: number,\n classTypes: number[]\n): boolean => {\n const current = classTypes[currentIndex];\n if (Array.isArray(a) ? a.indexOf(current) !== -1 : a === current) {\n let i = currentIndex;\n while (i <= classTypes.length) {\n i++;\n let next = classTypes[i];\n\n if (next === b) {\n return true;\n }\n\n if (next !== SP) {\n break;\n }\n }\n }\n\n if (current === SP) {\n let i = currentIndex;\n\n while (i > 0) {\n i--;\n const prev = classTypes[i];\n\n if (Array.isArray(a) ? a.indexOf(prev) !== -1 : a === prev) {\n let n = currentIndex;\n while (n <= classTypes.length) {\n n++;\n let next = classTypes[n];\n\n if (next === b) {\n return true;\n }\n\n if (next !== SP) {\n break;\n }\n }\n }\n\n if (prev !== SP) {\n break;\n }\n }\n }\n return false;\n};\n\nconst previousNonSpaceClassType = (currentIndex: number, classTypes: number[]): number => {\n let i = currentIndex;\n while (i >= 0) {\n let type = classTypes[i];\n if (type === SP) {\n i--;\n } else {\n return type;\n }\n }\n return 0;\n};\n\nexport type BREAK_OPPORTUNITIES = typeof BREAK_NOT_ALLOWED | typeof BREAK_ALLOWED | typeof BREAK_MANDATORY;\n\nconst _lineBreakAtIndex = (\n codePoints: number[],\n classTypes: number[],\n indicies: number[],\n index: number,\n forbiddenBreaks?: boolean[]\n): BREAK_OPPORTUNITIES => {\n if (indicies[index] === 0) {\n return BREAK_NOT_ALLOWED;\n }\n\n let currentIndex = index - 1;\n if (Array.isArray(forbiddenBreaks) && forbiddenBreaks[currentIndex] === true) {\n return BREAK_NOT_ALLOWED;\n }\n\n let beforeIndex = currentIndex - 1;\n let afterIndex = currentIndex + 1;\n let current = classTypes[currentIndex];\n\n // LB4 Always break after hard line breaks.\n // LB5 Treat CR followed by LF, as well as CR, LF, and NL as hard line breaks.\n let before = beforeIndex >= 0 ? classTypes[beforeIndex] : 0;\n let next = classTypes[afterIndex];\n\n if (current === CR && next === LF) {\n return BREAK_NOT_ALLOWED;\n }\n\n if (HARD_LINE_BREAKS.indexOf(current) !== -1) {\n return BREAK_MANDATORY;\n }\n\n // LB6 Do not break before hard line breaks.\n if (HARD_LINE_BREAKS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB7 Do not break before spaces or zero width space.\n if (SPACE.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB8 Break before any character following a zero-width space, even if one or more spaces intervene.\n if (previousNonSpaceClassType(currentIndex, classTypes) === ZW) {\n return BREAK_ALLOWED;\n }\n\n // LB8a Do not break after a zero width joiner.\n if (UnicodeTrie.get(codePoints[currentIndex]) === ZWJ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // zwj emojis\n if ((current === EB || current === EM) && UnicodeTrie.get(codePoints[afterIndex]) === ZWJ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB11 Do not break before or after Word joiner and related characters.\n if (current === WJ || next === WJ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB12 Do not break after NBSP and related characters.\n if (current === GL) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB12a Do not break before NBSP and related characters, except after spaces and hyphens.\n if ([SP, BA, HY].indexOf(current) === -1 && next === GL) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB13 Do not break before ‘]’ or ‘!’ or ‘;’ or ‘/’, even after spaces.\n if ([CL, CP, EX, IS, SY].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB14 Do not break after ‘[’, even after spaces.\n if (previousNonSpaceClassType(currentIndex, classTypes) === OP) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB15 Do not break within ‘”[’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(QU, OP, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB16 Do not break between closing punctuation and a nonstarter (lb=NS), even with intervening spaces.\n if (isAdjacentWithSpaceIgnored([CL, CP], NS, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB17 Do not break within ‘——’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(B2, B2, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB18 Break after spaces.\n if (current === SP) {\n return BREAK_ALLOWED;\n }\n\n // LB19 Do not break before or after quotation marks, such as ‘ ” ’.\n if (current === QU || next === QU) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB20 Break before and after unresolved CB.\n if (next === CB || current === CB) {\n return BREAK_ALLOWED;\n }\n\n // LB21 Do not break before hyphen-minus, other hyphens, fixed-width spaces, small kana, and other non-starters, or after acute accents.\n if ([BA, HY, NS].indexOf(next) !== -1 || current === BB) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB21a Don't break after Hebrew + Hyphen.\n if (before === HL && HYPHEN.indexOf(current) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB21b Don’t break between Solidus and Hebrew letters.\n if (current === SY && next === HL) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB22 Do not break before ellipsis.\n if (next === IN) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB23 Do not break between digits and letters.\n if ((ALPHABETICS.indexOf(next) !== -1 && current === NU) || (ALPHABETICS.indexOf(current) !== -1 && next === NU)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB23a Do not break between numeric prefixes and ideographs, or between ideographs and numeric postfixes.\n if (\n (current === PR && [ID, EB, EM].indexOf(next) !== -1) ||\n ([ID, EB, EM].indexOf(current) !== -1 && next === PO)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB24 Do not break between numeric prefix/postfix and letters, or between letters and prefix/postfix.\n if (\n (ALPHABETICS.indexOf(current) !== -1 && PREFIX_POSTFIX.indexOf(next) !== -1) ||\n (PREFIX_POSTFIX.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB25 Do not break between the following pairs of classes relevant to numbers:\n if (\n // (PR | PO) × ( OP | HY )? NU\n ([PR, PO].indexOf(current) !== -1 &&\n (next === NU || ([OP, HY].indexOf(next) !== -1 && classTypes[afterIndex + 1] === NU))) ||\n // ( OP | HY ) × NU\n ([OP, HY].indexOf(current) !== -1 && next === NU) ||\n // NU ×\t(NU | SY | IS)\n (current === NU && [NU, SY, IS].indexOf(next) !== -1)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // NU (NU | SY | IS)* × (NU | SY | IS | CL | CP)\n if ([NU, SY, IS, CL, CP].indexOf(next) !== -1) {\n let prevIndex = currentIndex;\n while (prevIndex >= 0) {\n let type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED;\n } else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n } else {\n break;\n }\n }\n }\n\n // NU (NU | SY | IS)* (CL | CP)? × (PO | PR))\n if ([PR, PO].indexOf(next) !== -1) {\n let prevIndex = [CL, CP].indexOf(current) !== -1 ? beforeIndex : currentIndex;\n while (prevIndex >= 0) {\n let type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED;\n } else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n } else {\n break;\n }\n }\n }\n\n // LB26 Do not break a Korean syllable.\n if (\n (JL === current && [JL, JV, H2, H3].indexOf(next) !== -1) ||\n ([JV, H2].indexOf(current) !== -1 && [JV, JT].indexOf(next) !== -1) ||\n ([JT, H3].indexOf(current) !== -1 && next === JT)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB27 Treat a Korean Syllable Block the same as ID.\n if (\n (KOREAN_SYLLABLE_BLOCK.indexOf(current) !== -1 && [IN, PO].indexOf(next) !== -1) ||\n (KOREAN_SYLLABLE_BLOCK.indexOf(next) !== -1 && current === PR)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB28 Do not break between alphabetics (“at”).\n if (ALPHABETICS.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB29 Do not break between numeric punctuation and alphabetics (“e.g.”).\n if (current === IS && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB30 Do not break between letters, numbers, or ordinary symbols and opening or closing parentheses.\n if (\n (ALPHABETICS.concat(NU).indexOf(current) !== -1 &&\n next === OP &&\n ea_OP.indexOf(codePoints[afterIndex]) === -1) ||\n (ALPHABETICS.concat(NU).indexOf(next) !== -1 && current === CP)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB30a Break between two regional indicator symbols if and only if there are an even number of regional\n // indicators preceding the position of the break.\n if (current === RI && next === RI) {\n let i = indicies[currentIndex];\n let count = 1;\n while (i > 0) {\n i--;\n if (classTypes[i] === RI) {\n count++;\n } else {\n break;\n }\n }\n if (count % 2 !== 0) {\n return BREAK_NOT_ALLOWED;\n }\n }\n\n // LB30b Do not break between an emoji base and an emoji modifier.\n if (current === EB && next === EM) {\n return BREAK_NOT_ALLOWED;\n }\n\n return BREAK_ALLOWED;\n};\n\nexport const lineBreakAtIndex = (codePoints: number[], index: number): BREAK_OPPORTUNITIES => {\n // LB2 Never break at the start of text.\n if (index === 0) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB3 Always break at the end of text.\n if (index >= codePoints.length) {\n return BREAK_MANDATORY;\n }\n\n const [indices, classTypes] = codePointsToCharacterClasses(codePoints);\n\n return _lineBreakAtIndex(codePoints, classTypes, indices, index);\n};\n\nexport type LINE_BREAK = 'auto' | 'normal' | 'strict';\nexport type WORD_BREAK = 'normal' | 'break-all' | 'break-word' | 'keep-all';\n\ninterface IOptions {\n lineBreak?: LINE_BREAK;\n wordBreak?: WORD_BREAK;\n}\n\nconst cssFormattedClasses = (codePoints: number[], options?: IOptions): [number[], number[], boolean[] | undefined] => {\n if (!options) {\n options = {lineBreak: 'normal', wordBreak: 'normal'};\n }\n let [indicies, classTypes, isLetterNumber] = codePointsToCharacterClasses(codePoints, options.lineBreak);\n\n if (options.wordBreak === 'break-all' || options.wordBreak === 'break-word') {\n classTypes = classTypes.map((type) => ([NU, AL, SA].indexOf(type) !== -1 ? ID : type));\n }\n\n const forbiddenBreakpoints =\n options.wordBreak === 'keep-all'\n ? isLetterNumber.map((letterNumber, i) => {\n return letterNumber && codePoints[i] >= 0x4e00 && codePoints[i] <= 0x9fff;\n })\n : undefined;\n\n return [indicies, classTypes, forbiddenBreakpoints];\n};\n\nexport const inlineBreakOpportunities = (str: string, options?: IOptions): string => {\n const codePoints = toCodePoints(str);\n let output = BREAK_NOT_ALLOWED;\n const [indicies, classTypes, forbiddenBreakpoints] = cssFormattedClasses(codePoints, options);\n\n codePoints.forEach((codePoint, i) => {\n output +=\n fromCodePoint(codePoint) +\n (i >= codePoints.length - 1\n ? BREAK_MANDATORY\n : _lineBreakAtIndex(codePoints, classTypes, indicies, i + 1, forbiddenBreakpoints));\n });\n\n return output;\n};\n\nclass Break {\n private readonly codePoints: number[];\n readonly required: boolean;\n readonly start: number;\n readonly end: number;\n\n constructor(codePoints: number[], lineBreak: string, start: number, end: number) {\n this.codePoints = codePoints;\n this.required = lineBreak === BREAK_MANDATORY;\n this.start = start;\n this.end = end;\n }\n\n slice(): string {\n return fromCodePoint(...this.codePoints.slice(this.start, this.end));\n }\n}\n\nexport type LineBreak =\n | {\n done: true;\n value: null;\n }\n | {\n done: false;\n value: Break;\n };\n\ninterface ILineBreakIterator {\n next: () => LineBreak;\n}\n\nexport const LineBreaker = (str: string, options?: IOptions): ILineBreakIterator => {\n const codePoints = toCodePoints(str);\n const [indicies, classTypes, forbiddenBreakpoints] = cssFormattedClasses(codePoints, options);\n const length = codePoints.length;\n let lastEnd = 0;\n let nextIndex = 0;\n\n return {\n next: () => {\n if (nextIndex >= length) {\n return {done: true, value: null};\n }\n let lineBreak = BREAK_NOT_ALLOWED;\n while (\n nextIndex < length &&\n (lineBreak = _lineBreakAtIndex(codePoints, classTypes, indicies, ++nextIndex, forbiddenBreakpoints)) ===\n BREAK_NOT_ALLOWED\n ) {}\n\n if (lineBreak !== BREAK_NOT_ALLOWED || nextIndex === length) {\n const value = new Break(codePoints, lineBreak, lastEnd, nextIndex);\n lastEnd = nextIndex;\n return {value, done: false};\n }\n\n return {done: true, value: null};\n },\n };\n};\n","// https://www.w3.org/TR/css-syntax-3\n\nimport {fromCodePoint, toCodePoints} from 'css-line-break';\n\nexport const enum TokenType {\n STRING_TOKEN,\n BAD_STRING_TOKEN,\n LEFT_PARENTHESIS_TOKEN,\n RIGHT_PARENTHESIS_TOKEN,\n COMMA_TOKEN,\n HASH_TOKEN,\n DELIM_TOKEN,\n AT_KEYWORD_TOKEN,\n PREFIX_MATCH_TOKEN,\n DASH_MATCH_TOKEN,\n INCLUDE_MATCH_TOKEN,\n LEFT_CURLY_BRACKET_TOKEN,\n RIGHT_CURLY_BRACKET_TOKEN,\n SUFFIX_MATCH_TOKEN,\n SUBSTRING_MATCH_TOKEN,\n DIMENSION_TOKEN,\n PERCENTAGE_TOKEN,\n NUMBER_TOKEN,\n FUNCTION,\n FUNCTION_TOKEN,\n IDENT_TOKEN,\n COLUMN_TOKEN,\n URL_TOKEN,\n BAD_URL_TOKEN,\n CDC_TOKEN,\n CDO_TOKEN,\n COLON_TOKEN,\n SEMICOLON_TOKEN,\n LEFT_SQUARE_BRACKET_TOKEN,\n RIGHT_SQUARE_BRACKET_TOKEN,\n UNICODE_RANGE_TOKEN,\n WHITESPACE_TOKEN,\n EOF_TOKEN\n}\n\ninterface IToken {\n type: TokenType;\n}\n\nexport interface Token extends IToken {\n type:\n | TokenType.BAD_URL_TOKEN\n | TokenType.BAD_STRING_TOKEN\n | TokenType.LEFT_PARENTHESIS_TOKEN\n | TokenType.RIGHT_PARENTHESIS_TOKEN\n | TokenType.COMMA_TOKEN\n | TokenType.SUBSTRING_MATCH_TOKEN\n | TokenType.PREFIX_MATCH_TOKEN\n | TokenType.SUFFIX_MATCH_TOKEN\n | TokenType.COLON_TOKEN\n | TokenType.SEMICOLON_TOKEN\n | TokenType.LEFT_SQUARE_BRACKET_TOKEN\n | TokenType.RIGHT_SQUARE_BRACKET_TOKEN\n | TokenType.LEFT_CURLY_BRACKET_TOKEN\n | TokenType.RIGHT_CURLY_BRACKET_TOKEN\n | TokenType.DASH_MATCH_TOKEN\n | TokenType.INCLUDE_MATCH_TOKEN\n | TokenType.COLUMN_TOKEN\n | TokenType.WHITESPACE_TOKEN\n | TokenType.CDC_TOKEN\n | TokenType.CDO_TOKEN\n | TokenType.EOF_TOKEN;\n}\n\nexport interface StringValueToken extends IToken {\n type:\n | TokenType.STRING_TOKEN\n | TokenType.DELIM_TOKEN\n | TokenType.FUNCTION_TOKEN\n | TokenType.IDENT_TOKEN\n | TokenType.URL_TOKEN\n | TokenType.AT_KEYWORD_TOKEN;\n value: string;\n}\n\nexport interface HashToken extends IToken {\n type: TokenType.HASH_TOKEN;\n flags: number;\n value: string;\n}\n\nexport interface NumberValueToken extends IToken {\n type: TokenType.PERCENTAGE_TOKEN | TokenType.NUMBER_TOKEN;\n flags: number;\n number: number;\n}\n\nexport interface DimensionToken extends IToken {\n type: TokenType.DIMENSION_TOKEN;\n flags: number;\n unit: string;\n number: number;\n}\n\nexport interface UnicodeRangeToken extends IToken {\n type: TokenType.UNICODE_RANGE_TOKEN;\n start: number;\n end: number;\n}\n\nexport type CSSToken = Token | StringValueToken | NumberValueToken | DimensionToken | UnicodeRangeToken | HashToken;\n\nexport const FLAG_UNRESTRICTED = 1 << 0;\nexport const FLAG_ID = 1 << 1;\nexport const FLAG_INTEGER = 1 << 2;\nexport const FLAG_NUMBER = 1 << 3;\n\nconst LINE_FEED = 0x000a;\nconst SOLIDUS = 0x002f;\nconst REVERSE_SOLIDUS = 0x005c;\nconst CHARACTER_TABULATION = 0x0009;\nconst SPACE = 0x0020;\nconst QUOTATION_MARK = 0x0022;\nconst EQUALS_SIGN = 0x003d;\nconst NUMBER_SIGN = 0x0023;\nconst DOLLAR_SIGN = 0x0024;\nconst PERCENTAGE_SIGN = 0x0025;\nconst APOSTROPHE = 0x0027;\nconst LEFT_PARENTHESIS = 0x0028;\nconst RIGHT_PARENTHESIS = 0x0029;\nconst LOW_LINE = 0x005f;\nconst HYPHEN_MINUS = 0x002d;\nconst EXCLAMATION_MARK = 0x0021;\nconst LESS_THAN_SIGN = 0x003c;\nconst GREATER_THAN_SIGN = 0x003e;\nconst COMMERCIAL_AT = 0x0040;\nconst LEFT_SQUARE_BRACKET = 0x005b;\nconst RIGHT_SQUARE_BRACKET = 0x005d;\nconst CIRCUMFLEX_ACCENT = 0x003d;\nconst LEFT_CURLY_BRACKET = 0x007b;\nconst QUESTION_MARK = 0x003f;\nconst RIGHT_CURLY_BRACKET = 0x007d;\nconst VERTICAL_LINE = 0x007c;\nconst TILDE = 0x007e;\nconst CONTROL = 0x0080;\nconst REPLACEMENT_CHARACTER = 0xfffd;\nconst ASTERISK = 0x002a;\nconst PLUS_SIGN = 0x002b;\nconst COMMA = 0x002c;\nconst COLON = 0x003a;\nconst SEMICOLON = 0x003b;\nconst FULL_STOP = 0x002e;\nconst NULL = 0x0000;\nconst BACKSPACE = 0x0008;\nconst LINE_TABULATION = 0x000b;\nconst SHIFT_OUT = 0x000e;\nconst INFORMATION_SEPARATOR_ONE = 0x001f;\nconst DELETE = 0x007f;\nconst EOF = -1;\nconst ZERO = 0x0030;\nconst a = 0x0061;\nconst e = 0x0065;\nconst f = 0x0066;\nconst u = 0x0075;\nconst z = 0x007a;\nconst A = 0x0041;\nconst E = 0x0045;\nconst F = 0x0046;\nconst U = 0x0055;\nconst Z = 0x005a;\n\nconst isDigit = (codePoint: number) => codePoint >= ZERO && codePoint <= 0x0039;\nconst isSurrogateCodePoint = (codePoint: number) => codePoint >= 0xd800 && codePoint <= 0xdfff;\nconst isHex = (codePoint: number) =>\n isDigit(codePoint) || (codePoint >= A && codePoint <= F) || (codePoint >= a && codePoint <= f);\nconst isLowerCaseLetter = (codePoint: number) => codePoint >= a && codePoint <= z;\nconst isUpperCaseLetter = (codePoint: number) => codePoint >= A && codePoint <= Z;\nconst isLetter = (codePoint: number) => isLowerCaseLetter(codePoint) || isUpperCaseLetter(codePoint);\nconst isNonASCIICodePoint = (codePoint: number) => codePoint >= CONTROL;\nconst isWhiteSpace = (codePoint: number): boolean =>\n codePoint === LINE_FEED || codePoint === CHARACTER_TABULATION || codePoint === SPACE;\nconst isNameStartCodePoint = (codePoint: number): boolean =>\n isLetter(codePoint) || isNonASCIICodePoint(codePoint) || codePoint === LOW_LINE;\nconst isNameCodePoint = (codePoint: number): boolean =>\n isNameStartCodePoint(codePoint) || isDigit(codePoint) || codePoint === HYPHEN_MINUS;\nconst isNonPrintableCodePoint = (codePoint: number): boolean => {\n return (\n (codePoint >= NULL && codePoint <= BACKSPACE) ||\n codePoint === LINE_TABULATION ||\n (codePoint >= SHIFT_OUT && codePoint <= INFORMATION_SEPARATOR_ONE) ||\n codePoint === DELETE\n );\n};\nconst isValidEscape = (c1: number, c2: number): boolean => {\n if (c1 !== REVERSE_SOLIDUS) {\n return false;\n }\n\n return c2 !== LINE_FEED;\n};\nconst isIdentifierStart = (c1: number, c2: number, c3: number): boolean => {\n if (c1 === HYPHEN_MINUS) {\n return isNameStartCodePoint(c2) || isValidEscape(c2, c3);\n } else if (isNameStartCodePoint(c1)) {\n return true;\n } else if (c1 === REVERSE_SOLIDUS && isValidEscape(c1, c2)) {\n return true;\n }\n return false;\n};\n\nconst isNumberStart = (c1: number, c2: number, c3: number): boolean => {\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n if (isDigit(c2)) {\n return true;\n }\n\n return c2 === FULL_STOP && isDigit(c3);\n }\n\n if (c1 === FULL_STOP) {\n return isDigit(c2);\n }\n\n return isDigit(c1);\n};\n\nconst stringToNumber = (codePoints: number[]): number => {\n let c = 0;\n let sign = 1;\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n sign = -1;\n }\n c++;\n }\n\n const integers = [];\n\n while (isDigit(codePoints[c])) {\n integers.push(codePoints[c++]);\n }\n\n const int = integers.length ? parseInt(fromCodePoint(...integers), 10) : 0;\n\n if (codePoints[c] === FULL_STOP) {\n c++;\n }\n\n const fraction = [];\n while (isDigit(codePoints[c])) {\n fraction.push(codePoints[c++]);\n }\n\n const fracd = fraction.length;\n const frac = fracd ? parseInt(fromCodePoint(...fraction), 10) : 0;\n\n if (codePoints[c] === E || codePoints[c] === e) {\n c++;\n }\n\n let expsign = 1;\n\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n expsign = -1;\n }\n c++;\n }\n\n const exponent = [];\n\n while (isDigit(codePoints[c])) {\n exponent.push(codePoints[c++]);\n }\n\n const exp = exponent.length ? parseInt(fromCodePoint(...exponent), 10) : 0;\n\n return sign * (int + frac * Math.pow(10, -fracd)) * Math.pow(10, expsign * exp);\n};\n\nconst LEFT_PARENTHESIS_TOKEN: Token = {\n type: TokenType.LEFT_PARENTHESIS_TOKEN\n};\nconst RIGHT_PARENTHESIS_TOKEN: Token = {\n type: TokenType.RIGHT_PARENTHESIS_TOKEN\n};\nconst COMMA_TOKEN: Token = {type: TokenType.COMMA_TOKEN};\nconst SUFFIX_MATCH_TOKEN: Token = {type: TokenType.SUFFIX_MATCH_TOKEN};\nconst PREFIX_MATCH_TOKEN: Token = {type: TokenType.PREFIX_MATCH_TOKEN};\nconst COLUMN_TOKEN: Token = {type: TokenType.COLUMN_TOKEN};\nconst DASH_MATCH_TOKEN: Token = {type: TokenType.DASH_MATCH_TOKEN};\nconst INCLUDE_MATCH_TOKEN: Token = {type: TokenType.INCLUDE_MATCH_TOKEN};\nconst LEFT_CURLY_BRACKET_TOKEN: Token = {\n type: TokenType.LEFT_CURLY_BRACKET_TOKEN\n};\nconst RIGHT_CURLY_BRACKET_TOKEN: Token = {\n type: TokenType.RIGHT_CURLY_BRACKET_TOKEN\n};\nconst SUBSTRING_MATCH_TOKEN: Token = {type: TokenType.SUBSTRING_MATCH_TOKEN};\nconst BAD_URL_TOKEN: Token = {type: TokenType.BAD_URL_TOKEN};\nconst BAD_STRING_TOKEN: Token = {type: TokenType.BAD_STRING_TOKEN};\nconst CDO_TOKEN: Token = {type: TokenType.CDO_TOKEN};\nconst CDC_TOKEN: Token = {type: TokenType.CDC_TOKEN};\nconst COLON_TOKEN: Token = {type: TokenType.COLON_TOKEN};\nconst SEMICOLON_TOKEN: Token = {type: TokenType.SEMICOLON_TOKEN};\nconst LEFT_SQUARE_BRACKET_TOKEN: Token = {\n type: TokenType.LEFT_SQUARE_BRACKET_TOKEN\n};\nconst RIGHT_SQUARE_BRACKET_TOKEN: Token = {\n type: TokenType.RIGHT_SQUARE_BRACKET_TOKEN\n};\nconst WHITESPACE_TOKEN: Token = {type: TokenType.WHITESPACE_TOKEN};\nexport const EOF_TOKEN: Token = {type: TokenType.EOF_TOKEN};\n\nexport class Tokenizer {\n private _value: number[];\n\n constructor() {\n this._value = [];\n }\n\n write(chunk: string): void {\n this._value = this._value.concat(toCodePoints(chunk));\n }\n\n read(): CSSToken[] {\n const tokens = [];\n let token = this.consumeToken();\n while (token !== EOF_TOKEN) {\n tokens.push(token);\n token = this.consumeToken();\n }\n return tokens;\n }\n\n private consumeToken(): CSSToken {\n const codePoint = this.consumeCodePoint();\n\n switch (codePoint) {\n case QUOTATION_MARK:\n return this.consumeStringToken(QUOTATION_MARK);\n case NUMBER_SIGN:\n const c1 = this.peekCodePoint(0);\n const c2 = this.peekCodePoint(1);\n const c3 = this.peekCodePoint(2);\n if (isNameCodePoint(c1) || isValidEscape(c2, c3)) {\n const flags = isIdentifierStart(c1, c2, c3) ? FLAG_ID : FLAG_UNRESTRICTED;\n const value = this.consumeName();\n\n return {type: TokenType.HASH_TOKEN, value, flags};\n }\n break;\n case DOLLAR_SIGN:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUFFIX_MATCH_TOKEN;\n }\n break;\n case APOSTROPHE:\n return this.consumeStringToken(APOSTROPHE);\n case LEFT_PARENTHESIS:\n return LEFT_PARENTHESIS_TOKEN;\n case RIGHT_PARENTHESIS:\n return RIGHT_PARENTHESIS_TOKEN;\n case ASTERISK:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUBSTRING_MATCH_TOKEN;\n }\n break;\n case PLUS_SIGN:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case COMMA:\n return COMMA_TOKEN;\n case HYPHEN_MINUS:\n const e1 = codePoint;\n const e2 = this.peekCodePoint(0);\n const e3 = this.peekCodePoint(1);\n\n if (isNumberStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n\n if (isIdentifierStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n\n if (e2 === HYPHEN_MINUS && e3 === GREATER_THAN_SIGN) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDC_TOKEN;\n }\n break;\n\n case FULL_STOP:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case SOLIDUS:\n if (this.peekCodePoint(0) === ASTERISK) {\n this.consumeCodePoint();\n while (true) {\n let c = this.consumeCodePoint();\n if (c === ASTERISK) {\n c = this.consumeCodePoint();\n if (c === SOLIDUS) {\n return this.consumeToken();\n }\n }\n if (c === EOF) {\n return this.consumeToken();\n }\n }\n }\n break;\n case COLON:\n return COLON_TOKEN;\n case SEMICOLON:\n return SEMICOLON_TOKEN;\n case LESS_THAN_SIGN:\n if (\n this.peekCodePoint(0) === EXCLAMATION_MARK &&\n this.peekCodePoint(1) === HYPHEN_MINUS &&\n this.peekCodePoint(2) === HYPHEN_MINUS\n ) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDO_TOKEN;\n }\n break;\n case COMMERCIAL_AT:\n const a1 = this.peekCodePoint(0);\n const a2 = this.peekCodePoint(1);\n const a3 = this.peekCodePoint(2);\n if (isIdentifierStart(a1, a2, a3)) {\n const value = this.consumeName();\n return {type: TokenType.AT_KEYWORD_TOKEN, value};\n }\n break;\n case LEFT_SQUARE_BRACKET:\n return LEFT_SQUARE_BRACKET_TOKEN;\n case REVERSE_SOLIDUS:\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n break;\n case RIGHT_SQUARE_BRACKET:\n return RIGHT_SQUARE_BRACKET_TOKEN;\n case CIRCUMFLEX_ACCENT:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return PREFIX_MATCH_TOKEN;\n }\n break;\n case LEFT_CURLY_BRACKET:\n return LEFT_CURLY_BRACKET_TOKEN;\n case RIGHT_CURLY_BRACKET:\n return RIGHT_CURLY_BRACKET_TOKEN;\n case u:\n case U:\n const u1 = this.peekCodePoint(0);\n const u2 = this.peekCodePoint(1);\n if (u1 === PLUS_SIGN && (isHex(u2) || u2 === QUESTION_MARK)) {\n this.consumeCodePoint();\n this.consumeUnicodeRangeToken();\n }\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n case VERTICAL_LINE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return DASH_MATCH_TOKEN;\n }\n if (this.peekCodePoint(0) === VERTICAL_LINE) {\n this.consumeCodePoint();\n return COLUMN_TOKEN;\n }\n break;\n case TILDE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return INCLUDE_MATCH_TOKEN;\n }\n break;\n case EOF:\n return EOF_TOKEN;\n }\n\n if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n return WHITESPACE_TOKEN;\n }\n\n if (isDigit(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n\n if (isNameStartCodePoint(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n\n return {type: TokenType.DELIM_TOKEN, value: fromCodePoint(codePoint)};\n }\n\n private consumeCodePoint(): number {\n const value = this._value.shift();\n\n return typeof value === 'undefined' ? -1 : value;\n }\n\n private reconsumeCodePoint(codePoint: number) {\n this._value.unshift(codePoint);\n }\n\n private peekCodePoint(delta: number): number {\n if (delta >= this._value.length) {\n return -1;\n }\n\n return this._value[delta];\n }\n\n private consumeUnicodeRangeToken(): UnicodeRangeToken {\n const digits = [];\n let codePoint = this.consumeCodePoint();\n while (isHex(codePoint) && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n let questionMarks = false;\n while (codePoint === QUESTION_MARK && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n questionMarks = true;\n }\n\n if (questionMarks) {\n const start = parseInt(\n fromCodePoint(...digits.map((digit) => (digit === QUESTION_MARK ? ZERO : digit))),\n 16\n );\n const end = parseInt(fromCodePoint(...digits.map((digit) => (digit === QUESTION_MARK ? F : digit))), 16);\n return {type: TokenType.UNICODE_RANGE_TOKEN, start, end};\n }\n\n const start = parseInt(fromCodePoint(...digits), 16);\n if (this.peekCodePoint(0) === HYPHEN_MINUS && isHex(this.peekCodePoint(1))) {\n this.consumeCodePoint();\n codePoint = this.consumeCodePoint();\n const endDigits = [];\n while (isHex(codePoint) && endDigits.length < 6) {\n endDigits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n const end = parseInt(fromCodePoint(...endDigits), 16);\n\n return {type: TokenType.UNICODE_RANGE_TOKEN, start, end};\n } else {\n return {type: TokenType.UNICODE_RANGE_TOKEN, start, end: start};\n }\n }\n\n private consumeIdentLikeToken(): StringValueToken | Token {\n const value = this.consumeName();\n if (value.toLowerCase() === 'url' && this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return this.consumeUrlToken();\n } else if (this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return {type: TokenType.FUNCTION_TOKEN, value};\n }\n\n return {type: TokenType.IDENT_TOKEN, value};\n }\n\n private consumeUrlToken(): StringValueToken | Token {\n const value = [];\n this.consumeWhiteSpace();\n\n if (this.peekCodePoint(0) === EOF) {\n return {type: TokenType.URL_TOKEN, value: ''};\n }\n\n const next = this.peekCodePoint(0);\n if (next === APOSTROPHE || next === QUOTATION_MARK) {\n const stringToken = this.consumeStringToken(this.consumeCodePoint());\n if (stringToken.type === TokenType.STRING_TOKEN) {\n this.consumeWhiteSpace();\n\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return {type: TokenType.URL_TOKEN, value: stringToken.value};\n }\n }\n\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n\n while (true) {\n const codePoint = this.consumeCodePoint();\n if (codePoint === EOF || codePoint === RIGHT_PARENTHESIS) {\n return {type: TokenType.URL_TOKEN, value: fromCodePoint(...value)};\n } else if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return {type: TokenType.URL_TOKEN, value: fromCodePoint(...value)};\n }\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n } else if (\n codePoint === QUOTATION_MARK ||\n codePoint === APOSTROPHE ||\n codePoint === LEFT_PARENTHESIS ||\n isNonPrintableCodePoint(codePoint)\n ) {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n } else if (codePoint === REVERSE_SOLIDUS) {\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n value.push(this.consumeEscapedCodePoint());\n } else {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n } else {\n value.push(codePoint);\n }\n }\n }\n\n private consumeWhiteSpace(): void {\n while (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n }\n\n private consumeBadUrlRemnants(): void {\n while (true) {\n const codePoint = this.consumeCodePoint();\n if (codePoint === RIGHT_PARENTHESIS || codePoint === EOF) {\n return;\n }\n\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.consumeEscapedCodePoint();\n }\n }\n }\n\n private consumeStringSlice(count: number): string {\n const SLICE_STACK_SIZE = 50000;\n let value = '';\n while (count > 0) {\n const amount = Math.min(SLICE_STACK_SIZE, count);\n value += fromCodePoint(...this._value.splice(0, amount));\n count -= amount;\n }\n this._value.shift();\n\n return value;\n }\n\n private consumeStringToken(endingCodePoint: number): StringValueToken | Token {\n let value = '';\n let i = 0;\n\n do {\n const codePoint = this._value[i];\n if (codePoint === EOF || codePoint === undefined || codePoint === endingCodePoint) {\n value += this.consumeStringSlice(i);\n return {type: TokenType.STRING_TOKEN, value};\n }\n\n if (codePoint === LINE_FEED) {\n this._value.splice(0, i);\n return BAD_STRING_TOKEN;\n }\n\n if (codePoint === REVERSE_SOLIDUS) {\n const next = this._value[i + 1];\n if (next !== EOF && next !== undefined) {\n if (next === LINE_FEED) {\n value += this.consumeStringSlice(i);\n i = -1;\n this._value.shift();\n } else if (isValidEscape(codePoint, next)) {\n value += this.consumeStringSlice(i);\n value += fromCodePoint(this.consumeEscapedCodePoint());\n i = -1;\n }\n }\n }\n\n i++;\n } while (true);\n }\n\n private consumeNumber() {\n const repr = [];\n let type = FLAG_INTEGER;\n let c1 = this.peekCodePoint(0);\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n repr.push(this.consumeCodePoint());\n }\n\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n c1 = this.peekCodePoint(0);\n let c2 = this.peekCodePoint(1);\n if (c1 === FULL_STOP && isDigit(c2)) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n\n c1 = this.peekCodePoint(0);\n c2 = this.peekCodePoint(1);\n const c3 = this.peekCodePoint(2);\n if ((c1 === E || c1 === e) && (((c2 === PLUS_SIGN || c2 === HYPHEN_MINUS) && isDigit(c3)) || isDigit(c2))) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n\n return [stringToNumber(repr), type];\n }\n\n private consumeNumericToken(): NumberValueToken | DimensionToken {\n const [number, flags] = this.consumeNumber();\n const c1 = this.peekCodePoint(0);\n const c2 = this.peekCodePoint(1);\n const c3 = this.peekCodePoint(2);\n\n if (isIdentifierStart(c1, c2, c3)) {\n const unit = this.consumeName();\n return {type: TokenType.DIMENSION_TOKEN, number, flags, unit};\n }\n\n if (c1 === PERCENTAGE_SIGN) {\n this.consumeCodePoint();\n return {type: TokenType.PERCENTAGE_TOKEN, number, flags};\n }\n\n return {type: TokenType.NUMBER_TOKEN, number, flags};\n }\n\n private consumeEscapedCodePoint(): number {\n const codePoint = this.consumeCodePoint();\n\n if (isHex(codePoint)) {\n let hex = fromCodePoint(codePoint);\n while (isHex(this.peekCodePoint(0)) && hex.length < 6) {\n hex += fromCodePoint(this.consumeCodePoint());\n }\n\n if (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n\n const hexCodePoint = parseInt(hex, 16);\n\n if (hexCodePoint === 0 || isSurrogateCodePoint(hexCodePoint) || hexCodePoint > 0x10ffff) {\n return REPLACEMENT_CHARACTER;\n }\n\n return hexCodePoint;\n }\n\n if (codePoint === EOF) {\n return REPLACEMENT_CHARACTER;\n }\n\n return codePoint;\n }\n\n private consumeName(): string {\n let result = '';\n while (true) {\n const codePoint = this.consumeCodePoint();\n if (isNameCodePoint(codePoint)) {\n result += fromCodePoint(codePoint);\n } else if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n result += fromCodePoint(this.consumeEscapedCodePoint());\n } else {\n this.reconsumeCodePoint(codePoint);\n return result;\n }\n }\n }\n}\n","import {\n CSSToken,\n DimensionToken,\n EOF_TOKEN,\n NumberValueToken,\n StringValueToken,\n Tokenizer,\n TokenType\n} from './tokenizer';\n\nexport type CSSBlockType =\n | TokenType.LEFT_PARENTHESIS_TOKEN\n | TokenType.LEFT_SQUARE_BRACKET_TOKEN\n | TokenType.LEFT_CURLY_BRACKET_TOKEN;\n\nexport interface CSSBlock {\n type: CSSBlockType;\n values: CSSValue[];\n}\n\nexport interface CSSFunction {\n type: TokenType.FUNCTION;\n name: string;\n values: CSSValue[];\n}\n\nexport type CSSValue = CSSFunction | CSSToken | CSSBlock;\n\nexport class Parser {\n private _tokens: CSSToken[];\n\n constructor(tokens: CSSToken[]) {\n this._tokens = tokens;\n }\n\n static create(value: string): Parser {\n const tokenizer = new Tokenizer();\n tokenizer.write(value);\n return new Parser(tokenizer.read());\n }\n\n static parseValue(value: string): CSSValue {\n return Parser.create(value).parseComponentValue();\n }\n\n static parseValues(value: string): CSSValue[] {\n return Parser.create(value).parseComponentValues();\n }\n\n parseComponentValue(): CSSValue {\n let token = this.consumeToken();\n while (token.type === TokenType.WHITESPACE_TOKEN) {\n token = this.consumeToken();\n }\n\n if (token.type === TokenType.EOF_TOKEN) {\n throw new SyntaxError(`Error parsing CSS component value, unexpected EOF`);\n }\n\n this.reconsumeToken(token);\n const value = this.consumeComponentValue();\n\n do {\n token = this.consumeToken();\n } while (token.type === TokenType.WHITESPACE_TOKEN);\n\n if (token.type === TokenType.EOF_TOKEN) {\n return value;\n }\n\n throw new SyntaxError(`Error parsing CSS component value, multiple values found when expecting only one`);\n }\n\n parseComponentValues(): CSSValue[] {\n const values = [];\n while (true) {\n const value = this.consumeComponentValue();\n if (value.type === TokenType.EOF_TOKEN) {\n return values;\n }\n values.push(value);\n values.push();\n }\n }\n\n private consumeComponentValue(): CSSValue {\n const token = this.consumeToken();\n\n switch (token.type) {\n case TokenType.LEFT_CURLY_BRACKET_TOKEN:\n case TokenType.LEFT_SQUARE_BRACKET_TOKEN:\n case TokenType.LEFT_PARENTHESIS_TOKEN:\n return this.consumeSimpleBlock(token.type);\n case TokenType.FUNCTION_TOKEN:\n return this.consumeFunction(token);\n }\n\n return token;\n }\n\n private consumeSimpleBlock(type: CSSBlockType): CSSBlock {\n const block: CSSBlock = {type, values: []};\n\n let token = this.consumeToken();\n while (true) {\n if (token.type === TokenType.EOF_TOKEN || isEndingTokenFor(token, type)) {\n return block;\n }\n\n this.reconsumeToken(token);\n block.values.push(this.consumeComponentValue());\n token = this.consumeToken();\n }\n }\n\n private consumeFunction(functionToken: StringValueToken): CSSFunction {\n const cssFunction: CSSFunction = {\n name: functionToken.value,\n values: [],\n type: TokenType.FUNCTION\n };\n\n while (true) {\n const token = this.consumeToken();\n if (token.type === TokenType.EOF_TOKEN || token.type === TokenType.RIGHT_PARENTHESIS_TOKEN) {\n return cssFunction;\n }\n\n this.reconsumeToken(token);\n cssFunction.values.push(this.consumeComponentValue());\n }\n }\n\n private consumeToken(): CSSToken {\n const token = this._tokens.shift();\n return typeof token === 'undefined' ? EOF_TOKEN : token;\n }\n\n private reconsumeToken(token: CSSToken): void {\n this._tokens.unshift(token);\n }\n}\n\nexport const isDimensionToken = (token: CSSValue): token is DimensionToken => token.type === TokenType.DIMENSION_TOKEN;\nexport const isNumberToken = (token: CSSValue): token is NumberValueToken => token.type === TokenType.NUMBER_TOKEN;\nexport const isIdentToken = (token: CSSValue): token is StringValueToken => token.type === TokenType.IDENT_TOKEN;\nexport const isStringToken = (token: CSSValue): token is StringValueToken => token.type === TokenType.STRING_TOKEN;\nexport const isIdentWithValue = (token: CSSValue, value: string): boolean =>\n isIdentToken(token) && token.value === value;\n\nexport const nonWhiteSpace = (token: CSSValue): boolean => token.type !== TokenType.WHITESPACE_TOKEN;\nexport const nonFunctionArgSeparator = (token: CSSValue): boolean =>\n token.type !== TokenType.WHITESPACE_TOKEN && token.type !== TokenType.COMMA_TOKEN;\n\nexport const parseFunctionArgs = (tokens: CSSValue[]): CSSValue[][] => {\n const args: CSSValue[][] = [];\n let arg: CSSValue[] = [];\n tokens.forEach((token) => {\n if (token.type === TokenType.COMMA_TOKEN) {\n if (arg.length === 0) {\n throw new Error(`Error parsing function args, zero tokens for arg`);\n }\n args.push(arg);\n arg = [];\n return;\n }\n\n if (token.type !== TokenType.WHITESPACE_TOKEN) {\n arg.push(token);\n }\n });\n if (arg.length) {\n args.push(arg);\n }\n\n return args;\n};\n\nconst isEndingTokenFor = (token: CSSToken, type: CSSBlockType): boolean => {\n if (type === TokenType.LEFT_CURLY_BRACKET_TOKEN && token.type === TokenType.RIGHT_CURLY_BRACKET_TOKEN) {\n return true;\n }\n if (type === TokenType.LEFT_SQUARE_BRACKET_TOKEN && token.type === TokenType.RIGHT_SQUARE_BRACKET_TOKEN) {\n return true;\n }\n\n return type === TokenType.LEFT_PARENTHESIS_TOKEN && token.type === TokenType.RIGHT_PARENTHESIS_TOKEN;\n};\n","import {CSSValue} from '../syntax/parser';\nimport {DimensionToken, NumberValueToken, TokenType} from '../syntax/tokenizer';\n\nexport type Length = DimensionToken | NumberValueToken;\n\nexport const isLength = (token: CSSValue): token is Length =>\n token.type === TokenType.NUMBER_TOKEN || token.type === TokenType.DIMENSION_TOKEN;\n","import {DimensionToken, FLAG_INTEGER, NumberValueToken, TokenType} from '../syntax/tokenizer';\nimport {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {isLength} from './length';\nexport type LengthPercentage = DimensionToken | NumberValueToken;\nexport type LengthPercentageTuple = [LengthPercentage] | [LengthPercentage, LengthPercentage];\n\nexport const isLengthPercentage = (token: CSSValue): token is LengthPercentage =>\n token.type === TokenType.PERCENTAGE_TOKEN || isLength(token);\nexport const parseLengthPercentageTuple = (tokens: LengthPercentage[]): LengthPercentageTuple =>\n tokens.length > 1 ? [tokens[0], tokens[1]] : [tokens[0]];\nexport const ZERO_LENGTH: NumberValueToken = {\n type: TokenType.NUMBER_TOKEN,\n number: 0,\n flags: FLAG_INTEGER\n};\n\nexport const FIFTY_PERCENT: NumberValueToken = {\n type: TokenType.PERCENTAGE_TOKEN,\n number: 50,\n flags: FLAG_INTEGER\n};\n\nexport const HUNDRED_PERCENT: NumberValueToken = {\n type: TokenType.PERCENTAGE_TOKEN,\n number: 100,\n flags: FLAG_INTEGER\n};\n\nexport const getAbsoluteValueForTuple = (\n tuple: LengthPercentageTuple,\n width: number,\n height: number\n): [number, number] => {\n const [x, y] = tuple;\n return [getAbsoluteValue(x, width), getAbsoluteValue(typeof y !== 'undefined' ? y : x, height)];\n};\nexport const getAbsoluteValue = (token: LengthPercentage, parent: number): number => {\n if (token.type === TokenType.PERCENTAGE_TOKEN) {\n return (token.number / 100) * parent;\n }\n\n if (isDimensionToken(token)) {\n switch (token.unit) {\n case 'rem':\n case 'em':\n return 16 * token.number; // TODO use correct font-size\n case 'px':\n default:\n return token.number;\n }\n }\n\n return token.number;\n};\n","import {CSSValue, isIdentToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {HUNDRED_PERCENT, ZERO_LENGTH} from './length-percentage';\nimport {GradientCorner} from './image';\nimport {Context} from '../../core/context';\n\nconst DEG = 'deg';\nconst GRAD = 'grad';\nconst RAD = 'rad';\nconst TURN = 'turn';\n\nexport const angle: ITypeDescriptor = {\n name: 'angle',\n parse: (_context: Context, value: CSSValue): number => {\n if (value.type === TokenType.DIMENSION_TOKEN) {\n switch (value.unit) {\n case DEG:\n return (Math.PI * value.number) / 180;\n case GRAD:\n return (Math.PI / 200) * value.number;\n case RAD:\n return value.number;\n case TURN:\n return Math.PI * 2 * value.number;\n }\n }\n\n throw new Error(`Unsupported angle type`);\n }\n};\n\nexport const isAngle = (value: CSSValue): boolean => {\n if (value.type === TokenType.DIMENSION_TOKEN) {\n if (value.unit === DEG || value.unit === GRAD || value.unit === RAD || value.unit === TURN) {\n return true;\n }\n }\n return false;\n};\n\nexport const parseNamedSide = (tokens: CSSValue[]): number | GradientCorner => {\n const sideOrCorner = tokens\n .filter(isIdentToken)\n .map((ident) => ident.value)\n .join(' ');\n\n switch (sideOrCorner) {\n case 'to bottom right':\n case 'to right bottom':\n case 'left top':\n case 'top left':\n return [ZERO_LENGTH, ZERO_LENGTH];\n case 'to top':\n case 'bottom':\n return deg(0);\n case 'to bottom left':\n case 'to left bottom':\n case 'right top':\n case 'top right':\n return [ZERO_LENGTH, HUNDRED_PERCENT];\n case 'to right':\n case 'left':\n return deg(90);\n case 'to top left':\n case 'to left top':\n case 'right bottom':\n case 'bottom right':\n return [HUNDRED_PERCENT, HUNDRED_PERCENT];\n case 'to bottom':\n case 'top':\n return deg(180);\n case 'to top right':\n case 'to right top':\n case 'left bottom':\n case 'bottom left':\n return [HUNDRED_PERCENT, ZERO_LENGTH];\n case 'to left':\n case 'right':\n return deg(270);\n }\n\n return 0;\n};\n\nexport const deg = (deg: number): number => (Math.PI * deg) / 180;\n","import {CSSValue, nonFunctionArgSeparator, Parser} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {angle, deg} from './angle';\nimport {getAbsoluteValue, isLengthPercentage} from './length-percentage';\nimport {Context} from '../../core/context';\nexport type Color = number;\n\nexport const color: ITypeDescriptor = {\n name: 'color',\n parse: (context: Context, value: CSSValue): Color => {\n if (value.type === TokenType.FUNCTION) {\n const colorFunction = SUPPORTED_COLOR_FUNCTIONS[value.name];\n if (typeof colorFunction === 'undefined') {\n throw new Error(`Attempting to parse an unsupported color function \"${value.name}\"`);\n }\n return colorFunction(context, value.values);\n }\n\n if (value.type === TokenType.HASH_TOKEN) {\n if (value.value.length === 3) {\n const r = value.value.substring(0, 1);\n const g = value.value.substring(1, 2);\n const b = value.value.substring(2, 3);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), 1);\n }\n\n if (value.value.length === 4) {\n const r = value.value.substring(0, 1);\n const g = value.value.substring(1, 2);\n const b = value.value.substring(2, 3);\n const a = value.value.substring(3, 4);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), parseInt(a + a, 16) / 255);\n }\n\n if (value.value.length === 6) {\n const r = value.value.substring(0, 2);\n const g = value.value.substring(2, 4);\n const b = value.value.substring(4, 6);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), 1);\n }\n\n if (value.value.length === 8) {\n const r = value.value.substring(0, 2);\n const g = value.value.substring(2, 4);\n const b = value.value.substring(4, 6);\n const a = value.value.substring(6, 8);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), parseInt(a, 16) / 255);\n }\n }\n\n if (value.type === TokenType.IDENT_TOKEN) {\n const namedColor = COLORS[value.value.toUpperCase()];\n if (typeof namedColor !== 'undefined') {\n return namedColor;\n }\n }\n\n return COLORS.TRANSPARENT;\n }\n};\n\nexport const isTransparent = (color: Color): boolean => (0xff & color) === 0;\n\nexport const asString = (color: Color): string => {\n const alpha = 0xff & color;\n const blue = 0xff & (color >> 8);\n const green = 0xff & (color >> 16);\n const red = 0xff & (color >> 24);\n return alpha < 255 ? `rgba(${red},${green},${blue},${alpha / 255})` : `rgb(${red},${green},${blue})`;\n};\n\nexport const pack = (r: number, g: number, b: number, a: number): Color =>\n ((r << 24) | (g << 16) | (b << 8) | (Math.round(a * 255) << 0)) >>> 0;\n\nconst getTokenColorValue = (token: CSSValue, i: number): number => {\n if (token.type === TokenType.NUMBER_TOKEN) {\n return token.number;\n }\n\n if (token.type === TokenType.PERCENTAGE_TOKEN) {\n const max = i === 3 ? 1 : 255;\n return i === 3 ? (token.number / 100) * max : Math.round((token.number / 100) * max);\n }\n\n return 0;\n};\n\nconst rgb = (_context: Context, args: CSSValue[]): number => {\n const tokens = args.filter(nonFunctionArgSeparator);\n\n if (tokens.length === 3) {\n const [r, g, b] = tokens.map(getTokenColorValue);\n return pack(r, g, b, 1);\n }\n\n if (tokens.length === 4) {\n const [r, g, b, a] = tokens.map(getTokenColorValue);\n return pack(r, g, b, a);\n }\n\n return 0;\n};\n\nfunction hue2rgb(t1: number, t2: number, hue: number): number {\n if (hue < 0) {\n hue += 1;\n }\n if (hue >= 1) {\n hue -= 1;\n }\n\n if (hue < 1 / 6) {\n return (t2 - t1) * hue * 6 + t1;\n } else if (hue < 1 / 2) {\n return t2;\n } else if (hue < 2 / 3) {\n return (t2 - t1) * 6 * (2 / 3 - hue) + t1;\n } else {\n return t1;\n }\n}\n\nconst hsl = (context: Context, args: CSSValue[]): number => {\n const tokens = args.filter(nonFunctionArgSeparator);\n const [hue, saturation, lightness, alpha] = tokens;\n\n const h = (hue.type === TokenType.NUMBER_TOKEN ? deg(hue.number) : angle.parse(context, hue)) / (Math.PI * 2);\n const s = isLengthPercentage(saturation) ? saturation.number / 100 : 0;\n const l = isLengthPercentage(lightness) ? lightness.number / 100 : 0;\n const a = typeof alpha !== 'undefined' && isLengthPercentage(alpha) ? getAbsoluteValue(alpha, 1) : 1;\n\n if (s === 0) {\n return pack(l * 255, l * 255, l * 255, 1);\n }\n\n const t2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n\n const t1 = l * 2 - t2;\n const r = hue2rgb(t1, t2, h + 1 / 3);\n const g = hue2rgb(t1, t2, h);\n const b = hue2rgb(t1, t2, h - 1 / 3);\n return pack(r * 255, g * 255, b * 255, a);\n};\n\nconst SUPPORTED_COLOR_FUNCTIONS: {\n [key: string]: (context: Context, args: CSSValue[]) => number;\n} = {\n hsl: hsl,\n hsla: hsl,\n rgb: rgb,\n rgba: rgb\n};\n\nexport const parseColor = (context: Context, value: string): Color =>\n color.parse(context, Parser.create(value).parseComponentValue());\n\nexport const COLORS: {[key: string]: Color} = {\n ALICEBLUE: 0xf0f8ffff,\n ANTIQUEWHITE: 0xfaebd7ff,\n AQUA: 0x00ffffff,\n AQUAMARINE: 0x7fffd4ff,\n AZURE: 0xf0ffffff,\n BEIGE: 0xf5f5dcff,\n BISQUE: 0xffe4c4ff,\n BLACK: 0x000000ff,\n BLANCHEDALMOND: 0xffebcdff,\n BLUE: 0x0000ffff,\n BLUEVIOLET: 0x8a2be2ff,\n BROWN: 0xa52a2aff,\n BURLYWOOD: 0xdeb887ff,\n CADETBLUE: 0x5f9ea0ff,\n CHARTREUSE: 0x7fff00ff,\n CHOCOLATE: 0xd2691eff,\n CORAL: 0xff7f50ff,\n CORNFLOWERBLUE: 0x6495edff,\n CORNSILK: 0xfff8dcff,\n CRIMSON: 0xdc143cff,\n CYAN: 0x00ffffff,\n DARKBLUE: 0x00008bff,\n DARKCYAN: 0x008b8bff,\n DARKGOLDENROD: 0xb886bbff,\n DARKGRAY: 0xa9a9a9ff,\n DARKGREEN: 0x006400ff,\n DARKGREY: 0xa9a9a9ff,\n DARKKHAKI: 0xbdb76bff,\n DARKMAGENTA: 0x8b008bff,\n DARKOLIVEGREEN: 0x556b2fff,\n DARKORANGE: 0xff8c00ff,\n DARKORCHID: 0x9932ccff,\n DARKRED: 0x8b0000ff,\n DARKSALMON: 0xe9967aff,\n DARKSEAGREEN: 0x8fbc8fff,\n DARKSLATEBLUE: 0x483d8bff,\n DARKSLATEGRAY: 0x2f4f4fff,\n DARKSLATEGREY: 0x2f4f4fff,\n DARKTURQUOISE: 0x00ced1ff,\n DARKVIOLET: 0x9400d3ff,\n DEEPPINK: 0xff1493ff,\n DEEPSKYBLUE: 0x00bfffff,\n DIMGRAY: 0x696969ff,\n DIMGREY: 0x696969ff,\n DODGERBLUE: 0x1e90ffff,\n FIREBRICK: 0xb22222ff,\n FLORALWHITE: 0xfffaf0ff,\n FORESTGREEN: 0x228b22ff,\n FUCHSIA: 0xff00ffff,\n GAINSBORO: 0xdcdcdcff,\n GHOSTWHITE: 0xf8f8ffff,\n GOLD: 0xffd700ff,\n GOLDENROD: 0xdaa520ff,\n GRAY: 0x808080ff,\n GREEN: 0x008000ff,\n GREENYELLOW: 0xadff2fff,\n GREY: 0x808080ff,\n HONEYDEW: 0xf0fff0ff,\n HOTPINK: 0xff69b4ff,\n INDIANRED: 0xcd5c5cff,\n INDIGO: 0x4b0082ff,\n IVORY: 0xfffff0ff,\n KHAKI: 0xf0e68cff,\n LAVENDER: 0xe6e6faff,\n LAVENDERBLUSH: 0xfff0f5ff,\n LAWNGREEN: 0x7cfc00ff,\n LEMONCHIFFON: 0xfffacdff,\n LIGHTBLUE: 0xadd8e6ff,\n LIGHTCORAL: 0xf08080ff,\n LIGHTCYAN: 0xe0ffffff,\n LIGHTGOLDENRODYELLOW: 0xfafad2ff,\n LIGHTGRAY: 0xd3d3d3ff,\n LIGHTGREEN: 0x90ee90ff,\n LIGHTGREY: 0xd3d3d3ff,\n LIGHTPINK: 0xffb6c1ff,\n LIGHTSALMON: 0xffa07aff,\n LIGHTSEAGREEN: 0x20b2aaff,\n LIGHTSKYBLUE: 0x87cefaff,\n LIGHTSLATEGRAY: 0x778899ff,\n LIGHTSLATEGREY: 0x778899ff,\n LIGHTSTEELBLUE: 0xb0c4deff,\n LIGHTYELLOW: 0xffffe0ff,\n LIME: 0x00ff00ff,\n LIMEGREEN: 0x32cd32ff,\n LINEN: 0xfaf0e6ff,\n MAGENTA: 0xff00ffff,\n MAROON: 0x800000ff,\n MEDIUMAQUAMARINE: 0x66cdaaff,\n MEDIUMBLUE: 0x0000cdff,\n MEDIUMORCHID: 0xba55d3ff,\n MEDIUMPURPLE: 0x9370dbff,\n MEDIUMSEAGREEN: 0x3cb371ff,\n MEDIUMSLATEBLUE: 0x7b68eeff,\n MEDIUMSPRINGGREEN: 0x00fa9aff,\n MEDIUMTURQUOISE: 0x48d1ccff,\n MEDIUMVIOLETRED: 0xc71585ff,\n MIDNIGHTBLUE: 0x191970ff,\n MINTCREAM: 0xf5fffaff,\n MISTYROSE: 0xffe4e1ff,\n MOCCASIN: 0xffe4b5ff,\n NAVAJOWHITE: 0xffdeadff,\n NAVY: 0x000080ff,\n OLDLACE: 0xfdf5e6ff,\n OLIVE: 0x808000ff,\n OLIVEDRAB: 0x6b8e23ff,\n ORANGE: 0xffa500ff,\n ORANGERED: 0xff4500ff,\n ORCHID: 0xda70d6ff,\n PALEGOLDENROD: 0xeee8aaff,\n PALEGREEN: 0x98fb98ff,\n PALETURQUOISE: 0xafeeeeff,\n PALEVIOLETRED: 0xdb7093ff,\n PAPAYAWHIP: 0xffefd5ff,\n PEACHPUFF: 0xffdab9ff,\n PERU: 0xcd853fff,\n PINK: 0xffc0cbff,\n PLUM: 0xdda0ddff,\n POWDERBLUE: 0xb0e0e6ff,\n PURPLE: 0x800080ff,\n REBECCAPURPLE: 0x663399ff,\n RED: 0xff0000ff,\n ROSYBROWN: 0xbc8f8fff,\n ROYALBLUE: 0x4169e1ff,\n SADDLEBROWN: 0x8b4513ff,\n SALMON: 0xfa8072ff,\n SANDYBROWN: 0xf4a460ff,\n SEAGREEN: 0x2e8b57ff,\n SEASHELL: 0xfff5eeff,\n SIENNA: 0xa0522dff,\n SILVER: 0xc0c0c0ff,\n SKYBLUE: 0x87ceebff,\n SLATEBLUE: 0x6a5acdff,\n SLATEGRAY: 0x708090ff,\n SLATEGREY: 0x708090ff,\n SNOW: 0xfffafaff,\n SPRINGGREEN: 0x00ff7fff,\n STEELBLUE: 0x4682b4ff,\n TAN: 0xd2b48cff,\n TEAL: 0x008080ff,\n THISTLE: 0xd8bfd8ff,\n TOMATO: 0xff6347ff,\n TRANSPARENT: 0x00000000,\n TURQUOISE: 0x40e0d0ff,\n VIOLET: 0xee82eeff,\n WHEAT: 0xf5deb3ff,\n WHITE: 0xffffffff,\n WHITESMOKE: 0xf5f5f5ff,\n YELLOW: 0xffff00ff,\n YELLOWGREEN: 0x9acd32ff\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, parseFunctionArgs} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentage} from '../types/length-percentage';\nimport {StringValueToken} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport enum BACKGROUND_SIZE {\n AUTO = 'auto',\n CONTAIN = 'contain',\n COVER = 'cover'\n}\n\nexport type BackgroundSizeInfo = LengthPercentage | StringValueToken;\nexport type BackgroundSize = BackgroundSizeInfo[][];\n\nexport const backgroundSize: IPropertyListDescriptor = {\n name: 'background-size',\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundSize => {\n return parseFunctionArgs(tokens).map((values) => values.filter(isBackgroundSizeInfoToken));\n }\n};\n\nconst isBackgroundSizeInfoToken = (value: CSSValue): value is BackgroundSizeInfo =>\n isIdentToken(value) || isLengthPercentage(value);\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum BACKGROUND_CLIP {\n BORDER_BOX = 0,\n PADDING_BOX = 1,\n CONTENT_BOX = 2\n}\n\nexport type BackgroundClip = BACKGROUND_CLIP[];\n\nexport const backgroundClip: IPropertyListDescriptor = {\n name: 'background-clip',\n initialValue: 'border-box',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundClip => {\n return tokens.map((token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return BACKGROUND_CLIP.PADDING_BOX;\n case 'content-box':\n return BACKGROUND_CLIP.CONTENT_BOX;\n }\n }\n return BACKGROUND_CLIP.BORDER_BOX;\n });\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const backgroundColor: IPropertyTypeValueDescriptor = {\n name: `background-color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {CSSValue} from '../../syntax/parser';\nimport {\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n GradientColorStop,\n GradientCorner,\n UnprocessedGradientColorStop\n} from '../image';\nimport {color as colorType} from '../color';\nimport {getAbsoluteValue, HUNDRED_PERCENT, isLengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {Context} from '../../../core/context';\n\nexport const parseColorStop = (context: Context, args: CSSValue[]): UnprocessedGradientColorStop => {\n const color = colorType.parse(context, args[0]);\n const stop = args[1];\n return stop && isLengthPercentage(stop) ? {color, stop} : {color, stop: null};\n};\n\nexport const processColorStops = (stops: UnprocessedGradientColorStop[], lineLength: number): GradientColorStop[] => {\n const first = stops[0];\n const last = stops[stops.length - 1];\n if (first.stop === null) {\n first.stop = ZERO_LENGTH;\n }\n\n if (last.stop === null) {\n last.stop = HUNDRED_PERCENT;\n }\n\n const processStops: (number | null)[] = [];\n let previous = 0;\n for (let i = 0; i < stops.length; i++) {\n const stop = stops[i].stop;\n if (stop !== null) {\n const absoluteValue = getAbsoluteValue(stop, lineLength);\n if (absoluteValue > previous) {\n processStops.push(absoluteValue);\n } else {\n processStops.push(previous);\n }\n previous = absoluteValue;\n } else {\n processStops.push(null);\n }\n }\n\n let gapBegin = null;\n for (let i = 0; i < processStops.length; i++) {\n const stop = processStops[i];\n if (stop === null) {\n if (gapBegin === null) {\n gapBegin = i;\n }\n } else if (gapBegin !== null) {\n const gapLength = i - gapBegin;\n const beforeGap = processStops[gapBegin - 1] as number;\n const gapValue = (stop - beforeGap) / (gapLength + 1);\n for (let g = 1; g <= gapLength; g++) {\n processStops[gapBegin + g - 1] = gapValue * g;\n }\n gapBegin = null;\n }\n }\n\n return stops.map(({color}, i) => {\n return {color, stop: Math.max(Math.min(1, (processStops[i] as number) / lineLength), 0)};\n });\n};\n\nconst getAngleFromCorner = (corner: GradientCorner, width: number, height: number): number => {\n const centerX = width / 2;\n const centerY = height / 2;\n const x = getAbsoluteValue(corner[0], width) - centerX;\n const y = centerY - getAbsoluteValue(corner[1], height);\n\n return (Math.atan2(y, x) + Math.PI * 2) % (Math.PI * 2);\n};\n\nexport const calculateGradientDirection = (\n angle: number | GradientCorner,\n width: number,\n height: number\n): [number, number, number, number, number] => {\n const radian = typeof angle === 'number' ? angle : getAngleFromCorner(angle, width, height);\n\n const lineLength = Math.abs(width * Math.sin(radian)) + Math.abs(height * Math.cos(radian));\n\n const halfWidth = width / 2;\n const halfHeight = height / 2;\n const halfLineLength = lineLength / 2;\n\n const yDiff = Math.sin(radian - Math.PI / 2) * halfLineLength;\n const xDiff = Math.cos(radian - Math.PI / 2) * halfLineLength;\n\n return [lineLength, halfWidth - xDiff, halfWidth + xDiff, halfHeight - yDiff, halfHeight + yDiff];\n};\n\nconst distance = (a: number, b: number): number => Math.sqrt(a * a + b * b);\n\nconst findCorner = (width: number, height: number, x: number, y: number, closest: boolean): [number, number] => {\n const corners = [\n [0, 0],\n [0, height],\n [width, 0],\n [width, height]\n ];\n\n return corners.reduce(\n (stat, corner) => {\n const [cx, cy] = corner;\n const d = distance(x - cx, y - cy);\n if (closest ? d < stat.optimumDistance : d > stat.optimumDistance) {\n return {\n optimumCorner: corner,\n optimumDistance: d\n };\n }\n\n return stat;\n },\n {\n optimumDistance: closest ? Infinity : -Infinity,\n optimumCorner: null\n }\n ).optimumCorner as [number, number];\n};\n\nexport const calculateRadius = (\n gradient: CSSRadialGradientImage,\n x: number,\n y: number,\n width: number,\n height: number\n): [number, number] => {\n let rx = 0;\n let ry = 0;\n\n switch (gradient.size) {\n case CSSRadialExtent.CLOSEST_SIDE:\n // The ending shape is sized so that that it exactly meets the side of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, it exactly meets the closest side in each dimension.\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.min(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n rx = Math.min(Math.abs(x), Math.abs(x - width));\n ry = Math.min(Math.abs(y), Math.abs(y - height));\n }\n break;\n\n case CSSRadialExtent.CLOSEST_CORNER:\n // The ending shape is sized so that that it passes through the corner of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, the ending shape is given the same aspect-ratio it would have if closest-side were specified.\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.min(\n distance(x, y),\n distance(x, y - height),\n distance(x - width, y),\n distance(x - width, y - height)\n );\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n // Compute the ratio ry/rx (which is to be the same as for \"closest-side\")\n const c = Math.min(Math.abs(y), Math.abs(y - height)) / Math.min(Math.abs(x), Math.abs(x - width));\n const [cx, cy] = findCorner(width, height, x, y, true);\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n\n case CSSRadialExtent.FARTHEST_SIDE:\n // Same as closest-side, except the ending shape is sized based on the farthest side(s)\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.max(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n rx = Math.max(Math.abs(x), Math.abs(x - width));\n ry = Math.max(Math.abs(y), Math.abs(y - height));\n }\n break;\n\n case CSSRadialExtent.FARTHEST_CORNER:\n // Same as closest-corner, except the ending shape is sized based on the farthest corner.\n // If the shape is an ellipse, the ending shape is given the same aspect ratio it would have if farthest-side were specified.\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.max(\n distance(x, y),\n distance(x, y - height),\n distance(x - width, y),\n distance(x - width, y - height)\n );\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n // Compute the ratio ry/rx (which is to be the same as for \"farthest-side\")\n const c = Math.max(Math.abs(y), Math.abs(y - height)) / Math.max(Math.abs(x), Math.abs(x - width));\n const [cx, cy] = findCorner(width, height, x, y, false);\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n }\n\n if (Array.isArray(gradient.size)) {\n rx = getAbsoluteValue(gradient.size[0], width);\n ry = gradient.size.length === 2 ? getAbsoluteValue(gradient.size[1], height) : rx;\n }\n\n return [rx, ry];\n};\n","import {CSSValue, parseFunctionArgs} from '../../syntax/parser';\nimport {CSSImageType, CSSLinearGradientImage, GradientCorner, UnprocessedGradientColorStop} from '../image';\nimport {TokenType} from '../../syntax/tokenizer';\nimport {isAngle, angle as angleType, parseNamedSide, deg} from '../angle';\nimport {parseColorStop} from './gradient';\nimport {Context} from '../../../core/context';\n\nexport const prefixLinearGradient = (context: Context, tokens: CSSValue[]): CSSLinearGradientImage => {\n let angle: number | GradientCorner = deg(180);\n const stops: UnprocessedGradientColorStop[] = [];\n\n parseFunctionArgs(tokens).forEach((arg, i) => {\n if (i === 0) {\n const firstToken = arg[0];\n if (\n firstToken.type === TokenType.IDENT_TOKEN &&\n ['top', 'left', 'right', 'bottom'].indexOf(firstToken.value) !== -1\n ) {\n angle = parseNamedSide(arg);\n return;\n } else if (isAngle(firstToken)) {\n angle = (angleType.parse(context, firstToken) + deg(270)) % deg(360);\n return;\n }\n }\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n\n return {\n angle,\n stops,\n type: CSSImageType.LINEAR_GRADIENT\n };\n};\n","import {CSSValue, isIdentToken, parseFunctionArgs} from '../../syntax/parser';\nimport {\n CSSImageType,\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n CSSRadialSize,\n UnprocessedGradientColorStop\n} from '../image';\nimport {parseColorStop} from './gradient';\nimport {FIFTY_PERCENT, HUNDRED_PERCENT, isLengthPercentage, LengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {isLength} from '../length';\nimport {\n CIRCLE,\n CLOSEST_CORNER,\n CLOSEST_SIDE,\n CONTAIN,\n COVER,\n ELLIPSE,\n FARTHEST_CORNER,\n FARTHEST_SIDE\n} from './radial-gradient';\nimport {Context} from '../../../core/context';\n\nexport const prefixRadialGradient = (context: Context, tokens: CSSValue[]): CSSRadialGradientImage => {\n let shape: CSSRadialShape = CSSRadialShape.CIRCLE;\n let size: CSSRadialSize = CSSRadialExtent.FARTHEST_CORNER;\n const stops: UnprocessedGradientColorStop[] = [];\n const position: LengthPercentage[] = [];\n\n parseFunctionArgs(tokens).forEach((arg, i) => {\n let isColorStop = true;\n if (i === 0) {\n isColorStop = arg.reduce((acc, token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return false;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return false;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return false;\n }\n } else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n return false;\n }\n\n return acc;\n }, isColorStop);\n } else if (i === 1) {\n isColorStop = arg.reduce((acc, token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = CSSRadialShape.CIRCLE;\n return false;\n case ELLIPSE:\n shape = CSSRadialShape.ELLIPSE;\n return false;\n case CONTAIN:\n case CLOSEST_SIDE:\n size = CSSRadialExtent.CLOSEST_SIDE;\n return false;\n case FARTHEST_SIDE:\n size = CSSRadialExtent.FARTHEST_SIDE;\n return false;\n case CLOSEST_CORNER:\n size = CSSRadialExtent.CLOSEST_CORNER;\n return false;\n case COVER:\n case FARTHEST_CORNER:\n size = CSSRadialExtent.FARTHEST_CORNER;\n return false;\n }\n } else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n\n return acc;\n }, isColorStop);\n }\n\n if (isColorStop) {\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n\n return {size, shape, stops, position, type: CSSImageType.RADIAL_GRADIENT};\n};\n","import {CSSValue, isIdentToken, parseFunctionArgs} from '../../syntax/parser';\nimport {\n CSSImageType,\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n CSSRadialSize,\n UnprocessedGradientColorStop\n} from '../image';\nimport {parseColorStop} from './gradient';\nimport {FIFTY_PERCENT, HUNDRED_PERCENT, isLengthPercentage, LengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {isLength} from '../length';\nimport {Context} from '../../../core/context';\nexport const CLOSEST_SIDE = 'closest-side';\nexport const FARTHEST_SIDE = 'farthest-side';\nexport const CLOSEST_CORNER = 'closest-corner';\nexport const FARTHEST_CORNER = 'farthest-corner';\nexport const CIRCLE = 'circle';\nexport const ELLIPSE = 'ellipse';\nexport const COVER = 'cover';\nexport const CONTAIN = 'contain';\n\nexport const radialGradient = (context: Context, tokens: CSSValue[]): CSSRadialGradientImage => {\n let shape: CSSRadialShape = CSSRadialShape.CIRCLE;\n let size: CSSRadialSize = CSSRadialExtent.FARTHEST_CORNER;\n const stops: UnprocessedGradientColorStop[] = [];\n const position: LengthPercentage[] = [];\n parseFunctionArgs(tokens).forEach((arg, i) => {\n let isColorStop = true;\n if (i === 0) {\n let isAtPosition = false;\n isColorStop = arg.reduce((acc, token) => {\n if (isAtPosition) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return acc;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return acc;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return acc;\n }\n } else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n }\n } else if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = CSSRadialShape.CIRCLE;\n return false;\n case ELLIPSE:\n shape = CSSRadialShape.ELLIPSE;\n return false;\n case 'at':\n isAtPosition = true;\n return false;\n case CLOSEST_SIDE:\n size = CSSRadialExtent.CLOSEST_SIDE;\n return false;\n case COVER:\n case FARTHEST_SIDE:\n size = CSSRadialExtent.FARTHEST_SIDE;\n return false;\n case CONTAIN:\n case CLOSEST_CORNER:\n size = CSSRadialExtent.CLOSEST_CORNER;\n return false;\n case FARTHEST_CORNER:\n size = CSSRadialExtent.FARTHEST_CORNER;\n return false;\n }\n } else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n return acc;\n }, isColorStop);\n }\n\n if (isColorStop) {\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n\n return {size, shape, stops, position, type: CSSImageType.RADIAL_GRADIENT};\n};\n","import {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Color} from './color';\nimport {linearGradient} from './functions/linear-gradient';\nimport {prefixLinearGradient} from './functions/-prefix-linear-gradient';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {LengthPercentage} from './length-percentage';\nimport {webkitGradient} from './functions/-webkit-gradient';\nimport {radialGradient} from './functions/radial-gradient';\nimport {prefixRadialGradient} from './functions/-prefix-radial-gradient';\nimport {Context} from '../../core/context';\n\nexport const enum CSSImageType {\n URL,\n LINEAR_GRADIENT,\n RADIAL_GRADIENT\n}\n\nexport const isLinearGradient = (background: ICSSImage): background is CSSLinearGradientImage => {\n return background.type === CSSImageType.LINEAR_GRADIENT;\n};\n\nexport const isRadialGradient = (background: ICSSImage): background is CSSRadialGradientImage => {\n return background.type === CSSImageType.RADIAL_GRADIENT;\n};\n\nexport interface UnprocessedGradientColorStop {\n color: Color;\n stop: LengthPercentage | null;\n}\n\nexport interface GradientColorStop {\n color: Color;\n stop: number;\n}\n\nexport interface ICSSImage {\n type: CSSImageType;\n}\n\nexport interface CSSURLImage extends ICSSImage {\n url: string;\n type: CSSImageType.URL;\n}\n\n// interface ICSSGeneratedImage extends ICSSImage {}\n\nexport type GradientCorner = [LengthPercentage, LengthPercentage];\n\ninterface ICSSGradientImage extends ICSSImage {\n stops: UnprocessedGradientColorStop[];\n}\n\nexport interface CSSLinearGradientImage extends ICSSGradientImage {\n angle: number | GradientCorner;\n type: CSSImageType.LINEAR_GRADIENT;\n}\n\nexport const enum CSSRadialShape {\n CIRCLE,\n ELLIPSE\n}\n\nexport const enum CSSRadialExtent {\n CLOSEST_SIDE,\n FARTHEST_SIDE,\n CLOSEST_CORNER,\n FARTHEST_CORNER\n}\n\nexport type CSSRadialSize = CSSRadialExtent | LengthPercentage[];\n\nexport interface CSSRadialGradientImage extends ICSSGradientImage {\n type: CSSImageType.RADIAL_GRADIENT;\n shape: CSSRadialShape;\n size: CSSRadialSize;\n position: LengthPercentage[];\n}\n\nexport const image: ITypeDescriptor = {\n name: 'image',\n parse: (context: Context, value: CSSValue): ICSSImage => {\n if (value.type === TokenType.URL_TOKEN) {\n const image: CSSURLImage = {url: value.value, type: CSSImageType.URL};\n context.cache.addImage(value.value);\n return image;\n }\n\n if (value.type === TokenType.FUNCTION) {\n const imageFunction = SUPPORTED_IMAGE_FUNCTIONS[value.name];\n if (typeof imageFunction === 'undefined') {\n throw new Error(`Attempting to parse an unsupported image function \"${value.name}\"`);\n }\n return imageFunction(context, value.values);\n }\n\n throw new Error(`Unsupported image type ${value.type}`);\n }\n};\n\nexport function isSupportedImage(value: CSSValue): boolean {\n return (\n !(value.type === TokenType.IDENT_TOKEN && value.value === 'none') &&\n (value.type !== TokenType.FUNCTION || !!SUPPORTED_IMAGE_FUNCTIONS[value.name])\n );\n}\n\nconst SUPPORTED_IMAGE_FUNCTIONS: Record ICSSImage> = {\n 'linear-gradient': linearGradient,\n '-moz-linear-gradient': prefixLinearGradient,\n '-ms-linear-gradient': prefixLinearGradient,\n '-o-linear-gradient': prefixLinearGradient,\n '-webkit-linear-gradient': prefixLinearGradient,\n 'radial-gradient': radialGradient,\n '-moz-radial-gradient': prefixRadialGradient,\n '-ms-radial-gradient': prefixRadialGradient,\n '-o-radial-gradient': prefixRadialGradient,\n '-webkit-radial-gradient': prefixRadialGradient,\n '-webkit-gradient': webkitGradient\n};\n","import {CSSValue, parseFunctionArgs} from '../../syntax/parser';\nimport {TokenType} from '../../syntax/tokenizer';\nimport {isAngle, angle as angleType, parseNamedSide, deg} from '../angle';\nimport {CSSImageType, CSSLinearGradientImage, GradientCorner, UnprocessedGradientColorStop} from '../image';\nimport {parseColorStop} from './gradient';\nimport {Context} from '../../../core/context';\n\nexport const linearGradient = (context: Context, tokens: CSSValue[]): CSSLinearGradientImage => {\n let angle: number | GradientCorner = deg(180);\n const stops: UnprocessedGradientColorStop[] = [];\n\n parseFunctionArgs(tokens).forEach((arg, i) => {\n if (i === 0) {\n const firstToken = arg[0];\n if (firstToken.type === TokenType.IDENT_TOKEN && firstToken.value === 'to') {\n angle = parseNamedSide(arg);\n return;\n } else if (isAngle(firstToken)) {\n angle = angleType.parse(context, firstToken);\n return;\n }\n }\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n\n return {angle, stops, type: CSSImageType.LINEAR_GRADIENT};\n};\n","import {CSSValue, isIdentToken, isNumberToken, nonFunctionArgSeparator, parseFunctionArgs} from '../../syntax/parser';\nimport {\n CSSImageType,\n CSSLinearGradientImage,\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n CSSRadialSize,\n UnprocessedGradientColorStop\n} from '../image';\nimport {deg} from '../angle';\nimport {TokenType} from '../../syntax/tokenizer';\nimport {color as colorType} from '../color';\nimport {HUNDRED_PERCENT, LengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {Context} from '../../../core/context';\n\nexport const webkitGradient = (\n context: Context,\n tokens: CSSValue[]\n): CSSLinearGradientImage | CSSRadialGradientImage => {\n const angle = deg(180);\n const stops: UnprocessedGradientColorStop[] = [];\n let type = CSSImageType.LINEAR_GRADIENT;\n const shape: CSSRadialShape = CSSRadialShape.CIRCLE;\n const size: CSSRadialSize = CSSRadialExtent.FARTHEST_CORNER;\n const position: LengthPercentage[] = [];\n parseFunctionArgs(tokens).forEach((arg, i) => {\n const firstToken = arg[0];\n if (i === 0) {\n if (isIdentToken(firstToken) && firstToken.value === 'linear') {\n type = CSSImageType.LINEAR_GRADIENT;\n return;\n } else if (isIdentToken(firstToken) && firstToken.value === 'radial') {\n type = CSSImageType.RADIAL_GRADIENT;\n return;\n }\n }\n\n if (firstToken.type === TokenType.FUNCTION) {\n if (firstToken.name === 'from') {\n const color = colorType.parse(context, firstToken.values[0]);\n stops.push({stop: ZERO_LENGTH, color});\n } else if (firstToken.name === 'to') {\n const color = colorType.parse(context, firstToken.values[0]);\n stops.push({stop: HUNDRED_PERCENT, color});\n } else if (firstToken.name === 'color-stop') {\n const values = firstToken.values.filter(nonFunctionArgSeparator);\n if (values.length === 2) {\n const color = colorType.parse(context, values[1]);\n const stop = values[0];\n if (isNumberToken(stop)) {\n stops.push({\n stop: {type: TokenType.PERCENTAGE_TOKEN, number: stop.number * 100, flags: stop.flags},\n color\n });\n }\n }\n }\n }\n });\n\n return type === CSSImageType.LINEAR_GRADIENT\n ? {\n angle: (angle + deg(180)) % deg(360),\n stops,\n type\n }\n : {size, shape, stops, position, type};\n};\n","import {TokenType} from '../syntax/tokenizer';\nimport {ICSSImage, image, isSupportedImage} from '../types/image';\nimport {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, nonFunctionArgSeparator} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const backgroundImage: IPropertyListDescriptor = {\n name: 'background-image',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return [];\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return [];\n }\n\n return tokens\n .filter((value) => nonFunctionArgSeparator(value) && isSupportedImage(value))\n .map((value) => image.parse(context, value));\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const enum BACKGROUND_ORIGIN {\n BORDER_BOX = 0,\n PADDING_BOX = 1,\n CONTENT_BOX = 2\n}\n\nexport type BackgroundOrigin = BACKGROUND_ORIGIN[];\n\nexport const backgroundOrigin: IPropertyListDescriptor = {\n name: 'background-origin',\n initialValue: 'border-box',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundOrigin => {\n return tokens.map((token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return BACKGROUND_ORIGIN.PADDING_BOX;\n case 'content-box':\n return BACKGROUND_ORIGIN.CONTENT_BOX;\n }\n }\n return BACKGROUND_ORIGIN.BORDER_BOX;\n });\n }\n};\n","import {PropertyDescriptorParsingType, IPropertyListDescriptor} from '../IPropertyDescriptor';\nimport {CSSValue, parseFunctionArgs} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentageTuple, parseLengthPercentageTuple} from '../types/length-percentage';\nimport {Context} from '../../core/context';\nexport type BackgroundPosition = BackgroundImagePosition[];\n\nexport type BackgroundImagePosition = LengthPercentageTuple;\n\nexport const backgroundPosition: IPropertyListDescriptor = {\n name: 'background-position',\n initialValue: '0% 0%',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundPosition => {\n return parseFunctionArgs(tokens)\n .map((values: CSSValue[]) => values.filter(isLengthPercentage))\n .map(parseLengthPercentageTuple);\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, parseFunctionArgs} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport type BackgroundRepeat = BACKGROUND_REPEAT[];\n\nexport const enum BACKGROUND_REPEAT {\n REPEAT = 0,\n NO_REPEAT = 1,\n REPEAT_X = 2,\n REPEAT_Y = 3\n}\n\nexport const backgroundRepeat: IPropertyListDescriptor = {\n name: 'background-repeat',\n initialValue: 'repeat',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundRepeat => {\n return parseFunctionArgs(tokens)\n .map((values) =>\n values\n .filter(isIdentToken)\n .map((token) => token.value)\n .join(' ')\n )\n .map(parseBackgroundRepeat);\n }\n};\n\nconst parseBackgroundRepeat = (value: string): BACKGROUND_REPEAT => {\n switch (value) {\n case 'no-repeat':\n return BACKGROUND_REPEAT.NO_REPEAT;\n case 'repeat-x':\n case 'repeat no-repeat':\n return BACKGROUND_REPEAT.REPEAT_X;\n case 'repeat-y':\n case 'no-repeat repeat':\n return BACKGROUND_REPEAT.REPEAT_Y;\n case 'repeat':\n default:\n return BACKGROUND_REPEAT.REPEAT;\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport enum LINE_BREAK {\n NORMAL = 'normal',\n STRICT = 'strict'\n}\n\nexport const lineBreak: IPropertyIdentValueDescriptor = {\n name: 'line-break',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, lineBreak: string): LINE_BREAK => {\n switch (lineBreak) {\n case 'strict':\n return LINE_BREAK.STRICT;\n case 'normal':\n default:\n return LINE_BREAK.NORMAL;\n }\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nconst borderColorForSide = (side: string): IPropertyTypeValueDescriptor => ({\n name: `border-${side}-color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n});\n\nexport const borderTopColor: IPropertyTypeValueDescriptor = borderColorForSide('top');\nexport const borderRightColor: IPropertyTypeValueDescriptor = borderColorForSide('right');\nexport const borderBottomColor: IPropertyTypeValueDescriptor = borderColorForSide('bottom');\nexport const borderLeftColor: IPropertyTypeValueDescriptor = borderColorForSide('left');\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentageTuple, parseLengthPercentageTuple} from '../types/length-percentage';\nimport {Context} from '../../core/context';\nexport type BorderRadius = LengthPercentageTuple;\n\nconst borderRadiusForSide = (side: string): IPropertyListDescriptor => ({\n name: `border-radius-${side}`,\n initialValue: '0 0',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BorderRadius =>\n parseLengthPercentageTuple(tokens.filter(isLengthPercentage))\n});\n\nexport const borderTopLeftRadius: IPropertyListDescriptor = borderRadiusForSide('top-left');\nexport const borderTopRightRadius: IPropertyListDescriptor = borderRadiusForSide('top-right');\nexport const borderBottomRightRadius: IPropertyListDescriptor = borderRadiusForSide('bottom-right');\nexport const borderBottomLeftRadius: IPropertyListDescriptor = borderRadiusForSide('bottom-left');\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum BORDER_STYLE {\n NONE = 0,\n SOLID = 1,\n DASHED = 2,\n DOTTED = 3,\n DOUBLE = 4\n}\n\nconst borderStyleForSide = (side: string): IPropertyIdentValueDescriptor => ({\n name: `border-${side}-style`,\n initialValue: 'solid',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, style: string): BORDER_STYLE => {\n switch (style) {\n case 'none':\n return BORDER_STYLE.NONE;\n case 'dashed':\n return BORDER_STYLE.DASHED;\n case 'dotted':\n return BORDER_STYLE.DOTTED;\n case 'double':\n return BORDER_STYLE.DOUBLE;\n }\n return BORDER_STYLE.SOLID;\n }\n});\n\nexport const borderTopStyle: IPropertyIdentValueDescriptor = borderStyleForSide('top');\nexport const borderRightStyle: IPropertyIdentValueDescriptor = borderStyleForSide('right');\nexport const borderBottomStyle: IPropertyIdentValueDescriptor = borderStyleForSide('bottom');\nexport const borderLeftStyle: IPropertyIdentValueDescriptor = borderStyleForSide('left');\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nconst borderWidthForSide = (side: string): IPropertyValueDescriptor => ({\n name: `border-${side}-width`,\n initialValue: '0',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n});\n\nexport const borderTopWidth: IPropertyValueDescriptor = borderWidthForSide('top');\nexport const borderRightWidth: IPropertyValueDescriptor = borderWidthForSide('right');\nexport const borderBottomWidth: IPropertyValueDescriptor = borderWidthForSide('bottom');\nexport const borderLeftWidth: IPropertyValueDescriptor = borderWidthForSide('left');\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const color: IPropertyTypeValueDescriptor = {\n name: `color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\n\nexport const enum DIRECTION {\n LTR = 0,\n RTL = 1\n}\n\nexport const direction: IPropertyIdentValueDescriptor = {\n name: 'direction',\n initialValue: 'ltr',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, direction: string) => {\n switch (direction) {\n case 'rtl':\n return DIRECTION.RTL;\n case 'ltr':\n default:\n return DIRECTION.LTR;\n }\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum DISPLAY {\n NONE = 0,\n BLOCK = 1 << 1,\n INLINE = 1 << 2,\n RUN_IN = 1 << 3,\n FLOW = 1 << 4,\n FLOW_ROOT = 1 << 5,\n TABLE = 1 << 6,\n FLEX = 1 << 7,\n GRID = 1 << 8,\n RUBY = 1 << 9,\n SUBGRID = 1 << 10,\n LIST_ITEM = 1 << 11,\n TABLE_ROW_GROUP = 1 << 12,\n TABLE_HEADER_GROUP = 1 << 13,\n TABLE_FOOTER_GROUP = 1 << 14,\n TABLE_ROW = 1 << 15,\n TABLE_CELL = 1 << 16,\n TABLE_COLUMN_GROUP = 1 << 17,\n TABLE_COLUMN = 1 << 18,\n TABLE_CAPTION = 1 << 19,\n RUBY_BASE = 1 << 20,\n RUBY_TEXT = 1 << 21,\n RUBY_BASE_CONTAINER = 1 << 22,\n RUBY_TEXT_CONTAINER = 1 << 23,\n CONTENTS = 1 << 24,\n INLINE_BLOCK = 1 << 25,\n INLINE_LIST_ITEM = 1 << 26,\n INLINE_TABLE = 1 << 27,\n INLINE_FLEX = 1 << 28,\n INLINE_GRID = 1 << 29\n}\n\nexport type Display = number;\n\nexport const display: IPropertyListDescriptor = {\n name: 'display',\n initialValue: 'inline-block',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): Display => {\n return tokens.filter(isIdentToken).reduce((bit, token) => {\n return bit | parseDisplayValue(token.value);\n }, DISPLAY.NONE);\n }\n};\n\nconst parseDisplayValue = (display: string): Display => {\n switch (display) {\n case 'block':\n case '-webkit-box':\n return DISPLAY.BLOCK;\n case 'inline':\n return DISPLAY.INLINE;\n case 'run-in':\n return DISPLAY.RUN_IN;\n case 'flow':\n return DISPLAY.FLOW;\n case 'flow-root':\n return DISPLAY.FLOW_ROOT;\n case 'table':\n return DISPLAY.TABLE;\n case 'flex':\n case '-webkit-flex':\n return DISPLAY.FLEX;\n case 'grid':\n case '-ms-grid':\n return DISPLAY.GRID;\n case 'ruby':\n return DISPLAY.RUBY;\n case 'subgrid':\n return DISPLAY.SUBGRID;\n case 'list-item':\n return DISPLAY.LIST_ITEM;\n case 'table-row-group':\n return DISPLAY.TABLE_ROW_GROUP;\n case 'table-header-group':\n return DISPLAY.TABLE_HEADER_GROUP;\n case 'table-footer-group':\n return DISPLAY.TABLE_FOOTER_GROUP;\n case 'table-row':\n return DISPLAY.TABLE_ROW;\n case 'table-cell':\n return DISPLAY.TABLE_CELL;\n case 'table-column-group':\n return DISPLAY.TABLE_COLUMN_GROUP;\n case 'table-column':\n return DISPLAY.TABLE_COLUMN;\n case 'table-caption':\n return DISPLAY.TABLE_CAPTION;\n case 'ruby-base':\n return DISPLAY.RUBY_BASE;\n case 'ruby-text':\n return DISPLAY.RUBY_TEXT;\n case 'ruby-base-container':\n return DISPLAY.RUBY_BASE_CONTAINER;\n case 'ruby-text-container':\n return DISPLAY.RUBY_TEXT_CONTAINER;\n case 'contents':\n return DISPLAY.CONTENTS;\n case 'inline-block':\n return DISPLAY.INLINE_BLOCK;\n case 'inline-list-item':\n return DISPLAY.INLINE_LIST_ITEM;\n case 'inline-table':\n return DISPLAY.INLINE_TABLE;\n case 'inline-flex':\n return DISPLAY.INLINE_FLEX;\n case 'inline-grid':\n return DISPLAY.INLINE_GRID;\n }\n\n return DISPLAY.NONE;\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum FLOAT {\n NONE = 0,\n LEFT = 1,\n RIGHT = 2,\n INLINE_START = 3,\n INLINE_END = 4\n}\n\nexport const float: IPropertyIdentValueDescriptor = {\n name: 'float',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, float: string) => {\n switch (float) {\n case 'left':\n return FLOAT.LEFT;\n case 'right':\n return FLOAT.RIGHT;\n case 'inline-start':\n return FLOAT.INLINE_START;\n case 'inline-end':\n return FLOAT.INLINE_END;\n }\n return FLOAT.NONE;\n }\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\nexport const letterSpacing: IPropertyValueDescriptor = {\n name: 'letter-spacing',\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.VALUE,\n parse: (_context: Context, token: CSSValue) => {\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'normal') {\n return 0;\n }\n\n if (token.type === TokenType.NUMBER_TOKEN) {\n return token.number;\n }\n\n if (token.type === TokenType.DIMENSION_TOKEN) {\n return token.number;\n }\n\n return 0;\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport enum WORD_BREAK {\n NORMAL = 'normal',\n BREAK_ALL = 'break-all',\n KEEP_ALL = 'keep-all'\n}\n\nexport const wordBreak: IPropertyIdentValueDescriptor = {\n name: 'word-break',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, wordBreak: string): WORD_BREAK => {\n switch (wordBreak) {\n case 'break-all':\n return WORD_BREAK.BREAK_ALL;\n case 'keep-all':\n return WORD_BREAK.KEEP_ALL;\n case 'normal':\n default:\n return WORD_BREAK.NORMAL;\n }\n }\n};\n","import {IPropertyTokenValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {getAbsoluteValue, isLengthPercentage} from '../types/length-percentage';\nexport const lineHeight: IPropertyTokenValueDescriptor = {\n name: 'line-height',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.TOKEN_VALUE\n};\n\nexport const computeLineHeight = (token: CSSValue, fontSize: number): number => {\n if (isIdentToken(token) && token.value === 'normal') {\n return 1.2 * fontSize;\n } else if (token.type === TokenType.NUMBER_TOKEN) {\n return fontSize * token.number;\n } else if (isLengthPercentage(token)) {\n return getAbsoluteValue(token, fontSize);\n }\n\n return fontSize;\n};\n","import {TokenType} from '../syntax/tokenizer';\nimport {ICSSImage, image} from '../types/image';\nimport {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const listStyleImage: IPropertyValueDescriptor = {\n name: 'list-style-image',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (context: Context, token: CSSValue) => {\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'none') {\n return null;\n }\n\n return image.parse(context, token);\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum LIST_STYLE_POSITION {\n INSIDE = 0,\n OUTSIDE = 1\n}\n\nexport const listStylePosition: IPropertyIdentValueDescriptor = {\n name: 'list-style-position',\n initialValue: 'outside',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, position: string) => {\n switch (position) {\n case 'inside':\n return LIST_STYLE_POSITION.INSIDE;\n case 'outside':\n default:\n return LIST_STYLE_POSITION.OUTSIDE;\n }\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum LIST_STYLE_TYPE {\n NONE = -1,\n DISC = 0,\n CIRCLE = 1,\n SQUARE = 2,\n DECIMAL = 3,\n CJK_DECIMAL = 4,\n DECIMAL_LEADING_ZERO = 5,\n LOWER_ROMAN = 6,\n UPPER_ROMAN = 7,\n LOWER_GREEK = 8,\n LOWER_ALPHA = 9,\n UPPER_ALPHA = 10,\n ARABIC_INDIC = 11,\n ARMENIAN = 12,\n BENGALI = 13,\n CAMBODIAN = 14,\n CJK_EARTHLY_BRANCH = 15,\n CJK_HEAVENLY_STEM = 16,\n CJK_IDEOGRAPHIC = 17,\n DEVANAGARI = 18,\n ETHIOPIC_NUMERIC = 19,\n GEORGIAN = 20,\n GUJARATI = 21,\n GURMUKHI = 22,\n HEBREW = 22,\n HIRAGANA = 23,\n HIRAGANA_IROHA = 24,\n JAPANESE_FORMAL = 25,\n JAPANESE_INFORMAL = 26,\n KANNADA = 27,\n KATAKANA = 28,\n KATAKANA_IROHA = 29,\n KHMER = 30,\n KOREAN_HANGUL_FORMAL = 31,\n KOREAN_HANJA_FORMAL = 32,\n KOREAN_HANJA_INFORMAL = 33,\n LAO = 34,\n LOWER_ARMENIAN = 35,\n MALAYALAM = 36,\n MONGOLIAN = 37,\n MYANMAR = 38,\n ORIYA = 39,\n PERSIAN = 40,\n SIMP_CHINESE_FORMAL = 41,\n SIMP_CHINESE_INFORMAL = 42,\n TAMIL = 43,\n TELUGU = 44,\n THAI = 45,\n TIBETAN = 46,\n TRAD_CHINESE_FORMAL = 47,\n TRAD_CHINESE_INFORMAL = 48,\n UPPER_ARMENIAN = 49,\n DISCLOSURE_OPEN = 50,\n DISCLOSURE_CLOSED = 51\n}\n\nexport const listStyleType: IPropertyIdentValueDescriptor = {\n name: 'list-style-type',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, type: string) => {\n switch (type) {\n case 'disc':\n return LIST_STYLE_TYPE.DISC;\n case 'circle':\n return LIST_STYLE_TYPE.CIRCLE;\n case 'square':\n return LIST_STYLE_TYPE.SQUARE;\n case 'decimal':\n return LIST_STYLE_TYPE.DECIMAL;\n case 'cjk-decimal':\n return LIST_STYLE_TYPE.CJK_DECIMAL;\n case 'decimal-leading-zero':\n return LIST_STYLE_TYPE.DECIMAL_LEADING_ZERO;\n case 'lower-roman':\n return LIST_STYLE_TYPE.LOWER_ROMAN;\n case 'upper-roman':\n return LIST_STYLE_TYPE.UPPER_ROMAN;\n case 'lower-greek':\n return LIST_STYLE_TYPE.LOWER_GREEK;\n case 'lower-alpha':\n return LIST_STYLE_TYPE.LOWER_ALPHA;\n case 'upper-alpha':\n return LIST_STYLE_TYPE.UPPER_ALPHA;\n case 'arabic-indic':\n return LIST_STYLE_TYPE.ARABIC_INDIC;\n case 'armenian':\n return LIST_STYLE_TYPE.ARMENIAN;\n case 'bengali':\n return LIST_STYLE_TYPE.BENGALI;\n case 'cambodian':\n return LIST_STYLE_TYPE.CAMBODIAN;\n case 'cjk-earthly-branch':\n return LIST_STYLE_TYPE.CJK_EARTHLY_BRANCH;\n case 'cjk-heavenly-stem':\n return LIST_STYLE_TYPE.CJK_HEAVENLY_STEM;\n case 'cjk-ideographic':\n return LIST_STYLE_TYPE.CJK_IDEOGRAPHIC;\n case 'devanagari':\n return LIST_STYLE_TYPE.DEVANAGARI;\n case 'ethiopic-numeric':\n return LIST_STYLE_TYPE.ETHIOPIC_NUMERIC;\n case 'georgian':\n return LIST_STYLE_TYPE.GEORGIAN;\n case 'gujarati':\n return LIST_STYLE_TYPE.GUJARATI;\n case 'gurmukhi':\n return LIST_STYLE_TYPE.GURMUKHI;\n case 'hebrew':\n return LIST_STYLE_TYPE.HEBREW;\n case 'hiragana':\n return LIST_STYLE_TYPE.HIRAGANA;\n case 'hiragana-iroha':\n return LIST_STYLE_TYPE.HIRAGANA_IROHA;\n case 'japanese-formal':\n return LIST_STYLE_TYPE.JAPANESE_FORMAL;\n case 'japanese-informal':\n return LIST_STYLE_TYPE.JAPANESE_INFORMAL;\n case 'kannada':\n return LIST_STYLE_TYPE.KANNADA;\n case 'katakana':\n return LIST_STYLE_TYPE.KATAKANA;\n case 'katakana-iroha':\n return LIST_STYLE_TYPE.KATAKANA_IROHA;\n case 'khmer':\n return LIST_STYLE_TYPE.KHMER;\n case 'korean-hangul-formal':\n return LIST_STYLE_TYPE.KOREAN_HANGUL_FORMAL;\n case 'korean-hanja-formal':\n return LIST_STYLE_TYPE.KOREAN_HANJA_FORMAL;\n case 'korean-hanja-informal':\n return LIST_STYLE_TYPE.KOREAN_HANJA_INFORMAL;\n case 'lao':\n return LIST_STYLE_TYPE.LAO;\n case 'lower-armenian':\n return LIST_STYLE_TYPE.LOWER_ARMENIAN;\n case 'malayalam':\n return LIST_STYLE_TYPE.MALAYALAM;\n case 'mongolian':\n return LIST_STYLE_TYPE.MONGOLIAN;\n case 'myanmar':\n return LIST_STYLE_TYPE.MYANMAR;\n case 'oriya':\n return LIST_STYLE_TYPE.ORIYA;\n case 'persian':\n return LIST_STYLE_TYPE.PERSIAN;\n case 'simp-chinese-formal':\n return LIST_STYLE_TYPE.SIMP_CHINESE_FORMAL;\n case 'simp-chinese-informal':\n return LIST_STYLE_TYPE.SIMP_CHINESE_INFORMAL;\n case 'tamil':\n return LIST_STYLE_TYPE.TAMIL;\n case 'telugu':\n return LIST_STYLE_TYPE.TELUGU;\n case 'thai':\n return LIST_STYLE_TYPE.THAI;\n case 'tibetan':\n return LIST_STYLE_TYPE.TIBETAN;\n case 'trad-chinese-formal':\n return LIST_STYLE_TYPE.TRAD_CHINESE_FORMAL;\n case 'trad-chinese-informal':\n return LIST_STYLE_TYPE.TRAD_CHINESE_INFORMAL;\n case 'upper-armenian':\n return LIST_STYLE_TYPE.UPPER_ARMENIAN;\n case 'disclosure-open':\n return LIST_STYLE_TYPE.DISCLOSURE_OPEN;\n case 'disclosure-closed':\n return LIST_STYLE_TYPE.DISCLOSURE_CLOSED;\n case 'none':\n default:\n return LIST_STYLE_TYPE.NONE;\n }\n }\n};\n","import {IPropertyTokenValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nconst marginForSide = (side: string): IPropertyTokenValueDescriptor => ({\n name: `margin-${side}`,\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.TOKEN_VALUE\n});\n\nexport const marginTop: IPropertyTokenValueDescriptor = marginForSide('top');\nexport const marginRight: IPropertyTokenValueDescriptor = marginForSide('right');\nexport const marginBottom: IPropertyTokenValueDescriptor = marginForSide('bottom');\nexport const marginLeft: IPropertyTokenValueDescriptor = marginForSide('left');\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum OVERFLOW {\n VISIBLE = 0,\n HIDDEN = 1,\n SCROLL = 2,\n CLIP = 3,\n AUTO = 4\n}\n\nexport const overflow: IPropertyListDescriptor = {\n name: 'overflow',\n initialValue: 'visible',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): OVERFLOW[] => {\n return tokens.filter(isIdentToken).map((overflow) => {\n switch (overflow.value) {\n case 'hidden':\n return OVERFLOW.HIDDEN;\n case 'scroll':\n return OVERFLOW.SCROLL;\n case 'clip':\n return OVERFLOW.CLIP;\n case 'auto':\n return OVERFLOW.AUTO;\n case 'visible':\n default:\n return OVERFLOW.VISIBLE;\n }\n });\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum OVERFLOW_WRAP {\n NORMAL = 'normal',\n BREAK_WORD = 'break-word'\n}\n\nexport const overflowWrap: IPropertyIdentValueDescriptor = {\n name: 'overflow-wrap',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, overflow: string) => {\n switch (overflow) {\n case 'break-word':\n return OVERFLOW_WRAP.BREAK_WORD;\n case 'normal':\n default:\n return OVERFLOW_WRAP.NORMAL;\n }\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nconst paddingForSide = (side: string): IPropertyTypeValueDescriptor => ({\n name: `padding-${side}`,\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'length-percentage'\n});\n\nexport const paddingTop: IPropertyTypeValueDescriptor = paddingForSide('top');\nexport const paddingRight: IPropertyTypeValueDescriptor = paddingForSide('right');\nexport const paddingBottom: IPropertyTypeValueDescriptor = paddingForSide('bottom');\nexport const paddingLeft: IPropertyTypeValueDescriptor = paddingForSide('left');\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum TEXT_ALIGN {\n LEFT = 0,\n CENTER = 1,\n RIGHT = 2\n}\n\nexport const textAlign: IPropertyIdentValueDescriptor = {\n name: 'text-align',\n initialValue: 'left',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, textAlign: string) => {\n switch (textAlign) {\n case 'right':\n return TEXT_ALIGN.RIGHT;\n case 'center':\n case 'justify':\n return TEXT_ALIGN.CENTER;\n case 'left':\n default:\n return TEXT_ALIGN.LEFT;\n }\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum POSITION {\n STATIC = 0,\n RELATIVE = 1,\n ABSOLUTE = 2,\n FIXED = 3,\n STICKY = 4\n}\n\nexport const position: IPropertyIdentValueDescriptor = {\n name: 'position',\n initialValue: 'static',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, position: string) => {\n switch (position) {\n case 'relative':\n return POSITION.RELATIVE;\n case 'absolute':\n return POSITION.ABSOLUTE;\n case 'fixed':\n return POSITION.FIXED;\n case 'sticky':\n return POSITION.STICKY;\n }\n\n return POSITION.STATIC;\n }\n};\n","import {PropertyDescriptorParsingType, IPropertyListDescriptor} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentWithValue, parseFunctionArgs} from '../syntax/parser';\nimport {ZERO_LENGTH} from '../types/length-percentage';\nimport {color, Color, COLORS} from '../types/color';\nimport {isLength, Length} from '../types/length';\nimport {Context} from '../../core/context';\n\nexport type TextShadow = TextShadowItem[];\ninterface TextShadowItem {\n color: Color;\n offsetX: Length;\n offsetY: Length;\n blur: Length;\n}\n\nexport const textShadow: IPropertyListDescriptor = {\n name: 'text-shadow',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (context: Context, tokens: CSSValue[]): TextShadow => {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n\n return parseFunctionArgs(tokens).map((values: CSSValue[]) => {\n const shadow: TextShadowItem = {\n color: COLORS.TRANSPARENT,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH\n };\n let c = 0;\n for (let i = 0; i < values.length; i++) {\n const token = values[i];\n if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n } else if (c === 1) {\n shadow.offsetY = token;\n } else {\n shadow.blur = token;\n }\n c++;\n } else {\n shadow.color = color.parse(context, token);\n }\n }\n return shadow;\n });\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum TEXT_TRANSFORM {\n NONE = 0,\n LOWERCASE = 1,\n UPPERCASE = 2,\n CAPITALIZE = 3\n}\n\nexport const textTransform: IPropertyIdentValueDescriptor = {\n name: 'text-transform',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, textTransform: string) => {\n switch (textTransform) {\n case 'uppercase':\n return TEXT_TRANSFORM.UPPERCASE;\n case 'lowercase':\n return TEXT_TRANSFORM.LOWERCASE;\n case 'capitalize':\n return TEXT_TRANSFORM.CAPITALIZE;\n }\n\n return TEXT_TRANSFORM.NONE;\n }\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {NumberValueToken, TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\nexport type Matrix = [number, number, number, number, number, number];\nexport type Transform = Matrix | null;\n\nexport const transform: IPropertyValueDescriptor = {\n name: 'transform',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.VALUE,\n parse: (_context: Context, token: CSSValue) => {\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'none') {\n return null;\n }\n\n if (token.type === TokenType.FUNCTION) {\n const transformFunction = SUPPORTED_TRANSFORM_FUNCTIONS[token.name];\n if (typeof transformFunction === 'undefined') {\n throw new Error(`Attempting to parse an unsupported transform function \"${token.name}\"`);\n }\n return transformFunction(token.values);\n }\n\n return null;\n }\n};\n\nconst matrix = (args: CSSValue[]): Transform => {\n const values = args.filter((arg) => arg.type === TokenType.NUMBER_TOKEN).map((arg: NumberValueToken) => arg.number);\n\n return values.length === 6 ? (values as Matrix) : null;\n};\n\n// doesn't support 3D transforms at the moment\nconst matrix3d = (args: CSSValue[]): Transform => {\n const values = args.filter((arg) => arg.type === TokenType.NUMBER_TOKEN).map((arg: NumberValueToken) => arg.number);\n\n const [a1, b1, {}, {}, a2, b2, {}, {}, {}, {}, {}, {}, a4, b4, {}, {}] = values;\n\n return values.length === 16 ? [a1, b1, a2, b2, a4, b4] : null;\n};\n\nconst SUPPORTED_TRANSFORM_FUNCTIONS: {\n [key: string]: (args: CSSValue[]) => Transform;\n} = {\n matrix: matrix,\n matrix3d: matrix3d\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentage} from '../types/length-percentage';\nimport {FLAG_INTEGER, TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\nexport type TransformOrigin = [LengthPercentage, LengthPercentage];\n\nconst DEFAULT_VALUE: LengthPercentage = {\n type: TokenType.PERCENTAGE_TOKEN,\n number: 50,\n flags: FLAG_INTEGER\n};\nconst DEFAULT: TransformOrigin = [DEFAULT_VALUE, DEFAULT_VALUE];\n\nexport const transformOrigin: IPropertyListDescriptor = {\n name: 'transform-origin',\n initialValue: '50% 50%',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n const origins: LengthPercentage[] = tokens.filter(isLengthPercentage);\n\n if (origins.length !== 2) {\n return DEFAULT;\n }\n\n return [origins[0], origins[1]];\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum VISIBILITY {\n VISIBLE = 0,\n HIDDEN = 1,\n COLLAPSE = 2\n}\n\nexport const visibility: IPropertyIdentValueDescriptor = {\n name: 'visible',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, visibility: string) => {\n switch (visibility) {\n case 'hidden':\n return VISIBILITY.HIDDEN;\n case 'collapse':\n return VISIBILITY.COLLAPSE;\n case 'visible':\n default:\n return VISIBILITY.VISIBLE;\n }\n }\n};\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const decode = (base64: string): ArrayBuffer | number[] => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const buffer =\n typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n const bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return buffer;\n};\n\nexport const polyUint16Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n\nexport const polyUint32Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isNumberToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\ninterface zIndex {\n order: number;\n auto: boolean;\n}\n\nexport const zIndex: IPropertyValueDescriptor = {\n name: 'z-index',\n initialValue: 'auto',\n prefix: false,\n type: PropertyDescriptorParsingType.VALUE,\n parse: (_context: Context, token: CSSValue): zIndex => {\n if (token.type === TokenType.IDENT_TOKEN) {\n return {auto: true, order: 0};\n }\n\n if (isNumberToken(token)) {\n return {auto: false, order: token.number};\n }\n\n throw new Error(`Invalid z-index number parsed`);\n }\n};\n","import {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {Context} from '../../core/context';\n\nexport const time: ITypeDescriptor = {\n name: 'time',\n parse: (_context: Context, value: CSSValue): number => {\n if (value.type === TokenType.DIMENSION_TOKEN) {\n switch (value.unit.toLowerCase()) {\n case 's':\n return 1000 * value.number;\n case 'ms':\n return value.number;\n }\n }\n\n throw new Error(`Unsupported time type`);\n }\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isNumberToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const opacity: IPropertyValueDescriptor = {\n name: 'opacity',\n initialValue: '1',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isNumberToken(token)) {\n return token.number;\n }\n return 1;\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const textDecorationColor: IPropertyTypeValueDescriptor = {\n name: `text-decoration-color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const enum TEXT_DECORATION_LINE {\n NONE = 0,\n UNDERLINE = 1,\n OVERLINE = 2,\n LINE_THROUGH = 3,\n BLINK = 4\n}\n\nexport type TextDecorationLine = TEXT_DECORATION_LINE[];\n\nexport const textDecorationLine: IPropertyListDescriptor = {\n name: 'text-decoration-line',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): TextDecorationLine => {\n return tokens\n .filter(isIdentToken)\n .map((token) => {\n switch (token.value) {\n case 'underline':\n return TEXT_DECORATION_LINE.UNDERLINE;\n case 'overline':\n return TEXT_DECORATION_LINE.OVERLINE;\n case 'line-through':\n return TEXT_DECORATION_LINE.LINE_THROUGH;\n case 'none':\n return TEXT_DECORATION_LINE.BLINK;\n }\n return TEXT_DECORATION_LINE.NONE;\n })\n .filter((line) => line !== TEXT_DECORATION_LINE.NONE);\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport type FONT_FAMILY = string;\n\nexport type FontFamily = FONT_FAMILY[];\n\nexport const fontFamily: IPropertyListDescriptor = {\n name: `font-family`,\n initialValue: '',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n const accumulator: string[] = [];\n const results: string[] = [];\n tokens.forEach((token) => {\n switch (token.type) {\n case TokenType.IDENT_TOKEN:\n case TokenType.STRING_TOKEN:\n accumulator.push(token.value);\n break;\n case TokenType.NUMBER_TOKEN:\n accumulator.push(token.number.toString());\n break;\n case TokenType.COMMA_TOKEN:\n results.push(accumulator.join(' '));\n accumulator.length = 0;\n break;\n }\n });\n if (accumulator.length) {\n results.push(accumulator.join(' '));\n }\n return results.map((result) => (result.indexOf(' ') === -1 ? result : `'${result}'`));\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const fontSize: IPropertyTypeValueDescriptor = {\n name: `font-size`,\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'length'\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, isNumberToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const fontWeight: IPropertyValueDescriptor = {\n name: 'font-weight',\n initialValue: 'normal',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isNumberToken(token)) {\n return token.number;\n }\n\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'bold':\n return 700;\n case 'normal':\n default:\n return 400;\n }\n }\n\n return 400;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const fontVariant: IPropertyListDescriptor = {\n name: 'font-variant',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (_context: Context, tokens: CSSValue[]): string[] => {\n return tokens.filter(isIdentToken).map((token) => token.value);\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum FONT_STYLE {\n NORMAL = 'normal',\n ITALIC = 'italic',\n OBLIQUE = 'oblique'\n}\n\nexport const fontStyle: IPropertyIdentValueDescriptor = {\n name: 'font-style',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, overflow: string) => {\n switch (overflow) {\n case 'oblique':\n return FONT_STYLE.OBLIQUE;\n case 'italic':\n return FONT_STYLE.ITALIC;\n case 'normal':\n default:\n return FONT_STYLE.NORMAL;\n }\n }\n};\n","export const contains = (bit: number, value: number): boolean => (bit & value) !== 0;\n","import {TokenType} from '../syntax/tokenizer';\nimport {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport type Content = CSSValue[];\n\nexport const content: IPropertyListDescriptor = {\n name: 'content',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return [];\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return [];\n }\n\n return tokens;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isNumberToken, nonWhiteSpace} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport interface COUNTER_INCREMENT {\n counter: string;\n increment: number;\n}\n\nexport type CounterIncrement = COUNTER_INCREMENT[] | null;\n\nexport const counterIncrement: IPropertyListDescriptor = {\n name: 'counter-increment',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return null;\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return null;\n }\n\n const increments = [];\n const filtered = tokens.filter(nonWhiteSpace);\n\n for (let i = 0; i < filtered.length; i++) {\n const counter = filtered[i];\n const next = filtered[i + 1];\n if (counter.type === TokenType.IDENT_TOKEN) {\n const increment = next && isNumberToken(next) ? next.number : 1;\n increments.push({counter: counter.value, increment});\n }\n }\n\n return increments;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, isNumberToken, nonWhiteSpace} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport interface COUNTER_RESET {\n counter: string;\n reset: number;\n}\n\nexport type CounterReset = COUNTER_RESET[];\n\nexport const counterReset: IPropertyListDescriptor = {\n name: 'counter-reset',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return [];\n }\n\n const resets = [];\n const filtered = tokens.filter(nonWhiteSpace);\n\n for (let i = 0; i < filtered.length; i++) {\n const counter = filtered[i];\n const next = filtered[i + 1];\n if (isIdentToken(counter) && counter.value !== 'none') {\n const reset = next && isNumberToken(next) ? next.number : 0;\n resets.push({counter: counter.value, reset});\n }\n }\n\n return resets;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nimport {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {time} from '../types/time';\n\nexport const duration: IPropertyListDescriptor = {\n name: 'duration',\n initialValue: '0s',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (context: Context, tokens: CSSValue[]) => {\n return tokens.filter(isDimensionToken).map((token) => time.parse(context, token));\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isStringToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport interface QUOTE {\n open: string;\n close: string;\n}\n\nexport type Quotes = QUOTE[] | null;\n\nexport const quotes: IPropertyListDescriptor = {\n name: 'quotes',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return null;\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return null;\n }\n\n const quotes = [];\n const filtered = tokens.filter(isStringToken);\n\n if (filtered.length % 2 !== 0) {\n return null;\n }\n\n for (let i = 0; i < filtered.length; i += 2) {\n const open = filtered[i].value;\n const close = filtered[i + 1].value;\n quotes.push({open, close});\n }\n\n return quotes;\n }\n};\n\nexport const getQuote = (quotes: Quotes, depth: number, open: boolean): string => {\n if (!quotes) {\n return '';\n }\n\n const quote = quotes[Math.min(depth, quotes.length - 1)];\n if (!quote) {\n return '';\n }\n\n return open ? quote.open : quote.close;\n};\n","import {PropertyDescriptorParsingType, IPropertyListDescriptor} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentWithValue, parseFunctionArgs} from '../syntax/parser';\nimport {ZERO_LENGTH} from '../types/length-percentage';\nimport {color, Color} from '../types/color';\nimport {isLength, Length} from '../types/length';\nimport {Context} from '../../core/context';\n\nexport type BoxShadow = BoxShadowItem[];\ninterface BoxShadowItem {\n inset: boolean;\n color: Color;\n offsetX: Length;\n offsetY: Length;\n blur: Length;\n spread: Length;\n}\n\nexport const boxShadow: IPropertyListDescriptor = {\n name: 'box-shadow',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (context: Context, tokens: CSSValue[]): BoxShadow => {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n\n return parseFunctionArgs(tokens).map((values: CSSValue[]) => {\n const shadow: BoxShadowItem = {\n color: 0x000000ff,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH,\n spread: ZERO_LENGTH,\n inset: false\n };\n let c = 0;\n for (let i = 0; i < values.length; i++) {\n const token = values[i];\n if (isIdentWithValue(token, 'inset')) {\n shadow.inset = true;\n } else if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n } else if (c === 1) {\n shadow.offsetY = token;\n } else if (c === 2) {\n shadow.blur = token;\n } else {\n shadow.spread = token;\n }\n c++;\n } else {\n shadow.color = color.parse(context, token);\n }\n }\n return shadow;\n });\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum PAINT_ORDER_LAYER {\n FILL,\n STROKE,\n MARKERS\n}\n\nexport type PaintOrder = PAINT_ORDER_LAYER[];\n\nexport const paintOrder: IPropertyListDescriptor = {\n name: 'paint-order',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): PaintOrder => {\n const DEFAULT_VALUE = [PAINT_ORDER_LAYER.FILL, PAINT_ORDER_LAYER.STROKE, PAINT_ORDER_LAYER.MARKERS];\n const layers: PaintOrder = [];\n\n tokens.filter(isIdentToken).forEach((token) => {\n switch (token.value) {\n case 'stroke':\n layers.push(PAINT_ORDER_LAYER.STROKE);\n break;\n case 'fill':\n layers.push(PAINT_ORDER_LAYER.FILL);\n break;\n case 'markers':\n layers.push(PAINT_ORDER_LAYER.MARKERS);\n break;\n }\n });\n DEFAULT_VALUE.forEach((value) => {\n if (layers.indexOf(value) === -1) {\n layers.push(value);\n }\n });\n\n return layers;\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nexport const webkitTextStrokeColor: IPropertyTypeValueDescriptor = {\n name: `-webkit-text-stroke-color`,\n initialValue: 'currentcolor',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const webkitTextStrokeWidth: IPropertyValueDescriptor = {\n name: `-webkit-text-stroke-width`,\n initialValue: '0',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n};\n","import {CSSPropertyDescriptor, PropertyDescriptorParsingType} from './IPropertyDescriptor';\nimport {backgroundClip} from './property-descriptors/background-clip';\nimport {backgroundColor} from './property-descriptors/background-color';\nimport {backgroundImage} from './property-descriptors/background-image';\nimport {backgroundOrigin} from './property-descriptors/background-origin';\nimport {backgroundPosition} from './property-descriptors/background-position';\nimport {backgroundRepeat} from './property-descriptors/background-repeat';\nimport {backgroundSize} from './property-descriptors/background-size';\nimport {\n borderBottomColor,\n borderLeftColor,\n borderRightColor,\n borderTopColor\n} from './property-descriptors/border-color';\nimport {\n borderBottomLeftRadius,\n borderBottomRightRadius,\n borderTopLeftRadius,\n borderTopRightRadius\n} from './property-descriptors/border-radius';\nimport {\n borderBottomStyle,\n borderLeftStyle,\n borderRightStyle,\n borderTopStyle\n} from './property-descriptors/border-style';\nimport {\n borderBottomWidth,\n borderLeftWidth,\n borderRightWidth,\n borderTopWidth\n} from './property-descriptors/border-width';\nimport {color} from './property-descriptors/color';\nimport {direction} from './property-descriptors/direction';\nimport {display, DISPLAY} from './property-descriptors/display';\nimport {float, FLOAT} from './property-descriptors/float';\nimport {letterSpacing} from './property-descriptors/letter-spacing';\nimport {lineBreak} from './property-descriptors/line-break';\nimport {lineHeight} from './property-descriptors/line-height';\nimport {listStyleImage} from './property-descriptors/list-style-image';\nimport {listStylePosition} from './property-descriptors/list-style-position';\nimport {listStyleType} from './property-descriptors/list-style-type';\nimport {marginBottom, marginLeft, marginRight, marginTop} from './property-descriptors/margin';\nimport {overflow, OVERFLOW} from './property-descriptors/overflow';\nimport {overflowWrap} from './property-descriptors/overflow-wrap';\nimport {paddingBottom, paddingLeft, paddingRight, paddingTop} from './property-descriptors/padding';\nimport {textAlign} from './property-descriptors/text-align';\nimport {position, POSITION} from './property-descriptors/position';\nimport {textShadow} from './property-descriptors/text-shadow';\nimport {textTransform} from './property-descriptors/text-transform';\nimport {transform} from './property-descriptors/transform';\nimport {transformOrigin} from './property-descriptors/transform-origin';\nimport {visibility, VISIBILITY} from './property-descriptors/visibility';\nimport {wordBreak} from './property-descriptors/word-break';\nimport {zIndex} from './property-descriptors/z-index';\nimport {CSSValue, isIdentToken, Parser} from './syntax/parser';\nimport {Tokenizer} from './syntax/tokenizer';\nimport {Color, color as colorType, isTransparent} from './types/color';\nimport {angle} from './types/angle';\nimport {image} from './types/image';\nimport {time} from './types/time';\nimport {opacity} from './property-descriptors/opacity';\nimport {textDecorationColor} from './property-descriptors/text-decoration-color';\nimport {textDecorationLine} from './property-descriptors/text-decoration-line';\nimport {isLengthPercentage, LengthPercentage, ZERO_LENGTH} from './types/length-percentage';\nimport {fontFamily} from './property-descriptors/font-family';\nimport {fontSize} from './property-descriptors/font-size';\nimport {isLength} from './types/length';\nimport {fontWeight} from './property-descriptors/font-weight';\nimport {fontVariant} from './property-descriptors/font-variant';\nimport {fontStyle} from './property-descriptors/font-style';\nimport {contains} from '../core/bitwise';\nimport {content} from './property-descriptors/content';\nimport {counterIncrement} from './property-descriptors/counter-increment';\nimport {counterReset} from './property-descriptors/counter-reset';\nimport {duration} from './property-descriptors/duration';\nimport {quotes} from './property-descriptors/quotes';\nimport {boxShadow} from './property-descriptors/box-shadow';\nimport {paintOrder} from './property-descriptors/paint-order';\nimport {webkitTextStrokeColor} from './property-descriptors/webkit-text-stroke-color';\nimport {webkitTextStrokeWidth} from './property-descriptors/webkit-text-stroke-width';\nimport {Context} from '../core/context';\n\nexport class CSSParsedDeclaration {\n animationDuration: ReturnType;\n backgroundClip: ReturnType;\n backgroundColor: Color;\n backgroundImage: ReturnType;\n backgroundOrigin: ReturnType;\n backgroundPosition: ReturnType;\n backgroundRepeat: ReturnType;\n backgroundSize: ReturnType;\n borderTopColor: Color;\n borderRightColor: Color;\n borderBottomColor: Color;\n borderLeftColor: Color;\n borderTopLeftRadius: ReturnType;\n borderTopRightRadius: ReturnType;\n borderBottomRightRadius: ReturnType;\n borderBottomLeftRadius: ReturnType;\n borderTopStyle: ReturnType;\n borderRightStyle: ReturnType;\n borderBottomStyle: ReturnType;\n borderLeftStyle: ReturnType;\n borderTopWidth: ReturnType;\n borderRightWidth: ReturnType;\n borderBottomWidth: ReturnType;\n borderLeftWidth: ReturnType;\n boxShadow: ReturnType;\n color: Color;\n direction: ReturnType;\n display: ReturnType;\n float: ReturnType;\n fontFamily: ReturnType;\n fontSize: LengthPercentage;\n fontStyle: ReturnType;\n fontVariant: ReturnType;\n fontWeight: ReturnType;\n letterSpacing: ReturnType;\n lineBreak: ReturnType;\n lineHeight: CSSValue;\n listStyleImage: ReturnType;\n listStylePosition: ReturnType;\n listStyleType: ReturnType;\n marginTop: CSSValue;\n marginRight: CSSValue;\n marginBottom: CSSValue;\n marginLeft: CSSValue;\n opacity: ReturnType;\n overflowX: OVERFLOW;\n overflowY: OVERFLOW;\n overflowWrap: ReturnType;\n paddingTop: LengthPercentage;\n paddingRight: LengthPercentage;\n paddingBottom: LengthPercentage;\n paddingLeft: LengthPercentage;\n paintOrder: ReturnType;\n position: ReturnType;\n textAlign: ReturnType;\n textDecorationColor: Color;\n textDecorationLine: ReturnType;\n textShadow: ReturnType;\n textTransform: ReturnType;\n transform: ReturnType;\n transformOrigin: ReturnType;\n visibility: ReturnType;\n webkitTextStrokeColor: Color;\n webkitTextStrokeWidth: ReturnType;\n wordBreak: ReturnType;\n zIndex: ReturnType;\n\n constructor(context: Context, declaration: CSSStyleDeclaration) {\n this.animationDuration = parse(context, duration, declaration.animationDuration);\n this.backgroundClip = parse(context, backgroundClip, declaration.backgroundClip);\n this.backgroundColor = parse(context, backgroundColor, declaration.backgroundColor);\n this.backgroundImage = parse(context, backgroundImage, declaration.backgroundImage);\n this.backgroundOrigin = parse(context, backgroundOrigin, declaration.backgroundOrigin);\n this.backgroundPosition = parse(context, backgroundPosition, declaration.backgroundPosition);\n this.backgroundRepeat = parse(context, backgroundRepeat, declaration.backgroundRepeat);\n this.backgroundSize = parse(context, backgroundSize, declaration.backgroundSize);\n this.borderTopColor = parse(context, borderTopColor, declaration.borderTopColor);\n this.borderRightColor = parse(context, borderRightColor, declaration.borderRightColor);\n this.borderBottomColor = parse(context, borderBottomColor, declaration.borderBottomColor);\n this.borderLeftColor = parse(context, borderLeftColor, declaration.borderLeftColor);\n this.borderTopLeftRadius = parse(context, borderTopLeftRadius, declaration.borderTopLeftRadius);\n this.borderTopRightRadius = parse(context, borderTopRightRadius, declaration.borderTopRightRadius);\n this.borderBottomRightRadius = parse(context, borderBottomRightRadius, declaration.borderBottomRightRadius);\n this.borderBottomLeftRadius = parse(context, borderBottomLeftRadius, declaration.borderBottomLeftRadius);\n this.borderTopStyle = parse(context, borderTopStyle, declaration.borderTopStyle);\n this.borderRightStyle = parse(context, borderRightStyle, declaration.borderRightStyle);\n this.borderBottomStyle = parse(context, borderBottomStyle, declaration.borderBottomStyle);\n this.borderLeftStyle = parse(context, borderLeftStyle, declaration.borderLeftStyle);\n this.borderTopWidth = parse(context, borderTopWidth, declaration.borderTopWidth);\n this.borderRightWidth = parse(context, borderRightWidth, declaration.borderRightWidth);\n this.borderBottomWidth = parse(context, borderBottomWidth, declaration.borderBottomWidth);\n this.borderLeftWidth = parse(context, borderLeftWidth, declaration.borderLeftWidth);\n this.boxShadow = parse(context, boxShadow, declaration.boxShadow);\n this.color = parse(context, color, declaration.color);\n this.direction = parse(context, direction, declaration.direction);\n this.display = parse(context, display, declaration.display);\n this.float = parse(context, float, declaration.cssFloat);\n this.fontFamily = parse(context, fontFamily, declaration.fontFamily);\n this.fontSize = parse(context, fontSize, declaration.fontSize);\n this.fontStyle = parse(context, fontStyle, declaration.fontStyle);\n this.fontVariant = parse(context, fontVariant, declaration.fontVariant);\n this.fontWeight = parse(context, fontWeight, declaration.fontWeight);\n this.letterSpacing = parse(context, letterSpacing, declaration.letterSpacing);\n this.lineBreak = parse(context, lineBreak, declaration.lineBreak);\n this.lineHeight = parse(context, lineHeight, declaration.lineHeight);\n this.listStyleImage = parse(context, listStyleImage, declaration.listStyleImage);\n this.listStylePosition = parse(context, listStylePosition, declaration.listStylePosition);\n this.listStyleType = parse(context, listStyleType, declaration.listStyleType);\n this.marginTop = parse(context, marginTop, declaration.marginTop);\n this.marginRight = parse(context, marginRight, declaration.marginRight);\n this.marginBottom = parse(context, marginBottom, declaration.marginBottom);\n this.marginLeft = parse(context, marginLeft, declaration.marginLeft);\n this.opacity = parse(context, opacity, declaration.opacity);\n const overflowTuple = parse(context, overflow, declaration.overflow);\n this.overflowX = overflowTuple[0];\n this.overflowY = overflowTuple[overflowTuple.length > 1 ? 1 : 0];\n this.overflowWrap = parse(context, overflowWrap, declaration.overflowWrap);\n this.paddingTop = parse(context, paddingTop, declaration.paddingTop);\n this.paddingRight = parse(context, paddingRight, declaration.paddingRight);\n this.paddingBottom = parse(context, paddingBottom, declaration.paddingBottom);\n this.paddingLeft = parse(context, paddingLeft, declaration.paddingLeft);\n this.paintOrder = parse(context, paintOrder, declaration.paintOrder);\n this.position = parse(context, position, declaration.position);\n this.textAlign = parse(context, textAlign, declaration.textAlign);\n this.textDecorationColor = parse(\n context,\n textDecorationColor,\n declaration.textDecorationColor ?? declaration.color\n );\n this.textDecorationLine = parse(\n context,\n textDecorationLine,\n declaration.textDecorationLine ?? declaration.textDecoration\n );\n this.textShadow = parse(context, textShadow, declaration.textShadow);\n this.textTransform = parse(context, textTransform, declaration.textTransform);\n this.transform = parse(context, transform, declaration.transform);\n this.transformOrigin = parse(context, transformOrigin, declaration.transformOrigin);\n this.visibility = parse(context, visibility, declaration.visibility);\n this.webkitTextStrokeColor = parse(context, webkitTextStrokeColor, declaration.webkitTextStrokeColor);\n this.webkitTextStrokeWidth = parse(context, webkitTextStrokeWidth, declaration.webkitTextStrokeWidth);\n this.wordBreak = parse(context, wordBreak, declaration.wordBreak);\n this.zIndex = parse(context, zIndex, declaration.zIndex);\n }\n\n isVisible(): boolean {\n return this.display > 0 && this.opacity > 0 && this.visibility === VISIBILITY.VISIBLE;\n }\n\n isTransparent(): boolean {\n return isTransparent(this.backgroundColor);\n }\n\n isTransformed(): boolean {\n return this.transform !== null;\n }\n\n isPositioned(): boolean {\n return this.position !== POSITION.STATIC;\n }\n\n isPositionedWithZIndex(): boolean {\n return this.isPositioned() && !this.zIndex.auto;\n }\n\n isFloating(): boolean {\n return this.float !== FLOAT.NONE;\n }\n\n isInlineLevel(): boolean {\n return (\n contains(this.display, DISPLAY.INLINE) ||\n contains(this.display, DISPLAY.INLINE_BLOCK) ||\n contains(this.display, DISPLAY.INLINE_FLEX) ||\n contains(this.display, DISPLAY.INLINE_GRID) ||\n contains(this.display, DISPLAY.INLINE_LIST_ITEM) ||\n contains(this.display, DISPLAY.INLINE_TABLE)\n );\n }\n}\n\nexport class CSSParsedPseudoDeclaration {\n content: ReturnType;\n quotes: ReturnType;\n\n constructor(context: Context, declaration: CSSStyleDeclaration) {\n this.content = parse(context, content, declaration.content);\n this.quotes = parse(context, quotes, declaration.quotes);\n }\n}\n\nexport class CSSParsedCounterDeclaration {\n counterIncrement: ReturnType;\n counterReset: ReturnType;\n\n constructor(context: Context, declaration: CSSStyleDeclaration) {\n this.counterIncrement = parse(context, counterIncrement, declaration.counterIncrement);\n this.counterReset = parse(context, counterReset, declaration.counterReset);\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst parse = (context: Context, descriptor: CSSPropertyDescriptor, style?: string | null) => {\n const tokenizer = new Tokenizer();\n const value = style !== null && typeof style !== 'undefined' ? style.toString() : descriptor.initialValue;\n tokenizer.write(value);\n const parser = new Parser(tokenizer.read());\n switch (descriptor.type) {\n case PropertyDescriptorParsingType.IDENT_VALUE:\n const token = parser.parseComponentValue();\n return descriptor.parse(context, isIdentToken(token) ? token.value : descriptor.initialValue);\n case PropertyDescriptorParsingType.VALUE:\n return descriptor.parse(context, parser.parseComponentValue());\n case PropertyDescriptorParsingType.LIST:\n return descriptor.parse(context, parser.parseComponentValues());\n case PropertyDescriptorParsingType.TOKEN_VALUE:\n return parser.parseComponentValue();\n case PropertyDescriptorParsingType.TYPE_VALUE:\n switch (descriptor.format) {\n case 'angle':\n return angle.parse(context, parser.parseComponentValue());\n case 'color':\n return colorType.parse(context, parser.parseComponentValue());\n case 'image':\n return image.parse(context, parser.parseComponentValue());\n case 'length':\n const length = parser.parseComponentValue();\n return isLength(length) ? length : ZERO_LENGTH;\n case 'length-percentage':\n const value = parser.parseComponentValue();\n return isLengthPercentage(value) ? value : ZERO_LENGTH;\n case 'time':\n return time.parse(context, parser.parseComponentValue());\n }\n break;\n }\n};\n","const elementDebuggerAttribute = 'data-html2canvas-debug';\nexport const enum DebuggerType {\n NONE,\n ALL,\n CLONE,\n PARSE,\n RENDER\n}\n\nconst getElementDebugType = (element: Element): DebuggerType => {\n const attribute = element.getAttribute(elementDebuggerAttribute);\n switch (attribute) {\n case 'all':\n return DebuggerType.ALL;\n case 'clone':\n return DebuggerType.CLONE;\n case 'parse':\n return DebuggerType.PARSE;\n case 'render':\n return DebuggerType.RENDER;\n default:\n return DebuggerType.NONE;\n }\n};\n\nexport const isDebugging = (element: Element, type: Omit): boolean => {\n const elementType = getElementDebugType(element);\n return elementType === DebuggerType.ALL || type === elementType;\n};\n","import {CSSParsedDeclaration} from '../css/index';\nimport {TextContainer} from './text-container';\nimport {Bounds, parseBounds} from '../css/layout/bounds';\nimport {isHTMLElementNode} from './node-parser';\nimport {Context} from '../core/context';\nimport {DebuggerType, isDebugging} from '../core/debugger';\n\nexport const enum FLAGS {\n CREATES_STACKING_CONTEXT = 1 << 1,\n CREATES_REAL_STACKING_CONTEXT = 1 << 2,\n IS_LIST_OWNER = 1 << 3,\n DEBUG_RENDER = 1 << 4\n}\n\nexport class ElementContainer {\n readonly styles: CSSParsedDeclaration;\n readonly textNodes: TextContainer[] = [];\n readonly elements: ElementContainer[] = [];\n bounds: Bounds;\n flags = 0;\n\n constructor(protected readonly context: Context, element: Element) {\n if (isDebugging(element, DebuggerType.PARSE)) {\n debugger;\n }\n\n this.styles = new CSSParsedDeclaration(context, window.getComputedStyle(element, null));\n\n if (isHTMLElementNode(element)) {\n if (this.styles.animationDuration.some((duration) => duration > 0)) {\n element.style.animationDuration = '0s';\n }\n\n if (this.styles.transform !== null) {\n // getBoundingClientRect takes transforms into account\n element.style.transform = 'none';\n }\n }\n\n this.bounds = parseBounds(this.context, element);\n\n if (isDebugging(element, DebuggerType.RENDER)) {\n this.flags |= FLAGS.DEBUG_RENDER;\n }\n }\n}\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const encode = (arraybuffer: ArrayBuffer): string => {\n let bytes = new Uint8Array(arraybuffer),\n i,\n len = bytes.length,\n base64 = '';\n\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n\n return base64;\n};\n\nexport const decode = (base64: string): ArrayBuffer => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n};\n","import {decode, polyUint16Array, polyUint32Array} from './Util';\n\nexport type int = number;\n\n/** Shift size for getting the index-2 table offset. */\nexport const UTRIE2_SHIFT_2 = 5;\n\n/** Shift size for getting the index-1 table offset. */\nexport const UTRIE2_SHIFT_1 = 6 + 5;\n\n/**\n * Shift size for shifting left the index array values.\n * Increases possible data size with 16-bit index values at the cost\n * of compactability.\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\n */\nexport const UTRIE2_INDEX_SHIFT = 2;\n\n/**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\nexport const UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;\n\n/**\n * The part of the index-2 table for U+D800..U+DBFF stores values for\n * lead surrogate code _units_ not code _points_.\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\nexport const UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;\n\n/** Number of entries in a data block. 32=0x20 */\nexport const UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;\n/** Mask for getting the lower bits for the in-data-block offset. */\nexport const UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;\n\nexport const UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;\n/** Count the lengths of both BMP pieces. 2080=0x820 */\nexport const UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH;\n/**\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\n */\nexport const UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;\nexport const UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\n/**\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n * Variable length, for code points up to highStart, where the last single-value range starts.\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\n *\n * The part of the index-2 table for supplementary code points starts\n * after this index-1 table.\n *\n * Both the index-1 table and the following part of the index-2 table\n * are omitted completely if there is only BMP data.\n */\nexport const UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;\n\n/**\n * Number of index-1 entries for the BMP. 32=0x20\n * This part of the index-1 table is omitted from the serialized form.\n */\nexport const UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;\n\n/** Number of entries in an index-2 block. 64=0x40 */\nexport const UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;\n/** Mask for getting the lower bits for the in-index-2-block offset. */\nexport const UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;\n\nconst slice16 = (view: number[] | Uint16Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n};\n\nconst slice32 = (view: number[] | Uint32Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n};\n\nexport const createTrieFromBase64 = (base64: string, _byteLength: number): Trie => {\n const buffer = decode(base64);\n const view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer);\n const view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer);\n const headerLength = 24;\n\n const index = slice16(view16, headerLength / 2, view32[4] / 2);\n const data =\n view32[5] === 2\n ? slice16(view16, (headerLength + view32[4]) / 2)\n : slice32(view32, Math.ceil((headerLength + view32[4]) / 4));\n\n return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);\n};\n\nexport class Trie {\n initialValue: int;\n errorValue: int;\n highStart: int;\n highValueIndex: int;\n index: Uint16Array | number[];\n data: Uint32Array | Uint16Array | number[];\n\n constructor(\n initialValue: int,\n errorValue: int,\n highStart: int,\n highValueIndex: int,\n index: Uint16Array | number[],\n data: Uint32Array | Uint16Array | number[]\n ) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n get(codePoint: number): number {\n let ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n }\n}\n","import {base64, byteLength} from './grapheme-break-trie';\nimport {createTrieFromBase64} from 'utrie';\n\nconst Other = 0;\nconst Prepend = 1;\nconst CR = 2;\nconst LF = 3;\nconst Control = 4;\nconst Extend = 5;\nconst Regional_Indicator = 6;\nconst SpacingMark = 7;\nconst L = 8;\nconst V = 9;\nconst T = 10;\nconst LV = 11;\nconst LVT = 12;\nconst ZWJ = 13;\nconst Extended_Pictographic = 14;\nconst RI = 15;\n\nexport const classes: {[key: string]: number} = {\n Other,\n Prepend,\n CR,\n LF,\n Control,\n Extend,\n Regional_Indicator,\n SpacingMark,\n L,\n V,\n T,\n LV,\n LVT,\n ZWJ,\n Extended_Pictographic,\n RI,\n};\n\nexport const toCodePoints = (str: string): number[] => {\n const codePoints = [];\n let i = 0;\n const length = str.length;\n while (i < length) {\n const value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n const extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n } else {\n codePoints.push(value);\n i--;\n }\n } else {\n codePoints.push(value);\n }\n }\n return codePoints;\n};\n\nexport const fromCodePoint = (...codePoints: number[]): string => {\n if (String.fromCodePoint) {\n return String.fromCodePoint(...codePoints);\n }\n\n const length = codePoints.length;\n if (!length) {\n return '';\n }\n\n const codeUnits = [];\n\n let index = -1;\n let result = '';\n while (++index < length) {\n let codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n } else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode(...codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n};\n\nexport const UnicodeTrie = createTrieFromBase64(base64, byteLength);\n\nexport const BREAK_NOT_ALLOWED = '×';\nexport const BREAK_ALLOWED = '÷';\n\nexport type BREAK_OPPORTUNITIES = typeof BREAK_NOT_ALLOWED | typeof BREAK_ALLOWED;\n\nexport const codePointToClass = (codePoint: number): number => UnicodeTrie.get(codePoint);\n\nconst _graphemeBreakAtIndex = (_codePoints: number[], classTypes: number[], index: number): BREAK_OPPORTUNITIES => {\n let prevIndex = index - 2;\n let prev = classTypes[prevIndex];\n const current = classTypes[index - 1];\n const next = classTypes[index];\n // GB3 Do not break between a CR and LF\n if (current === CR && next === LF) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB4 Otherwise, break before and after controls.\n if (current === CR || current === LF || current === Control) {\n return BREAK_ALLOWED;\n }\n\n // GB5\n if (next === CR || next === LF || next === Control) {\n return BREAK_ALLOWED;\n }\n\n // Do not break Hangul syllable sequences.\n // GB6\n if (current === L && [L, V, LV, LVT].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB7\n if ((current === LV || current === V) && (next === V || next === T)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB8\n if ((current === LVT || current === T) && next === T) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB9 Do not break before extending characters or ZWJ.\n if (next === ZWJ || next === Extend) {\n return BREAK_NOT_ALLOWED;\n }\n // Do not break before SpacingMarks, or after Prepend characters.\n // GB9a\n if (next === SpacingMark) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB9a\n if (current === Prepend) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB11 Do not break within emoji modifier sequences or emoji zwj sequences.\n if (current === ZWJ && next === Extended_Pictographic) {\n while (prev === Extend) {\n prev = classTypes[--prevIndex];\n }\n if (prev === Extended_Pictographic) {\n return BREAK_NOT_ALLOWED;\n }\n }\n\n // GB12 Do not break within emoji flag sequences.\n // That is, do not break between regional indicator (RI) symbols\n // if there is an odd number of RI characters before the break point.\n if (current === RI && next === RI) {\n let countRI = 0;\n while (prev === RI) {\n countRI++;\n prev = classTypes[--prevIndex];\n }\n if (countRI % 2 === 0) {\n return BREAK_NOT_ALLOWED;\n }\n }\n\n return BREAK_ALLOWED;\n};\n\nexport const graphemeBreakAtIndex = (codePoints: number[], index: number): BREAK_OPPORTUNITIES => {\n // GB1 Break at the start and end of text, unless the text is empty.\n if (index === 0) {\n return BREAK_ALLOWED;\n }\n\n // GB2\n if (index >= codePoints.length) {\n return BREAK_ALLOWED;\n }\n\n const classTypes = codePoints.map(codePointToClass);\n return _graphemeBreakAtIndex(codePoints, classTypes, index);\n};\n\nexport const GraphemeBreaker = (str: string) => {\n const codePoints = toCodePoints(str);\n const length = codePoints.length;\n let index = 0;\n let lastEnd = 0;\n const classTypes = codePoints.map(codePointToClass);\n\n return {\n next: () => {\n if (index >= length) {\n return {done: true, value: null};\n }\n\n let graphemeBreak = BREAK_NOT_ALLOWED;\n while (\n index < length &&\n (graphemeBreak = _graphemeBreakAtIndex(codePoints, classTypes, ++index)) === BREAK_NOT_ALLOWED\n ) {}\n\n if (graphemeBreak !== BREAK_NOT_ALLOWED || index === length) {\n const value = fromCodePoint.apply(null, codePoints.slice(lastEnd, index));\n lastEnd = index;\n return {value, done: false};\n }\n\n return {done: true, value: null};\n while (index < length) {}\n\n return {done: true, value: null};\n },\n };\n};\n\nexport const splitGraphemes = (str: string): string[] => {\n const breaker = GraphemeBreaker(str);\n\n const graphemes = [];\n let bk;\n\n while (!(bk = breaker.next()).done) {\n if (bk.value) {\n graphemes.push(bk.value.slice());\n }\n }\n\n return graphemes;\n};\n","import {Bounds} from '../css/layout/bounds';\nimport {\n isBodyElement,\n isCanvasElement,\n isCustomElement,\n isElementNode,\n isHTMLElementNode,\n isIFrameElement,\n isImageElement,\n isScriptElement,\n isSelectElement,\n isSlotElement,\n isStyleElement,\n isSVGElementNode,\n isTextareaElement,\n isTextNode,\n isVideoElement\n} from './node-parser';\nimport {isIdentToken, nonFunctionArgSeparator} from '../css/syntax/parser';\nimport {TokenType} from '../css/syntax/tokenizer';\nimport {CounterState, createCounterText} from '../css/types/functions/counter';\nimport {LIST_STYLE_TYPE, listStyleType} from '../css/property-descriptors/list-style-type';\nimport {CSSParsedCounterDeclaration, CSSParsedPseudoDeclaration} from '../css/index';\nimport {getQuote} from '../css/property-descriptors/quotes';\nimport {Context} from '../core/context';\nimport {DebuggerType, isDebugging} from '../core/debugger';\n\nexport interface CloneOptions {\n ignoreElements?: (element: Element) => boolean;\n onclone?: (document: Document, element: HTMLElement) => void;\n allowTaint?: boolean;\n}\n\nexport interface WindowOptions {\n scrollX: number;\n scrollY: number;\n windowWidth: number;\n windowHeight: number;\n}\n\nexport type CloneConfigurations = CloneOptions & {\n inlineImages: boolean;\n copyStyles: boolean;\n};\n\nconst IGNORE_ATTRIBUTE = 'data-html2canvas-ignore';\n\nexport class DocumentCloner {\n private readonly scrolledElements: [Element, number, number][];\n private readonly referenceElement: HTMLElement;\n clonedReferenceElement?: HTMLElement;\n private readonly documentElement: HTMLElement;\n private readonly counters: CounterState;\n private quoteDepth: number;\n\n constructor(\n private readonly context: Context,\n element: HTMLElement,\n private readonly options: CloneConfigurations\n ) {\n this.scrolledElements = [];\n this.referenceElement = element;\n this.counters = new CounterState();\n this.quoteDepth = 0;\n if (!element.ownerDocument) {\n throw new Error('Cloned element does not have an owner document');\n }\n\n this.documentElement = this.cloneNode(element.ownerDocument.documentElement, false) as HTMLElement;\n }\n\n toIFrame(ownerDocument: Document, windowSize: Bounds): Promise {\n const iframe: HTMLIFrameElement = createIFrameContainer(ownerDocument, windowSize);\n\n if (!iframe.contentWindow) {\n return Promise.reject(`Unable to find iframe window`);\n }\n\n const scrollX = (ownerDocument.defaultView as Window).pageXOffset;\n const scrollY = (ownerDocument.defaultView as Window).pageYOffset;\n\n const cloneWindow = iframe.contentWindow;\n const documentClone: Document = cloneWindow.document;\n\n /* Chrome doesn't detect relative background-images assigned in inline \" ).appendTo( body );\n\t\t}\n\n\t\tif ( o.opacity ) { // opacity option\n\t\t\tif ( this.helper.css( \"opacity\" ) ) {\n\t\t\t\tthis._storedOpacity = this.helper.css( \"opacity\" );\n\t\t\t}\n\t\t\tthis.helper.css( \"opacity\", o.opacity );\n\t\t}\n\n\t\tif ( o.zIndex ) { // zIndex option\n\t\t\tif ( this.helper.css( \"zIndex\" ) ) {\n\t\t\t\tthis._storedZIndex = this.helper.css( \"zIndex\" );\n\t\t\t}\n\t\t\tthis.helper.css( \"zIndex\", o.zIndex );\n\t\t}\n\n\t\t//Prepare scrolling\n\t\tif ( this.scrollParent[ 0 ] !== this.document[ 0 ] &&\n\t\t\t\tthis.scrollParent[ 0 ].tagName !== \"HTML\" ) {\n\t\t\tthis.overflowOffset = this.scrollParent.offset();\n\t\t}\n\n\t\t//Call callbacks\n\t\tthis._trigger( \"start\", event, this._uiHash() );\n\n\t\t//Recache the helper size\n\t\tif ( !this._preserveHelperProportions ) {\n\t\t\tthis._cacheHelperProportions();\n\t\t}\n\n\t\t//Post \"activate\" events to possible containers\n\t\tif ( !noActivation ) {\n\t\t\tfor ( i = this.containers.length - 1; i >= 0; i-- ) {\n\t\t\t\tthis.containers[ i ]._trigger( \"activate\", event, this._uiHash( this ) );\n\t\t\t}\n\t\t}\n\n\t\t//Prepare possible droppables\n\t\tif ( $.ui.ddmanager ) {\n\t\t\t$.ui.ddmanager.current = this;\n\t\t}\n\n\t\tif ( $.ui.ddmanager && !o.dropBehaviour ) {\n\t\t\t$.ui.ddmanager.prepareOffsets( this, event );\n\t\t}\n\n\t\tthis.dragging = true;\n\n\t\tthis._addClass( this.helper, \"ui-sortable-helper\" );\n\n\t\t// Execute the drag once - this causes the helper not to be visiblebefore getting its\n\t\t// correct position\n\t\tthis._mouseDrag( event );\n\t\treturn true;\n\n\t},\n\n\t_mouseDrag: function( event ) {\n\t\tvar i, item, itemElement, intersection,\n\t\t\to = this.options,\n\t\t\tscrolled = false;\n\n\t\t//Compute the helpers position\n\t\tthis.position = this._generatePosition( event );\n\t\tthis.positionAbs = this._convertPositionTo( \"absolute\" );\n\n\t\tif ( !this.lastPositionAbs ) {\n\t\t\tthis.lastPositionAbs = this.positionAbs;\n\t\t}\n\n\t\t//Do scrolling\n\t\tif ( this.options.scroll ) {\n\t\t\tif ( this.scrollParent[ 0 ] !== this.document[ 0 ] &&\n\t\t\t\t\tthis.scrollParent[ 0 ].tagName !== \"HTML\" ) {\n\n\t\t\t\tif ( ( this.overflowOffset.top + this.scrollParent[ 0 ].offsetHeight ) -\n\t\t\t\t\t\tevent.pageY < o.scrollSensitivity ) {\n\t\t\t\t\tthis.scrollParent[ 0 ].scrollTop =\n\t\t\t\t\t\tscrolled = this.scrollParent[ 0 ].scrollTop + o.scrollSpeed;\n\t\t\t\t} else if ( event.pageY - this.overflowOffset.top < o.scrollSensitivity ) {\n\t\t\t\t\tthis.scrollParent[ 0 ].scrollTop =\n\t\t\t\t\t\tscrolled = this.scrollParent[ 0 ].scrollTop - o.scrollSpeed;\n\t\t\t\t}\n\n\t\t\t\tif ( ( this.overflowOffset.left + this.scrollParent[ 0 ].offsetWidth ) -\n\t\t\t\t\t\tevent.pageX < o.scrollSensitivity ) {\n\t\t\t\t\tthis.scrollParent[ 0 ].scrollLeft = scrolled =\n\t\t\t\t\t\tthis.scrollParent[ 0 ].scrollLeft + o.scrollSpeed;\n\t\t\t\t} else if ( event.pageX - this.overflowOffset.left < o.scrollSensitivity ) {\n\t\t\t\t\tthis.scrollParent[ 0 ].scrollLeft = scrolled =\n\t\t\t\t\t\tthis.scrollParent[ 0 ].scrollLeft - o.scrollSpeed;\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( event.pageY - this.document.scrollTop() < o.scrollSensitivity ) {\n\t\t\t\t\tscrolled = this.document.scrollTop( this.document.scrollTop() - o.scrollSpeed );\n\t\t\t\t} else if ( this.window.height() - ( event.pageY - this.document.scrollTop() ) <\n\t\t\t\t\t\to.scrollSensitivity ) {\n\t\t\t\t\tscrolled = this.document.scrollTop( this.document.scrollTop() + o.scrollSpeed );\n\t\t\t\t}\n\n\t\t\t\tif ( event.pageX - this.document.scrollLeft() < o.scrollSensitivity ) {\n\t\t\t\t\tscrolled = this.document.scrollLeft(\n\t\t\t\t\t\tthis.document.scrollLeft() - o.scrollSpeed\n\t\t\t\t\t);\n\t\t\t\t} else if ( this.window.width() - ( event.pageX - this.document.scrollLeft() ) <\n\t\t\t\t\t\to.scrollSensitivity ) {\n\t\t\t\t\tscrolled = this.document.scrollLeft(\n\t\t\t\t\t\tthis.document.scrollLeft() + o.scrollSpeed\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( scrolled !== false && $.ui.ddmanager && !o.dropBehaviour ) {\n\t\t\t\t$.ui.ddmanager.prepareOffsets( this, event );\n\t\t\t}\n\t\t}\n\n\t\t//Regenerate the absolute position used for position checks\n\t\tthis.positionAbs = this._convertPositionTo( \"absolute\" );\n\n\t\t//Set the helper position\n\t\tif ( !this.options.axis || this.options.axis !== \"y\" ) {\n\t\t\tthis.helper[ 0 ].style.left = this.position.left + \"px\";\n\t\t}\n\t\tif ( !this.options.axis || this.options.axis !== \"x\" ) {\n\t\t\tthis.helper[ 0 ].style.top = this.position.top + \"px\";\n\t\t}\n\n\t\t//Rearrange\n\t\tfor ( i = this.items.length - 1; i >= 0; i-- ) {\n\n\t\t\t//Cache variables and intersection, continue if no intersection\n\t\t\titem = this.items[ i ];\n\t\t\titemElement = item.item[ 0 ];\n\t\t\tintersection = this._intersectsWithPointer( item );\n\t\t\tif ( !intersection ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Only put the placeholder inside the current Container, skip all\n\t\t\t// items from other containers. This works because when moving\n\t\t\t// an item from one container to another the\n\t\t\t// currentContainer is switched before the placeholder is moved.\n\t\t\t//\n\t\t\t// Without this, moving items in \"sub-sortables\" can cause\n\t\t\t// the placeholder to jitter between the outer and inner container.\n\t\t\tif ( item.instance !== this.currentContainer ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Cannot intersect with itself\n\t\t\t// no useless actions that have been done before\n\t\t\t// no action if the item moved is the parent of the item checked\n\t\t\tif ( itemElement !== this.currentItem[ 0 ] &&\n\t\t\t\tthis.placeholder[ intersection === 1 ? \"next\" : \"prev\" ]()[ 0 ] !== itemElement &&\n\t\t\t\t!$.contains( this.placeholder[ 0 ], itemElement ) &&\n\t\t\t\t( this.options.type === \"semi-dynamic\" ?\n\t\t\t\t\t!$.contains( this.element[ 0 ], itemElement ) :\n\t\t\t\t\ttrue\n\t\t\t\t)\n\t\t\t) {\n\n\t\t\t\tthis.direction = intersection === 1 ? \"down\" : \"up\";\n\n\t\t\t\tif ( this.options.tolerance === \"pointer\" || this._intersectsWithSides( item ) ) {\n\t\t\t\t\tthis._rearrange( event, item );\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tthis._trigger( \"change\", event, this._uiHash() );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t//Post events to containers\n\t\tthis._contactContainers( event );\n\n\t\t//Interconnect with droppables\n\t\tif ( $.ui.ddmanager ) {\n\t\t\t$.ui.ddmanager.drag( this, event );\n\t\t}\n\n\t\t//Call callbacks\n\t\tthis._trigger( \"sort\", event, this._uiHash() );\n\n\t\tthis.lastPositionAbs = this.positionAbs;\n\t\treturn false;\n\n\t},\n\n\t_mouseStop: function( event, noPropagation ) {\n\n\t\tif ( !event ) {\n\t\t\treturn;\n\t\t}\n\n\t\t//If we are using droppables, inform the manager about the drop\n\t\tif ( $.ui.ddmanager && !this.options.dropBehaviour ) {\n\t\t\t$.ui.ddmanager.drop( this, event );\n\t\t}\n\n\t\tif ( this.options.revert ) {\n\t\t\tvar that = this,\n\t\t\t\tcur = this.placeholder.offset(),\n\t\t\t\taxis = this.options.axis,\n\t\t\t\tanimation = {};\n\n\t\t\tif ( !axis || axis === \"x\" ) {\n\t\t\t\tanimation.left = cur.left - this.offset.parent.left - this.margins.left +\n\t\t\t\t\t( this.offsetParent[ 0 ] === this.document[ 0 ].body ?\n\t\t\t\t\t\t0 :\n\t\t\t\t\t\tthis.offsetParent[ 0 ].scrollLeft\n\t\t\t\t\t);\n\t\t\t}\n\t\t\tif ( !axis || axis === \"y\" ) {\n\t\t\t\tanimation.top = cur.top - this.offset.parent.top - this.margins.top +\n\t\t\t\t\t( this.offsetParent[ 0 ] === this.document[ 0 ].body ?\n\t\t\t\t\t\t0 :\n\t\t\t\t\t\tthis.offsetParent[ 0 ].scrollTop\n\t\t\t\t\t);\n\t\t\t}\n\t\t\tthis.reverting = true;\n\t\t\t$( this.helper ).animate(\n\t\t\t\tanimation,\n\t\t\t\tparseInt( this.options.revert, 10 ) || 500,\n\t\t\t\tfunction() {\n\t\t\t\t\tthat._clear( event );\n\t\t\t\t}\n\t\t\t);\n\t\t} else {\n\t\t\tthis._clear( event, noPropagation );\n\t\t}\n\n\t\treturn false;\n\n\t},\n\n\tcancel: function() {\n\n\t\tif ( this.dragging ) {\n\n\t\t\tthis._mouseUp( new $.Event( \"mouseup\", { target: null } ) );\n\n\t\t\tif ( this.options.helper === \"original\" ) {\n\t\t\t\tthis.currentItem.css( this._storedCSS );\n\t\t\t\tthis._removeClass( this.currentItem, \"ui-sortable-helper\" );\n\t\t\t} else {\n\t\t\t\tthis.currentItem.show();\n\t\t\t}\n\n\t\t\t//Post deactivating events to containers\n\t\t\tfor ( var i = this.containers.length - 1; i >= 0; i-- ) {\n\t\t\t\tthis.containers[ i ]._trigger( \"deactivate\", null, this._uiHash( this ) );\n\t\t\t\tif ( this.containers[ i ].containerCache.over ) {\n\t\t\t\t\tthis.containers[ i ]._trigger( \"out\", null, this._uiHash( this ) );\n\t\t\t\t\tthis.containers[ i ].containerCache.over = 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.placeholder ) {\n\n\t\t\t//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately,\n\t\t\t// it unbinds ALL events from the original node!\n\t\t\tif ( this.placeholder[ 0 ].parentNode ) {\n\t\t\t\tthis.placeholder[ 0 ].parentNode.removeChild( this.placeholder[ 0 ] );\n\t\t\t}\n\t\t\tif ( this.options.helper !== \"original\" && this.helper &&\n\t\t\t\t\tthis.helper[ 0 ].parentNode ) {\n\t\t\t\tthis.helper.remove();\n\t\t\t}\n\n\t\t\t$.extend( this, {\n\t\t\t\thelper: null,\n\t\t\t\tdragging: false,\n\t\t\t\treverting: false,\n\t\t\t\t_noFinalSort: null\n\t\t\t} );\n\n\t\t\tif ( this.domPosition.prev ) {\n\t\t\t\t$( this.domPosition.prev ).after( this.currentItem );\n\t\t\t} else {\n\t\t\t\t$( this.domPosition.parent ).prepend( this.currentItem );\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\n\t},\n\n\tserialize: function( o ) {\n\n\t\tvar items = this._getItemsAsjQuery( o && o.connected ),\n\t\t\tstr = [];\n\t\to = o || {};\n\n\t\t$( items ).each( function() {\n\t\t\tvar res = ( $( o.item || this ).attr( o.attribute || \"id\" ) || \"\" )\n\t\t\t\t.match( o.expression || ( /(.+)[\\-=_](.+)/ ) );\n\t\t\tif ( res ) {\n\t\t\t\tstr.push(\n\t\t\t\t\t( o.key || res[ 1 ] + \"[]\" ) +\n\t\t\t\t\t\"=\" + ( o.key && o.expression ? res[ 1 ] : res[ 2 ] ) );\n\t\t\t}\n\t\t} );\n\n\t\tif ( !str.length && o.key ) {\n\t\t\tstr.push( o.key + \"=\" );\n\t\t}\n\n\t\treturn str.join( \"&\" );\n\n\t},\n\n\ttoArray: function( o ) {\n\n\t\tvar items = this._getItemsAsjQuery( o && o.connected ),\n\t\t\tret = [];\n\n\t\to = o || {};\n\n\t\titems.each( function() {\n\t\t\tret.push( $( o.item || this ).attr( o.attribute || \"id\" ) || \"\" );\n\t\t} );\n\t\treturn ret;\n\n\t},\n\n\t/* Be careful with the following core functions */\n\t_intersectsWith: function( item ) {\n\n\t\tvar x1 = this.positionAbs.left,\n\t\t\tx2 = x1 + this.helperProportions.width,\n\t\t\ty1 = this.positionAbs.top,\n\t\t\ty2 = y1 + this.helperProportions.height,\n\t\t\tl = item.left,\n\t\t\tr = l + item.width,\n\t\t\tt = item.top,\n\t\t\tb = t + item.height,\n\t\t\tdyClick = this.offset.click.top,\n\t\t\tdxClick = this.offset.click.left,\n\t\t\tisOverElementHeight = ( this.options.axis === \"x\" ) || ( ( y1 + dyClick ) > t &&\n\t\t\t\t( y1 + dyClick ) < b ),\n\t\t\tisOverElementWidth = ( this.options.axis === \"y\" ) || ( ( x1 + dxClick ) > l &&\n\t\t\t\t( x1 + dxClick ) < r ),\n\t\t\tisOverElement = isOverElementHeight && isOverElementWidth;\n\n\t\tif ( this.options.tolerance === \"pointer\" ||\n\t\t\tthis.options.forcePointerForContainers ||\n\t\t\t( this.options.tolerance !== \"pointer\" &&\n\t\t\t\tthis.helperProportions[ this.floating ? \"width\" : \"height\" ] >\n\t\t\t\titem[ this.floating ? \"width\" : \"height\" ] )\n\t\t) {\n\t\t\treturn isOverElement;\n\t\t} else {\n\n\t\t\treturn ( l < x1 + ( this.helperProportions.width / 2 ) && // Right Half\n\t\t\t\tx2 - ( this.helperProportions.width / 2 ) < r && // Left Half\n\t\t\t\tt < y1 + ( this.helperProportions.height / 2 ) && // Bottom Half\n\t\t\t\ty2 - ( this.helperProportions.height / 2 ) < b ); // Top Half\n\n\t\t}\n\t},\n\n\t_intersectsWithPointer: function( item ) {\n\t\tvar verticalDirection, horizontalDirection,\n\t\t\tisOverElementHeight = ( this.options.axis === \"x\" ) ||\n\t\t\t\tthis._isOverAxis(\n\t\t\t\t\tthis.positionAbs.top + this.offset.click.top, item.top, item.height ),\n\t\t\tisOverElementWidth = ( this.options.axis === \"y\" ) ||\n\t\t\t\tthis._isOverAxis(\n\t\t\t\t\tthis.positionAbs.left + this.offset.click.left, item.left, item.width ),\n\t\t\tisOverElement = isOverElementHeight && isOverElementWidth;\n\n\t\tif ( !isOverElement ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tverticalDirection = this._getDragVerticalDirection();\n\t\thorizontalDirection = this._getDragHorizontalDirection();\n\n\t\treturn this.floating ?\n\t\t\t( ( horizontalDirection === \"right\" || verticalDirection === \"down\" ) ? 2 : 1 )\n\t\t\t: ( verticalDirection && ( verticalDirection === \"down\" ? 2 : 1 ) );\n\n\t},\n\n\t_intersectsWithSides: function( item ) {\n\n\t\tvar isOverBottomHalf = this._isOverAxis( this.positionAbs.top +\n\t\t\t\tthis.offset.click.top, item.top + ( item.height / 2 ), item.height ),\n\t\t\tisOverRightHalf = this._isOverAxis( this.positionAbs.left +\n\t\t\t\tthis.offset.click.left, item.left + ( item.width / 2 ), item.width ),\n\t\t\tverticalDirection = this._getDragVerticalDirection(),\n\t\t\thorizontalDirection = this._getDragHorizontalDirection();\n\n\t\tif ( this.floating && horizontalDirection ) {\n\t\t\treturn ( ( horizontalDirection === \"right\" && isOverRightHalf ) ||\n\t\t\t\t( horizontalDirection === \"left\" && !isOverRightHalf ) );\n\t\t} else {\n\t\t\treturn verticalDirection && ( ( verticalDirection === \"down\" && isOverBottomHalf ) ||\n\t\t\t\t( verticalDirection === \"up\" && !isOverBottomHalf ) );\n\t\t}\n\n\t},\n\n\t_getDragVerticalDirection: function() {\n\t\tvar delta = this.positionAbs.top - this.lastPositionAbs.top;\n\t\treturn delta !== 0 && ( delta > 0 ? \"down\" : \"up\" );\n\t},\n\n\t_getDragHorizontalDirection: function() {\n\t\tvar delta = this.positionAbs.left - this.lastPositionAbs.left;\n\t\treturn delta !== 0 && ( delta > 0 ? \"right\" : \"left\" );\n\t},\n\n\trefresh: function( event ) {\n\t\tthis._refreshItems( event );\n\t\tthis._setHandleClassName();\n\t\tthis.refreshPositions();\n\t\treturn this;\n\t},\n\n\t_connectWith: function() {\n\t\tvar options = this.options;\n\t\treturn options.connectWith.constructor === String ?\n\t\t\t[ options.connectWith ] :\n\t\t\toptions.connectWith;\n\t},\n\n\t_getItemsAsjQuery: function( connected ) {\n\n\t\tvar i, j, cur, inst,\n\t\t\titems = [],\n\t\t\tqueries = [],\n\t\t\tconnectWith = this._connectWith();\n\n\t\tif ( connectWith && connected ) {\n\t\t\tfor ( i = connectWith.length - 1; i >= 0; i-- ) {\n\t\t\t\tcur = $( connectWith[ i ], this.document[ 0 ] );\n\t\t\t\tfor ( j = cur.length - 1; j >= 0; j-- ) {\n\t\t\t\t\tinst = $.data( cur[ j ], this.widgetFullName );\n\t\t\t\t\tif ( inst && inst !== this && !inst.options.disabled ) {\n\t\t\t\t\t\tqueries.push( [ $.isFunction( inst.options.items ) ?\n\t\t\t\t\t\t\tinst.options.items.call( inst.element ) :\n\t\t\t\t\t\t\t$( inst.options.items, inst.element )\n\t\t\t\t\t\t\t\t.not( \".ui-sortable-helper\" )\n\t\t\t\t\t\t\t\t.not( \".ui-sortable-placeholder\" ), inst ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tqueries.push( [ $.isFunction( this.options.items ) ?\n\t\t\tthis.options.items\n\t\t\t\t.call( this.element, null, { options: this.options, item: this.currentItem } ) :\n\t\t\t$( this.options.items, this.element )\n\t\t\t\t.not( \".ui-sortable-helper\" )\n\t\t\t\t.not( \".ui-sortable-placeholder\" ), this ] );\n\n\t\tfunction addItems() {\n\t\t\titems.push( this );\n\t\t}\n\t\tfor ( i = queries.length - 1; i >= 0; i-- ) {\n\t\t\tqueries[ i ][ 0 ].each( addItems );\n\t\t}\n\n\t\treturn $( items );\n\n\t},\n\n\t_removeCurrentsFromItems: function() {\n\n\t\tvar list = this.currentItem.find( \":data(\" + this.widgetName + \"-item)\" );\n\n\t\tthis.items = $.grep( this.items, function( item ) {\n\t\t\tfor ( var j = 0; j < list.length; j++ ) {\n\t\t\t\tif ( list[ j ] === item.item[ 0 ] ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} );\n\n\t},\n\n\t_refreshItems: function( event ) {\n\n\t\tthis.items = [];\n\t\tthis.containers = [ this ];\n\n\t\tvar i, j, cur, inst, targetData, _queries, item, queriesLength,\n\t\t\titems = this.items,\n\t\t\tqueries = [ [ $.isFunction( this.options.items ) ?\n\t\t\t\tthis.options.items.call( this.element[ 0 ], event, { item: this.currentItem } ) :\n\t\t\t\t$( this.options.items, this.element ), this ] ],\n\t\t\tconnectWith = this._connectWith();\n\n\t\t//Shouldn't be run the first time through due to massive slow-down\n\t\tif ( connectWith && this.ready ) {\n\t\t\tfor ( i = connectWith.length - 1; i >= 0; i-- ) {\n\t\t\t\tcur = $( connectWith[ i ], this.document[ 0 ] );\n\t\t\t\tfor ( j = cur.length - 1; j >= 0; j-- ) {\n\t\t\t\t\tinst = $.data( cur[ j ], this.widgetFullName );\n\t\t\t\t\tif ( inst && inst !== this && !inst.options.disabled ) {\n\t\t\t\t\t\tqueries.push( [ $.isFunction( inst.options.items ) ?\n\t\t\t\t\t\t\tinst.options.items\n\t\t\t\t\t\t\t\t.call( inst.element[ 0 ], event, { item: this.currentItem } ) :\n\t\t\t\t\t\t\t$( inst.options.items, inst.element ), inst ] );\n\t\t\t\t\t\tthis.containers.push( inst );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor ( i = queries.length - 1; i >= 0; i-- ) {\n\t\t\ttargetData = queries[ i ][ 1 ];\n\t\t\t_queries = queries[ i ][ 0 ];\n\n\t\t\tfor ( j = 0, queriesLength = _queries.length; j < queriesLength; j++ ) {\n\t\t\t\titem = $( _queries[ j ] );\n\n\t\t\t\t// Data for target checking (mouse manager)\n\t\t\t\titem.data( this.widgetName + \"-item\", targetData );\n\n\t\t\t\titems.push( {\n\t\t\t\t\titem: item,\n\t\t\t\t\tinstance: targetData,\n\t\t\t\t\twidth: 0, height: 0,\n\t\t\t\t\tleft: 0, top: 0\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\n\t},\n\n\trefreshPositions: function( fast ) {\n\n\t\t// Determine whether items are being displayed horizontally\n\t\tthis.floating = this.items.length ?\n\t\t\tthis.options.axis === \"x\" || this._isFloating( this.items[ 0 ].item ) :\n\t\t\tfalse;\n\n\t\t//This has to be redone because due to the item being moved out/into the offsetParent,\n\t\t// the offsetParent's position will change\n\t\tif ( this.offsetParent && this.helper ) {\n\t\t\tthis.offset.parent = this._getParentOffset();\n\t\t}\n\n\t\tvar i, item, t, p;\n\n\t\tfor ( i = this.items.length - 1; i >= 0; i-- ) {\n\t\t\titem = this.items[ i ];\n\n\t\t\t//We ignore calculating positions of all connected containers when we're not over them\n\t\t\tif ( item.instance !== this.currentContainer && this.currentContainer &&\n\t\t\t\t\titem.item[ 0 ] !== this.currentItem[ 0 ] ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tt = this.options.toleranceElement ?\n\t\t\t\t$( this.options.toleranceElement, item.item ) :\n\t\t\t\titem.item;\n\n\t\t\tif ( !fast ) {\n\t\t\t\titem.width = t.outerWidth();\n\t\t\t\titem.height = t.outerHeight();\n\t\t\t}\n\n\t\t\tp = t.offset();\n\t\t\titem.left = p.left;\n\t\t\titem.top = p.top;\n\t\t}\n\n\t\tif ( this.options.custom && this.options.custom.refreshContainers ) {\n\t\t\tthis.options.custom.refreshContainers.call( this );\n\t\t} else {\n\t\t\tfor ( i = this.containers.length - 1; i >= 0; i-- ) {\n\t\t\t\tp = this.containers[ i ].element.offset();\n\t\t\t\tthis.containers[ i ].containerCache.left = p.left;\n\t\t\t\tthis.containers[ i ].containerCache.top = p.top;\n\t\t\t\tthis.containers[ i ].containerCache.width =\n\t\t\t\t\tthis.containers[ i ].element.outerWidth();\n\t\t\t\tthis.containers[ i ].containerCache.height =\n\t\t\t\t\tthis.containers[ i ].element.outerHeight();\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\t_createPlaceholder: function( that ) {\n\t\tthat = that || this;\n\t\tvar className,\n\t\t\to = that.options;\n\n\t\tif ( !o.placeholder || o.placeholder.constructor === String ) {\n\t\t\tclassName = o.placeholder;\n\t\t\to.placeholder = {\n\t\t\t\telement: function() {\n\n\t\t\t\t\tvar nodeName = that.currentItem[ 0 ].nodeName.toLowerCase(),\n\t\t\t\t\t\telement = $( \"<\" + nodeName + \">\", that.document[ 0 ] );\n\n\t\t\t\t\t\tthat._addClass( element, \"ui-sortable-placeholder\",\n\t\t\t\t\t\t\t\tclassName || that.currentItem[ 0 ].className )\n\t\t\t\t\t\t\t._removeClass( element, \"ui-sortable-helper\" );\n\n\t\t\t\t\tif ( nodeName === \"tbody\" ) {\n\t\t\t\t\t\tthat._createTrPlaceholder(\n\t\t\t\t\t\t\tthat.currentItem.find( \"tr\" ).eq( 0 ),\n\t\t\t\t\t\t\t$( \"\", that.document[ 0 ] ).appendTo( element )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if ( nodeName === \"tr\" ) {\n\t\t\t\t\t\tthat._createTrPlaceholder( that.currentItem, element );\n\t\t\t\t\t} else if ( nodeName === \"img\" ) {\n\t\t\t\t\t\telement.attr( \"src\", that.currentItem.attr( \"src\" ) );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !className ) {\n\t\t\t\t\t\telement.css( \"visibility\", \"hidden\" );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn element;\n\t\t\t\t},\n\t\t\t\tupdate: function( container, p ) {\n\n\t\t\t\t\t// 1. If a className is set as 'placeholder option, we don't force sizes -\n\t\t\t\t\t// the class is responsible for that\n\t\t\t\t\t// 2. The option 'forcePlaceholderSize can be enabled to force it even if a\n\t\t\t\t\t// class name is specified\n\t\t\t\t\tif ( className && !o.forcePlaceholderSize ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t//If the element doesn't have a actual height by itself (without styles coming\n\t\t\t\t\t// from a stylesheet), it receives the inline height from the dragged item\n\t\t\t\t\tif ( !p.height() ) {\n\t\t\t\t\t\tp.height(\n\t\t\t\t\t\t\tthat.currentItem.innerHeight() -\n\t\t\t\t\t\t\tparseInt( that.currentItem.css( \"paddingTop\" ) || 0, 10 ) -\n\t\t\t\t\t\t\tparseInt( that.currentItem.css( \"paddingBottom\" ) || 0, 10 ) );\n\t\t\t\t\t}\n\t\t\t\t\tif ( !p.width() ) {\n\t\t\t\t\t\tp.width(\n\t\t\t\t\t\t\tthat.currentItem.innerWidth() -\n\t\t\t\t\t\t\tparseInt( that.currentItem.css( \"paddingLeft\" ) || 0, 10 ) -\n\t\t\t\t\t\t\tparseInt( that.currentItem.css( \"paddingRight\" ) || 0, 10 ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t//Create the placeholder\n\t\tthat.placeholder = $( o.placeholder.element.call( that.element, that.currentItem ) );\n\n\t\t//Append it after the actual current item\n\t\tthat.currentItem.after( that.placeholder );\n\n\t\t//Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317)\n\t\to.placeholder.update( that, that.placeholder );\n\n\t},\n\n\t_createTrPlaceholder: function( sourceTr, targetTr ) {\n\t\tvar that = this;\n\n\t\tsourceTr.children().each( function() {\n\t\t\t$( \" \", that.document[ 0 ] )\n\t\t\t\t.attr( \"colspan\", $( this ).attr( \"colspan\" ) || 1 )\n\t\t\t\t.appendTo( targetTr );\n\t\t} );\n\t},\n\n\t_contactContainers: function( event ) {\n\t\tvar i, j, dist, itemWithLeastDistance, posProperty, sizeProperty, cur, nearBottom,\n\t\t\tfloating, axis,\n\t\t\tinnermostContainer = null,\n\t\t\tinnermostIndex = null;\n\n\t\t// Get innermost container that intersects with item\n\t\tfor ( i = this.containers.length - 1; i >= 0; i-- ) {\n\n\t\t\t// Never consider a container that's located within the item itself\n\t\t\tif ( $.contains( this.currentItem[ 0 ], this.containers[ i ].element[ 0 ] ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif ( this._intersectsWith( this.containers[ i ].containerCache ) ) {\n\n\t\t\t\t// If we've already found a container and it's more \"inner\" than this, then continue\n\t\t\t\tif ( innermostContainer &&\n\t\t\t\t\t\t$.contains(\n\t\t\t\t\t\t\tthis.containers[ i ].element[ 0 ],\n\t\t\t\t\t\t\tinnermostContainer.element[ 0 ] ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tinnermostContainer = this.containers[ i ];\n\t\t\t\tinnermostIndex = i;\n\n\t\t\t} else {\n\n\t\t\t\t// container doesn't intersect. trigger \"out\" event if necessary\n\t\t\t\tif ( this.containers[ i ].containerCache.over ) {\n\t\t\t\t\tthis.containers[ i ]._trigger( \"out\", event, this._uiHash( this ) );\n\t\t\t\t\tthis.containers[ i ].containerCache.over = 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t// If no intersecting containers found, return\n\t\tif ( !innermostContainer ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Move the item into the container if it's not there already\n\t\tif ( this.containers.length === 1 ) {\n\t\t\tif ( !this.containers[ innermostIndex ].containerCache.over ) {\n\t\t\t\tthis.containers[ innermostIndex ]._trigger( \"over\", event, this._uiHash( this ) );\n\t\t\t\tthis.containers[ innermostIndex ].containerCache.over = 1;\n\t\t\t}\n\t\t} else {\n\n\t\t\t// When entering a new container, we will find the item with the least distance and\n\t\t\t// append our item near it\n\t\t\tdist = 10000;\n\t\t\titemWithLeastDistance = null;\n\t\t\tfloating = innermostContainer.floating || this._isFloating( this.currentItem );\n\t\t\tposProperty = floating ? \"left\" : \"top\";\n\t\t\tsizeProperty = floating ? \"width\" : \"height\";\n\t\t\taxis = floating ? \"pageX\" : \"pageY\";\n\n\t\t\tfor ( j = this.items.length - 1; j >= 0; j-- ) {\n\t\t\t\tif ( !$.contains(\n\t\t\t\t\t\tthis.containers[ innermostIndex ].element[ 0 ], this.items[ j ].item[ 0 ] )\n\t\t\t\t) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif ( this.items[ j ].item[ 0 ] === this.currentItem[ 0 ] ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tcur = this.items[ j ].item.offset()[ posProperty ];\n\t\t\t\tnearBottom = false;\n\t\t\t\tif ( event[ axis ] - cur > this.items[ j ][ sizeProperty ] / 2 ) {\n\t\t\t\t\tnearBottom = true;\n\t\t\t\t}\n\n\t\t\t\tif ( Math.abs( event[ axis ] - cur ) < dist ) {\n\t\t\t\t\tdist = Math.abs( event[ axis ] - cur );\n\t\t\t\t\titemWithLeastDistance = this.items[ j ];\n\t\t\t\t\tthis.direction = nearBottom ? \"up\" : \"down\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t//Check if dropOnEmpty is enabled\n\t\t\tif ( !itemWithLeastDistance && !this.options.dropOnEmpty ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( this.currentContainer === this.containers[ innermostIndex ] ) {\n\t\t\t\tif ( !this.currentContainer.containerCache.over ) {\n\t\t\t\t\tthis.containers[ innermostIndex ]._trigger( \"over\", event, this._uiHash() );\n\t\t\t\t\tthis.currentContainer.containerCache.over = 1;\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\titemWithLeastDistance ?\n\t\t\t\tthis._rearrange( event, itemWithLeastDistance, null, true ) :\n\t\t\t\tthis._rearrange( event, null, this.containers[ innermostIndex ].element, true );\n\t\t\tthis._trigger( \"change\", event, this._uiHash() );\n\t\t\tthis.containers[ innermostIndex ]._trigger( \"change\", event, this._uiHash( this ) );\n\t\t\tthis.currentContainer = this.containers[ innermostIndex ];\n\n\t\t\t//Update the placeholder\n\t\t\tthis.options.placeholder.update( this.currentContainer, this.placeholder );\n\n\t\t\tthis.containers[ innermostIndex ]._trigger( \"over\", event, this._uiHash( this ) );\n\t\t\tthis.containers[ innermostIndex ].containerCache.over = 1;\n\t\t}\n\n\t},\n\n\t_createHelper: function( event ) {\n\n\t\tvar o = this.options,\n\t\t\thelper = $.isFunction( o.helper ) ?\n\t\t\t\t$( o.helper.apply( this.element[ 0 ], [ event, this.currentItem ] ) ) :\n\t\t\t\t( o.helper === \"clone\" ? this.currentItem.clone() : this.currentItem );\n\n\t\t//Add the helper to the DOM if that didn't happen already\n\t\tif ( !helper.parents( \"body\" ).length ) {\n\t\t\t$( o.appendTo !== \"parent\" ?\n\t\t\t\to.appendTo :\n\t\t\t\tthis.currentItem[ 0 ].parentNode )[ 0 ].appendChild( helper[ 0 ] );\n\t\t}\n\n\t\tif ( helper[ 0 ] === this.currentItem[ 0 ] ) {\n\t\t\tthis._storedCSS = {\n\t\t\t\twidth: this.currentItem[ 0 ].style.width,\n\t\t\t\theight: this.currentItem[ 0 ].style.height,\n\t\t\t\tposition: this.currentItem.css( \"position\" ),\n\t\t\t\ttop: this.currentItem.css( \"top\" ),\n\t\t\t\tleft: this.currentItem.css( \"left\" )\n\t\t\t};\n\t\t}\n\n\t\tif ( !helper[ 0 ].style.width || o.forceHelperSize ) {\n\t\t\thelper.width( this.currentItem.width() );\n\t\t}\n\t\tif ( !helper[ 0 ].style.height || o.forceHelperSize ) {\n\t\t\thelper.height( this.currentItem.height() );\n\t\t}\n\n\t\treturn helper;\n\n\t},\n\n\t_adjustOffsetFromHelper: function( obj ) {\n\t\tif ( typeof obj === \"string\" ) {\n\t\t\tobj = obj.split( \" \" );\n\t\t}\n\t\tif ( $.isArray( obj ) ) {\n\t\t\tobj = { left: +obj[ 0 ], top: +obj[ 1 ] || 0 };\n\t\t}\n\t\tif ( \"left\" in obj ) {\n\t\t\tthis.offset.click.left = obj.left + this.margins.left;\n\t\t}\n\t\tif ( \"right\" in obj ) {\n\t\t\tthis.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;\n\t\t}\n\t\tif ( \"top\" in obj ) {\n\t\t\tthis.offset.click.top = obj.top + this.margins.top;\n\t\t}\n\t\tif ( \"bottom\" in obj ) {\n\t\t\tthis.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;\n\t\t}\n\t},\n\n\t_getParentOffset: function() {\n\n\t\t//Get the offsetParent and cache its position\n\t\tthis.offsetParent = this.helper.offsetParent();\n\t\tvar po = this.offsetParent.offset();\n\n\t\t// This is a special case where we need to modify a offset calculated on start, since the\n\t\t// following happened:\n\t\t// 1. The position of the helper is absolute, so it's position is calculated based on the\n\t\t// next positioned parent\n\t\t// 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't\n\t\t// the document, which means that the scroll is included in the initial calculation of the\n\t\t// offset of the parent, and never recalculated upon drag\n\t\tif ( this.cssPosition === \"absolute\" && this.scrollParent[ 0 ] !== this.document[ 0 ] &&\n\t\t\t\t$.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) {\n\t\t\tpo.left += this.scrollParent.scrollLeft();\n\t\t\tpo.top += this.scrollParent.scrollTop();\n\t\t}\n\n\t\t// This needs to be actually done for all browsers, since pageX/pageY includes this\n\t\t// information with an ugly IE fix\n\t\tif ( this.offsetParent[ 0 ] === this.document[ 0 ].body ||\n\t\t\t\t( this.offsetParent[ 0 ].tagName &&\n\t\t\t\tthis.offsetParent[ 0 ].tagName.toLowerCase() === \"html\" && $.ui.ie ) ) {\n\t\t\tpo = { top: 0, left: 0 };\n\t\t}\n\n\t\treturn {\n\t\t\ttop: po.top + ( parseInt( this.offsetParent.css( \"borderTopWidth\" ), 10 ) || 0 ),\n\t\t\tleft: po.left + ( parseInt( this.offsetParent.css( \"borderLeftWidth\" ), 10 ) || 0 )\n\t\t};\n\n\t},\n\n\t_getRelativeOffset: function() {\n\n\t\tif ( this.cssPosition === \"relative\" ) {\n\t\t\tvar p = this.currentItem.position();\n\t\t\treturn {\n\t\t\t\ttop: p.top - ( parseInt( this.helper.css( \"top\" ), 10 ) || 0 ) +\n\t\t\t\t\tthis.scrollParent.scrollTop(),\n\t\t\t\tleft: p.left - ( parseInt( this.helper.css( \"left\" ), 10 ) || 0 ) +\n\t\t\t\t\tthis.scrollParent.scrollLeft()\n\t\t\t};\n\t\t} else {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t},\n\n\t_cacheMargins: function() {\n\t\tthis.margins = {\n\t\t\tleft: ( parseInt( this.currentItem.css( \"marginLeft\" ), 10 ) || 0 ),\n\t\t\ttop: ( parseInt( this.currentItem.css( \"marginTop\" ), 10 ) || 0 )\n\t\t};\n\t},\n\n\t_cacheHelperProportions: function() {\n\t\tthis.helperProportions = {\n\t\t\twidth: this.helper.outerWidth(),\n\t\t\theight: this.helper.outerHeight()\n\t\t};\n\t},\n\n\t_setContainment: function() {\n\n\t\tvar ce, co, over,\n\t\t\to = this.options;\n\t\tif ( o.containment === \"parent\" ) {\n\t\t\to.containment = this.helper[ 0 ].parentNode;\n\t\t}\n\t\tif ( o.containment === \"document\" || o.containment === \"window\" ) {\n\t\t\tthis.containment = [\n\t\t\t\t0 - this.offset.relative.left - this.offset.parent.left,\n\t\t\t\t0 - this.offset.relative.top - this.offset.parent.top,\n\t\t\t\to.containment === \"document\" ?\n\t\t\t\t\tthis.document.width() :\n\t\t\t\t\tthis.window.width() - this.helperProportions.width - this.margins.left,\n\t\t\t\t( o.containment === \"document\" ?\n\t\t\t\t\t( this.document.height() || document.body.parentNode.scrollHeight ) :\n\t\t\t\t\tthis.window.height() || this.document[ 0 ].body.parentNode.scrollHeight\n\t\t\t\t) - this.helperProportions.height - this.margins.top\n\t\t\t];\n\t\t}\n\n\t\tif ( !( /^(document|window|parent)$/ ).test( o.containment ) ) {\n\t\t\tce = $( o.containment )[ 0 ];\n\t\t\tco = $( o.containment ).offset();\n\t\t\tover = ( $( ce ).css( \"overflow\" ) !== \"hidden\" );\n\n\t\t\tthis.containment = [\n\t\t\t\tco.left + ( parseInt( $( ce ).css( \"borderLeftWidth\" ), 10 ) || 0 ) +\n\t\t\t\t\t( parseInt( $( ce ).css( \"paddingLeft\" ), 10 ) || 0 ) - this.margins.left,\n\t\t\t\tco.top + ( parseInt( $( ce ).css( \"borderTopWidth\" ), 10 ) || 0 ) +\n\t\t\t\t\t( parseInt( $( ce ).css( \"paddingTop\" ), 10 ) || 0 ) - this.margins.top,\n\t\t\t\tco.left + ( over ? Math.max( ce.scrollWidth, ce.offsetWidth ) : ce.offsetWidth ) -\n\t\t\t\t\t( parseInt( $( ce ).css( \"borderLeftWidth\" ), 10 ) || 0 ) -\n\t\t\t\t\t( parseInt( $( ce ).css( \"paddingRight\" ), 10 ) || 0 ) -\n\t\t\t\t\tthis.helperProportions.width - this.margins.left,\n\t\t\t\tco.top + ( over ? Math.max( ce.scrollHeight, ce.offsetHeight ) : ce.offsetHeight ) -\n\t\t\t\t\t( parseInt( $( ce ).css( \"borderTopWidth\" ), 10 ) || 0 ) -\n\t\t\t\t\t( parseInt( $( ce ).css( \"paddingBottom\" ), 10 ) || 0 ) -\n\t\t\t\t\tthis.helperProportions.height - this.margins.top\n\t\t\t];\n\t\t}\n\n\t},\n\n\t_convertPositionTo: function( d, pos ) {\n\n\t\tif ( !pos ) {\n\t\t\tpos = this.position;\n\t\t}\n\t\tvar mod = d === \"absolute\" ? 1 : -1,\n\t\t\tscroll = this.cssPosition === \"absolute\" &&\n\t\t\t\t!( this.scrollParent[ 0 ] !== this.document[ 0 ] &&\n\t\t\t\t$.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) ?\n\t\t\t\t\tthis.offsetParent :\n\t\t\t\t\tthis.scrollParent,\n\t\t\tscrollIsRootNode = ( /(html|body)/i ).test( scroll[ 0 ].tagName );\n\n\t\treturn {\n\t\t\ttop: (\n\n\t\t\t\t// The absolute mouse position\n\t\t\t\tpos.top\t+\n\n\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.relative.top * mod +\n\n\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\tthis.offset.parent.top * mod -\n\t\t\t\t( ( this.cssPosition === \"fixed\" ?\n\t\t\t\t\t-this.scrollParent.scrollTop() :\n\t\t\t\t\t( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod )\n\t\t\t),\n\t\t\tleft: (\n\n\t\t\t\t// The absolute mouse position\n\t\t\t\tpos.left +\n\n\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.relative.left * mod +\n\n\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\tthis.offset.parent.left * mod\t-\n\t\t\t\t( ( this.cssPosition === \"fixed\" ?\n\t\t\t\t\t-this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 :\n\t\t\t\t\tscroll.scrollLeft() ) * mod )\n\t\t\t)\n\t\t};\n\n\t},\n\n\t_generatePosition: function( event ) {\n\n\t\tvar top, left,\n\t\t\to = this.options,\n\t\t\tpageX = event.pageX,\n\t\t\tpageY = event.pageY,\n\t\t\tscroll = this.cssPosition === \"absolute\" &&\n\t\t\t\t!( this.scrollParent[ 0 ] !== this.document[ 0 ] &&\n\t\t\t\t$.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) ?\n\t\t\t\t\tthis.offsetParent :\n\t\t\t\t\tthis.scrollParent,\n\t\t\t\tscrollIsRootNode = ( /(html|body)/i ).test( scroll[ 0 ].tagName );\n\n\t\t// This is another very weird special case that only happens for relative elements:\n\t\t// 1. If the css position is relative\n\t\t// 2. and the scroll parent is the document or similar to the offset parent\n\t\t// we have to refresh the relative offset during the scroll so there are no jumps\n\t\tif ( this.cssPosition === \"relative\" && !( this.scrollParent[ 0 ] !== this.document[ 0 ] &&\n\t\t\t\tthis.scrollParent[ 0 ] !== this.offsetParent[ 0 ] ) ) {\n\t\t\tthis.offset.relative = this._getRelativeOffset();\n\t\t}\n\n\t\t/*\n\t\t * - Position constraining -\n\t\t * Constrain the position to a mix of grid, containment.\n\t\t */\n\n\t\tif ( this.originalPosition ) { //If we are not dragging yet, we won't check for options\n\n\t\t\tif ( this.containment ) {\n\t\t\t\tif ( event.pageX - this.offset.click.left < this.containment[ 0 ] ) {\n\t\t\t\t\tpageX = this.containment[ 0 ] + this.offset.click.left;\n\t\t\t\t}\n\t\t\t\tif ( event.pageY - this.offset.click.top < this.containment[ 1 ] ) {\n\t\t\t\t\tpageY = this.containment[ 1 ] + this.offset.click.top;\n\t\t\t\t}\n\t\t\t\tif ( event.pageX - this.offset.click.left > this.containment[ 2 ] ) {\n\t\t\t\t\tpageX = this.containment[ 2 ] + this.offset.click.left;\n\t\t\t\t}\n\t\t\t\tif ( event.pageY - this.offset.click.top > this.containment[ 3 ] ) {\n\t\t\t\t\tpageY = this.containment[ 3 ] + this.offset.click.top;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( o.grid ) {\n\t\t\t\ttop = this.originalPageY + Math.round( ( pageY - this.originalPageY ) /\n\t\t\t\t\to.grid[ 1 ] ) * o.grid[ 1 ];\n\t\t\t\tpageY = this.containment ?\n\t\t\t\t\t( ( top - this.offset.click.top >= this.containment[ 1 ] &&\n\t\t\t\t\t\ttop - this.offset.click.top <= this.containment[ 3 ] ) ?\n\t\t\t\t\t\t\ttop :\n\t\t\t\t\t\t\t( ( top - this.offset.click.top >= this.containment[ 1 ] ) ?\n\t\t\t\t\t\t\t\ttop - o.grid[ 1 ] : top + o.grid[ 1 ] ) ) :\n\t\t\t\t\t\t\t\ttop;\n\n\t\t\t\tleft = this.originalPageX + Math.round( ( pageX - this.originalPageX ) /\n\t\t\t\t\to.grid[ 0 ] ) * o.grid[ 0 ];\n\t\t\t\tpageX = this.containment ?\n\t\t\t\t\t( ( left - this.offset.click.left >= this.containment[ 0 ] &&\n\t\t\t\t\t\tleft - this.offset.click.left <= this.containment[ 2 ] ) ?\n\t\t\t\t\t\t\tleft :\n\t\t\t\t\t\t\t( ( left - this.offset.click.left >= this.containment[ 0 ] ) ?\n\t\t\t\t\t\t\t\tleft - o.grid[ 0 ] : left + o.grid[ 0 ] ) ) :\n\t\t\t\t\t\t\t\tleft;\n\t\t\t}\n\n\t\t}\n\n\t\treturn {\n\t\t\ttop: (\n\n\t\t\t\t// The absolute mouse position\n\t\t\t\tpageY -\n\n\t\t\t\t// Click offset (relative to the element)\n\t\t\t\tthis.offset.click.top -\n\n\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.relative.top -\n\n\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\tthis.offset.parent.top +\n\t\t\t\t( ( this.cssPosition === \"fixed\" ?\n\t\t\t\t\t-this.scrollParent.scrollTop() :\n\t\t\t\t\t( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) )\n\t\t\t),\n\t\t\tleft: (\n\n\t\t\t\t// The absolute mouse position\n\t\t\t\tpageX -\n\n\t\t\t\t// Click offset (relative to the element)\n\t\t\t\tthis.offset.click.left -\n\n\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.relative.left -\n\n\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\tthis.offset.parent.left +\n\t\t\t\t( ( this.cssPosition === \"fixed\" ?\n\t\t\t\t\t-this.scrollParent.scrollLeft() :\n\t\t\t\t\tscrollIsRootNode ? 0 : scroll.scrollLeft() ) )\n\t\t\t)\n\t\t};\n\n\t},\n\n\t_rearrange: function( event, i, a, hardRefresh ) {\n\n\t\ta ? a[ 0 ].appendChild( this.placeholder[ 0 ] ) :\n\t\t\ti.item[ 0 ].parentNode.insertBefore( this.placeholder[ 0 ],\n\t\t\t\t( this.direction === \"down\" ? i.item[ 0 ] : i.item[ 0 ].nextSibling ) );\n\n\t\t//Various things done here to improve the performance:\n\t\t// 1. we create a setTimeout, that calls refreshPositions\n\t\t// 2. on the instance, we have a counter variable, that get's higher after every append\n\t\t// 3. on the local scope, we copy the counter variable, and check in the timeout,\n\t\t// if it's still the same\n\t\t// 4. this lets only the last addition to the timeout stack through\n\t\tthis.counter = this.counter ? ++this.counter : 1;\n\t\tvar counter = this.counter;\n\n\t\tthis._delay( function() {\n\t\t\tif ( counter === this.counter ) {\n\n\t\t\t\t//Precompute after each DOM insertion, NOT on mousemove\n\t\t\t\tthis.refreshPositions( !hardRefresh );\n\t\t\t}\n\t\t} );\n\n\t},\n\n\t_clear: function( event, noPropagation ) {\n\n\t\tthis.reverting = false;\n\n\t\t// We delay all events that have to be triggered to after the point where the placeholder\n\t\t// has been removed and everything else normalized again\n\t\tvar i,\n\t\t\tdelayedTriggers = [];\n\n\t\t// We first have to update the dom position of the actual currentItem\n\t\t// Note: don't do it if the current item is already removed (by a user), or it gets\n\t\t// reappended (see #4088)\n\t\tif ( !this._noFinalSort && this.currentItem.parent().length ) {\n\t\t\tthis.placeholder.before( this.currentItem );\n\t\t}\n\t\tthis._noFinalSort = null;\n\n\t\tif ( this.helper[ 0 ] === this.currentItem[ 0 ] ) {\n\t\t\tfor ( i in this._storedCSS ) {\n\t\t\t\tif ( this._storedCSS[ i ] === \"auto\" || this._storedCSS[ i ] === \"static\" ) {\n\t\t\t\t\tthis._storedCSS[ i ] = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.currentItem.css( this._storedCSS );\n\t\t\tthis._removeClass( this.currentItem, \"ui-sortable-helper\" );\n\t\t} else {\n\t\t\tthis.currentItem.show();\n\t\t}\n\n\t\tif ( this.fromOutside && !noPropagation ) {\n\t\t\tdelayedTriggers.push( function( event ) {\n\t\t\t\tthis._trigger( \"receive\", event, this._uiHash( this.fromOutside ) );\n\t\t\t} );\n\t\t}\n\t\tif ( ( this.fromOutside ||\n\t\t\t\tthis.domPosition.prev !==\n\t\t\t\tthis.currentItem.prev().not( \".ui-sortable-helper\" )[ 0 ] ||\n\t\t\t\tthis.domPosition.parent !== this.currentItem.parent()[ 0 ] ) && !noPropagation ) {\n\n\t\t\t// Trigger update callback if the DOM position has changed\n\t\t\tdelayedTriggers.push( function( event ) {\n\t\t\t\tthis._trigger( \"update\", event, this._uiHash() );\n\t\t\t} );\n\t\t}\n\n\t\t// Check if the items Container has Changed and trigger appropriate\n\t\t// events.\n\t\tif ( this !== this.currentContainer ) {\n\t\t\tif ( !noPropagation ) {\n\t\t\t\tdelayedTriggers.push( function( event ) {\n\t\t\t\t\tthis._trigger( \"remove\", event, this._uiHash() );\n\t\t\t\t} );\n\t\t\t\tdelayedTriggers.push( ( function( c ) {\n\t\t\t\t\treturn function( event ) {\n\t\t\t\t\t\tc._trigger( \"receive\", event, this._uiHash( this ) );\n\t\t\t\t\t};\n\t\t\t\t} ).call( this, this.currentContainer ) );\n\t\t\t\tdelayedTriggers.push( ( function( c ) {\n\t\t\t\t\treturn function( event ) {\n\t\t\t\t\t\tc._trigger( \"update\", event, this._uiHash( this ) );\n\t\t\t\t\t};\n\t\t\t\t} ).call( this, this.currentContainer ) );\n\t\t\t}\n\t\t}\n\n\t\t//Post events to containers\n\t\tfunction delayEvent( type, instance, container ) {\n\t\t\treturn function( event ) {\n\t\t\t\tcontainer._trigger( type, event, instance._uiHash( instance ) );\n\t\t\t};\n\t\t}\n\t\tfor ( i = this.containers.length - 1; i >= 0; i-- ) {\n\t\t\tif ( !noPropagation ) {\n\t\t\t\tdelayedTriggers.push( delayEvent( \"deactivate\", this, this.containers[ i ] ) );\n\t\t\t}\n\t\t\tif ( this.containers[ i ].containerCache.over ) {\n\t\t\t\tdelayedTriggers.push( delayEvent( \"out\", this, this.containers[ i ] ) );\n\t\t\t\tthis.containers[ i ].containerCache.over = 0;\n\t\t\t}\n\t\t}\n\n\t\t//Do what was originally in plugins\n\t\tif ( this.storedCursor ) {\n\t\t\tthis.document.find( \"body\" ).css( \"cursor\", this.storedCursor );\n\t\t\tthis.storedStylesheet.remove();\n\t\t}\n\t\tif ( this._storedOpacity ) {\n\t\t\tthis.helper.css( \"opacity\", this._storedOpacity );\n\t\t}\n\t\tif ( this._storedZIndex ) {\n\t\t\tthis.helper.css( \"zIndex\", this._storedZIndex === \"auto\" ? \"\" : this._storedZIndex );\n\t\t}\n\n\t\tthis.dragging = false;\n\n\t\tif ( !noPropagation ) {\n\t\t\tthis._trigger( \"beforeStop\", event, this._uiHash() );\n\t\t}\n\n\t\t//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately,\n\t\t// it unbinds ALL events from the original node!\n\t\tthis.placeholder[ 0 ].parentNode.removeChild( this.placeholder[ 0 ] );\n\n\t\tif ( !this.cancelHelperRemoval ) {\n\t\t\tif ( this.helper[ 0 ] !== this.currentItem[ 0 ] ) {\n\t\t\t\tthis.helper.remove();\n\t\t\t}\n\t\t\tthis.helper = null;\n\t\t}\n\n\t\tif ( !noPropagation ) {\n\t\t\tfor ( i = 0; i < delayedTriggers.length; i++ ) {\n\n\t\t\t\t// Trigger all delayed events\n\t\t\t\tdelayedTriggers[ i ].call( this, event );\n\t\t\t}\n\t\t\tthis._trigger( \"stop\", event, this._uiHash() );\n\t\t}\n\n\t\tthis.fromOutside = false;\n\t\treturn !this.cancelHelperRemoval;\n\n\t},\n\n\t_trigger: function() {\n\t\tif ( $.Widget.prototype._trigger.apply( this, arguments ) === false ) {\n\t\t\tthis.cancel();\n\t\t}\n\t},\n\n\t_uiHash: function( _inst ) {\n\t\tvar inst = _inst || this;\n\t\treturn {\n\t\t\thelper: inst.helper,\n\t\t\tplaceholder: inst.placeholder || $( [] ),\n\t\t\tposition: inst.position,\n\t\t\toriginalPosition: inst.originalPosition,\n\t\t\toffset: inst.positionAbs,\n\t\t\titem: inst.currentItem,\n\t\t\tsender: _inst ? _inst.element : null\n\t\t};\n\t}\n\n} );\n\n\n/*!\n * jQuery UI Accordion 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Accordion\n//>>group: Widgets\n// jscs:disable maximumLineLength\n//>>description: Displays collapsible content panels for presenting information in a limited amount of space.\n// jscs:enable maximumLineLength\n//>>docs: http://api.jqueryui.com/accordion/\n//>>demos: http://jqueryui.com/accordion/\n//>>css.structure: ../../themes/base/core.css\n//>>css.structure: ../../themes/base/accordion.css\n//>>css.theme: ../../themes/base/theme.css\n\n\n\nvar widgetsAccordion = $.widget( \"ui.accordion\", {\n\tversion: \"1.12.1\",\n\toptions: {\n\t\tactive: 0,\n\t\tanimate: {},\n\t\tclasses: {\n\t\t\t\"ui-accordion-header\": \"ui-corner-top\",\n\t\t\t\"ui-accordion-header-collapsed\": \"ui-corner-all\",\n\t\t\t\"ui-accordion-content\": \"ui-corner-bottom\"\n\t\t},\n\t\tcollapsible: false,\n\t\tevent: \"click\",\n\t\theader: \"> li > :first-child, > :not(li):even\",\n\t\theightStyle: \"auto\",\n\t\ticons: {\n\t\t\tactiveHeader: \"ui-icon-triangle-1-s\",\n\t\t\theader: \"ui-icon-triangle-1-e\"\n\t\t},\n\n\t\t// Callbacks\n\t\tactivate: null,\n\t\tbeforeActivate: null\n\t},\n\n\thideProps: {\n\t\tborderTopWidth: \"hide\",\n\t\tborderBottomWidth: \"hide\",\n\t\tpaddingTop: \"hide\",\n\t\tpaddingBottom: \"hide\",\n\t\theight: \"hide\"\n\t},\n\n\tshowProps: {\n\t\tborderTopWidth: \"show\",\n\t\tborderBottomWidth: \"show\",\n\t\tpaddingTop: \"show\",\n\t\tpaddingBottom: \"show\",\n\t\theight: \"show\"\n\t},\n\n\t_create: function() {\n\t\tvar options = this.options;\n\n\t\tthis.prevShow = this.prevHide = $();\n\t\tthis._addClass( \"ui-accordion\", \"ui-widget ui-helper-reset\" );\n\t\tthis.element.attr( \"role\", \"tablist\" );\n\n\t\t// Don't allow collapsible: false and active: false / null\n\t\tif ( !options.collapsible && ( options.active === false || options.active == null ) ) {\n\t\t\toptions.active = 0;\n\t\t}\n\n\t\tthis._processPanels();\n\n\t\t// handle negative values\n\t\tif ( options.active < 0 ) {\n\t\t\toptions.active += this.headers.length;\n\t\t}\n\t\tthis._refresh();\n\t},\n\n\t_getCreateEventData: function() {\n\t\treturn {\n\t\t\theader: this.active,\n\t\t\tpanel: !this.active.length ? $() : this.active.next()\n\t\t};\n\t},\n\n\t_createIcons: function() {\n\t\tvar icon, children,\n\t\t\ticons = this.options.icons;\n\n\t\tif ( icons ) {\n\t\t\ticon = $( \"\" );\n\t\t\tthis._addClass( icon, \"ui-accordion-header-icon\", \"ui-icon \" + icons.header );\n\t\t\ticon.prependTo( this.headers );\n\t\t\tchildren = this.active.children( \".ui-accordion-header-icon\" );\n\t\t\tthis._removeClass( children, icons.header )\n\t\t\t\t._addClass( children, null, icons.activeHeader )\n\t\t\t\t._addClass( this.headers, \"ui-accordion-icons\" );\n\t\t}\n\t},\n\n\t_destroyIcons: function() {\n\t\tthis._removeClass( this.headers, \"ui-accordion-icons\" );\n\t\tthis.headers.children( \".ui-accordion-header-icon\" ).remove();\n\t},\n\n\t_destroy: function() {\n\t\tvar contents;\n\n\t\t// Clean up main element\n\t\tthis.element.removeAttr( \"role\" );\n\n\t\t// Clean up headers\n\t\tthis.headers\n\t\t\t.removeAttr( \"role aria-expanded aria-selected aria-controls tabIndex\" )\n\t\t\t.removeUniqueId();\n\n\t\tthis._destroyIcons();\n\n\t\t// Clean up content panels\n\t\tcontents = this.headers.next()\n\t\t\t.css( \"display\", \"\" )\n\t\t\t.removeAttr( \"role aria-hidden aria-labelledby\" )\n\t\t\t.removeUniqueId();\n\n\t\tif ( this.options.heightStyle !== \"content\" ) {\n\t\t\tcontents.css( \"height\", \"\" );\n\t\t}\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tif ( key === \"active\" ) {\n\n\t\t\t// _activate() will handle invalid values and update this.options\n\t\t\tthis._activate( value );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key === \"event\" ) {\n\t\t\tif ( this.options.event ) {\n\t\t\t\tthis._off( this.headers, this.options.event );\n\t\t\t}\n\t\t\tthis._setupEvents( value );\n\t\t}\n\n\t\tthis._super( key, value );\n\n\t\t// Setting collapsible: false while collapsed; open first panel\n\t\tif ( key === \"collapsible\" && !value && this.options.active === false ) {\n\t\t\tthis._activate( 0 );\n\t\t}\n\n\t\tif ( key === \"icons\" ) {\n\t\t\tthis._destroyIcons();\n\t\t\tif ( value ) {\n\t\t\t\tthis._createIcons();\n\t\t\t}\n\t\t}\n\t},\n\n\t_setOptionDisabled: function( value ) {\n\t\tthis._super( value );\n\n\t\tthis.element.attr( \"aria-disabled\", value );\n\n\t\t// Support: IE8 Only\n\t\t// #5332 / #6059 - opacity doesn't cascade to positioned elements in IE\n\t\t// so we need to add the disabled class to the headers and panels\n\t\tthis._toggleClass( null, \"ui-state-disabled\", !!value );\n\t\tthis._toggleClass( this.headers.add( this.headers.next() ), null, \"ui-state-disabled\",\n\t\t\t!!value );\n\t},\n\n\t_keydown: function( event ) {\n\t\tif ( event.altKey || event.ctrlKey ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar keyCode = $.ui.keyCode,\n\t\t\tlength = this.headers.length,\n\t\t\tcurrentIndex = this.headers.index( event.target ),\n\t\t\ttoFocus = false;\n\n\t\tswitch ( event.keyCode ) {\n\t\tcase keyCode.RIGHT:\n\t\tcase keyCode.DOWN:\n\t\t\ttoFocus = this.headers[ ( currentIndex + 1 ) % length ];\n\t\t\tbreak;\n\t\tcase keyCode.LEFT:\n\t\tcase keyCode.UP:\n\t\t\ttoFocus = this.headers[ ( currentIndex - 1 + length ) % length ];\n\t\t\tbreak;\n\t\tcase keyCode.SPACE:\n\t\tcase keyCode.ENTER:\n\t\t\tthis._eventHandler( event );\n\t\t\tbreak;\n\t\tcase keyCode.HOME:\n\t\t\ttoFocus = this.headers[ 0 ];\n\t\t\tbreak;\n\t\tcase keyCode.END:\n\t\t\ttoFocus = this.headers[ length - 1 ];\n\t\t\tbreak;\n\t\t}\n\n\t\tif ( toFocus ) {\n\t\t\t$( event.target ).attr( \"tabIndex\", -1 );\n\t\t\t$( toFocus ).attr( \"tabIndex\", 0 );\n\t\t\t$( toFocus ).trigger( \"focus\" );\n\t\t\tevent.preventDefault();\n\t\t}\n\t},\n\n\t_panelKeyDown: function( event ) {\n\t\tif ( event.keyCode === $.ui.keyCode.UP && event.ctrlKey ) {\n\t\t\t$( event.currentTarget ).prev().trigger( \"focus\" );\n\t\t}\n\t},\n\n\trefresh: function() {\n\t\tvar options = this.options;\n\t\tthis._processPanels();\n\n\t\t// Was collapsed or no panel\n\t\tif ( ( options.active === false && options.collapsible === true ) ||\n\t\t\t\t!this.headers.length ) {\n\t\t\toptions.active = false;\n\t\t\tthis.active = $();\n\n\t\t// active false only when collapsible is true\n\t\t} else if ( options.active === false ) {\n\t\t\tthis._activate( 0 );\n\n\t\t// was active, but active panel is gone\n\t\t} else if ( this.active.length && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {\n\n\t\t\t// all remaining panel are disabled\n\t\t\tif ( this.headers.length === this.headers.find( \".ui-state-disabled\" ).length ) {\n\t\t\t\toptions.active = false;\n\t\t\t\tthis.active = $();\n\n\t\t\t// activate previous panel\n\t\t\t} else {\n\t\t\t\tthis._activate( Math.max( 0, options.active - 1 ) );\n\t\t\t}\n\n\t\t// was active, active panel still exists\n\t\t} else {\n\n\t\t\t// make sure active index is correct\n\t\t\toptions.active = this.headers.index( this.active );\n\t\t}\n\n\t\tthis._destroyIcons();\n\n\t\tthis._refresh();\n\t},\n\n\t_processPanels: function() {\n\t\tvar prevHeaders = this.headers,\n\t\t\tprevPanels = this.panels;\n\n\t\tthis.headers = this.element.find( this.options.header );\n\t\tthis._addClass( this.headers, \"ui-accordion-header ui-accordion-header-collapsed\",\n\t\t\t\"ui-state-default\" );\n\n\t\tthis.panels = this.headers.next().filter( \":not(.ui-accordion-content-active)\" ).hide();\n\t\tthis._addClass( this.panels, \"ui-accordion-content\", \"ui-helper-reset ui-widget-content\" );\n\n\t\t// Avoid memory leaks (#10056)\n\t\tif ( prevPanels ) {\n\t\t\tthis._off( prevHeaders.not( this.headers ) );\n\t\t\tthis._off( prevPanels.not( this.panels ) );\n\t\t}\n\t},\n\n\t_refresh: function() {\n\t\tvar maxHeight,\n\t\t\toptions = this.options,\n\t\t\theightStyle = options.heightStyle,\n\t\t\tparent = this.element.parent();\n\n\t\tthis.active = this._findActive( options.active );\n\t\tthis._addClass( this.active, \"ui-accordion-header-active\", \"ui-state-active\" )\n\t\t\t._removeClass( this.active, \"ui-accordion-header-collapsed\" );\n\t\tthis._addClass( this.active.next(), \"ui-accordion-content-active\" );\n\t\tthis.active.next().show();\n\n\t\tthis.headers\n\t\t\t.attr( \"role\", \"tab\" )\n\t\t\t.each( function() {\n\t\t\t\tvar header = $( this ),\n\t\t\t\t\theaderId = header.uniqueId().attr( \"id\" ),\n\t\t\t\t\tpanel = header.next(),\n\t\t\t\t\tpanelId = panel.uniqueId().attr( \"id\" );\n\t\t\t\theader.attr( \"aria-controls\", panelId );\n\t\t\t\tpanel.attr( \"aria-labelledby\", headerId );\n\t\t\t} )\n\t\t\t.next()\n\t\t\t\t.attr( \"role\", \"tabpanel\" );\n\n\t\tthis.headers\n\t\t\t.not( this.active )\n\t\t\t\t.attr( {\n\t\t\t\t\t\"aria-selected\": \"false\",\n\t\t\t\t\t\"aria-expanded\": \"false\",\n\t\t\t\t\ttabIndex: -1\n\t\t\t\t} )\n\t\t\t\t.next()\n\t\t\t\t\t.attr( {\n\t\t\t\t\t\t\"aria-hidden\": \"true\"\n\t\t\t\t\t} )\n\t\t\t\t\t.hide();\n\n\t\t// Make sure at least one header is in the tab order\n\t\tif ( !this.active.length ) {\n\t\t\tthis.headers.eq( 0 ).attr( \"tabIndex\", 0 );\n\t\t} else {\n\t\t\tthis.active.attr( {\n\t\t\t\t\"aria-selected\": \"true\",\n\t\t\t\t\"aria-expanded\": \"true\",\n\t\t\t\ttabIndex: 0\n\t\t\t} )\n\t\t\t\t.next()\n\t\t\t\t\t.attr( {\n\t\t\t\t\t\t\"aria-hidden\": \"false\"\n\t\t\t\t\t} );\n\t\t}\n\n\t\tthis._createIcons();\n\n\t\tthis._setupEvents( options.event );\n\n\t\tif ( heightStyle === \"fill\" ) {\n\t\t\tmaxHeight = parent.height();\n\t\t\tthis.element.siblings( \":visible\" ).each( function() {\n\t\t\t\tvar elem = $( this ),\n\t\t\t\t\tposition = elem.css( \"position\" );\n\n\t\t\t\tif ( position === \"absolute\" || position === \"fixed\" ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tmaxHeight -= elem.outerHeight( true );\n\t\t\t} );\n\n\t\t\tthis.headers.each( function() {\n\t\t\t\tmaxHeight -= $( this ).outerHeight( true );\n\t\t\t} );\n\n\t\t\tthis.headers.next()\n\t\t\t\t.each( function() {\n\t\t\t\t\t$( this ).height( Math.max( 0, maxHeight -\n\t\t\t\t\t\t$( this ).innerHeight() + $( this ).height() ) );\n\t\t\t\t} )\n\t\t\t\t.css( \"overflow\", \"auto\" );\n\t\t} else if ( heightStyle === \"auto\" ) {\n\t\t\tmaxHeight = 0;\n\t\t\tthis.headers.next()\n\t\t\t\t.each( function() {\n\t\t\t\t\tvar isVisible = $( this ).is( \":visible\" );\n\t\t\t\t\tif ( !isVisible ) {\n\t\t\t\t\t\t$( this ).show();\n\t\t\t\t\t}\n\t\t\t\t\tmaxHeight = Math.max( maxHeight, $( this ).css( \"height\", \"\" ).height() );\n\t\t\t\t\tif ( !isVisible ) {\n\t\t\t\t\t\t$( this ).hide();\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t\t.height( maxHeight );\n\t\t}\n\t},\n\n\t_activate: function( index ) {\n\t\tvar active = this._findActive( index )[ 0 ];\n\n\t\t// Trying to activate the already active panel\n\t\tif ( active === this.active[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Trying to collapse, simulate a click on the currently active header\n\t\tactive = active || this.active[ 0 ];\n\n\t\tthis._eventHandler( {\n\t\t\ttarget: active,\n\t\t\tcurrentTarget: active,\n\t\t\tpreventDefault: $.noop\n\t\t} );\n\t},\n\n\t_findActive: function( selector ) {\n\t\treturn typeof selector === \"number\" ? this.headers.eq( selector ) : $();\n\t},\n\n\t_setupEvents: function( event ) {\n\t\tvar events = {\n\t\t\tkeydown: \"_keydown\"\n\t\t};\n\t\tif ( event ) {\n\t\t\t$.each( event.split( \" \" ), function( index, eventName ) {\n\t\t\t\tevents[ eventName ] = \"_eventHandler\";\n\t\t\t} );\n\t\t}\n\n\t\tthis._off( this.headers.add( this.headers.next() ) );\n\t\tthis._on( this.headers, events );\n\t\tthis._on( this.headers.next(), { keydown: \"_panelKeyDown\" } );\n\t\tthis._hoverable( this.headers );\n\t\tthis._focusable( this.headers );\n\t},\n\n\t_eventHandler: function( event ) {\n\t\tvar activeChildren, clickedChildren,\n\t\t\toptions = this.options,\n\t\t\tactive = this.active,\n\t\t\tclicked = $( event.currentTarget ),\n\t\t\tclickedIsActive = clicked[ 0 ] === active[ 0 ],\n\t\t\tcollapsing = clickedIsActive && options.collapsible,\n\t\t\ttoShow = collapsing ? $() : clicked.next(),\n\t\t\ttoHide = active.next(),\n\t\t\teventData = {\n\t\t\t\toldHeader: active,\n\t\t\t\toldPanel: toHide,\n\t\t\t\tnewHeader: collapsing ? $() : clicked,\n\t\t\t\tnewPanel: toShow\n\t\t\t};\n\n\t\tevent.preventDefault();\n\n\t\tif (\n\n\t\t\t\t// click on active header, but not collapsible\n\t\t\t\t( clickedIsActive && !options.collapsible ) ||\n\n\t\t\t\t// allow canceling activation\n\t\t\t\t( this._trigger( \"beforeActivate\", event, eventData ) === false ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\toptions.active = collapsing ? false : this.headers.index( clicked );\n\n\t\t// When the call to ._toggle() comes after the class changes\n\t\t// it causes a very odd bug in IE 8 (see #6720)\n\t\tthis.active = clickedIsActive ? $() : clicked;\n\t\tthis._toggle( eventData );\n\n\t\t// Switch classes\n\t\t// corner classes on the previously active header stay after the animation\n\t\tthis._removeClass( active, \"ui-accordion-header-active\", \"ui-state-active\" );\n\t\tif ( options.icons ) {\n\t\t\tactiveChildren = active.children( \".ui-accordion-header-icon\" );\n\t\t\tthis._removeClass( activeChildren, null, options.icons.activeHeader )\n\t\t\t\t._addClass( activeChildren, null, options.icons.header );\n\t\t}\n\n\t\tif ( !clickedIsActive ) {\n\t\t\tthis._removeClass( clicked, \"ui-accordion-header-collapsed\" )\n\t\t\t\t._addClass( clicked, \"ui-accordion-header-active\", \"ui-state-active\" );\n\t\t\tif ( options.icons ) {\n\t\t\t\tclickedChildren = clicked.children( \".ui-accordion-header-icon\" );\n\t\t\t\tthis._removeClass( clickedChildren, null, options.icons.header )\n\t\t\t\t\t._addClass( clickedChildren, null, options.icons.activeHeader );\n\t\t\t}\n\n\t\t\tthis._addClass( clicked.next(), \"ui-accordion-content-active\" );\n\t\t}\n\t},\n\n\t_toggle: function( data ) {\n\t\tvar toShow = data.newPanel,\n\t\t\ttoHide = this.prevShow.length ? this.prevShow : data.oldPanel;\n\n\t\t// Handle activating a panel during the animation for another activation\n\t\tthis.prevShow.add( this.prevHide ).stop( true, true );\n\t\tthis.prevShow = toShow;\n\t\tthis.prevHide = toHide;\n\n\t\tif ( this.options.animate ) {\n\t\t\tthis._animate( toShow, toHide, data );\n\t\t} else {\n\t\t\ttoHide.hide();\n\t\t\ttoShow.show();\n\t\t\tthis._toggleComplete( data );\n\t\t}\n\n\t\ttoHide.attr( {\n\t\t\t\"aria-hidden\": \"true\"\n\t\t} );\n\t\ttoHide.prev().attr( {\n\t\t\t\"aria-selected\": \"false\",\n\t\t\t\"aria-expanded\": \"false\"\n\t\t} );\n\n\t\t// if we're switching panels, remove the old header from the tab order\n\t\t// if we're opening from collapsed state, remove the previous header from the tab order\n\t\t// if we're collapsing, then keep the collapsing header in the tab order\n\t\tif ( toShow.length && toHide.length ) {\n\t\t\ttoHide.prev().attr( {\n\t\t\t\t\"tabIndex\": -1,\n\t\t\t\t\"aria-expanded\": \"false\"\n\t\t\t} );\n\t\t} else if ( toShow.length ) {\n\t\t\tthis.headers.filter( function() {\n\t\t\t\treturn parseInt( $( this ).attr( \"tabIndex\" ), 10 ) === 0;\n\t\t\t} )\n\t\t\t\t.attr( \"tabIndex\", -1 );\n\t\t}\n\n\t\ttoShow\n\t\t\t.attr( \"aria-hidden\", \"false\" )\n\t\t\t.prev()\n\t\t\t\t.attr( {\n\t\t\t\t\t\"aria-selected\": \"true\",\n\t\t\t\t\t\"aria-expanded\": \"true\",\n\t\t\t\t\ttabIndex: 0\n\t\t\t\t} );\n\t},\n\n\t_animate: function( toShow, toHide, data ) {\n\t\tvar total, easing, duration,\n\t\t\tthat = this,\n\t\t\tadjust = 0,\n\t\t\tboxSizing = toShow.css( \"box-sizing\" ),\n\t\t\tdown = toShow.length &&\n\t\t\t\t( !toHide.length || ( toShow.index() < toHide.index() ) ),\n\t\t\tanimate = this.options.animate || {},\n\t\t\toptions = down && animate.down || animate,\n\t\t\tcomplete = function() {\n\t\t\t\tthat._toggleComplete( data );\n\t\t\t};\n\n\t\tif ( typeof options === \"number\" ) {\n\t\t\tduration = options;\n\t\t}\n\t\tif ( typeof options === \"string\" ) {\n\t\t\teasing = options;\n\t\t}\n\n\t\t// fall back from options to animation in case of partial down settings\n\t\teasing = easing || options.easing || animate.easing;\n\t\tduration = duration || options.duration || animate.duration;\n\n\t\tif ( !toHide.length ) {\n\t\t\treturn toShow.animate( this.showProps, duration, easing, complete );\n\t\t}\n\t\tif ( !toShow.length ) {\n\t\t\treturn toHide.animate( this.hideProps, duration, easing, complete );\n\t\t}\n\n\t\ttotal = toShow.show().outerHeight();\n\t\ttoHide.animate( this.hideProps, {\n\t\t\tduration: duration,\n\t\t\teasing: easing,\n\t\t\tstep: function( now, fx ) {\n\t\t\t\tfx.now = Math.round( now );\n\t\t\t}\n\t\t} );\n\t\ttoShow\n\t\t\t.hide()\n\t\t\t.animate( this.showProps, {\n\t\t\t\tduration: duration,\n\t\t\t\teasing: easing,\n\t\t\t\tcomplete: complete,\n\t\t\t\tstep: function( now, fx ) {\n\t\t\t\t\tfx.now = Math.round( now );\n\t\t\t\t\tif ( fx.prop !== \"height\" ) {\n\t\t\t\t\t\tif ( boxSizing === \"content-box\" ) {\n\t\t\t\t\t\t\tadjust += fx.now;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if ( that.options.heightStyle !== \"content\" ) {\n\t\t\t\t\t\tfx.now = Math.round( total - toHide.outerHeight() - adjust );\n\t\t\t\t\t\tadjust = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t},\n\n\t_toggleComplete: function( data ) {\n\t\tvar toHide = data.oldPanel,\n\t\t\tprev = toHide.prev();\n\n\t\tthis._removeClass( toHide, \"ui-accordion-content-active\" );\n\t\tthis._removeClass( prev, \"ui-accordion-header-active\" )\n\t\t\t._addClass( prev, \"ui-accordion-header-collapsed\" );\n\n\t\t// Work around for rendering bug in IE (#5421)\n\t\tif ( toHide.length ) {\n\t\t\ttoHide.parent()[ 0 ].className = toHide.parent()[ 0 ].className;\n\t\t}\n\t\tthis._trigger( \"activate\", null, data );\n\t}\n} );\n\n\n/*!\n * jQuery UI Menu 1.12.1\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Menu\n//>>group: Widgets\n//>>description: Creates nestable menus.\n//>>docs: http://api.jqueryui.com/menu/\n//>>demos: http://jqueryui.com/menu/\n//>>css.structure: ../../themes/base/core.css\n//>>css.structure: ../../themes/base/menu.css\n//>>css.theme: ../../themes/base/theme.css\n\n\n\nvar widgetsMenu = $.widget( \"ui.menu\", {\n\tversion: \"1.12.1\",\n\tdefaultElement: \"