@pie-lib/graphing 2.31.1 → 2.31.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/index.js +1058 -15
- package/esm/index.js.map +1 -1
- package/package.json +8 -8
- package/LICENSE.md +0 -5
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/axis/arrow.jsx","../src/utils.js","../src/axis/axes.jsx","../src/grid.jsx","../src/labels.jsx","../src/bg.jsx","../src/graph.jsx","../src/container/marks.js","../src/container/reducer.js","../src/container/actions.js","../src/tools/shared/styles.js","../src/coordinates-label.jsx","../src/tools/shared/icons/MissingSVG.jsx","../src/tools/shared/icons/CorrectSVG.jsx","../src/tools/shared/icons/IncorrectSVG.jsx","../src/tools/shared/point/base-point.jsx","../src/tools/shared/point/arrow-point.jsx","../src/tools/shared/arrow-head.jsx","../src/tools/shared/point/arrow.jsx","../src/tools/shared/point/index.jsx","../src/tools/shared/types.js","../src/use-debounce.js","../src/label-svg-icon.jsx","../src/mark-label.jsx","../src/tools/point/component.jsx","../src/tools/point/index.js","../src/tools/circle/bg-circle.jsx","../src/tools/shared/line/line-path.jsx","../src/tools/shared/line/index.jsx","../src/tools/shared/line/with-root-edge.jsx","../src/tools/circle/component.jsx","../src/tools/circle/index.js","../src/tools/polygon/line.jsx","../src/tools/polygon/polygon.jsx","../src/tools/polygon/component.jsx","../src/tools/polygon/index.js","../src/tools/sine/component.jsx","../src/tools/sine/index.js","../src/tools/parabola/component.jsx","../src/tools/parabola/index.js","../src/tools/line/component.jsx","../src/tools/line/index.js","../src/tools/segment/component.jsx","../src/tools/segment/index.js","../src/tools/ray/component.jsx","../src/tools/ray/index.js","../src/tools/vector/component.jsx","../src/tools/vector/index.js","../src/tools/absolute/component.jsx","../src/tools/absolute/index.js","../src/tools/exponential/component.jsx","../src/tools/exponential/index.js","../src/tools/index.js","../src/toggle-bar.jsx","../src/tool-menu.jsx","../src/undo-redo.jsx","../src/graph-with-controls.jsx","../src/container/middleware.js","../src/container/index.jsx","../src/grid-setup.jsx","../src/key-legend.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types } from '@pie-lib/plot';\n\nconst style = (theme) => ({\n root: {\n fill: `var(--arrow-color, ${theme.palette.common.black})`,\n },\n});\n\nexport class Arrow extends React.Component {\n render() {\n const { x, y, classes, className, scale } = this.props;\n const names = classNames(classes.root, className);\n let direction = this.props.direction || 'left';\n\n const xv = scale.x(x);\n const yv = scale.y(y);\n\n let transform = '';\n\n const getTransform = (x, y, rotate) => `translate(${x}, ${y}) rotate(${rotate})`;\n\n if (direction === 'left') {\n transform = getTransform(xv - 15, yv, 0);\n }\n\n if (direction === 'right') {\n transform = getTransform(xv + 15, yv, 180);\n }\n\n if (direction === 'up') {\n transform = getTransform(xv, yv - 15, 90);\n }\n\n if (direction === 'down') {\n transform = getTransform(xv, yv + 15, 270);\n }\n\n return <path d=\"m 0,0 8,-5 0,10 -8,-5\" transform={transform} className={names} />;\n }\n}\n\nArrow.propTypes = {\n y: PropTypes.number,\n x: PropTypes.number,\n direction: PropTypes.oneOf(['left', 'right', 'up', 'down']),\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n scale: types.ScaleType.isRequired,\n};\n\nArrow.defaultProps = {\n y: 0,\n x: 0,\n direction: 'left',\n};\n\nexport default withStyles(style)(Arrow);\n","import head from 'lodash/head';\nimport tail from 'lodash/tail';\nimport { utils } from '@pie-lib/plot';\nimport invariant from 'invariant';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport cloneDeep from 'lodash/cloneDeep';\n\nexport const tickCount = utils.tickCount;\nexport const bounds = utils.bounds;\nexport const point = utils.point;\n\n//TODO: This can be removed?\nexport const getAngleDeg = () => 0;\n//TODO: This can be removed?\nexport const arrowDimensions = () => 0;\n\nexport const getTickValues = (prop) => {\n const tickValues = [];\n let tickVal = 0;\n\n while (tickVal >= prop.min && tickValues.indexOf(tickVal) < 0) {\n tickValues.push(tickVal);\n tickVal = Math.round((tickVal - prop.step) * 10000) / 10000;\n }\n\n tickVal = Math.round(prop.step * 10000) / 10000;\n\n while (tickVal <= prop.max && tickValues.indexOf(tickVal) < 0) {\n tickValues.push(tickVal);\n tickVal = Math.round((tickVal + prop.step) * 10000) / 10000;\n }\n\n // return only ticks that are inside the min-max interval\n if (tickValues) {\n return tickValues.filter((tV) => tV >= prop.min && tV <= prop.max);\n }\n\n return [];\n};\n\nexport const countWords = (label) => {\n if (label == null || isEmpty(label)) {\n return 1;\n }\n\n const words = label.split(' ');\n return words.length;\n};\n\n// findLongestWord is also used in plot\nexport const findLongestWord = (label) => {\n let longestWord = (label || '')\n .replace(/<[^>]+>/g, '')\n .split(' ')\n .sort((a, b) => b.length - a.length);\n\n return longestWord[0].length;\n};\n\n// amountToIncreaseWidth is also used in plot\nexport const amountToIncreaseWidth = (longestWord) => {\n if (!longestWord) {\n return 0;\n }\n\n return longestWord * 10;\n};\n\nexport const polygonToArea = (points) => {\n const h = head(points);\n const area = {\n left: h.x,\n top: h.y,\n bottom: h.y,\n right: h.x,\n };\n return tail(points).reduce((a, p) => {\n a.left = Math.min(a.left, p.x);\n a.top = Math.max(a.top, p.y);\n a.bottom = Math.min(a.bottom, p.y);\n a.right = Math.max(a.right, p.x);\n return a;\n }, area);\n};\n\nexport const lineToArea = (from, to) => pointsToArea(from, to);\n\nexport const pointsToArea = (a, b) => {\n invariant(!!a && !!b, 'a or b is undefined');\n const left = Math.min(a.x, b.x);\n const top = Math.max(a.y, b.y);\n const bottom = Math.min(a.y, b.y);\n const right = Math.max(a.x, b.x);\n return { left, top, bottom, right };\n};\n\nexport const isDomainRangeEqual = (graphProps, nextGraphProps) => {\n return isEqual(graphProps.domain, nextGraphProps.domain) && isEqual(graphProps.range, nextGraphProps.range);\n};\n\nexport const getRightestPoints = (points) => {\n const sortedPoints = cloneDeep(points);\n sortedPoints.sort((a, b) => b.x - a.x);\n\n return { a: sortedPoints[0], b: sortedPoints[1] };\n};\n\nexport const getMiddleOfTwoPoints = (a, b) => ({\n x: (a.x + b.x) / 2,\n y: (a.y + b.y) / 2,\n});\n\nexport const roundNumber = (number) => parseFloat(number.toFixed(4));\n\nexport const sameAxes = (p1, p2) =>\n p1 && p2 && (roundNumber(p1.x) === roundNumber(p2.x) || roundNumber(p1.y) === roundNumber(p2.y));\n\nexport const equalPoints = (p1, p2) =>\n p1 &&\n p2 &&\n isEqual(\n {\n x: roundNumber(p1.x),\n y: roundNumber(p1.y),\n },\n {\n x: roundNumber(p2.x),\n y: roundNumber(p2.y),\n },\n );\n\nconst getDistanceBetweenTicks = (axis, size) => {\n const { min, max, step } = axis;\n const nbOfTicks = (max - min) / step;\n\n return size / nbOfTicks;\n};\n\nexport const thinnerShapesNeeded = (graphProps) => {\n const {\n domain,\n range,\n size: { width, height },\n } = graphProps;\n\n // 14 is the default width of a point\n return getDistanceBetweenTicks(domain, width) < 14 || getDistanceBetweenTicks(range, height) < 14;\n};\n\nexport const getAdjustedGraphLimits = (graphProps) => {\n const {\n domain,\n range,\n size: { width, height },\n } = graphProps;\n const domainTicksDistance = getDistanceBetweenTicks(domain, width);\n const rangeTicksDistance = getDistanceBetweenTicks(range, height);\n\n // 15 is the distance required for the arrow to extend the graph\n const domainPadding = domain.step / (domainTicksDistance / 15);\n const rangePadding = range.step / (rangeTicksDistance / 15);\n\n return {\n domain: {\n min: domain.min - domainPadding,\n max: domain.max + domainPadding,\n },\n range: {\n min: range.min - rangePadding,\n max: range.max + rangePadding,\n },\n };\n};\n\nexport const getDistanceBetweenTwoPoints = (a, b) => Math.sqrt((b.x - a.x) * (b.x - a.x) + (b.y - a.y) * (b.y - a.y));\n\nconst sortPoints = (array) => (array || []).sort((a, b) => a.x - b.x || a.y - b.y);\n\n// check colliniarity of 3 points (source: https://www.geeksforgeeks.org/program-check-three-points-collinear/)\nconst checkCollinearity = (a, b, c) => (a.x - b.x) * (c.y - b.y) === (c.x - b.x) * (a.y - b.y);\n\n// 2 lines are overlapping if all 4 points are collinear\nconst isSameLine = (markA, markB) =>\n checkCollinearity(markA.from, markB.from, markB.to) && checkCollinearity(markA.to, markB.from, markB.to);\n\nconst isSameCircle = (markA, markB) =>\n equalPoints(markA.root, markB.root) &&\n getDistanceBetweenTwoPoints(markB.root, markB.edge) === getDistanceBetweenTwoPoints(markA.root, markA.edge);\n\nexport const isDuplicatedMark = (mark, marks, oldMark) => {\n const { type, building } = mark;\n\n if (building) {\n return false;\n }\n\n const filteredMarks = (marks || []).filter((m) => m.type === type && !m.building);\n const index = filteredMarks.findIndex((m) => isEqual(m, oldMark));\n\n if (index !== -1) {\n filteredMarks.splice(index, 1);\n }\n\n const duplicated = filteredMarks.find((m) => {\n if (type === 'circle' || type === 'parabola' || type === 'sine' || type === 'absolute' || type === 'exponential') {\n const { root, edge } = mark;\n\n return (equalPoints(root, m.root) && equalPoints(edge, m.edge)) || (type === 'circle' && isSameCircle(m, mark));\n } else if (type === 'line' || type === 'ray' || type === 'segment' || type === 'vector') {\n const { from, to } = mark;\n\n return (\n (equalPoints(from, m.from) && equalPoints(to, m.to)) ||\n (equalPoints(from, m.to) && equalPoints(to, m.from)) ||\n (type === 'line' && isSameLine(m, mark))\n );\n } else if (type === 'polygon') {\n return isEqual(sortPoints(cloneDeep(mark.points)), sortPoints(cloneDeep(m.points)));\n } else if (type === 'point') {\n return equalPoints(m, mark);\n }\n });\n\n return !!duplicated;\n};\n","import React from 'react';\nimport { Axis } from '@vx/axis';\nimport { types } from '@pie-lib/plot';\nimport PropTypes from 'prop-types';\nimport Arrow from './arrow';\nimport { withStyles } from '@material-ui/core';\nimport { countWords, findLongestWord, amountToIncreaseWidth, getTickValues } from '../utils';\nimport { color, Readable } from '@pie-lib/render-ui';\n\nexport const AxisPropTypes = {\n includeArrows: PropTypes.object,\n graphProps: PropTypes.object,\n};\n\nconst AxisDefaultProps = {\n includeArrows: {\n left: true,\n right: true,\n up: true,\n down: true,\n },\n};\n\nconst axisStyles = (theme) => ({\n line: {\n stroke: color.defaults.PRIMARY,\n strokeWidth: 3,\n },\n arrow: {\n fill: color.defaults.PRIMARY,\n },\n tick: {\n fill: color.defaults.PRIMARY,\n '& > line': {\n stroke: color.defaults.PRIMARY,\n },\n },\n labelFontSize: {\n fontSize: theme.typography.fontSize,\n },\n axisLabelHolder: {\n padding: 0,\n margin: 0,\n textAlign: 'center',\n '* > *': {\n margin: 0,\n padding: 0,\n },\n fontSize: theme.typography.fontSize,\n },\n});\n\nconst tickLabelStyles = {\n fontFamily: 'Roboto',\n fontSize: '14px',\n cursor: 'inherit',\n};\n\nexport const sharedValues = (\n firstNegativeX,\n firstNegativeY,\n distanceFromOriginToFirstNegativeX,\n distanceFromOriginToFirstNegativeY,\n deltaAllowance,\n dy,\n) => {\n let result = [];\n\n if (\n firstNegativeX === firstNegativeY &&\n distanceFromOriginToFirstNegativeX - deltaAllowance < distanceFromOriginToFirstNegativeY &&\n distanceFromOriginToFirstNegativeY < distanceFromOriginToFirstNegativeX + deltaAllowance &&\n distanceFromOriginToFirstNegativeX - deltaAllowance < dy &&\n dy < distanceFromOriginToFirstNegativeX + deltaAllowance\n ) {\n result.push(firstNegativeX);\n }\n\n return result;\n};\n\nexport const firstNegativeValue = (interval) => (interval || []).find((element) => element < 0);\n\nexport class RawXAxis extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n classes: PropTypes.object,\n graphProps: types.GraphPropsType.isRequired,\n };\n static defaultProps = AxisDefaultProps;\n\n render() {\n const {\n includeArrows,\n classes,\n graphProps,\n columnTicksValues,\n skipValues,\n distanceFromOriginToFirstNegativeY,\n dy,\n } = this.props;\n const { scale, domain, size, range } = graphProps || {};\n\n // Having 0 as a number in columnTicksValues does not make 0 to show up\n // so we use this trick, by defining it as a string:\n const tickValues =\n (domain.labelStep || range.labelStep) && domain.min <= 0 ? ['0', ...columnTicksValues] : columnTicksValues;\n // However, the '0' has to be displayed only if other tick labels (y-axis or x-axis) are displayed\n\n const labelProps = (label) => {\n const y = skipValues && skipValues[0] === label ? distanceFromOriginToFirstNegativeY + 4 : dy;\n\n return {\n ...tickLabelStyles,\n textAnchor: 'middle',\n y: y,\n dx: label === '0' ? -10 : 0,\n dy: label === '0' ? -7 : 0,\n };\n };\n\n const necessaryRows = countWords(domain.axisLabel);\n const longestWord = findLongestWord(domain.axisLabel);\n const necessaryWidth = amountToIncreaseWidth(longestWord) + 2;\n\n return (\n <React.Fragment>\n <Axis\n axisLineClassName={classes.line}\n scale={scale.x}\n top={scale.y(0)}\n left={0}\n label={domain.label}\n rangePadding={8}\n tickClassName={classes.tick}\n tickFormat={(value) => value}\n tickLabelProps={labelProps}\n tickValues={tickValues}\n />\n {includeArrows && includeArrows.left && (\n <Arrow direction=\"left\" x={domain.min} y={0} className={classes.arrow} scale={scale} />\n )}\n {includeArrows && includeArrows.right && (\n <Arrow direction=\"right\" x={domain.max} y={0} className={classes.arrow} scale={scale} />\n )}\n {domain.axisLabel && (\n <foreignObject x={size.width + 17} y={scale.y(0) - 9} width={necessaryWidth} height={20 * necessaryRows}>\n <div dangerouslySetInnerHTML={{ __html: domain.axisLabel }} className={classes.labelFontSize} />\n </foreignObject>\n )}\n </React.Fragment>\n );\n }\n}\n\nconst XAxis = withStyles(axisStyles)(RawXAxis);\n\nexport class RawYAxis extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n graphProps: types.GraphPropsType.isRequired,\n };\n static defaultProps = AxisDefaultProps;\n\n render() {\n const { classes, includeArrows, graphProps, skipValues, rowTickValues } = this.props;\n const { scale, range, size } = graphProps || {};\n\n const necessaryWidth = range.axisLabel ? amountToIncreaseWidth(range.axisLabel.length) : 0;\n\n const customTickFormat = (value) => (skipValues && skipValues.indexOf(value) >= 0 ? '' : value);\n\n return (\n <React.Fragment>\n <Axis\n axisLineClassName={classes.line}\n orientation={'left'}\n scale={scale.y}\n top={0}\n height={size.height}\n left={scale.x(0)}\n label={range.label}\n labelProps={{ 'data-pie-readable': false }}\n rangePadding={8}\n tickLength={10}\n tickClassName={classes.tick}\n tickFormat={customTickFormat}\n tickLabelProps={(value) => {\n let digits = value.toLocaleString().replace(/[.-]/g, '').length || 1;\n\n return {\n ...tickLabelStyles,\n dy: 4,\n dx: -10 - digits * 9,\n 'data-pie-readable': false,\n };\n }}\n hideZero={true}\n tickTextAnchor={'bottom'}\n tickValues={rowTickValues}\n />\n\n {includeArrows && includeArrows.down && (\n <Arrow direction=\"down\" x={0} y={range.min} className={classes.arrow} scale={scale} />\n )}\n {includeArrows && includeArrows.up && (\n <Arrow direction=\"up\" x={0} y={range.max} className={classes.arrow} scale={scale} />\n )}\n {range.axisLabel && (\n <foreignObject x={scale.x(0) - necessaryWidth / 2} y={-33} width={necessaryWidth} height=\"20\">\n <Readable false>\n <div dangerouslySetInnerHTML={{ __html: range.axisLabel }} className={classes.axisLabelHolder} />\n </Readable>\n </foreignObject>\n )}\n </React.Fragment>\n );\n }\n}\n\nconst YAxis = withStyles(axisStyles)(RawYAxis);\n\nexport default class Axes extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n classes: PropTypes.object,\n graphProps: types.GraphPropsType.isRequired,\n };\n static defaultProps = AxisDefaultProps;\n\n xValues = () => {\n const { graphProps } = this.props;\n const { scale, domain } = graphProps || {};\n\n if (!domain || !scale) {\n return;\n }\n\n const ticks = getTickValues({ ...domain, step: domain.labelStep });\n const negative = firstNegativeValue(ticks);\n\n return {\n columnTicksValues: ticks,\n firstNegativeX: negative,\n distanceFromOriginToFirstNegativeX: Math.abs(scale.y(0) - scale.y(negative)),\n };\n };\n\n yValues = () => {\n const { graphProps } = this.props;\n const { scale, range } = graphProps || {};\n\n if (!range || !scale) {\n return;\n }\n\n const ticks = getTickValues({ ...range, step: range.labelStep });\n const negative = firstNegativeValue(ticks);\n\n return {\n rowTickValues: ticks,\n firstNegativeY: negative,\n distanceFromOriginToFirstNegativeY: Math.abs(scale.x(0) - scale.x(negative)),\n };\n };\n\n render() {\n const { graphProps } = this.props;\n const { domain, range } = graphProps || {};\n const { columnTicksValues, firstNegativeX, distanceFromOriginToFirstNegativeX } = this.xValues();\n const { rowTickValues, firstNegativeY, distanceFromOriginToFirstNegativeY } = this.yValues();\n const deltaAllowance = 6;\n const dy = 25;\n\n const skipValues = sharedValues(\n firstNegativeX,\n firstNegativeY,\n distanceFromOriginToFirstNegativeX,\n distanceFromOriginToFirstNegativeY,\n deltaAllowance,\n dy,\n );\n\n // each axis has to be displayed only if the domain & range include it\n return (\n <React.Fragment>\n {range.min <= 0 ? (\n <XAxis\n {...this.props}\n skipValues={skipValues}\n columnTicksValues={columnTicksValues}\n distanceFromOriginToFirstNegativeY={distanceFromOriginToFirstNegativeY}\n dy={dy}\n />\n ) : null}\n {domain.min <= 0 ? (\n <YAxis\n {...this.props}\n skipValues={skipValues}\n rowTickValues={rowTickValues}\n distanceFromOriginToFirstNegativeX={distanceFromOriginToFirstNegativeX}\n />\n ) : null}\n </React.Fragment>\n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as vx from '@vx/grid';\nimport { types } from '@pie-lib/plot';\nimport { withStyles } from '@material-ui/core/styles';\nimport { getTickValues } from './utils';\n\nexport class Grid extends React.Component {\n static propTypes = {\n disabled: PropTypes.bool,\n disabledAdditionalGrid: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n getAdditionalGridProps = (rowTickValues, columnTickValues) => {\n const {\n graphProps: {\n scale,\n size: { width, height },\n domain,\n range,\n },\n } = this.props;\n const rowTickLabelValues = getTickValues({\n ...range,\n step: range.labelStep,\n }).filter((value) => rowTickValues.includes(value));\n const columnTickLabelValues = getTickValues({\n ...domain,\n step: domain.labelStep,\n }).filter((value) => columnTickValues.includes(value));\n\n const minValueLength =\n (rowTickLabelValues.length &&\n Math.min(...rowTickLabelValues)\n .toString()\n .replace(/[.-]/g, '').length) ||\n 1;\n const maxValueLength =\n (rowTickLabelValues.length &&\n Math.max(...rowTickLabelValues)\n .toString()\n .replace(/[.-]/g, '').length) ||\n 1;\n\n const rowLabelLength = Math.max(minValueLength, maxValueLength) * 9 + 22;\n const horizontalDistanceToZero = scale.x(0);\n const verticalDistanceToZero = scale.y(0);\n const columnLabelLength = 28;\n const rowStrokeDasharray = `${horizontalDistanceToZero - rowLabelLength} ${rowLabelLength} ${width}`;\n const columnStrokeDasharray = `${verticalDistanceToZero} ${columnLabelLength} ${height}`;\n\n const displayAdditionalGrid =\n domain.labelStep > 0 &&\n range.labelStep > 0 &&\n rowTickLabelValues &&\n columnTickLabelValues &&\n rowTickLabelValues.length > 1 &&\n columnTickLabelValues.length > 1 &&\n (rowTickLabelValues.length !== rowTickValues.length || columnTickLabelValues.length !== columnTickValues.length);\n\n const filteredColumnValues = columnTickLabelValues.filter(\n (value) => value >= 0 || horizontalDistanceToZero - scale.x(value) > rowLabelLength,\n );\n const filteredRowValues = rowTickLabelValues.filter(\n (value) => value >= 0 || scale.y(value) - verticalDistanceToZero > columnLabelLength,\n );\n\n return {\n rowTickLabelValues: filteredRowValues,\n columnTickLabelValues: filteredColumnValues,\n rowStrokeDasharray,\n columnStrokeDasharray,\n displayAdditionalGrid,\n };\n };\n\n render() {\n const { graphProps } = this.props;\n const {\n scale,\n size: { height, width },\n domain,\n range,\n } = graphProps;\n const rowTickValues = getTickValues(range);\n const columnTickValues = getTickValues(domain);\n const {\n rowTickLabelValues,\n columnTickLabelValues,\n rowStrokeDasharray,\n columnStrokeDasharray,\n displayAdditionalGrid,\n } = this.getAdditionalGridProps(rowTickValues, columnTickValues);\n\n const additionalGridStroke =\n domain.labelStep * 2 === domain.step || range.labelStep * 2 === range.step ? '#9FA8DA' : '#7985CB';\n\n return (\n <>\n <vx.Grid\n innerRef={(r) => (this.grid = r)}\n xScale={scale.x}\n yScale={scale.y}\n width={width}\n height={height}\n stroke=\"#E1E6EC\"\n rowTickValues={rowTickValues}\n columnTickValues={columnTickValues}\n />\n {displayAdditionalGrid && (\n <>\n <vx.GridRows\n scale={scale.y}\n width={width}\n tickValues={rowTickLabelValues}\n stroke={additionalGridStroke}\n strokeDasharray={rowStrokeDasharray}\n />\n <vx.GridColumns\n scale={scale.x}\n height={height}\n tickValues={columnTickLabelValues}\n stroke={additionalGridStroke}\n strokeDasharray={columnStrokeDasharray}\n />\n </>\n )}\n </>\n );\n }\n}\n\nexport default withStyles(() => ({}))(Grid);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types } from '@pie-lib/plot';\nimport { color, Readable } from '@pie-lib/render-ui';\nimport EditableHtml from '@pie-lib/editable-html';\nimport cn from 'classnames';\n\nconst rotations = {\n left: -90,\n top: 0,\n bottom: 0,\n right: 90,\n};\n\nexport const getTransform = (side, width, height) => {\n const t = (x, y, rotate) => `translate(${x}, ${y}), rotate(${rotate})`;\n\n if (side === 'left') {\n return t(-20, height / 2, rotations[side]);\n }\n if (side === 'right') {\n return t(width + 30, height / 2, rotations[side]);\n }\n if (side === 'top') {\n return t(width / 2, -20, rotations[side]);\n }\n if (side === 'bottom') {\n return t(width / 2, height + 30, rotations[side]);\n }\n};\n\nconst getY = (side, height) => {\n switch (side) {\n case 'left':\n return -height;\n case 'top':\n return -height;\n case 'right':\n return -height - 10;\n default:\n return -height + 10;\n }\n};\n\nclass RawLabel extends React.Component {\n static propTypes = {\n text: PropTypes.string,\n side: PropTypes.string,\n classes: PropTypes.object,\n disabledLabel: PropTypes.bool,\n placeholder: PropTypes.string,\n graphProps: types.GraphPropsType.isRequired,\n onChange: PropTypes.func,\n };\n\n static defaultProps = {\n onChange: () => {},\n };\n\n render() {\n const { disabledLabel, placeholder, text, side, graphProps, classes, onChange, mathMlOptions = {} } = this.props;\n const { size, domain, range } = graphProps;\n const totalHeight = (size.height || 500) + (range.padding || 0) * 2;\n const totalWidth = (size.width || 500) + (domain.padding || 0) * 2;\n\n const transform = getTransform(side, totalWidth, totalHeight);\n const width = side === 'left' || side === 'right' ? totalHeight : totalWidth;\n const height = 36;\n const y = getY(side, height);\n const finalHeight = side === 'bottom' ? height + 22 : height + 18;\n\n const activePlugins = [\n 'bold',\n 'italic',\n 'underline',\n 'strikethrough',\n 'math',\n // 'languageCharacters'\n ];\n\n return (\n <foreignObject\n x={-(width / 2)}\n y={y}\n width={width}\n height={finalHeight}\n transform={transform}\n textAnchor=\"middle\"\n >\n <Readable false>\n <EditableHtml\n className={cn(\n {\n [classes.bottomLabel]: side === 'bottom',\n [classes.disabledAxisLabel]: disabledLabel,\n },\n classes.axisLabel,\n )}\n markup={text || ''}\n onChange={onChange}\n placeholder={!disabledLabel && placeholder}\n toolbarOpts={{\n position: side === 'bottom' ? 'top' : 'bottom',\n noPadding: true,\n noBorder: true,\n }}\n activePlugins={activePlugins}\n mathMlOptions={mathMlOptions}\n />\n </Readable>\n </foreignObject>\n );\n }\n}\n\nconst Label = withStyles((theme) => ({\n label: {\n fill: color.defaults.SECONDARY,\n },\n axisLabel: {\n fontSize: theme.typography.fontSize - 2,\n textAlign: 'center',\n padding: '0 4px',\n },\n disabledAxisLabel: {\n pointerEvents: 'none',\n },\n bottomLabel: {\n marginTop: '44px',\n },\n}))(RawLabel);\n\nexport const LabelType = {\n left: PropTypes.string,\n top: PropTypes.string,\n bottom: PropTypes.string,\n right: PropTypes.string,\n};\n\nexport class Labels extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n disabledLabels: PropTypes.bool,\n placeholders: PropTypes.object,\n value: PropTypes.shape(LabelType),\n graphProps: PropTypes.object,\n onChange: PropTypes.object,\n };\n\n static defaultProps = {};\n\n onChangeLabel = (newValue, side) => {\n const { value, onChange } = this.props;\n const labels = {\n ...value,\n [side]: newValue,\n };\n\n onChange(labels);\n };\n\n render() {\n const { disabledLabels, placeholders = {}, value = {}, graphProps, mathMlOptions = {} } = this.props;\n\n return (\n <React.Fragment>\n <Label\n key=\"left\"\n side=\"left\"\n text={value.left}\n disabledLabel={disabledLabels}\n placeholder={placeholders.left}\n graphProps={graphProps}\n onChange={(value) => this.onChangeLabel(value, 'left')}\n mathMlOptions={mathMlOptions}\n />\n <Label\n key=\"top\"\n side=\"top\"\n text={value.top}\n disabledLabel={disabledLabels}\n placeholder={placeholders.top}\n graphProps={graphProps}\n onChange={(value) => this.onChangeLabel(value, 'top')}\n mathMlOptions={mathMlOptions}\n />\n <Label\n key=\"bottom\"\n side=\"bottom\"\n text={value.bottom}\n disabledLabel={disabledLabels}\n placeholder={placeholders.bottom}\n graphProps={graphProps}\n onChange={(value) => this.onChangeLabel(value, 'bottom')}\n mathMlOptions={mathMlOptions}\n />\n <Label\n key=\"right\"\n side=\"right\"\n text={value.right}\n disabledLabel={disabledLabels}\n placeholder={placeholders.right}\n graphProps={graphProps}\n onChange={(value) => this.onChangeLabel(value, 'right')}\n mathMlOptions={mathMlOptions}\n />\n </React.Fragment>\n );\n }\n}\n\nexport default Labels;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { select, mouse } from 'd3-selection';\nimport { types, utils } from '@pie-lib/plot';\nimport { getTickValues, thinnerShapesNeeded } from './utils';\n\nexport default class Bg extends React.Component {\n static propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n onClick: PropTypes.func.isRequired,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n static defaultProps = {};\n\n componentDidMount() {\n const rect = select(this.rect);\n\n rect.on('click', this.onRectClick.bind(this, rect));\n }\n\n shouldComponentUpdate(nextProps) {\n return (\n !utils.isDomainRangeEqual(this.props.graphProps, nextProps.graphProps) ||\n this.props.width !== nextProps.width ||\n this.props.height !== nextProps.height\n );\n }\n\n getRectPadding = () => {\n const { graphProps } = this.props;\n\n return thinnerShapesNeeded(graphProps) ? 6 : 10;\n };\n\n /**\n * Note: we use d3 click + mouse to give us domain values directly.\n * Saves us having to calculate them ourselves from a MouseEvent.\n */\n onRectClick = (rect) => {\n const { onClick, graphProps } = this.props;\n const { scale } = graphProps;\n\n const padding = this.getRectPadding();\n const coords = mouse(rect._groups[0][0]);\n\n // decrease the padding from coordinates to indicate the correct point clicked\n const x = scale.x.invert(coords[0] - padding);\n const y = scale.y.invert(coords[1] - padding);\n\n const rowTicks = getTickValues(graphProps.range);\n const columnTicks = getTickValues(graphProps.domain);\n\n const closest = (ticks, value) => {\n return (\n ticks.length &&\n ticks.reduce((prev, curr) => {\n const currentDistance = Math.abs(curr - value);\n const previousDistance = Math.abs(prev - value);\n\n return currentDistance <= previousDistance ? curr : prev;\n })\n );\n };\n\n let snapped = {};\n\n if (columnTicks.indexOf(x) >= 0 && rowTicks.indexOf(y) >= 0) {\n snapped.x = x;\n snapped.y = y;\n } else {\n snapped.x = closest(columnTicks, x);\n snapped.y = closest(rowTicks, y);\n }\n\n onClick(snapped);\n };\n\n render() {\n const { width, height } = this.props;\n const padding = this.getRectPadding();\n\n // expand the size of clickable area so a small area outside the edges of the grid lines to be clickable\n return (\n <rect\n ref={(rect) => (this.rect = rect)}\n transform={`translate(-${padding}, -${padding})`}\n fill=\"red\"\n fillOpacity=\"0.0\"\n width={width + padding * 2}\n height={height + padding * 2}\n />\n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash/isEqual';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { Root, types, createGraphProps } from '@pie-lib/plot';\nimport debug from 'debug';\n\nimport { Axes, AxisPropTypes } from './axis';\nimport Grid from './grid';\nimport { LabelType } from './labels';\nimport Bg from './bg';\nimport { isDuplicatedMark } from './utils';\n\nconst log = debug('pie-lib:graphing:graph');\n\nexport const graphPropTypes = {\n axesSettings: PropTypes.shape(AxisPropTypes),\n backgroundMarks: PropTypes.array,\n className: PropTypes.string,\n collapsibleToolbar: PropTypes.bool,\n collapsibleToolbarTitle: PropTypes.string,\n disabledLabels: PropTypes.bool,\n disabledTitle: PropTypes.bool,\n domain: types.DomainType,\n labels: PropTypes.shape(LabelType),\n labelModeEnabled: PropTypes.bool,\n coordinatesOnHover: PropTypes.bool,\n marks: PropTypes.array,\n onChangeLabels: PropTypes.func,\n onChangeMarks: PropTypes.func,\n onChangeTitle: PropTypes.func,\n range: types.DomainType,\n size: PropTypes.shape({\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n }),\n showLabels: PropTypes.bool,\n showPixelGuides: PropTypes.bool,\n showTitle: PropTypes.bool,\n title: PropTypes.string,\n tools: PropTypes.array,\n limitLabeling: PropTypes.bool,\n};\n\nconst getMaskSize = (size) => ({\n x: -23,\n y: -23,\n width: size.width + 46,\n height: size.height + 46,\n});\n\nexport const removeBuildingToolIfCurrentToolDiffers = ({ marks, currentTool, onChangeMarks, removeIncompleteTool }) => {\n const buildingMark = marks.filter((m) => m.building)[0];\n let newMarks = cloneDeep(marks);\n\n if (buildingMark && currentTool && buildingMark.type !== currentTool.type) {\n const index = newMarks.findIndex((m) => isEqual(m, buildingMark));\n\n if (index >= 0) {\n newMarks.splice(index, 1);\n }\n }\n if (removeIncompleteTool && !isEqual(newMarks, marks)) {\n onChangeMarks(newMarks);\n }\n return newMarks;\n};\n\nexport class Graph extends React.Component {\n constructor(props) {\n super(props);\n this.maskUid = this.generateMaskId();\n }\n\n static propTypes = {\n ...graphPropTypes,\n currentTool: PropTypes.object,\n };\n\n static defaultProps = {\n onChangeMarks: () => {},\n disabledLabels: false,\n disabledTitle: false,\n };\n\n state = {};\n\n generateMaskId() {\n return 'graph-' + (Math.random() * 10000).toFixed();\n }\n\n componentDidMount = () => this.setState({ labelNode: this.labelNode });\n\n changeMark = (oldMark, newMark) => {\n const { onChangeMarks, marks } = this.props;\n let newMarks = cloneDeep(marks);\n\n const index = newMarks.findIndex((m) => isEqual(m, oldMark));\n\n if (index >= 0 && !isDuplicatedMark(newMark, marks, oldMark)) {\n newMarks.splice(index, 1, newMark);\n\n onChangeMarks(newMarks);\n }\n };\n\n completeMark = (markData) => {\n const { currentTool, marks } = this.props;\n const buildingMark = marks.filter((m) => m.building)[0];\n\n if (!buildingMark || !currentTool) return;\n\n const updatedMark = currentTool.complete(buildingMark, markData);\n\n this.updateMarks(buildingMark, updatedMark);\n };\n\n updateMarks = (existing, update, addIfMissing = false) => {\n const { onChangeMarks, marks } = this.props;\n let newMarks = cloneDeep(marks);\n\n if (!update || (!update.building && isDuplicatedMark(update, marks))) {\n return;\n }\n\n const index = newMarks.findIndex((m) => isEqual(m, existing));\n\n if (index >= 0) {\n newMarks.splice(index, 1, update);\n\n onChangeMarks(newMarks);\n } else if (addIfMissing) {\n onChangeMarks([...newMarks, update]);\n }\n };\n\n getComponent = (mark) => {\n if (!mark) return null;\n\n const tool = (this.props.tools || []).find((t) => t.type === mark.type);\n\n return (tool && tool.Component) || null;\n };\n\n onBgClick = (point) => {\n const { x, y } = point || {};\n const { labelModeEnabled, currentTool, marks } = this.props;\n\n if (labelModeEnabled || !currentTool || [null, undefined].includes(x) || [null, undefined].includes(y)) {\n return;\n }\n\n log('[onBgClick] x,y: ', x, y);\n\n const buildingMark = marks.filter((m) => m.building)[0];\n let updatedMark;\n\n // if the building mark has a different type, we just replace it\n if (buildingMark && currentTool && buildingMark.type === currentTool.type) {\n updatedMark = currentTool.addPoint({ x, y }, { ...buildingMark });\n } else {\n updatedMark = currentTool.addPoint({ x, y }, undefined);\n }\n\n this.updateMarks(buildingMark, updatedMark, true);\n };\n\n render() {\n const {\n axesSettings,\n currentTool,\n coordinatesOnHover,\n size,\n disabledLabels,\n disabledTitle,\n domain,\n backgroundMarks,\n range,\n title,\n labels,\n labelModeEnabled,\n labelsPlaceholders,\n limitLabeling,\n showLabels,\n showPixelGuides,\n showTitle,\n titlePlaceholder,\n onChangeLabels,\n onChangeTitle,\n mathMlOptions = {},\n onChangeMarks,\n removeIncompleteTool,\n } = this.props;\n let { marks } = this.props;\n\n const graphProps = createGraphProps(domain, range, size, () => this.rootNode);\n\n const maskSize = getMaskSize(size);\n const common = { graphProps, labelModeEnabled, limitLabeling };\n\n marks = removeBuildingToolIfCurrentToolDiffers({\n marks: marks || [],\n currentTool,\n onChangeMarks,\n removeIncompleteTool,\n });\n\n return (\n <Root\n rootRef={(r) => (this.rootNode = r)}\n disabledTitle={disabledTitle}\n disabledLabels={disabledLabels}\n labels={labels}\n labelsPlaceholders={labelsPlaceholders || {}}\n showPixelGuides={showPixelGuides}\n showLabels={showLabels}\n showTitle={showTitle}\n title={title}\n titlePlaceholder={titlePlaceholder}\n onChangeTitle={onChangeTitle}\n onChangeLabels={onChangeLabels}\n mathMlOptions={mathMlOptions}\n {...common}\n >\n <g\n transform={\n domain && domain.padding && domain.range ? `translate(${domain.padding}, ${range.padding})` : undefined\n }\n >\n <Grid {...common} />\n <Axes {...axesSettings} {...common} />\n <Bg {...size} onClick={this.onBgClick} {...common} />\n <mask id={`${this.maskUid}`}>\n <rect {...maskSize} fill=\"white\" /> {/* TODO hardcoded color */}\n </mask>\n\n <g id=\"marks\" mask={`url('#${this.maskUid}')`}>\n {(backgroundMarks || []).map((m, index) => {\n const Component = this.getComponent(m);\n const markType = m.type;\n\n return (\n <Component\n key={`${markType}-${index}-bg`}\n mark={{ ...m, disabled: true, isBackground: true }}\n labelNode={this.state.labelNode}\n onClick={this.onBgClick}\n {...common}\n />\n );\n })}\n\n {marks.map((m, index) => {\n const Component = this.getComponent(m);\n const markType = m.type;\n\n return (\n <Component\n key={`${markType}-${index}`}\n mark={m}\n coordinatesOnHover={coordinatesOnHover}\n onChange={this.changeMark}\n onComplete={this.completeMark}\n onClick={this.onBgClick}\n onDragStart={this.startDrag}\n onDragStop={this.stopDrag}\n labelNode={this.state.labelNode}\n isToolActive={currentTool && markType === currentTool.type}\n {...common}\n />\n );\n })}\n <foreignObject\n ref={(labelNode) => (this.labelNode = labelNode)}\n x=\"0\"\n y=\"0\"\n {...size}\n style={{ pointerEvents: 'none', fontSize: '14px' }}\n />\n </g>\n </g>\n </Root>\n );\n }\n}\n\nexport default Graph;\n","const marks = (state = [], action) => {\n switch (action.type) {\n case 'CHANGE_MARKS':\n if (Array.isArray(action.marks)) {\n return action.marks;\n } else {\n throw new Error('marks must be an array');\n }\n default:\n return state;\n }\n};\n\nexport default marks;\n","import { combineReducers } from 'redux';\nimport marks from './marks';\nimport undoable from 'redux-undo';\n\nexport default () => combineReducers({ marks: undoable(marks, { debug: false }) });\n","export const addMark = () => ({\n type: 'ADD_MARK',\n});\n\nexport const changeMarks = (marks) => ({\n type: 'CHANGE_MARKS',\n marks,\n});\n","import { color } from '@pie-lib/render-ui';\n\nexport const disabled = (key = 'fill') => ({\n [key]: color.disabled(),\n pointerEvents: 'none',\n});\n\nexport const disabledSecondary = (key = 'fill') => ({\n [key]: color.disabledSecondary(),\n pointerEvents: 'none',\n});\n\nexport const correct = (key = 'fill') => ({\n [key]: color.correctWithIcon(),\n pointerEvents: 'none',\n});\nexport const incorrect = (key = 'fill') => ({\n [key]: color.incorrectWithIcon(),\n pointerEvents: 'none',\n});\n\nexport const missing = (key = 'fill') => ({\n [key]: color.missingWithIcon(),\n pointerEvents: 'none',\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport InputBase from '@material-ui/core/InputBase';\nimport { roundNumber } from './utils';\n\nconst styles = (theme) => ({\n input: {\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.fontSize,\n borderRadius: '8px',\n background: theme.palette.common.white,\n color: color.defaults.PRIMARY_DARK,\n },\n inputLabel: {\n padding: 0,\n },\n});\n\nexport const getLabelPosition = (graphProps, x, y, labelLength) => {\n const { scale, domain, range } = graphProps;\n // treat corner cases for maximum and minimum\n const topShift = y === range.min ? 16 : y === range.max ? 0 : 8;\n const leftShift = 10;\n const rightEdge = scale.x(x) + labelLength + leftShift;\n\n if (rightEdge >= scale.x(domain.max)) {\n return {\n left: scale.x(x) - leftShift - labelLength,\n top: scale.y(y) - topShift,\n };\n }\n\n return {\n left: scale.x(x) + leftShift,\n top: scale.y(y) - topShift,\n };\n};\n\nexport const CoordinatesLabel = ({ x, y, graphProps, classes }) => {\n const label = `(${roundNumber(x)}, ${roundNumber(y)})`;\n const labelLength = (label.length || 0) * 6;\n const labelPosition = getLabelPosition(graphProps, x, y, labelLength);\n\n const style = {\n position: 'absolute',\n pointerEvents: 'auto',\n width: labelLength,\n padding: 0,\n ...labelPosition,\n };\n\n return (\n <InputBase\n style={style}\n classes={{ input: classes.inputLabel }}\n className={classes.input}\n value={label}\n inputProps={{ ariaLabel: 'naked' }}\n />\n );\n};\n\nCoordinatesLabel.propTypes = {\n graphProps: types.GraphPropsType,\n classes: PropTypes.object,\n x: PropTypes.number,\n y: PropTypes.number,\n};\n\nexport default withStyles(styles)(CoordinatesLabel);\n","import React from 'react';\n\nconst MissingSVG = ({ scale, x, y }) => (\n <svg\n width=\"9\"\n height=\"10\"\n viewBox=\"0 0 9 10\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n x={scale.x(x) - 4.5}\n y={scale.y(y) - 5}\n style={{ pointerEvents: 'none' }}\n >\n <path\n d=\"M0.125 3.76562V1.34375C0.125 1.08984 0.320312 0.875 0.59375 0.875H3.01562C3.13281 0.875 3.25 0.992188 3.25 1.10938V1.89062C3.25 2.02734 3.13281 2.125 3.01562 2.125H1.375V3.76562C1.375 3.90234 1.25781 4 1.14062 4H0.359375C0.222656 4 0.125 3.90234 0.125 3.76562ZM5.75 1.10938C5.75 0.992188 5.84766 0.875 5.98438 0.875H8.40625C8.66016 0.875 8.875 1.08984 8.875 1.34375V3.76562C8.875 3.90234 8.75781 4 8.64062 4H7.85938C7.72266 4 7.625 3.90234 7.625 3.76562V2.125H5.98438C5.84766 2.125 5.75 2.02734 5.75 1.89062V1.10938ZM8.64062 6.5C8.75781 6.5 8.875 6.61719 8.875 6.73438V9.15625C8.875 9.42969 8.66016 9.625 8.40625 9.625H5.98438C5.84766 9.625 5.75 9.52734 5.75 9.39062V8.60938C5.75 8.49219 5.84766 8.375 5.98438 8.375H7.625V6.73438C7.625 6.61719 7.72266 6.5 7.85938 6.5H8.64062ZM3.25 9.39062C3.25 9.52734 3.13281 9.625 3.01562 9.625H0.59375C0.320312 9.625 0.125 9.42969 0.125 9.15625V6.73438C0.125 6.61719 0.222656 6.5 0.359375 6.5H1.14062C1.25781 6.5 1.375 6.61719 1.375 6.73438V8.375H3.01562C3.13281 8.375 3.25 8.49219 3.25 8.60938V9.39062Z\"\n fill=\"white\"\n />\n </svg>\n);\n\nexport default MissingSVG;\n","import React from 'react';\n\nconst CorrectSVG = ({ scale, x, y }) => (\n <svg\n width=\"11\"\n height=\"13\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n stroke=\"#ffffff\"\n x={scale.x(x) - 5}\n y={scale.y(y) - 6}\n style={{ pointerEvents: 'none' }}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M10.1953 2.46875C10.3125 2.35156 10.5 2.35156 10.5938 2.46875L11.2734 3.125C11.3672 3.24219 11.3672 3.42969 11.2734 3.52344L4.24219 10.5547C4.125 10.6719 3.96094 10.6719 3.84375 10.5547L0.703125 7.4375C0.609375 7.32031 0.609375 7.13281 0.703125 7.03906L1.38281 6.35938C1.47656 6.26562 1.66406 6.26562 1.78125 6.35938L4.03125 8.63281L10.1953 2.46875Z\"\n fill=\"white\"\n />\n </svg>\n);\n\nexport default CorrectSVG;\n","import React from 'react';\n\nconst IncorrectSVG = ({ scale, x, y }) => (\n <svg\n width=\"14px\"\n height=\"14px\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"#ffffff\"\n strokeWidth=\"2\"\n x={scale.x(x) - 7}\n y={scale.y(y) - 7}\n style={{ pointerEvents: 'none' }}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M17.705 7.705l-1.41-1.41L12 10.59 7.705 6.295l-1.41 1.41L10.59 12l-4.295 4.295 1.41 1.41L12 13.41l4.295 4.295 1.41-1.41L13.41 12l4.295-4.295z\"></path>\n </svg>\n);\n\nexport default IncorrectSVG;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { types } from '@pie-lib/plot';\nimport CoordinatesLabel from '../../../coordinates-label';\nimport ReactDOM from 'react-dom';\nimport { thinnerShapesNeeded } from '../../../utils';\nimport MissingSVG from '../icons/MissingSVG';\nimport CorrectSVG from '../icons/CorrectSVG';\nimport IncorrectSVG from '../icons/IncorrectSVG';\n\nexport class RawBp extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n coordinatesOnHover: PropTypes.bool,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n labelNode: PropTypes.object,\n x: PropTypes.number,\n y: PropTypes.number,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = { showCoordinates: false };\n }\n\n render() {\n const {\n classes,\n className,\n coordinatesOnHover,\n x,\n y,\n disabled,\n correctness,\n graphProps,\n labelNode,\n // we need to remove style from props\n // eslint-disable-next-line no-unused-vars,react/prop-types\n style,\n onClick,\n // Refactored RawBp component by isolating onTouchStart and onTouchEnd handlers to the outer circle, resolving erratic touch event behavior.\n // Remaining props are now applied only to the inner circle for improved event handling consistency.\n onTouchStart,\n onTouchEnd,\n ...rest\n } = this.props;\n const { showCoordinates } = this.state;\n const { scale } = graphProps;\n const r = thinnerShapesNeeded(graphProps) ? 5 : 7;\n let SvgComponent;\n switch (correctness) {\n case 'missing':\n SvgComponent = MissingSVG;\n break;\n case 'correct':\n SvgComponent = CorrectSVG;\n break;\n case 'incorrect':\n SvgComponent = IncorrectSVG;\n break;\n default:\n SvgComponent = null;\n break;\n }\n\n return (\n <>\n <circle\n style={{ fill: 'transparent', cursor: 'pointer', pointerEvents: 'all' }}\n r={r * 3}\n cx={scale.x(x)}\n cy={scale.y(y)}\n onMouseEnter={() => this.setState({ showCoordinates: true })}\n onMouseLeave={() => this.setState({ showCoordinates: false })}\n onTouchStart={onTouchStart}\n onTouchEnd={onTouchEnd}\n onClick={onClick}\n />\n <g\n className={classNames(classes.point, disabled && classes.disabledSecondary, classes[correctness], className)}\n onMouseEnter={() => this.setState({ showCoordinates: true })}\n onMouseLeave={() => this.setState({ showCoordinates: false })}\n >\n <circle {...rest} r={r} cx={scale.x(x)} cy={scale.y(y)} />\n {SvgComponent && <SvgComponent scale={scale} x={x} y={y} />}\n {labelNode &&\n coordinatesOnHover &&\n showCoordinates &&\n ReactDOM.createPortal(<CoordinatesLabel graphProps={graphProps} x={x} y={y} />, labelNode)}\n </g>\n </>\n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { types } from '@pie-lib/plot';\nimport isEqual from 'lodash/isEqual';\nimport { getAngleDeg, arrowDimensions } from '../../../utils';\n\nexport class RawArrow extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n x: PropTypes.number,\n y: PropTypes.number,\n from: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n }).isRequired,\n to: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n }),\n graphProps: types.GraphPropsType.isRequired,\n };\n\n static defaultProps = {\n from: {},\n to: {},\n };\n\n render() {\n const { classes, className, x, y, disabled, correctness, graphProps, from, to, ...rest } = this.props;\n // x & y are the initial coordinates for the arrow\n // from & to are used only to calculate the angle that the arrow should be rotated with\n\n const { scale } = graphProps;\n const angle = getAngleDeg(from.x, from.y, to.x, to.y);\n\n let points = '';\n\n if (isEqual(from, to)) {\n points = '0,0 0,0 0,0';\n } else {\n points = `0,0 ${arrowDimensions.vector},${arrowDimensions.vector * 2} \n -${arrowDimensions.vector},${arrowDimensions.vector * 2}`;\n }\n\n return (\n <g\n className={classNames(classes.point, disabled && classes.disabledSecondary, classes[correctness], className)}\n {...rest}\n >\n <polygon\n points={points}\n transform={`\n translate(${scale.x(x)}, ${scale.y(y)})\n rotate(${angle} 0 0)`}\n />\n </g>\n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nexport const ArrowHead = ({ size, transform, points }) => (\n <polygon points={points || `0,0 ${size},${size / 2} 0,${size}`} transform={transform} />\n);\nArrowHead.propTypes = {\n points: PropTypes.string,\n size: PropTypes.number,\n transform: PropTypes.string,\n};\nArrowHead.defaultProps = {\n points: '',\n size: 10,\n transform: '',\n};\nexport const genUid = () => {\n const v = (Math.random() * 1000).toFixed(0);\n return `arrow-${v}`;\n};\nexport const ArrowMarker = ({ id, size, className }) => {\n return (\n <marker\n id={id}\n viewBox={`0 0 ${size} ${size}`}\n refX={size / 2}\n refY={size / 2}\n markerWidth={size}\n markerHeight={size}\n orient=\"auto-start-reverse\"\n className={className}\n >\n <ArrowHead size={size} />\n </marker>\n );\n};\nArrowMarker.propTypes = {\n id: PropTypes.string,\n size: PropTypes.number,\n className: PropTypes.string,\n};\nArrowMarker.defaultProps = {\n size: 5,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { types } from '@pie-lib/plot';\nimport { ArrowHead } from '../arrow-head';\nimport { thinnerShapesNeeded } from '../../../utils';\n\nexport default class Arrow extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n angle: PropTypes.number.isRequired,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n render() {\n const { classes, angle, className, x, y, disabled, correctness, graphProps, ...rest } = this.props;\n\n const size = thinnerShapesNeeded(graphProps) ? 12 : 14;\n const { scale } = graphProps;\n\n const scaledX = scale.x(x);\n const scaledY = scale.y(y);\n\n const transform = `rotate(${-angle}, ${scaledX},${scaledY})`;\n const points = `${scaledX},${scaledY}\n ${scaledX - size},${scaledY - size / 2}\n ${scaledX - size}, ${scaledY + size / 2}`;\n\n return (\n <g\n className={classNames(classes.point, disabled && classes.disabledSecondary, classes[correctness], className)}\n {...rest}\n >\n <ArrowHead size={size} transform={transform} points={points} />\n </g>\n );\n }\n}\n","import { withStyles } from '@material-ui/core/styles/index';\nimport { gridDraggable } from '@pie-lib/plot';\nimport * as utils from '../../../utils';\nimport { disabled, correct, incorrect, missing, disabledSecondary } from '../styles';\nimport { RawBp } from './base-point';\nimport { RawArrow } from './arrow-point';\nimport { color } from '@pie-lib/render-ui';\nimport BaseArrow from './arrow';\n\nconst opts = {\n bounds: (props, { domain, range }) => {\n const { x, y } = props;\n const area = { left: x, top: y, bottom: y, right: x };\n\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n const { x, y } = props;\n\n return { x, y };\n },\n fromDelta: (props, delta) => {\n return utils.point(props).add(utils.point(delta));\n },\n};\n\nconst styles = () => {\n return {\n point: {\n '& circle, & polygon': {\n cursor: 'pointer',\n fill: color.defaults.BLACK,\n },\n },\n disabled: {\n '& circle, & polygon': {\n ...disabled(),\n },\n },\n disabledSecondary: {\n '& circle, & polygon': {\n ...disabledSecondary(),\n },\n },\n correct: {\n '& circle, & polygon': {\n ...correct(),\n },\n },\n incorrect: {\n '& circle, & polygon': {\n ...incorrect(),\n },\n },\n missing: {\n '& circle, & polygon': {\n ...missing(),\n },\n },\n };\n};\n\nexport const BasePoint = withStyles(styles)(gridDraggable(opts)(RawBp));\nexport const ArrowPoint = withStyles(styles)(gridDraggable(opts)(RawArrow));\nexport const Arrow = withStyles(styles)(gridDraggable(opts)(BaseArrow));\n","import PropTypes from 'prop-types';\n\nexport const ToolPropTypeFields = {\n mark: PropTypes.any,\n onChange: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n};\n\nexport const ToolPropType = PropTypes.shape(ToolPropTypeFields);\n","import { useState, useEffect } from 'react';\n\nexport const useDebounce = (value, delay) => {\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n return () => clearTimeout(handler);\n }, [value]);\n return debouncedValue;\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst SvgIcon = ({ type }) => {\n const icons = {\n correct: (\n <svg width=\"8\" height=\"6\" viewBox=\"0 0 8 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M6.79688 0.306152C6.875 0.228027 7 0.228027 7.0625 0.306152L7.51562 0.743652C7.57812 0.821777 7.57812 0.946777 7.51562 1.00928L2.82812 5.69678C2.75 5.7749 2.64062 5.7749 2.5625 5.69678L0.46875 3.61865C0.40625 3.54053 0.40625 3.41553 0.46875 3.35303L0.921875 2.8999C0.984375 2.8374 1.10938 2.8374 1.1875 2.8999L2.6875 4.41553L6.79688 0.306152Z\"\n fill=\"#0B7D38\"\n />\n </svg>\n ),\n incorrect: (\n <svg width=\"7\" height=\"7\" viewBox=\"0 0 7 7\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M4.23438 3.21045L5.92188 4.89795C6.01562 4.9917 6.01562 5.16357 5.92188 5.25732L5.53125 5.64795C5.4375 5.7417 5.26562 5.7417 5.17188 5.64795L3.5 3.96045L1.8125 5.64795C1.71875 5.7417 1.54688 5.7417 1.45312 5.64795L1.0625 5.25732C0.96875 5.16357 0.96875 4.9917 1.0625 4.89795L2.75 3.21045L1.0625 1.53857C0.96875 1.44482 0.96875 1.27295 1.0625 1.1792L1.45312 0.788574C1.54688 0.694824 1.71875 0.694824 1.8125 0.788574L3.5 2.47607L5.17188 0.788574C5.26562 0.694824 5.4375 0.694824 5.53125 0.788574L5.92188 1.1792C6.01562 1.27295 6.01562 1.44482 5.92188 1.53857L4.23438 3.21045Z\"\n fill=\"#BF0D00\"\n />\n </svg>\n ),\n empty: (\n <svg width=\"11\" height=\"12\" viewBox=\"0 0 11 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M0.25 4.13965V1.2334C0.25 0.928711 0.484375 0.670898 0.8125 0.670898H3.71875C3.85938 0.670898 4 0.811523 4 0.952148V1.51465C4 1.67871 3.85938 1.7959 3.71875 1.7959H1.375V4.13965C1.375 4.30371 1.23438 4.4209 1.09375 4.4209H0.53125C0.367188 4.4209 0.25 4.30371 0.25 4.13965ZM7 0.952148C7 0.811523 7.11719 0.670898 7.28125 0.670898H10.1875C10.4922 0.670898 10.75 0.928711 10.75 1.2334V4.13965C10.75 4.30371 10.6094 4.4209 10.4688 4.4209H9.90625C9.74219 4.4209 9.625 4.30371 9.625 4.13965V1.7959H7.28125C7.11719 1.7959 7 1.67871 7 1.51465V0.952148ZM10.4688 7.4209C10.6094 7.4209 10.75 7.56152 10.75 7.70215V10.6084C10.75 10.9365 10.4922 11.1709 10.1875 11.1709H7.28125C7.11719 11.1709 7 11.0537 7 10.8896V10.3271C7 10.1865 7.11719 10.0459 7.28125 10.0459H9.625V7.70215C9.625 7.56152 9.74219 7.4209 9.90625 7.4209H10.4688ZM4 10.8896C4 11.0537 3.85938 11.1709 3.71875 11.1709H0.8125C0.484375 11.1709 0.25 10.9365 0.25 10.6084V7.70215C0.25 7.56152 0.367188 7.4209 0.53125 7.4209H1.09375C1.23438 7.4209 1.375 7.56152 1.375 7.70215V10.0459H3.71875C3.85938 10.0459 4 10.1865 4 10.3271V10.8896Z\"\n fill=\"#BF0D00\"\n />\n </svg>\n ),\n };\n\n return icons[type] || null;\n};\n\nSvgIcon.propTypes = {\n type: PropTypes.string.isRequired,\n};\n\nexport default SvgIcon;\n","import React, { useState, useCallback, useEffect } from 'react';\nimport cn from 'classnames';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport AutosizeInput from 'react-input-autosize';\nimport { useDebounce } from './use-debounce';\nimport { types } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport SvgIcon from './label-svg-icon';\n\nconst inputStyles = (theme) => ({\n float: 'right',\n padding: theme.spacing.unit * 0.5,\n borderRadius: '4px',\n fontSize: '10px',\n backgroundColor: color.defaults.WHITE,\n});\n\nconst styles = (theme) => ({\n inputStudent: {\n ...inputStyles(theme),\n padding: '0',\n border: 'none',\n color: 'inherit',\n fontWeight: 'bold',\n },\n input: {\n float: 'right',\n padding: theme.spacing.unit * 0.5,\n fontFamily: theme.typography.fontFamily,\n fontSize: '10px',\n border: `solid 1px ${color.defaults.SECONDARY}`,\n borderRadius: '3px',\n color: color.defaults.PRIMARY_DARK,\n backgroundColor: color.defaults.WHITE,\n },\n disabled: {\n border: `solid 1px ${color.defaults.PRIMARY_DARK}`,\n backgroundColor: color.defaults.WHITE,\n '-webkit-opacity': '1',\n },\n disabledMark: {\n border: `solid 1px ${color.disabled()}`,\n color: color.disabled(),\n '-webkit-text-fill-color': color.disabled(),\n },\n inputCorrect: {\n ...inputStyles(theme),\n color: color.defaults.CORRECT_WITH_ICON,\n border: `solid 1px ${color.defaults.CORRECT_WITH_ICON}`,\n },\n inputIncorrect: {\n ...inputStyles(theme),\n color: color.defaults.INCORRECT_WITH_ICON,\n border: `solid 1px ${color.defaults.INCORRECT_WITH_ICON}`,\n },\n inputMissing: {\n ...inputStyles(theme),\n color: color.defaults.MISSING_WITH_ICON,\n border: `solid 1px ${color.defaults.MISSING_WITH_ICON}`,\n fontWeight: 'bold',\n },\n incorrect: {\n ...inputStyles(theme),\n color: color.defaults.INCORRECT_WITH_ICON,\n fontWeight: 'bold',\n padding: '0',\n },\n});\n\nexport const position = (graphProps, mark, rect = { width: 0, height: 0 }) => {\n const { scale, domain, range } = graphProps;\n const shift = 5;\n\n const rightEdge = scale.x(mark.x) + rect.width + shift;\n const bottomEdge = scale.y(mark.y) + rect.height + shift;\n\n const h = rightEdge >= scale.x(domain.max) ? 'left' : 'right';\n const v = bottomEdge >= scale.y(range.min) ? 'top' : 'bottom';\n\n return `${v}-${h}`;\n};\n\nexport const coordinates = (graphProps, mark, rect = { width: 0, height: 0 }, position) => {\n const { scale } = graphProps;\n const shift = 5;\n\n switch (position) {\n case 'bottom-right':\n return { left: scale.x(mark.x) + shift, top: scale.y(mark.y) + shift };\n case 'bottom-left':\n return { left: scale.x(mark.x) - shift - rect.width, top: scale.y(mark.y) + shift };\n case 'top-left':\n return { left: scale.x(mark.x) - shift - rect.width, top: scale.y(mark.y) - shift - rect.height };\n case 'top-right':\n return { left: scale.x(mark.x) + shift, top: scale.y(mark.y) - shift - rect.height };\n default:\n return {};\n }\n};\n\nconst LabelInput = ({ _ref, externalInputRef, label, disabled, inputClassName, onChange }) => (\n <AutosizeInput\n inputRef={(r) => {\n _ref(r);\n externalInputRef(r);\n }}\n disabled={disabled}\n inputClassName={inputClassName}\n value={label}\n onChange={onChange}\n />\n);\n\nexport const MarkLabel = (props) => {\n const [input, setInput] = useState(null);\n const _ref = useCallback((node) => setInput(node));\n\n const { mark, graphProps, classes, disabled, inputRef: externalInputRef, theme } = props;\n\n const [label, setLabel] = useState(mark.label);\n const { correctness, correctnesslabel, correctlabel } = mark;\n const onChange = (e) => setLabel(e.target.value);\n\n const debouncedLabel = useDebounce(label, 200);\n\n // useState only sets the value once, to synch props to state need useEffect\n useEffect(() => {\n setLabel(mark.label);\n }, [mark.label]);\n\n // pick up the change to debouncedLabel and save it\n useEffect(() => {\n if (typeof debouncedLabel === 'string' && debouncedLabel !== mark.label) {\n props.onChange(debouncedLabel);\n }\n }, [debouncedLabel]);\n\n const rect = input ? input.getBoundingClientRect() : { width: 0, height: 0 };\n const pos = position(graphProps, mark, rect);\n const leftTop = coordinates(graphProps, mark, rect, pos);\n\n const style = {\n position: 'fixed',\n pointerEvents: 'auto',\n display: 'flex',\n alignItems: 'center',\n gap: '3px',\n ...leftTop,\n };\n\n const secondLabelStyle = {\n ...style,\n top: leftTop.top + 25,\n };\n\n const disabledInput = disabled || mark.disabled;\n\n const renderInput = (inputClass, labelValue) => (\n <LabelInput\n _ref={_ref}\n externalInputRef={externalInputRef}\n label={labelValue}\n disabled={disabledInput}\n inputClassName={cn(inputClass)}\n onChange={onChange}\n />\n );\n\n if (correctness === 'correct' && correctnesslabel === 'correct' && correctlabel) {\n return (\n <div className={classes.inputCorrect} style={style}>\n <SvgIcon type=\"correct\" />\n {renderInput(classes.inputStudent, correctlabel)}\n </div>\n );\n }\n\n // avoid rendering empty label when a correct point without label was provided\n if (correctness === 'correct' && correctnesslabel === 'correct' && !correctlabel) {\n return null;\n }\n\n if (correctness === 'correct' && correctnesslabel === 'incorrect') {\n return (\n <>\n <div className={classes.inputIncorrect} style={style}>\n <SvgIcon type=\"incorrect\" />\n {label === '' ? (\n <SvgIcon type=\"empty\" style={{ marginLeft: '3px' }} />\n ) : (\n renderInput(classes.inputStudent, label)\n )}\n </div>\n <div className={classes.inputMissing} style={secondLabelStyle}>\n {renderInput(classes.inputStudent, correctlabel)}\n </div>\n </>\n );\n }\n\n if (correctness === 'missing') {\n return (\n <div className={classes.inputMissing} style={style}>\n {renderInput(classes.inputStudent, label)}\n </div>\n );\n }\n\n if (correctness === 'incorrect') {\n return (\n <div className={classes.incorrect} style={style}>\n {renderInput(classes.inputStudent, label)}\n </div>\n );\n }\n\n return (\n <div style={style}>\n {renderInput(\n cn(classes.input, {\n [classes.disabled]: disabled,\n [classes.disabledMark]: mark.disabled,\n }),\n label,\n )}\n </div>\n );\n};\n\nMarkLabel.propTypes = {\n disabled: PropTypes.bool,\n onChange: PropTypes.func,\n graphProps: types.GraphPropsType,\n classes: PropTypes.object,\n inputRef: PropTypes.func,\n mark: PropTypes.object,\n theme: PropTypes.object,\n};\n\nexport default withStyles(styles, { withTheme: true })(MarkLabel);\n","import React from 'react';\nimport { BasePoint } from '../shared/point';\nimport { ToolPropTypeFields } from '../shared/types';\nimport { types } from '@pie-lib/plot';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../mark-label';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\n\nexport class Point extends React.Component {\n static propTypes = {\n graphProps: types.GraphPropsType.isRequired,\n ...ToolPropTypeFields,\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n move = (p) => {\n const mark = { ...this.state.mark, ...p };\n this.setState({ mark });\n };\n\n startDrag = () => {\n const update = { ...this.props.mark };\n\n if (update.label === '') {\n delete update.label;\n }\n this.setState({ mark: update });\n };\n\n stopDrag = () => {\n const { onChange } = this.props;\n const mark = { ...this.state.mark };\n this.setState({ mark: undefined }, () => {\n if (!isEqual(this.props.mark, mark)) {\n onChange(this.props.mark, mark);\n }\n });\n };\n\n labelChange = (label) => {\n const { onChange } = this.props;\n const update = { ...this.props.mark, label };\n\n if (!label || isEmpty(label)) {\n delete update.label;\n }\n\n this.setState({ mark: update }, () => {\n onChange(this.props.mark, update);\n });\n };\n\n clickPoint = () => {\n const { labelModeEnabled, onChange, onClick, mark } = this.props;\n\n if (!labelModeEnabled) {\n onClick(mark);\n return;\n }\n\n if (mark.disabled) {\n return;\n }\n\n onChange(mark, { label: '', ...mark });\n\n if (this.input) {\n this.input.focus();\n }\n };\n\n render() {\n const { coordinatesOnHover, graphProps, labelNode, labelModeEnabled } = this.props;\n const mark = this.state.mark ? this.state.mark : this.props.mark;\n\n return (\n <React.Fragment>\n <BasePoint\n {...mark}\n coordinatesOnHover={coordinatesOnHover}\n graphProps={graphProps}\n labelNode={labelNode}\n onDrag={this.move}\n onDragStart={this.startDrag}\n onDragStop={this.stopDrag}\n onClick={this.clickPoint}\n onTouchStart={(e) => {\n e.stopPropagation();\n this.clickPoint();\n }}\n onTouchEnd={(e) => {\n e.stopPropagation();\n this.clickPoint();\n }}\n />\n {labelNode &&\n mark.hasOwnProperty('label') &&\n ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input = r)}\n disabled={!labelModeEnabled}\n mark={mark}\n graphProps={graphProps}\n onChange={this.labelChange}\n />,\n labelNode,\n )}\n </React.Fragment>\n );\n }\n}\n\nexport default Point;\n","import Point from './component';\n\nexport const tool = () => ({\n label: 'Point',\n type: 'point',\n Component: Point,\n addPoint: (point) => ({\n type: 'point',\n ...point,\n }),\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { types, gridDraggable } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport * as utils from '../../utils';\nimport { disabled, disabledSecondary, correct, incorrect, missing } from '../shared/styles';\n\n/**\n * A low level circle component\n *\n * TODO: This and base point have a lot of similarities - merge commonality\n *\n */\nclass RawCircle extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n radius: PropTypes.number,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n render() {\n const { classes, disabled, className, correctness, x, y, radius, graphProps, ...rest } = this.props;\n const { scale } = graphProps;\n const rx = Math.abs(scale.x(x + radius) - scale.x(x));\n const ry = Math.abs(scale.y(y + radius) - scale.y(y));\n\n return (\n <ellipse\n className={classNames(classes.bgCircle, disabled && classes.disabledSecondary, classes[correctness], className)}\n cx={scale.x(x)}\n cy={scale.y(y)}\n rx={rx}\n ry={ry}\n {...rest}\n />\n );\n }\n}\n\nconst applyStyle = (fn) => ({\n ...fn('stroke'),\n '&:hover': {\n strokeWidth: 3,\n ...fn('stroke'),\n },\n});\n\nconst styles = () => ({\n bgCircle: {\n fill: 'transparent',\n stroke: color.defaults.BLACK,\n strokeWidth: 3,\n transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',\n '&:hover': {\n strokeWidth: 6,\n stroke: color.defaults.PRIMARY_DARK,\n },\n },\n disabled: applyStyle(disabled),\n disabledSecondary: applyStyle(disabledSecondary),\n correct: applyStyle(correct),\n incorrect: applyStyle(incorrect),\n missing: applyStyle(missing),\n});\n\nexport const BgCircle = withStyles(styles)(RawCircle);\n\nexport default gridDraggable({\n bounds: (props, { domain, range }) => {\n const { x, y } = props;\n const area = { left: x, top: y, bottom: y, right: x };\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n const { x, y } = props;\n return { x, y };\n },\n fromDelta: (props, delta) => {\n const newPoint = utils.point(props).add(utils.point(delta));\n return newPoint;\n },\n})(BgCircle);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types } from '@pie-lib/plot';\nimport classNames from 'classnames';\nimport { disabled, correct, incorrect, missing, disabledSecondary } from '../styles';\nimport * as vx from '@vx/shape';\nimport { color } from '@pie-lib/render-ui';\n\nexport class RawLinePath extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object,\n data: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n graphProps: types.GraphPropsType.isRequired,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n from: types.PointType,\n to: types.PointType,\n isDragging: PropTypes.bool,\n };\n\n static defaultProps = {\n from: {},\n to: {},\n };\n\n render() {\n /* eslint-disable no-unused-vars */\n const { data, classes, className, disabled, correctness, from, to, graphProps, isDragging, ...rest } = this.props;\n /* eslint-enable */\n\n return (\n <React.Fragment>\n <vx.LinePath\n data={data}\n className={classNames(\n classes.drawLine,\n disabled && classes.disabledSecondary,\n classes[correctness],\n className,\n )}\n {...rest}\n />\n <vx.LinePath\n data={data}\n className={classNames(\n classes.line,\n isDragging && classes.dragging,\n disabled && classes.disabledSecondary,\n classes[correctness],\n className,\n )}\n {...rest}\n />\n </React.Fragment>\n );\n }\n}\n\nconst dragging = () => ({\n strokeWidth: 4,\n stroke: color.defaults.BLACK,\n});\n\nexport const LinePath = withStyles((theme) => ({\n drawLine: {\n fill: 'none',\n strokeWidth: 2,\n stroke: color.black(),\n },\n line: {\n strokeWidth: 3,\n fill: 'none',\n transition: 'stroke-width 200ms ease-in, stroke 200ms ease-in',\n stroke: 'transparent',\n '&:hover': dragging(theme),\n },\n dragging: dragging(theme),\n disabled: {\n ...disabled('stroke'),\n strokeWidth: 2,\n },\n disabledSecondary: {\n ...disabledSecondary('stroke'),\n strokeWidth: 2,\n },\n correct: {\n ...correct('stroke'),\n },\n incorrect: {\n ...incorrect('stroke'),\n },\n missing: {\n ...missing('stroke'),\n strokeWidth: 1,\n strokeDasharray: '4 3',\n },\n}))(RawLinePath);\n","import React from 'react';\nimport isEqual from 'lodash/isEqual';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { BasePoint } from '../point';\nimport { types, utils, gridDraggable, trig } from '@pie-lib/plot';\nimport PropTypes from 'prop-types';\nimport { disabled, disabledSecondary, correct, incorrect, missing } from '../styles';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../../mark-label';\nimport isEmpty from 'lodash/isEmpty';\nimport { color } from '@pie-lib/render-ui';\nimport { getMiddleOfTwoPoints, equalPoints, sameAxes } from '../../../utils';\n\nexport const lineTool = (type, Component) => () => ({\n type,\n Component,\n addPoint: (point, mark) => {\n if (mark && equalPoints(mark.root, point)) {\n return mark;\n }\n\n if (!mark) {\n return {\n type,\n building: true,\n from: point,\n };\n }\n\n if (equalPoints(point, mark.from)) {\n return { ...mark };\n }\n\n return { ...mark, building: false, to: point };\n },\n});\n\nexport const lineToolComponent = (Component) => {\n return class LineToolComponent extends React.Component {\n static propTypes = {\n ...types.ToolPropTypeFields,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n startDrag = () => this.setState({ mark: { ...this.props.mark } });\n\n stopDrag = () => {\n const { onChange, mark } = this.props;\n const update = { ...this.state.mark };\n\n this.setState({ mark: undefined }, () => {\n const { type } = update;\n let shouldNotChange =\n type &&\n (type === 'parabola' || type === 'sine' || type === 'absolute' || type === 'exponential') &&\n sameAxes(update.from, update.to);\n if (!shouldNotChange && type && type === 'exponential' && update.from && update.to) {\n shouldNotChange = update.from.y === 0 || update.to.y === 0 || update.from.y * update.to.y < 0;\n }\n if (!isEqual(mark, update) && !shouldNotChange) {\n onChange(mark, update);\n }\n });\n };\n\n changeMark = ({ from, to, middle }) => {\n let mark = { ...this.state.mark, from, to };\n\n if (middle) {\n mark = { ...mark, middle };\n }\n\n this.setState({ mark });\n };\n\n changeMarkProps = ({ from, to, middle }) => {\n const { onChange, mark } = this.props;\n let update = { ...mark, ...this.state.mark };\n\n if (from) {\n update = { ...update, from };\n }\n\n if (to) {\n update = { ...update, to };\n }\n\n if (middle) {\n update = { ...update, middle };\n }\n\n if (!isEqual(mark, update)) {\n onChange(mark, update);\n }\n };\n\n render() {\n const { graphProps, onClick, labelNode, labelModeEnabled, coordinatesOnHover, limitLabeling } = this.props;\n const mark = this.state.mark ? this.state.mark : this.props.mark;\n\n const from = cloneDeep(mark.from);\n const to = cloneDeep(mark.to);\n const middle = cloneDeep(mark.middle);\n\n // SET DISABLED\n // if it's a background mark, we need to force disable it\n if (from && mark.isBackground) {\n from.disabled = true;\n }\n\n if (to && mark.isBackground) {\n to.disabled = true;\n }\n\n if (middle && mark.isBackground) {\n middle.disabled = true;\n }\n\n return (\n <Component\n disabled={mark.disabled}\n coordinatesOnHover={coordinatesOnHover}\n correctness={mark.correctness}\n from={from}\n to={to}\n middle={middle}\n graphProps={graphProps}\n onChange={this.changeMark}\n changeMarkProps={this.changeMarkProps}\n onClick={onClick}\n onDragStart={this.startDrag}\n onDragStop={this.stopDrag}\n labelNode={labelNode}\n labelModeEnabled={labelModeEnabled}\n limitLabeling={limitLabeling}\n />\n );\n }\n };\n};\n\nconst dragOpts = () => ({\n bounds: (props, { domain, range }) => {\n const area = utils.lineToArea(props.from, props.to);\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n const { from } = props;\n return from;\n },\n fromDelta: (props, delta) => {\n const { from, to } = props;\n return {\n from: utils.point(from).add(utils.point(delta)),\n to: utils.point(to).add(utils.point(delta)),\n };\n },\n});\n\nexport const lineBase = (Comp, opts) => {\n const DraggableComp = gridDraggable(dragOpts())(Comp);\n\n const FromPoint = opts && opts.from ? opts.from : BasePoint;\n const ToPoint = opts && opts.to ? opts.to : BasePoint;\n\n class LineBase extends React.Component {\n static propTypes = {\n coordinatesOnHover: PropTypes.bool,\n graphProps: types.GraphPropsType,\n from: types.PointType,\n to: types.PointType,\n middle: types.PointType,\n onChange: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n onClick: PropTypes.func,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n labelNode: PropTypes.object,\n labelModeEnabled: PropTypes.bool,\n changeMarkProps: PropTypes.func,\n };\n\n onChangePoint = (point) => {\n const { middle, onChange } = this.props;\n const { from, to } = point;\n\n // because point.from.label and point.to.label can be different\n if (!equalPoints(from, to)) {\n if (middle) {\n point.middle = { ...middle, ...getMiddleOfTwoPoints(from, to) };\n }\n\n onChange(point);\n }\n };\n\n dragComp = ({ from: draggedFrom, to: draggedTo }) => {\n const { from, to, onChange, middle } = this.props;\n\n if (from.label) {\n draggedFrom.label = from.label;\n }\n\n if (to.label) {\n draggedTo.label = to.label;\n }\n\n const updated = { from: draggedFrom, to: draggedTo };\n\n if (middle) {\n updated.middle = { ...middle, ...getMiddleOfTwoPoints(draggedFrom, draggedTo) };\n }\n\n onChange(updated);\n };\n\n dragFrom = (draggedFrom) => {\n const { from, to } = this.props;\n\n if (from.label) {\n draggedFrom.label = from.label;\n }\n\n if (!equalPoints(draggedFrom, to)) {\n this.onChangePoint({ from: draggedFrom, to: to });\n }\n };\n\n dragTo = (draggedTo) => {\n const { from, to } = this.props;\n\n if (to.label) {\n draggedTo.label = to.label;\n }\n\n if (!equalPoints(from, draggedTo)) {\n this.onChangePoint({ from: from, to: draggedTo });\n }\n };\n\n labelChange = (point, type) => {\n const { changeMarkProps } = this.props;\n const update = { ...point };\n\n if (!point.label || isEmpty(point.label)) {\n delete update.label;\n }\n\n changeMarkProps({ [type]: update });\n };\n\n clickPoint = (point, type, data) => {\n const { changeMarkProps, disabled, from, to, labelModeEnabled, limitLabeling, onClick } = this.props;\n\n if (!labelModeEnabled) {\n onClick(point || data);\n return;\n }\n\n if (disabled) {\n return;\n }\n\n // limit labeling the points of the line\n if (limitLabeling) {\n return;\n }\n\n if (type === 'middle' && !point && from && to) {\n point = { ...point, ...getMiddleOfTwoPoints(from, to) };\n }\n\n changeMarkProps({ from, to, [type]: { label: '', ...point } });\n\n if (this.input[type]) {\n this.input[type].focus();\n }\n };\n\n // IMPORTANT, do not remove\n input = {};\n\n render() {\n const {\n coordinatesOnHover,\n graphProps,\n onDragStart,\n onDragStop,\n from,\n to,\n middle,\n disabled,\n correctness,\n onClick,\n labelNode,\n labelModeEnabled,\n } = this.props;\n const common = { graphProps, onDragStart, onDragStop, disabled, correctness, onClick };\n const angle = to ? trig.toDegrees(trig.angle(from, to)) : 0;\n\n let fromLabelNode = null;\n let toLabelNode = null;\n let lineLabelNode = null;\n\n if (labelNode) {\n if (from && from.hasOwnProperty('label')) {\n fromLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.from = r)}\n disabled={!labelModeEnabled}\n mark={from}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...from, label }, 'from')}\n />,\n labelNode,\n );\n }\n\n if (to && to.hasOwnProperty('label')) {\n toLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.to = r)}\n disabled={!labelModeEnabled}\n mark={to}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...to, label }, 'to')}\n />,\n labelNode,\n );\n }\n\n if (middle && middle.hasOwnProperty('label')) {\n lineLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.middle = r)}\n disabled={!labelModeEnabled}\n mark={middle}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...middle, label }, 'middle')}\n />,\n labelNode,\n );\n }\n }\n\n return (\n <g>\n {to && (\n <DraggableComp\n from={from}\n to={to}\n middle={middle}\n onDrag={this.dragComp}\n {...common}\n onClick={(data) => this.clickPoint(middle, 'middle', data)}\n />\n )}\n {lineLabelNode}\n\n <FromPoint\n x={from.x}\n y={from.y}\n labelNode={labelNode}\n coordinatesOnHover={coordinatesOnHover}\n onDrag={this.dragFrom}\n {...common}\n onClick={(data) => this.clickPoint(from, 'from', data)}\n />\n {fromLabelNode}\n\n {to && (\n <ToPoint\n x={to.x}\n y={to.y}\n angle={angle} //angle + 45}\n labelNode={labelNode}\n coordinatesOnHover={coordinatesOnHover}\n onDrag={this.dragTo}\n {...common}\n onClick={(data) => this.clickPoint(to, 'to', data)}\n />\n )}\n {toLabelNode}\n </g>\n );\n }\n }\n\n return LineBase;\n};\n\nexport const styles = {\n line: () => ({\n fill: 'transparent',\n stroke: color.defaults.BLACK,\n strokeWidth: 3,\n transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',\n '&:hover': {\n strokeWidth: 6,\n stroke: color.defaults.PRIMARY_DARK,\n },\n }),\n arrow: () => ({\n fill: color.defaults.BLACK,\n }),\n disabledArrow: () => ({\n ...disabledSecondary(),\n }),\n disabledSecondary: () => ({\n ...disabledSecondary('stroke'),\n strokeWidth: 2,\n }),\n disabled: () => ({\n ...disabled('stroke'),\n strokeWidth: 2,\n }),\n correct: (theme, key) => ({\n ...correct(key),\n }),\n incorrect: (theme, key) => ({\n ...incorrect(key),\n }),\n missing: (theme, key) => ({\n ...missing(key),\n strokeWidth: 1,\n strokeDasharray: '4 3',\n }),\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport { LinePath } from './line-path';\nimport { curveMonotoneX } from '@vx/curve';\nimport { lineBase, lineToolComponent } from './index';\n\nconst toRootEdge = (m) => {\n const out = { ...m };\n out.root = { ...m.from };\n out.edge = m.to ? { ...m.to } : undefined;\n delete out.from;\n delete out.to;\n return out;\n};\n\nconst toFromTo = (m) => {\n const out = { ...m };\n out.from = { ...m.root };\n out.to = m.edge ? { ...m.edge } : undefined;\n delete out.root;\n delete out.edge;\n return out;\n};\n\nexport const rootEdgeToFromToWrapper = (BaseComp) => {\n const Wrapper = (props) => {\n const m = toFromTo(props.mark);\n\n const onChange = (current, next) => {\n props.onChange(toRootEdge(current), toRootEdge(next));\n };\n\n return <BaseComp {...props} mark={m} onChange={onChange} />;\n };\n\n Wrapper.propTypes = {\n onChange: PropTypes.func,\n mark: PropTypes.object,\n };\n\n return Wrapper;\n};\n\nexport const rootEdgeComponent = (RootEdgeComp) => {\n const BaseComponent = lineToolComponent(RootEdgeComp);\n return rootEdgeToFromToWrapper(BaseComponent);\n};\n\nconst withPointsGenerationLinePath = (getPoints) => {\n const LinePathComponent = (props) => {\n const { graphProps, from, to, onClick, onDragStart, onDragStop, onChange, disabled, correctness, ...rest } = props;\n\n const { dataPoints, enableCurve = true } = getPoints({\n graphProps: props.graphProps,\n root: from,\n edge: to,\n });\n\n const raw = dataPoints.map((d) => [graphProps.scale.x(d.x), graphProps.scale.y(d.y)]);\n\n const common = {\n onClick,\n graphProps,\n onDragStart,\n onDragStop,\n onChange,\n disabled,\n correctness,\n };\n\n if (!enableCurve) {\n return <LinePath data={raw} from={from} to={to} {...common} {...rest} />;\n } else {\n return <LinePath data={raw} from={from} to={to} curve={curveMonotoneX} {...common} {...rest} />;\n }\n };\n\n LinePathComponent.propTypes = {\n graphProps: types.GraphPropsType.isRequired,\n from: types.PointType.isRequired,\n to: types.PointType,\n onClick: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n onChange: PropTypes.func,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n };\n\n return LinePathComponent;\n};\n\nexport const withRootEdge = (getPoints) => {\n const LinePathComp = withPointsGenerationLinePath(getPoints);\n return lineBase(LinePathComp);\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { BasePoint } from '../shared/point';\nimport BgCircle from './bg-circle';\nimport { getMiddleOfTwoPoints, point, equalPoints } from '../../utils';\nimport classNames from 'classnames';\nimport { types } from '@pie-lib/plot';\nimport { rootEdgeComponent } from '../shared/line/with-root-edge';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../mark-label';\nimport isEmpty from 'lodash/isEmpty';\nimport { color } from '@pie-lib/render-ui';\n\nconst opacityPulsate = (opacity) => ({\n '0%': { opacity: '0.0' },\n '50%': { opacity },\n '100%': { opacity: '0.0' },\n});\n\nconst getRadius = (from, outer) => {\n const c = point(from);\n return c.dist(point(outer));\n};\n\nexport class RawBaseCircle extends React.Component {\n static propTypes = {\n building: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n coordinatesOnHover: PropTypes.bool,\n correctness: PropTypes.string,\n from: types.PointType,\n disabled: PropTypes.bool,\n to: types.PointType,\n middle: types.PointType,\n onChange: PropTypes.func.isRequired,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n graphProps: types.GraphPropsType.isRequired,\n onClick: PropTypes.func,\n labelNode: PropTypes.object,\n labelModeEnabled: PropTypes.bool,\n changeMarkProps: PropTypes.func,\n limitLabeling: PropTypes.bool,\n };\n\n static defaultProps = {\n onClick: () => ({}),\n };\n\n onChangePoint = (point) => {\n const { middle, onChange } = this.props;\n const { from, to } = point;\n\n // because point.from.label and point.to.label can be different\n if (!equalPoints(from, to)) {\n if (middle) {\n point.middle = { ...middle, ...getMiddleOfTwoPoints(from, to) };\n }\n\n onChange(point);\n }\n };\n\n dragFrom = (draggedFrom) => {\n const { from, to } = this.props;\n\n if (from.label) {\n draggedFrom.label = from.label;\n }\n\n if (!equalPoints(draggedFrom, to)) {\n this.onChangePoint({ from: draggedFrom, to });\n }\n };\n\n dragTo = (draggedTo) => {\n const { from, to } = this.props;\n\n if (to.label) {\n draggedTo.label = to.label;\n }\n\n if (!equalPoints(from, draggedTo)) {\n this.onChangePoint({ from, to: draggedTo });\n }\n };\n\n dragCircle = (draggedFrom) => {\n const { from, to, onChange, middle } = this.props;\n const diff = point(from).sub(point(draggedFrom));\n const draggedTo = point(to).sub(diff);\n\n if (from.label) {\n draggedFrom.label = from.label;\n }\n\n if (to.label) {\n draggedTo.label = to.label;\n }\n\n const updated = { from: draggedFrom, to: draggedTo };\n\n if (middle) {\n updated.middle = { ...middle, ...getMiddleOfTwoPoints(draggedFrom, draggedTo) };\n }\n\n this.setState(\n {\n draggedroot: undefined,\n draggedOuter: undefined,\n isCircleDrag: false,\n },\n () => {\n onChange(updated);\n },\n );\n };\n\n labelChange = (point, type) => {\n const { changeMarkProps } = this.props;\n const update = { ...point };\n\n if (!point.label || isEmpty(point.label)) {\n delete update.label;\n }\n\n changeMarkProps({ [type]: update });\n };\n\n clickPoint = (point, type, data) => {\n const { changeMarkProps, disabled, from, to, labelModeEnabled, limitLabeling, onClick } = this.props;\n if (!labelModeEnabled) {\n onClick(point || data);\n return;\n }\n\n if (disabled) {\n return;\n }\n\n // limit labeling the points of the circle\n if (limitLabeling) {\n return;\n }\n\n if (type === 'middle' && !point && from && to) {\n point = { ...point, ...getMiddleOfTwoPoints(from, to) };\n }\n\n changeMarkProps({ from, to, [type]: { label: '', ...point } });\n\n if (this.input[type]) {\n this.input[type].focus();\n }\n };\n\n // IMPORTANT, do not remove\n input = {};\n\n render() {\n let {\n from,\n to,\n middle,\n disabled,\n classes,\n coordinatesOnHover,\n building,\n onDragStart,\n onDragStop,\n onClick,\n correctness,\n graphProps,\n labelNode,\n labelModeEnabled,\n } = this.props;\n const common = { onDragStart, onDragStop, graphProps, onClick };\n\n to = to || from;\n\n const radius = getRadius(from, to);\n\n let fromLabelNode = null;\n let toLabelNode = null;\n let circleLabelNode = null;\n\n if (labelNode) {\n if (from && from.hasOwnProperty('label')) {\n fromLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.from = r)}\n disabled={!labelModeEnabled}\n mark={from}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...from, label }, 'from')}\n />,\n labelNode,\n );\n }\n\n if (to && to.hasOwnProperty('label')) {\n toLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.to = r)}\n disabled={!labelModeEnabled}\n mark={to}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...to, label }, 'to')}\n />,\n labelNode,\n );\n }\n\n if (middle && middle.hasOwnProperty('label')) {\n circleLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.middle = r)}\n disabled={!labelModeEnabled}\n mark={middle}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...middle, label }, 'middle')}\n />,\n labelNode,\n );\n }\n }\n\n return (\n <g>\n <BgCircle\n disabled={building || disabled}\n correctness={correctness}\n className={classNames(building && classes.bgCircleBuilding)}\n x={from.x}\n y={from.y}\n radius={radius}\n onDrag={this.dragCircle}\n {...common}\n onClick={(data) => this.clickPoint(middle, 'middle', data)}\n />\n {circleLabelNode}\n\n <BasePoint\n disabled={building || disabled}\n coordinatesOnHover={coordinatesOnHover}\n correctness={correctness}\n labelNode={labelNode}\n x={to.x}\n y={to.y}\n onDrag={this.dragTo}\n {...common}\n onClick={(data) => this.clickPoint(to, 'to', data)}\n />\n {toLabelNode}\n\n <BasePoint\n disabled={building || disabled}\n coordinatesOnHover={coordinatesOnHover}\n correctness={correctness}\n labelNode={labelNode}\n x={from.x}\n y={from.y}\n className={classes.from}\n onDrag={this.dragFrom}\n {...common}\n onClick={(data) => this.clickPoint(from, 'from', data)}\n />\n {fromLabelNode}\n </g>\n );\n }\n}\n\nexport const BaseCircle = withStyles(() => ({\n outerLine: {\n fill: 'rgb(0,0,0,0)', // TODO hardcoded color\n stroke: color.defaults.BLACK,\n strokeWidth: 4,\n '&:hover': {\n strokeWidth: 6,\n stroke: color.defaults.PRIMARY_DARK,\n },\n },\n root: {},\n bgCircleBuilding: {\n stroke: color.defaults.BLACK,\n animation: 'opacityPulse 2s ease-out',\n animationIterationCount: 'infinite',\n opacity: 1,\n },\n '@keyframes opacityPulse': opacityPulsate('0.3'),\n}))(RawBaseCircle);\n\nconst Component = rootEdgeComponent(BaseCircle);\nexport default Component;\n","import Circle from './component';\nimport { equalPoints } from '../../utils';\n\nexport const tool = () => ({\n type: 'circle',\n Component: Circle,\n hover: (point, mark) => {\n return { ...mark, edge: point };\n },\n addPoint: (point, mark) => {\n if (mark && equalPoints(mark.root, point)) {\n return mark;\n }\n\n if (!mark) {\n return {\n type: 'circle',\n root: point,\n building: true,\n };\n } else {\n return { ...mark, edge: point, building: false };\n }\n },\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types, gridDraggable } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport * as utils from '../../utils';\nimport classNames from 'classnames';\nimport { correct, disabled, disabledSecondary, incorrect, missing } from '../shared/styles';\n\nclass RawLine extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object,\n from: types.PointType,\n to: types.PointType,\n graphProps: types.GraphPropsType.isRequired,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n };\n\n static defaultProps = {\n from: {},\n to: {},\n };\n\n render() {\n const { graphProps, classes, from, to, className, disabled, correctness, ...rest } = this.props;\n const { scale } = graphProps;\n return (\n <line\n x1={scale.x(from.x)}\n y1={scale.y(from.y)}\n x2={scale.x(to.x)}\n y2={scale.y(to.y)}\n className={classNames(classes.line, disabled && classes.disabledSecondary, className, classes[correctness])}\n {...rest}\n />\n );\n }\n}\n\nexport const Line = withStyles(() => ({\n line: {\n strokeWidth: 3,\n transition: 'stroke-width 200ms ease-in, stroke 200ms ease-in',\n stroke: 'transparent',\n '&:hover': {\n strokeWidth: 4,\n stroke: color.defaults.BLACK,\n },\n },\n disabled: {\n ...disabled('stroke'),\n strokeWidth: 2,\n },\n disabledSecondary: {\n ...disabledSecondary('stroke'),\n strokeWidth: 2,\n },\n correct: correct('stroke'),\n incorrect: incorrect('stroke'),\n missing: {\n ...missing('stroke'),\n strokeWidth: 1,\n strokeDasharray: '4 3',\n },\n}))(RawLine);\n\nexport default gridDraggable({\n bounds: (props, { domain, range }) => {\n const { from, to } = props;\n const area = utils.lineToArea(from, to);\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n const { from } = props;\n return from;\n },\n fromDelta: (props, delta) => {\n const { from, to } = props;\n return {\n from: utils.point(from).add(utils.point(delta)),\n to: utils.point(to).add(utils.point(delta)),\n };\n },\n})(Line);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { gridDraggable, types } from '@pie-lib/plot';\nimport * as utils from '../../utils';\nimport classNames from 'classnames';\nimport { color } from '@pie-lib/render-ui';\nimport { fade } from '@material-ui/core/styles/colorManipulator';\nimport { correct, disabled, incorrect, missing } from '../shared/styles';\n\nexport const getPointString = (points, scale) => {\n return (points || [])\n .map((p) => {\n const scaledPoint = {\n x: scale.x(p.x),\n y: scale.y(p.y),\n };\n return `${scaledPoint.x},${scaledPoint.y}`;\n })\n .join(' ');\n};\n\nexport class RawPolygon extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n points: PropTypes.arrayOf(types.PointType),\n graphProps: types.GraphPropsType.isRequired,\n closed: PropTypes.bool.isRequired,\n correctness: PropTypes.string,\n };\n\n static defaultProps = {\n points: [],\n };\n\n render() {\n const { points, classes, className, disabled, correctness, graphProps, closed, ...rest } = this.props;\n const { scale } = graphProps;\n\n const pointString = getPointString(points, scale);\n const Tag = closed ? 'polygon' : 'polyline';\n return (\n <Tag\n points={pointString}\n className={classNames(\n closed && classes.closed,\n !closed && classes.open,\n disabled && classes.disabled,\n classes[correctness],\n className,\n )}\n {...rest}\n />\n );\n }\n}\n\nexport const Polygon = withStyles((theme) => ({\n closed: {\n fill: fade(theme.palette.primary.light, 0.2), // TODO hardcoded color\n strokeWidth: 2,\n stroke: color.defaults.BLACK,\n },\n open: {\n fill: fade(theme.palette.primary.light, 0.0), // TODO hardcoded color\n strokeWidth: 2,\n stroke: color.defaults.BLACK,\n pointerEvents: 'none',\n },\n disabled: {\n ...disabled('stroke'),\n },\n correct: {\n ...correct('stroke'),\n },\n incorrect: {\n ...incorrect('stroke'),\n },\n missing: {\n ...missing('stroke'),\n stroke: 'inherit',\n },\n}))(RawPolygon);\n\nexport default gridDraggable({\n bounds: (props, { domain, range }) => {\n const { points } = props;\n const area = utils.polygonToArea(points);\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n const { points } = props;\n return points[0];\n },\n fromDelta: (props, delta) => {\n const { points } = props;\n\n return points.map((p) => utils.point(p).add(utils.point(delta)));\n },\n})(Polygon);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { ToolPropTypeFields } from '../shared/types';\nimport { BasePoint } from '../shared/point';\nimport chunk from 'lodash/chunk';\nimport initial from 'lodash/initial';\nimport debug from 'debug';\nimport Line from './line';\nimport DraggablePolygon, { Polygon } from './polygon';\nimport { types } from '@pie-lib/plot';\nimport invariant from 'invariant';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../mark-label';\nimport isEmpty from 'lodash/isEmpty';\nimport { getMiddleOfTwoPoints, getRightestPoints, equalPoints } from '../../utils';\n\nconst log = debug('pie-lib:graphing:polygon');\n\nexport const buildLines = (points, closed) => {\n const expanded = points.reduce((acc, p, index) => {\n acc.push({ ...p, index });\n\n const isLast = index === points.length - 1;\n const next = isLast ? 0 : index + 1;\n\n acc.push({ ...points[next], index: next });\n\n return acc;\n }, []);\n\n const all = chunk(expanded, 2).map(([from, to]) => {\n return { from, to };\n });\n\n return closed ? all : initial(all);\n};\n\nexport const swap = (arr, ...rest) => {\n const pairs = chunk(rest, 2);\n\n return pairs.reduce(\n (acc, pr) => {\n if (pr.length === 2) {\n let [e, replacement] = pr;\n\n invariant(Number.isFinite(e.index), 'Index must be defined');\n\n const index = e.index;\n // const i = acc.findIndex(pt => pt.x === e.x && pt.y === e.y);\n\n if (index >= 0) {\n acc.splice(index, 1, replacement);\n\n return acc;\n } else {\n return acc;\n }\n } else {\n return acc;\n }\n },\n [...arr],\n );\n};\n\nexport class RawBaseComponent extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n points: PropTypes.arrayOf(types.PointType),\n closed: PropTypes.bool,\n coordinatesOnHover: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n onClosePolygon: PropTypes.func.isRequired,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n onClick: PropTypes.func,\n graphProps: types.GraphPropsType.isRequired,\n isToolActive: PropTypes.bool,\n middle: PropTypes.object,\n labelNode: PropTypes.object,\n labelModeEnabled: PropTypes.bool,\n limitLabeling: PropTypes.bool,\n onChangeLabelProps: PropTypes.func,\n onChangeProps: PropTypes.func,\n };\n\n static defaultProps = {\n points: [],\n };\n\n dragPoint = (index, from, to) => {\n log('[dragPoint] from, to:', from, to);\n const { onChange, points } = this.props;\n const update = [...points];\n const overlapPoint = !!(points || []).find((p) => equalPoints(p, to));\n\n if (equalPoints(from, to) || overlapPoint) {\n return;\n }\n\n if (points[index].label) {\n to.label = points[index].label;\n }\n\n update.splice(index, 1, to);\n onChange(update);\n };\n\n dragLine = (existing, next) => {\n log('[dragLine]: ', existing, next);\n const { onChange } = this.props;\n\n if (existing.from.label) {\n next.from.label = existing.from.label;\n }\n\n if (existing.to.label) {\n next.to.label = existing.to.label;\n }\n\n const points = swap(this.props.points, existing.from, next.from, existing.to, next.to);\n onChange(points);\n };\n\n dragPoly = (existing, next) => {\n log('[dragPoly] ', existing, next);\n const { onChange } = this.props;\n\n next.forEach((point, index) => {\n if (existing[index].label) {\n next[index].label = existing[index].label;\n }\n });\n\n onChange(next);\n };\n\n close = () => {\n const { points, onClosePolygon } = this.props;\n log('[close] ...');\n\n if (points.length >= 3) {\n onClosePolygon();\n } else {\n log('[close] - nope');\n }\n };\n\n labelChange = (point, index) => {\n const { points, onChangeProps } = this.props;\n const updatedPoint = { ...point };\n\n if (!point.label || isEmpty(point.label)) {\n delete updatedPoint.label;\n }\n\n const update = [...points];\n\n update.splice(index, 1, updatedPoint);\n onChangeProps(update);\n };\n\n clickPoint = (point, index, data) => {\n const {\n closed,\n disabled,\n onClick,\n isToolActive,\n labelModeEnabled,\n limitLabeling,\n onChangeProps,\n onChangeLabelProps,\n points,\n } = this.props;\n\n if (labelModeEnabled) {\n // limit labeling the points of the polygon\n if (disabled || limitLabeling) {\n return;\n }\n\n if (points && index === points.length) {\n const { a, b } = getRightestPoints(points);\n const middle = { label: '', ...point, ...getMiddleOfTwoPoints(a, b) };\n\n onChangeLabelProps(middle);\n } else {\n const update = [...points];\n\n update.splice(index, 1, { label: '', ...point });\n onChangeProps(update);\n }\n\n if (this.input[index]) {\n this.input[index].focus();\n }\n\n return;\n }\n\n if (isToolActive && !closed && index === 0) {\n this.close();\n return;\n }\n\n onClick(point || data);\n };\n\n // IMPORTANT, do not remove\n input = {};\n\n render() {\n const {\n closed,\n coordinatesOnHover,\n correctness,\n disabled,\n graphProps,\n onChangeLabelProps,\n onDragStart,\n onDragStop,\n points,\n middle,\n labelNode,\n labelModeEnabled,\n } = this.props;\n const lines = buildLines(points, closed);\n const common = { onDragStart, onDragStop, graphProps, disabled, correctness };\n const polygonLabelIndex = (points && points.length) || 0;\n let polygonLabelNode = null;\n\n if (labelNode && middle && middle.hasOwnProperty('label')) {\n polygonLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input[polygonLabelIndex] = r)}\n disabled={!labelModeEnabled}\n mark={middle}\n graphProps={graphProps}\n onChange={(label) => onChangeLabelProps({ ...middle, label })}\n />,\n labelNode,\n );\n }\n\n return (\n <g>\n {closed ? (\n <React.Fragment>\n <DraggablePolygon\n points={points}\n onDrag={this.dragPoly.bind(this, points)}\n closed={closed}\n {...common}\n onClick={this.clickPoint.bind(this, middle, polygonLabelIndex)}\n />\n {polygonLabelNode}\n </React.Fragment>\n ) : (\n <Polygon points={points} graphProps={graphProps} closed={closed} />\n )}\n {(lines || []).map((l, index) => (\n <Line\n key={`line-${index}`}\n from={l.from}\n to={l.to}\n onDrag={this.dragLine.bind(this, l)}\n {...common}\n onClick={this.clickPoint.bind(this, middle, polygonLabelIndex)}\n />\n ))}\n\n {(points || []).map((p, index) => {\n return [\n <BasePoint\n key={`point-${index}`}\n coordinatesOnHover={coordinatesOnHover}\n labelNode={labelNode}\n x={p.x}\n y={p.y}\n onDrag={this.dragPoint.bind(this, index, p)}\n {...common}\n onClick={this.clickPoint.bind(this, p, index)}\n />,\n labelNode && p.hasOwnProperty('label')\n ? ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input[index] = r)}\n disabled={!labelModeEnabled}\n mark={p}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...p, label }, index)}\n />,\n labelNode,\n )\n : null,\n ];\n })}\n </g>\n );\n }\n}\n\nexport const BaseComponent = withStyles(() => ({}))(RawBaseComponent);\n\nexport default class Component extends React.Component {\n static propTypes = {\n ...ToolPropTypeFields,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n change = (points) => {\n const {\n mark: { middle },\n } = this.props;\n const mark = { ...this.state.mark, points };\n\n if (middle) {\n const { a, b } = getRightestPoints(points);\n\n mark.middle = { ...middle, ...getMiddleOfTwoPoints(a, b) };\n }\n\n this.setState({ mark });\n };\n\n changeProps = (points) => {\n const mark = { ...this.props.mark, points };\n\n this.props.onChange(this.props.mark, mark);\n };\n\n changeLabelProps = (point) => {\n const { mark, onChange } = this.props;\n const middle = { ...mark.middle, ...point };\n\n onChange(mark, { ...mark, middle });\n };\n\n closePolygon = () => {\n log('[closePolygon] ...');\n const { onComplete, mark } = this.props;\n const update = { ...mark, closed: true };\n\n onComplete(mark, update);\n };\n\n dragStart = () => this.setState({ mark: this.props.mark });\n\n dragStop = () => {\n const { onChange } = this.props;\n const m = { ...this.state.mark };\n\n this.setState({ mark: undefined }, () => {\n onChange(this.props.mark, m);\n });\n };\n\n render() {\n const {\n coordinatesOnHover,\n mark,\n graphProps,\n onClick,\n isToolActive,\n labelNode,\n labelModeEnabled,\n limitLabeling,\n } = this.props;\n const { mark: stateMark } = this.state;\n\n return (\n <BaseComponent\n {...(stateMark || mark)}\n coordinatesOnHover={coordinatesOnHover}\n onChange={this.change}\n onChangeLabelProps={this.changeLabelProps}\n onChangeProps={this.changeProps}\n onClosePolygon={this.closePolygon}\n onDragStart={this.dragStart}\n onDragStop={this.dragStop}\n onClick={onClick}\n graphProps={graphProps}\n isToolActive={isToolActive}\n labelNode={labelNode}\n labelModeEnabled={labelModeEnabled}\n limitLabeling={limitLabeling}\n />\n );\n }\n}\n","import Polygon from './component';\nimport { equalPoints } from '../../utils';\n\nexport const addPointToArray = (point, arr) => {\n arr = arr || [];\n\n if (arr.length === 0) {\n return { points: [point], closed: false };\n } else if (arr.length === 1) {\n if (equalPoints(point, arr[0])) {\n return { points: arr, closed: false };\n } else {\n return { points: [...arr, point], closed: false };\n }\n } else if (arr.length >= 2) {\n const closed = equalPoints(point, arr[0]);\n\n if (closed) {\n return { points: arr, closed };\n } else {\n const hasPoint = !!arr.find((p) => equalPoints(p, point));\n\n if (hasPoint) {\n return { points: arr, closed: false };\n } else {\n return { points: [...arr, point], closed: false };\n }\n }\n }\n};\n\nexport const tool = () => ({\n type: 'polygon',\n Component: Polygon,\n complete: (data, mark) => {\n return { ...mark, building: false, closed: true };\n },\n addPoint: (point, mark) => {\n if (!mark) {\n return {\n type: 'polygon',\n points: [point],\n closed: false,\n building: true,\n };\n } else {\n const { closed, points } = addPointToArray(point, mark.points);\n\n return { ...mark, closed, points, building: !closed };\n }\n },\n});\n","import debug from 'debug';\nimport { sinY, buildDataPoints, getAmplitudeAndFreq, FREQ_DIVIDER } from '@pie-lib/graphing-utils';\nimport { withRootEdge, rootEdgeComponent } from '../shared/line/with-root-edge';\n\nconst log = debug('pie-lib:graphing:sine');\n\nconst Sine = withRootEdge((props) => {\n const { root, edge, graphProps } = props;\n const { domain, range } = graphProps;\n\n const { amplitude, freq } = getAmplitudeAndFreq(root, edge);\n const interval = freq / FREQ_DIVIDER;\n\n log('[getPoints] amplitude:', amplitude, 'freq:', freq);\n\n const dataPoints =\n edge && edge.x === root.x\n ? []\n : buildDataPoints(\n { ...domain, step: interval },\n range,\n root,\n edge,\n sinY(amplitude, freq, { phase: root.x, vertical: root.y }),\n );\n\n return { root: props.root, edge: props.edge, dataPoints };\n});\n\nconst Component = rootEdgeComponent(Sine);\n\nexport default Component;\n","import Sine from './component';\nimport debug from 'debug';\nimport { equalPoints, sameAxes } from '../../utils';\n\nconst log = debug('pie-lib:graphing:sine');\n\nexport const tool = () => ({\n type: 'sine',\n Component: Sine,\n complete: (data, mark) => {\n return { ...mark, building: false, closed: true };\n },\n addPoint: (point, mark) => {\n log('add point to sine model: ', point, 'mark: ', mark);\n if (mark && (equalPoints(mark.root, point) || sameAxes(mark.root, point))) {\n return mark;\n }\n\n if (!mark) {\n return {\n type: 'sine',\n root: point,\n edge: undefined,\n closed: false,\n building: true,\n };\n } else if (mark && !mark.root) {\n throw new Error('no root - should never happen');\n } else {\n return { ...mark, edge: point, closed: true, building: false };\n }\n },\n});\n","import debug from 'debug';\nimport { buildDataPoints, parabolaFromTwoPoints } from '@pie-lib/graphing-utils';\nimport { withRootEdge, rootEdgeComponent } from '../shared/line/with-root-edge';\n\nconst log = debug('pie-lib:graphing:parabola');\n\nconst Parabola = withRootEdge((props) => {\n const { root, edge, graphProps } = props;\n const { domain, range } = graphProps;\n\n const dataPoints =\n edge && edge.x === root.x\n ? []\n : buildDataPoints(domain, range, root, edge, parabolaFromTwoPoints(root, edge), true);\n\n log('dataPoints:', dataPoints);\n\n return { root: props.root, edge: props.edge, dataPoints };\n});\n\nconst Component = rootEdgeComponent(Parabola);\n\nexport default Component;\n","import Parabola from './component';\nimport debug from 'debug';\nimport { equalPoints, sameAxes } from '../../utils';\n\nconst log = debug('pie-lib:graphing:parabola');\n\nexport const tool = () => ({\n type: 'parabola',\n Component: Parabola,\n complete: (data, mark) => ({ ...mark, building: false, closed: true }),\n addPoint: (point, mark) => {\n log('add point to parabola model: ', point, 'mark: ', mark);\n if (mark && (equalPoints(mark.root, point) || sameAxes(mark.root, point))) {\n return mark;\n }\n\n if (!mark) {\n return {\n type: 'parabola',\n root: point,\n edge: undefined,\n closed: false,\n building: true,\n };\n } else if (mark && !mark.root) {\n throw new Error('no root - should never happen');\n } else {\n return { ...mark, edge: point, closed: true, building: false };\n }\n },\n});\n","import { lineToolComponent, lineBase, styles } from '../shared/line';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { trig, types } from '@pie-lib/plot';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { ArrowMarker, genUid } from '../shared/arrow-head';\nimport { thinnerShapesNeeded, getAdjustedGraphLimits } from '../../utils';\n\nconst lineStyles = (theme) => ({\n line: styles.line(theme),\n enabledArrow: styles.arrow(theme),\n disabledArrow: styles.disabledArrow(theme),\n disabled: styles.disabled(theme),\n disabledSecondary: styles.disabledSecondary(theme),\n correct: styles.correct(theme, 'stroke'),\n correctArrow: styles.correct(theme),\n incorrect: styles.incorrect(theme, 'stroke'),\n incorrectArrow: styles.incorrect(theme),\n missing: styles.missing(theme, 'stroke'),\n missingArrow: styles.missing(theme),\n});\n\nexport const ArrowedLine = (props) => {\n const markerId = genUid();\n const { className, classes, correctness, disabled, graphProps, from, to, ...rest } = props;\n const { scale } = graphProps;\n const { domain, range } = getAdjustedGraphLimits(graphProps);\n const [eFrom, eTo] = trig.edges(domain, range)(from, to);\n const suffix = correctness || (disabled && 'disabled') || 'enabled';\n\n return (\n <g>\n <defs>\n <ArrowMarker\n size={thinnerShapesNeeded(graphProps) ? 4 : 5}\n id={`${props.markerId || markerId}-${suffix}`}\n className={classNames(classes[`${suffix}Arrow`])}\n />\n </defs>\n <line\n x1={scale.x(eFrom.x)}\n y1={scale.y(eFrom.y)}\n x2={scale.x(eTo.x)}\n y2={scale.y(eTo.y)}\n className={classNames(classes.line, disabled && classes.disabledSecondary, classes[correctness], className)}\n markerEnd={`url(#${props.markerId || markerId}-${suffix})`}\n markerStart={`url(#${props.markerId || markerId}-${suffix})`}\n {...rest}\n />\n </g>\n );\n};\n\nArrowedLine.propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n graphProps: types.GraphPropsType,\n from: types.PointType,\n to: types.PointType,\n markerId: PropTypes.string,\n};\n\nconst StyledArrowedLine = withStyles(lineStyles)(ArrowedLine);\n\nconst Line = lineBase(StyledArrowedLine);\nconst Component = lineToolComponent(Line);\n\nexport default Component;\n","import Line from './component';\nimport { lineTool } from '../shared/line';\n\nexport const tool = lineTool('line', Line);\n","import { lineToolComponent, lineBase, styles } from '../shared/line';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { types } from '@pie-lib/plot';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\n\nconst lineStyles = (theme) => ({\n line: styles.line(theme),\n disabled: styles.disabled(theme),\n disabledSecondary: styles.disabledSecondary(theme),\n correct: styles.correct(theme, 'stroke'),\n incorrect: styles.incorrect(theme, 'stroke'),\n missing: styles.missing(theme, 'stroke'),\n});\nexport const Line = (props) => {\n const { className, classes, correctness, disabled, graphProps, from, to, ...rest } = props;\n const { scale } = graphProps;\n\n return (\n <line\n stroke=\"green\"\n strokeWidth=\"6\"\n x1={scale.x(from.x)}\n y1={scale.y(from.y)}\n x2={scale.x(to.x)}\n y2={scale.y(to.y)}\n className={classNames(classes.line, disabled && classes.disabledSecondary, classes[correctness], className)}\n {...rest}\n />\n );\n};\n\nLine.propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n graphProps: PropTypes.any,\n from: types.PointType,\n to: types.PointType,\n};\n\nconst StyledLine = withStyles(lineStyles)(Line);\nconst Segment = lineBase(StyledLine);\nconst Component = lineToolComponent(Segment);\n\nexport default Component;\n","import Segment from './component';\nimport { lineTool } from '../shared/line';\n\nexport const tool = lineTool('segment', Segment);\n","import { lineToolComponent, lineBase, styles } from '../shared/line';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { ArrowMarker, genUid } from '../shared/arrow-head';\nimport { trig, types } from '@pie-lib/plot';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { thinnerShapesNeeded, getAdjustedGraphLimits } from '../../utils';\n\nconst rayStyles = (theme) => ({\n line: styles.line(theme),\n enabledArrow: styles.arrow(theme),\n disabledArrow: styles.disabledArrow(theme),\n disabled: styles.disabled(theme),\n disabledSecondary: styles.disabledSecondary(theme),\n correct: styles.correct(theme, 'stroke'),\n correctArrow: styles.correct(theme),\n incorrect: styles.incorrect(theme, 'stroke'),\n incorrectArrow: styles.incorrect(theme),\n missing: styles.missing(theme, 'stroke'),\n missingArrow: styles.missing(theme),\n});\n\nexport const RayLine = (props) => {\n const markerId = genUid();\n const { graphProps, from, to, classes, disabled, correctness, className, ...rest } = props;\n const { scale } = graphProps;\n const { domain, range } = getAdjustedGraphLimits(graphProps);\n const [aToB] = trig.edges(domain, range)(from, to);\n const suffix = correctness || (disabled && 'disabled') || 'enabled';\n\n return (\n <g>\n <defs>\n <ArrowMarker\n size={thinnerShapesNeeded(graphProps) ? 4 : 5}\n id={`${props.markerId || markerId}-${suffix}`}\n className={classNames(classes[`${suffix}Arrow`])}\n />\n </defs>\n <line\n x1={scale.x(from.x)}\n y1={scale.y(from.y)}\n x2={scale.x(aToB.x)}\n y2={scale.y(aToB.y)}\n {...rest}\n className={classNames(classes.line, disabled && classes.disabledSecondary, classes[correctness], className)}\n markerEnd={`url(#${props.markerId || markerId}-${suffix})`}\n />\n </g>\n );\n};\n\nRayLine.propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n graphProps: PropTypes.any,\n from: types.PointType,\n to: types.PointType,\n markerId: PropTypes.string,\n};\n\nconst StyledRay = withStyles(rayStyles)(RayLine);\n\nconst Ray = lineBase(StyledRay);\nconst Component = lineToolComponent(Ray);\n\nexport default Component;\n","import Ray from './component';\nimport { lineTool } from '../shared/line';\n\nexport const tool = lineTool('ray', Ray);\n","import { lineToolComponent, lineBase, styles } from '../shared/line';\nimport { Arrow } from '../shared/point';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { getDistanceBetweenTwoPoints } from '../../utils';\n\nconst lineStyles = (theme) => ({\n line: styles.line(theme),\n disabled: styles.disabled(theme),\n disabledSecondary: styles.disabledSecondary(theme),\n correct: styles.correct(theme, 'stroke'),\n incorrect: styles.incorrect(theme, 'stroke'),\n missing: styles.missing(theme, 'stroke'),\n});\n\nexport const Line = (props) => {\n const {\n className,\n classes,\n disabled,\n correctness,\n graphProps: { scale },\n from,\n to,\n ...rest\n } = props;\n const startPoint = { x: scale.x(from.x), y: scale.y(from.y) };\n const endPoint = { x: scale.x(to.x), y: scale.y(to.y) };\n const length = getDistanceBetweenTwoPoints(startPoint, endPoint);\n\n return (\n <line\n className={classNames(classes.line, disabled && classes.disabledSecondary, classes[correctness], className)}\n x1={startPoint.x}\n y1={startPoint.y}\n x2={endPoint.x}\n y2={endPoint.y}\n strokeDasharray={length - 7}\n {...rest}\n />\n );\n};\n\nLine.propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n graphProps: PropTypes.any,\n from: types.PointType,\n to: types.PointType,\n};\n\nconst StyledLine = withStyles(lineStyles)(Line);\nconst Vector = lineBase(StyledLine, { to: Arrow });\nconst Component = lineToolComponent(Vector);\n\nexport default Component;\n","import Vector from './component';\nimport { lineTool } from '../shared/line';\n\nexport const tool = lineTool('vector', Vector);\n","import debug from 'debug';\nimport { buildDataPoints, absoluteFromTwoPoints } from '@pie-lib/graphing-utils';\nimport { withRootEdge, rootEdgeComponent } from '../shared/line/with-root-edge';\n\nconst log = debug('pie-lib:graphing:absolute');\n\nconst Absolute = withRootEdge((props) => {\n const { root, edge, graphProps } = props;\n const { domain, range } = graphProps;\n\n const dataPoints =\n edge && edge.x === root.x\n ? []\n : buildDataPoints(domain, range, root, edge, absoluteFromTwoPoints(root, edge), true);\n\n log('dataPoints:', dataPoints);\n\n return { root: props.root, edge: props.edge, dataPoints, enableCurve: false };\n});\n\nconst Component = rootEdgeComponent(Absolute);\n\nexport default Component;\n","import Absolute from './component';\nimport debug from 'debug';\nimport { equalPoints, sameAxes } from '../../utils';\n\nconst log = debug('pie-lib:graphing:absolute');\n\nexport const tool = () => ({\n type: 'absolute',\n Component: Absolute,\n complete: (data, mark) => ({ ...mark, building: false, closed: true }),\n addPoint: (point, mark) => {\n log('add point to absolute model: ', point, 'mark: ', mark);\n if (mark && (equalPoints(mark.root, point) || sameAxes(mark.root, point))) {\n return mark;\n }\n\n if (!mark) {\n return {\n type: 'absolute',\n root: point,\n edge: undefined,\n closed: false,\n building: true,\n };\n } else if (mark && !mark.root) {\n throw new Error('no root - should never happen');\n } else {\n return { ...mark, edge: point, closed: true, building: false };\n }\n },\n});\n","import debug from 'debug';\nimport { buildDataPoints, exponentialFromTwoPoints } from '@pie-lib/graphing-utils';\nimport { withRootEdge, rootEdgeComponent } from '../shared/line/with-root-edge';\n\nconst log = debug('pie-lib:graphing:exponential');\n\nconst Exponential = withRootEdge((props) => {\n const { root, edge, graphProps } = props;\n const { domain, range } = graphProps;\n\n const dataPoints =\n edge && edge.x === root.x\n ? []\n : buildDataPoints(domain, range, root, edge, exponentialFromTwoPoints(root, edge), true);\n\n log('dataPoints:', dataPoints);\n\n return { root: props.root, edge: props.edge, dataPoints };\n});\n\nconst Component = rootEdgeComponent(Exponential);\n\nexport default Component;\n","import Exponential from './component';\nimport debug from 'debug';\nimport { equalPoints, sameAxes } from '../../utils';\n\nconst log = debug('pie-lib:graphing:exponential');\n\nexport const tool = () => ({\n type: 'exponential',\n Component: Exponential,\n complete: (data, mark) => ({ ...mark, building: false, closed: true }),\n addPoint: (point, mark) => {\n log('add point to exponential model: ', point, 'mark: ', mark);\n if (mark && (equalPoints(mark.root, point) || sameAxes(mark.root, point))) {\n return mark;\n }\n\n if (mark && mark.root.y * point.y < 0) {\n return mark;\n }\n\n if (point.y === 0) {\n return mark;\n }\n\n if (!mark) {\n return {\n type: 'exponential',\n root: point,\n edge: undefined,\n closed: false,\n building: true,\n };\n } else if (mark && !mark.root) {\n throw new Error('no root - should never happen');\n } else {\n return { ...mark, edge: point, closed: true, building: false };\n }\n },\n});\n","import { tool as point } from './point';\nimport { tool as circle } from './circle';\nimport { tool as polygon } from './polygon';\nimport { tool as sine } from './sine';\nimport { tool as parabola } from './parabola';\nimport { tool as line } from './line';\nimport { tool as segment } from './segment';\nimport { tool as ray } from './ray';\nimport { tool as vector } from './vector';\nimport { tool as absolute } from './absolute';\nimport { tool as exponential } from './exponential';\n\nconst allTools = [\n 'circle',\n 'line',\n 'label',\n 'parabola',\n 'point',\n 'polygon',\n 'ray',\n 'segment',\n 'sine',\n 'vector',\n 'absolute',\n 'exponential',\n];\n\n// need this because now we should treat label as other tools PD-3736\nconst labelTool = {\n type: 'label',\n};\n\nconst toolsArr = [\n circle(),\n line(),\n parabola(),\n point(),\n polygon(),\n ray(),\n segment(),\n sine(),\n vector(),\n absolute(),\n exponential(),\n labelTool,\n];\n\nexport { allTools, toolsArr, circle, line, point, parabola, polygon, ray, sine, vector, absolute, exponential };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport cn from 'classnames';\nimport Button from '@material-ui/core/Button';\nimport { color } from '@pie-lib/render-ui';\nimport { allTools } from './tools';\nimport { withDragContext, DragSource, DropTarget } from '@pie-lib/drag';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\n\nconst buttonStyles = () => ({\n root: {\n color: color.text(),\n },\n selected: {\n backgroundColor: color.background(),\n border: `1px solid ${color.secondary()}`,\n },\n notSelected: {\n '& span': {\n color: color.primary(),\n },\n backgroundColor: color.background(),\n },\n disabled: {\n '& span': {\n color: color.primary(),\n },\n backgroundColor: color.disabled(),\n },\n});\n\nexport const MiniButton = withStyles(buttonStyles)((props) => {\n const { disabled, classes, className, selected, value, onClick, language } = props;\n const translatorKey = value.toLowerCase();\n\n return (\n <Button\n size=\"small\"\n disabled={disabled}\n className={cn(classes.root, selected && classes.selected, className)}\n classes={{ disabled: cn(disabled && classes.disabled) }}\n value={value}\n key={value}\n variant=\"outlined\"\n onClick={(e) => onClick({ ...e, buttonValue: value })}\n >\n {translator.t(`graphing.${translatorKey}`, { lng: language })}\n </Button>\n );\n});\n\nMiniButton.propTypes = {\n disabled: PropTypes.bool,\n classes: PropTypes.object,\n className: PropTypes.string,\n disabledClassName: PropTypes.string,\n selected: PropTypes.bool,\n value: PropTypes.string,\n onClick: PropTypes.func,\n};\n\nexport class ToggleBar extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n options: PropTypes.arrayOf(PropTypes.string),\n selectedToolType: PropTypes.string,\n disabled: PropTypes.bool,\n draggableTools: PropTypes.bool,\n onChange: PropTypes.func,\n onChangeToolsOrder: PropTypes.func,\n language: PropTypes.string,\n };\n\n static defaultProps = {};\n\n select = (e) => this.props.onChange(e.buttonValue || e.target.textContent);\n\n moveTool = (dragIndex, hoverIndex) => {\n const { options, onChangeToolsOrder } = this.props;\n const dragged = options[dragIndex];\n\n options.splice(dragIndex, 1);\n options.splice(hoverIndex, 0, dragged);\n\n onChangeToolsOrder(options);\n };\n\n render() {\n const { classes, className, disabled, options, selectedToolType, draggableTools, language } = this.props;\n\n return (\n <div className={cn(className, classes.toolsContainer)}>\n {(options || []).map((option, index) => {\n if ((allTools || []).includes(option)) {\n const isSelected = option === selectedToolType;\n const toolRef = React.createRef();\n\n return (\n <DragTool\n key={option}\n index={index}\n draggable={draggableTools}\n moveTool={this.moveTool}\n classes={classes}\n toolRef={toolRef}\n >\n <MiniButton\n className={cn(classes.button, isSelected && classes.selected)}\n disabled={disabled}\n disableRipple={true}\n onClick={this.select}\n value={option}\n selected={isSelected}\n language={language}\n />\n </DragTool>\n );\n }\n })}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n toolsContainer: {\n display: 'flex',\n flexWrap: 'wrap',\n },\n button: {\n marginRight: theme.spacing.unit / 2,\n marginBottom: theme.spacing.unit / 2,\n color: color.text(),\n },\n under: {\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex: -1,\n pointerEvents: 'none',\n },\n wrapper: {\n position: 'relative',\n },\n hidden: {\n opacity: 0,\n },\n});\n\nexport default withDragContext(withStyles(styles)(ToggleBar));\n\nconst DRAG_TYPE = 'tool';\n\nexport class Item extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n connectDragSource: PropTypes.func.isRequired,\n connectDragPreview: PropTypes.func.isRequired,\n connectDropTarget: PropTypes.func.isRequired,\n isDragging: PropTypes.bool,\n toolRef: PropTypes.any,\n };\n\n static defaultProps = {};\n\n render() {\n const {\n classes,\n children,\n connectDragSource,\n connectDropTarget,\n connectDragPreview,\n isDragging,\n toolRef,\n } = this.props;\n\n return (\n <div className={classes.wrapper} ref={toolRef}>\n {connectDragSource(connectDropTarget(<div className={isDragging && classes.hidden}>{children}</div>))}\n {connectDragPreview(<div className={classes.under}>{children}</div>)}\n </div>\n );\n }\n}\n\nconst itemSource = {\n canDrag(props) {\n return props.draggable;\n },\n beginDrag(props) {\n return {\n index: props.index,\n };\n },\n};\n\nconst itemTarget = {\n hover(props, monitor) {\n const dragIndex = monitor.getItem().index;\n const { toolRef, index: hoverIndex } = props;\n\n if (dragIndex === hoverIndex || !toolRef.current) {\n return;\n }\n\n const hoverBoundingRect = toolRef.current?.getBoundingClientRect();\n const hoverMiddleX = (hoverBoundingRect.right - hoverBoundingRect.left) / 2;\n const clientOffset = monitor.getClientOffset();\n const hoverClientX = clientOffset.x - hoverBoundingRect.left;\n\n if (dragIndex < hoverIndex && hoverClientX < hoverMiddleX) {\n return;\n }\n\n if (dragIndex > hoverIndex && hoverClientX > hoverMiddleX) {\n return;\n }\n\n props.moveTool(dragIndex, hoverIndex);\n monitor.getItem().index = hoverIndex;\n },\n};\n\nconst collectTarget = (connect) => ({ connectDropTarget: connect.dropTarget() });\n\nconst collectSource = (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n connectDragPreview: connect.dragPreview(),\n isDragging: monitor.isDragging(),\n});\n\nconst DragTool = DropTarget(\n DRAG_TYPE,\n itemTarget,\n collectTarget,\n)(DragSource(DRAG_TYPE, itemSource, collectSource)(Item));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport ToggleBar, { MiniButton } from './toggle-bar';\n\nexport class ToolMenu extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n currentToolType: PropTypes.string,\n disabled: PropTypes.bool,\n draggableTools: PropTypes.bool,\n labelModeEnabled: PropTypes.bool,\n onChange: PropTypes.func,\n onChangeTools: PropTypes.func,\n toolbarTools: PropTypes.arrayOf(PropTypes.string),\n language: PropTypes.string,\n };\n\n static defaultProps = {\n toolbarTools: [],\n };\n\n updateToolsOrder = (tools) => {\n const { onChangeTools } = this.props;\n onChangeTools(tools);\n };\n\n render() {\n const { className, currentToolType, disabled, draggableTools, onChange, language } = this.props;\n let { toolbarTools } = this.props;\n\n return (\n <div className={classNames(className)}>\n <ToggleBar\n disabled={disabled}\n draggableTools={draggableTools}\n options={toolbarTools}\n selectedToolType={currentToolType}\n onChange={onChange}\n onChangeToolsOrder={(tools) => this.updateToolsOrder(tools)}\n language={language}\n />\n </div>\n );\n }\n}\n\nexport default ToolMenu;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Button from '@material-ui/core/Button';\nimport { withStyles } from '@material-ui/core';\nimport { color } from '@pie-lib/render-ui';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\n\nexport class UndoRedo extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n onUndo: PropTypes.func.isRequired,\n onRedo: PropTypes.func.isRequired,\n onReset: PropTypes.func.isRequired,\n language: PropTypes.string,\n };\n static defaultProps = {};\n\n render() {\n const { classes, className, onUndo, onRedo, onReset, language } = this.props;\n return (\n <div className={classNames(className)}>\n <Button classes={{ root: classes.button }} onClick={() => onUndo(true)}>\n {translator.t('common:undo', { lng: language })}\n </Button>\n <Button classes={{ root: classes.button }} onClick={() => onRedo(true)}>\n {translator.t('graphing.redo', { lng: language })}\n </Button>\n <Button classes={{ root: classes.button }} onClick={() => onReset()}>\n {translator.t('graphing.reset', { lng: language })}\n </Button>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n button: {\n color: color.text(),\n marginBottom: theme.spacing.unit / 2,\n '&:not(:last-of-type)': {\n marginRight: theme.spacing.unit / 2,\n },\n },\n});\n\nexport default withStyles(styles)(UndoRedo);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport uniq from 'lodash/uniq';\nimport isString from 'lodash/isString';\nimport { color } from '@pie-lib/render-ui';\n\nimport ToolMenu from './tool-menu';\nimport Graph, { graphPropTypes } from './graph';\nimport UndoRedo from './undo-redo';\nimport { allTools, toolsArr } from './tools';\nimport { ExpansionPanel, ExpansionPanelDetails, ExpansionPanelSummary, Typography } from '@material-ui/core';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\n\nexport const setToolbarAvailability = (toolbarTools) =>\n toolsArr.map((tA) => ({ ...tA, toolbar: !!toolbarTools.find((t) => t === tA.type) })) || [];\n\nexport const toolIsAvailable = (tools, currentTool) =>\n currentTool && tools && (tools.find((tool) => tool.type === currentTool.type) || {}).toolbar;\n\nexport const getAvailableTool = (tools) => tools.find((tool) => tool.toolbar);\n\nexport const filterByValidToolTypes = (backgroundMarks) =>\n backgroundMarks.filter((bM) => !!allTools.find((tool) => tool === bM.type));\n\nexport const filterByVisibleToolTypes = (toolbarTools, marks) =>\n marks.filter((bM) => !!toolbarTools.find((tool) => tool === bM.type));\n\nconst getDefaultCurrentTool = (toolType) => toolsArr.find((tool) => tool.type === toolType) || null;\n\nconst Collapsible = ({ classes, children, title }) => (\n <ExpansionPanel elevation={0} className={classes.expansionPanel} disabledGutters={true} square={true}>\n <ExpansionPanelSummary\n classes={{\n root: classes.summaryRoot,\n content: classes.summaryContent,\n }}\n expandIcon={<ExpandMoreIcon />}\n >\n <Typography variant=\"subheading\">{title}</Typography>\n </ExpansionPanelSummary>\n <ExpansionPanelDetails className={classes.details}>{children}</ExpansionPanelDetails>\n </ExpansionPanel>\n);\n\nCollapsible.propTypes = {\n classes: PropTypes.object,\n children: PropTypes.array,\n title: PropTypes.string,\n};\n\nexport class GraphWithControls extends React.Component {\n static propTypes = {\n ...graphPropTypes,\n onUndo: PropTypes.func,\n onRedo: PropTypes.func,\n onReset: PropTypes.func,\n toolbarTools: PropTypes.arrayOf(PropTypes.string), // array of tool types that have to be displayed in the toolbar, same shape as 'allTools'\n language: PropTypes.string,\n };\n\n static defaultProps = {\n collapsibleToolbar: false,\n collapsibleToolbarTitle: '',\n disabledLabels: false,\n disabledTitle: false,\n showLabels: true,\n showTitle: true,\n toolbarTools: [],\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n currentTool: getDefaultCurrentTool(props.defaultTool),\n labelModeEnabled: false,\n };\n }\n\n componentDidUpdate(prevProps) {\n const { defaultTool } = this.props;\n\n if (prevProps.defaultTool !== defaultTool) {\n const currentTool = getDefaultCurrentTool(defaultTool);\n\n this.setState({ currentTool });\n }\n }\n\n changeCurrentTool = (tool, tools) =>\n this.setState({ currentTool: tools.find((t) => t.type === tool), labelModeEnabled: tool === 'label' });\n\n render() {\n let { currentTool, labelModeEnabled } = this.state;\n const {\n axesSettings,\n classes,\n className,\n coordinatesOnHover,\n collapsibleToolbar,\n collapsibleToolbarTitle,\n disabled,\n disabledLabels,\n disabledTitle,\n domain,\n draggableTools,\n labels,\n labelsPlaceholders,\n onChangeLabels,\n onChangeMarks,\n onChangeTitle,\n onChangeTools,\n onUndo,\n onRedo,\n onReset,\n range,\n size,\n showLabels,\n showPixelGuides,\n showTitle,\n title,\n titlePlaceholder,\n language,\n removeIncompleteTool,\n limitLabeling,\n } = this.props;\n let { backgroundMarks, marks, toolbarTools } = this.props;\n\n // make sure only valid tool types are kept (string) and without duplicates\n toolbarTools = uniq(toolbarTools || []).filter((tT) => !!isString(tT)) || [];\n\n // keep only the backgroundMarks that have valid types\n backgroundMarks = filterByValidToolTypes(backgroundMarks || []);\n\n // keep only the marks that have types which appear in toolbar\n marks = filterByVisibleToolTypes(toolbarTools, marks || []);\n\n const tools = setToolbarAvailability(toolbarTools);\n\n // set current tool if there's no current tool or if the existing one is no longer available\n if (!currentTool || !toolIsAvailable(tools, currentTool)) {\n currentTool = getAvailableTool(tools);\n }\n\n const graphActions = (\n <React.Fragment>\n <ToolMenu\n currentToolType={currentTool && currentTool.type}\n disabled={!!disabled}\n draggableTools={draggableTools}\n labelModeEnabled={labelModeEnabled}\n onChange={(tool) => this.changeCurrentTool(tool, tools)}\n toolbarTools={toolbarTools}\n onChangeTools={onChangeTools}\n language={language}\n />\n\n {!disabled && <UndoRedo onUndo={onUndo} onRedo={onRedo} onReset={onReset} language={language} />}\n </React.Fragment>\n );\n\n return (\n <div className={classNames(classes.graphWithControls, className)}>\n <div className={classes.controls}>\n {collapsibleToolbar ? (\n <Collapsible classes={classes} title={collapsibleToolbarTitle}>\n {graphActions}\n </Collapsible>\n ) : (\n graphActions\n )}\n </div>\n\n <div ref={(r) => (this.labelNode = r)} />\n\n <Graph\n axesSettings={axesSettings}\n backgroundMarks={backgroundMarks}\n coordinatesOnHover={coordinatesOnHover}\n currentTool={currentTool}\n disabledLabels={disabledLabels}\n disabledTitle={disabledTitle}\n domain={domain}\n labels={labels}\n labelModeEnabled={labelModeEnabled}\n labelsPlaceholders={labelsPlaceholders}\n marks={marks}\n onChangeMarks={!disabled ? onChangeMarks : undefined}\n onChangeLabels={onChangeLabels}\n onChangeTitle={onChangeTitle}\n range={range}\n size={size}\n showLabels={showLabels}\n showPixelGuides={showPixelGuides}\n showTitle={showTitle}\n title={title}\n titlePlaceholder={titlePlaceholder}\n tools={tools}\n removeIncompleteTool={removeIncompleteTool}\n limitLabeling={limitLabeling}\n />\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n graphWithControls: {\n display: 'flex',\n flexDirection: 'column',\n width: 'min-content',\n },\n controls: {\n display: 'flex',\n justifyContent: 'space-between',\n padding: theme.spacing.unit,\n color: color.text(),\n backgroundColor: color.primaryLight(),\n '& button': {\n fontSize: theme.typography.fontSize,\n },\n },\n expansionPanel: {\n backgroundColor: color.primaryLight(),\n width: '100%',\n },\n summaryRoot: {\n padding: `0 ${theme.spacing.unit}px`,\n minHeight: '32px !important',\n },\n summaryContent: {\n margin: '4px 0 !important',\n },\n details: {\n padding: 0,\n marginTop: theme.spacing.unit,\n display: 'flex',\n justifyContent: 'space-between',\n },\n});\n\nexport default withStyles(styles)(GraphWithControls);\n","let lastAction = null;\nexport const getLastAction = () => lastAction;\n\nexport const lastActionMiddleware = () => (next) => (action) => {\n lastAction = action;\n return next(action);\n};\n","import { connect } from 'react-redux';\nimport React from 'react';\nimport { Provider } from 'react-redux';\nimport { applyMiddleware, createStore } from 'redux';\nimport reducer from './reducer';\nimport { changeMarks } from './actions';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash/isEqual';\nimport { ActionCreators } from 'redux-undo';\nimport GraphWithControls from '../graph-with-controls';\nimport { lastActionMiddleware } from './middleware';\n\nconst mapStateToProps = (s) => ({\n marks: s.marks.present,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n onChangeMarks: (m) => dispatch(changeMarks(m)),\n onUndo: () => dispatch(ActionCreators.undo()),\n onRedo: () => dispatch(ActionCreators.redo()),\n onReset: () => dispatch(changeMarks([])),\n});\n\nexport const GraphContainer = connect(mapStateToProps, mapDispatchToProps)(GraphWithControls);\n\n/**\n * The graph component entry point with undo/redo\n * Redux is an implementation detail, hide it in the react component.\n */\nclass Root extends React.Component {\n static propTypes = {\n onChangeMarks: PropTypes.func,\n marks: PropTypes.array,\n };\n\n constructor(props) {\n super(props);\n\n const r = reducer();\n this.store = createStore(r, { marks: props.marks }, applyMiddleware(lastActionMiddleware));\n\n this.store.subscribe(this.onStoreChange);\n }\n\n componentDidUpdate(prevProps) {\n const { marks } = this.props;\n const storeState = this.store.getState();\n\n if (isEqual(storeState.marks.present, marks)) {\n return;\n }\n\n if (!isEqual(prevProps.marks, marks)) {\n this.store.dispatch(changeMarks(marks));\n }\n }\n\n onStoreChange = () => {\n const { marks, onChangeMarks } = this.props;\n const storeState = this.store.getState();\n\n if (!isEqual(storeState.marks.present, marks)) {\n onChangeMarks(storeState.marks.present);\n }\n };\n\n render() {\n // eslint-disable-next-line no-unused-vars\n const { onChangeMarks, marks, ...rest } = this.props;\n const correctnessSet = marks && marks.find((m) => m.correctness);\n\n if (correctnessSet) {\n return <GraphWithControls {...rest} marks={marks} disabled={correctnessSet} />;\n }\n\n return (\n <Provider store={this.store}>\n <GraphContainer {...rest} />\n </Provider>\n );\n }\n}\n\nexport default Root;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { color, InputContainer } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary';\nimport Typography from '@material-ui/core/Typography';\nimport ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails';\nimport ExpansionPanel from '@material-ui/core/ExpansionPanel';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport { NumberTextFieldCustom, Toggle } from '@pie-lib/config-ui';\nimport EditableHTML from '@pie-lib/editable-html';\n\nconst GridConfig = (props) => {\n const { classes, disabled, displayedFields, labelValue, labelValues, gridValue, gridValues, onChange } = props;\n const { labelStep = {}, step = {} } = displayedFields;\n\n return (\n <div className={classes.columnView}>\n {step && step.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={step.label || ''}\n value={gridValue}\n customValues={gridValues}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('step', v)}\n />\n )}\n {labelStep && labelStep.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={labelStep.label || ''}\n value={labelValue}\n customValues={labelValues}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('labelStep', v)}\n />\n )}\n </div>\n );\n};\n\nGridConfig.propTypes = {\n classes: PropTypes.object,\n disabled: PropTypes.bool,\n displayedFields: PropTypes.object,\n labelValue: PropTypes.number,\n labelValues: PropTypes.array,\n gridValue: PropTypes.number,\n gridValues: PropTypes.array,\n onChange: PropTypes.func,\n};\n\nconst AxisConfig = (props) => {\n const { classes, disabled, displayedFields, displayHeader, label, maxValue, minValue, onChange, type } = props;\n const { axisLabel = {}, min = {}, max = {} } = displayedFields;\n const activePlugins = [\n 'bold',\n 'italic',\n 'underline',\n 'strikethrough',\n // 'languageCharacters'\n ];\n\n return (\n <div className={classes.columnView}>\n {displayHeader && (\n <Typography variant=\"subtitle2\">\n <i>{type === 'domain' ? 'x' : 'y'}</i>\n -axis\n </Typography>\n )}\n {min && min.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={min.label || ''}\n value={minValue}\n min={-10000}\n max={maxValue - 0.05}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('min', v)}\n />\n )}\n {max && max.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={max.label || ''}\n value={maxValue}\n min={minValue + 0.05}\n max={10000}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('max', v)}\n />\n )}\n {axisLabel && axisLabel.enabled && (\n <InputContainer label={axisLabel.label || ''} className={classes.mediumTextField}>\n <EditableHTML\n className={classes.axisLabel}\n onChange={(value) => onChange('axisLabel', value)}\n markup={label || ''}\n charactersLimit={5}\n activePlugins={activePlugins}\n />\n </InputContainer>\n )}\n </div>\n );\n};\n\nAxisConfig.propTypes = {\n classes: PropTypes.object,\n disabled: PropTypes.bool,\n displayedFields: PropTypes.object,\n displayHeader: PropTypes.bool,\n label: PropTypes.string,\n maxValue: PropTypes.number,\n minValue: PropTypes.number,\n type: PropTypes.string,\n onChange: PropTypes.func,\n};\nconst GridSetup = (props) => {\n const {\n classes,\n domain,\n displayedFields = {},\n gridValues = {},\n includeAxes,\n labelValues = {},\n onChange,\n onChangeView,\n range,\n size,\n sizeConstraints,\n standardGrid,\n } = props;\n const gridProps = { min: 2, max: 41 };\n const {\n axisLabel = {},\n dimensionsEnabled,\n includeAxesEnabled,\n labelStep = {},\n min = {},\n max = {},\n standardGridEnabled,\n step = {},\n } = displayedFields || {};\n const displayAxisType = min.enabled || max.enabled || axisLabel.enabled || step.enabled || labelStep.enabled;\n const gridConfigFields = { step, labelStep };\n const axisConfigFields = { min, max, axisLabel };\n\n const onIncludeAxes = (includeAxes) => {\n const noAxesConfig = (type) => {\n const axis = type === 'domain' ? domain : range;\n\n return {\n min: 1,\n max: axis.max < gridProps.min || axis.max > gridProps.max ? 16 : axis.max,\n step: 1,\n labelStep: 0,\n };\n };\n\n const updatedRange = {\n ...range,\n ...(includeAxes ? { labelStep: 1 } : noAxesConfig('range')),\n };\n const updatedDomain = {\n ...domain,\n ...(includeAxes ? { labelStep: 1 } : noAxesConfig('domain')),\n };\n\n onChange({ includeAxes, range: updatedRange, domain: updatedDomain });\n };\n\n const onStandardGridChanged = (value) => {\n onChange({\n standardGrid: value,\n range: {\n ...domain,\n axisLabel: range.axisLabel,\n },\n graph: {\n ...size,\n height: size.width,\n },\n });\n };\n\n const onSizeChanged = (key, value) => {\n const graph = { ...size, [key]: value };\n\n if (standardGrid) {\n graph.height = value;\n }\n\n onChange({ graph });\n };\n\n const onDomainChanged = (key, value) => {\n domain[key] = value;\n\n if (standardGrid && key !== 'axisLabel') {\n range[key] = value;\n }\n\n onChange({ domain, range });\n };\n\n const onRangeChanged = (key, value) => {\n range[key] = value;\n\n onChange({ range });\n };\n\n const axesConfig = (\n <React.Fragment>\n <div className={classes.rowView}>\n <AxisConfig\n classes={classes}\n displayedFields={axisConfigFields}\n displayHeader={displayAxisType}\n type=\"domain\"\n minValue={domain.min}\n maxValue={domain.max}\n label={domain.axisLabel}\n includeAxes={includeAxes}\n onChange={onDomainChanged}\n />\n <AxisConfig\n classes={classes}\n displayedFields={axisConfigFields}\n displayHeader={displayAxisType}\n type=\"range\"\n minValue={range.min}\n maxValue={range.max}\n label={range.axisLabel}\n disabled={standardGrid}\n includeAxes={includeAxes}\n onChange={onRangeChanged}\n />\n </div>\n {(min.enabled || max.enabled) && (\n <Typography className={classes.text}>\n If you want the axis to be visible, use a zero or negative Min Value, and a positive Max Value\n </Typography>\n )}\n {(step.enabled || labelStep.enabled) && (\n <div className={classes.rowView}>\n <GridConfig\n classes={classes}\n displayedFields={gridConfigFields}\n gridValue={domain.step}\n labelValue={domain.labelStep}\n gridValues={gridValues.domain || []}\n labelValues={labelValues.domain || []}\n onChange={onDomainChanged}\n />\n <GridConfig\n classes={classes}\n disabled={standardGrid}\n displayedFields={gridConfigFields}\n gridValue={range.step}\n labelValue={range.labelStep}\n gridValues={gridValues.range || []}\n labelValues={labelValues.range || []}\n onChange={onRangeChanged}\n />\n </div>\n )}\n {labelStep.enabled && (\n <Typography className={classes.text}>For unnumbered gridlines, enter a label interval of 0</Typography>\n )}\n </React.Fragment>\n );\n\n const gridlinesConfig = max.enabled ? (\n <div className={classes.columnView}>\n <NumberTextFieldCustom\n className={classes.largeTextField}\n label=\"Number of Vertical Gridlines\"\n value={domain.max}\n min={!includeAxes && gridProps.min}\n max={!includeAxes && gridProps.max}\n variant=\"outlined\"\n onChange={(e, v) => onDomainChanged('max', v)}\n />\n <NumberTextFieldCustom\n className={classes.largeTextField}\n label=\"Number of Horizontal Gridlines\"\n value={range.max}\n min={!includeAxes && gridProps.min}\n max={!includeAxes && gridProps.max}\n variant=\"outlined\"\n disabled={standardGrid}\n onChange={(e, v) => onRangeChanged('max', v)}\n />\n </div>\n ) : null;\n\n return (\n <div className={classes.wrapper}>\n <ExpansionPanel onChange={onChangeView}>\n <ExpansionPanelSummary expandIcon={<ExpandMoreIcon />}>\n <Typography variant=\"subtitle1\">Customize Grid Setup</Typography>\n </ExpansionPanelSummary>\n <ExpansionPanelDetails>\n <div className={classes.content}>\n {includeAxesEnabled && (\n <Toggle label=\"Include axes and labels?\" toggle={onIncludeAxes} checked={includeAxes} />\n )}\n {standardGridEnabled && (\n <Toggle\n label=\"Constrain to standard coordinate grid?\"\n toggle={onStandardGridChanged}\n checked={standardGrid}\n />\n )}\n {includeAxes ? axesConfig : gridlinesConfig}\n {dimensionsEnabled && (\n <div className={classes.dimensions}>\n <div>\n <Typography>Dimensions(px)</Typography>\n <Typography className={classes.disabled}>\n Min {sizeConstraints.min}, Max {sizeConstraints.max}\n </Typography>\n </div>\n <NumberTextFieldCustom\n className={classes.textField}\n label=\"Width\"\n value={size.width}\n min={sizeConstraints.min}\n max={sizeConstraints.max}\n step={sizeConstraints.step}\n variant=\"outlined\"\n onChange={(e, v) => onSizeChanged('width', v)}\n />\n <NumberTextFieldCustom\n className={classes.textField}\n label=\"Height\"\n value={size.height}\n min={sizeConstraints.min}\n max={sizeConstraints.max}\n step={sizeConstraints.step}\n variant=\"outlined\"\n disabled={standardGrid}\n onChange={(e, v) => onSizeChanged('height', v)}\n />\n </div>\n )}\n </div>\n </ExpansionPanelDetails>\n </ExpansionPanel>\n </div>\n );\n};\n\nGridSetup.propTypes = {\n classes: PropTypes.object,\n domain: PropTypes.object,\n displayedFields: PropTypes.object,\n gridValues: PropTypes.object,\n includeAxes: PropTypes.bool,\n labelValues: PropTypes.object,\n onChange: PropTypes.func,\n onChangeView: PropTypes.func,\n range: PropTypes.object,\n size: PropTypes.object,\n sizeConstraints: PropTypes.object,\n standardGrid: PropTypes.bool,\n};\n\nconst styles = (theme) => ({\n wrapper: {\n width: '450px',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n },\n columnView: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n },\n rowView: {\n display: 'flex',\n justifyContent: 'space-around',\n alignItems: 'center',\n },\n textField: {\n width: '130px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,\n },\n mediumTextField: {\n width: '160px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,\n },\n largeTextField: {\n width: '230px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,\n },\n text: {\n fontStyle: 'italic',\n margin: `${theme.spacing.unit}px 0`,\n },\n dimensions: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n disabled: {\n color: color.disabled(),\n },\n axisLabel: {\n paddingTop: theme.spacing.unit * 2,\n },\n});\n\nexport default withStyles(styles)(GridSetup);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { color } from '@pie-lib/render-ui';\n\nconst styles = (theme) => ({\n container: {\n backgroundColor: color.defaults.WHITE,\n padding: '20px',\n width: '355px',\n boxShadow: '0px 1px 5px 0px #9297A6',\n },\n row: {\n display: 'flex',\n alignItems: 'center',\n padding: '10px',\n },\n title: {\n fontSize: theme.typography.h6.fontSize,\n marginLeft: '30px',\n fontWeight: '700',\n marginBottom: '10px',\n },\n text: {\n textAlign: 'right',\n marginRight: '10px',\n width: '175px',\n fontSize: '15px',\n },\n});\n\nconst KeyLegend = ({ className, classes, isLabelAvailable }) => {\n const names = classNames(classes.formControl, className);\n\n return (\n <div className={classes.container}>\n <div className={classes.title}>Key</div>\n {isLabelAvailable && (\n <div className={classes.row}>\n <div className={classes.text}> Missing Required Label </div>\n <svg width=\"34\" height=\"16\" viewBox=\"0 0 34 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"0.5\" y=\"0.5\" width=\"33\" height=\"15\" rx=\"3.5\" fill=\"white\" stroke=\"#BF0D00\" />\n <path\n d=\"M17.25 6.13965V3.2334C17.25 2.92871 17.4844 2.6709 17.8125 2.6709H20.7188C20.8594 2.6709 21 2.81152 21 2.95215V3.51465C21 3.67871 20.8594 3.7959 20.7188 3.7959H18.375V6.13965C18.375 6.30371 18.2344 6.4209 18.0938 6.4209H17.5312C17.3672 6.4209 17.25 6.30371 17.25 6.13965ZM24 2.95215C24 2.81152 24.1172 2.6709 24.2812 2.6709H27.1875C27.4922 2.6709 27.75 2.92871 27.75 3.2334V6.13965C27.75 6.30371 27.6094 6.4209 27.4688 6.4209H26.9062C26.7422 6.4209 26.625 6.30371 26.625 6.13965V3.7959H24.2812C24.1172 3.7959 24 3.67871 24 3.51465V2.95215ZM27.4688 9.4209C27.6094 9.4209 27.75 9.56152 27.75 9.70215V12.6084C27.75 12.9365 27.4922 13.1709 27.1875 13.1709H24.2812C24.1172 13.1709 24 13.0537 24 12.8896V12.3271C24 12.1865 24.1172 12.0459 24.2812 12.0459H26.625V9.70215C26.625 9.56152 26.7422 9.4209 26.9062 9.4209H27.4688ZM21 12.8896C21 13.0537 20.8594 13.1709 20.7188 13.1709H17.8125C17.4844 13.1709 17.25 12.9365 17.25 12.6084V9.70215C17.25 9.56152 17.3672 9.4209 17.5312 9.4209H18.0938C18.2344 9.4209 18.375 9.56152 18.375 9.70215V12.0459H20.7188C20.8594 12.0459 21 12.1865 21 12.3271V12.8896Z\"\n fill=\"#BF0D00\"\n />\n <path\n d=\"M9.23438 8.21045L10.9219 9.89795C11.0156 9.9917 11.0156 10.1636 10.9219 10.2573L10.5312 10.6479C10.4375 10.7417 10.2656 10.7417 10.1719 10.6479L8.5 8.96045L6.8125 10.6479C6.71875 10.7417 6.54688 10.7417 6.45312 10.6479L6.0625 10.2573C5.96875 10.1636 5.96875 9.9917 6.0625 9.89795L7.75 8.21045L6.0625 6.53857C5.96875 6.44482 5.96875 6.27295 6.0625 6.1792L6.45312 5.78857C6.54688 5.69482 6.71875 5.69482 6.8125 5.78857L8.5 7.47607L10.1719 5.78857C10.2656 5.69482 10.4375 5.69482 10.5312 5.78857L10.9219 6.1792C11.0156 6.27295 11.0156 6.44482 10.9219 6.53857L9.23438 8.21045Z\"\n fill=\"#BF0D00\"\n />\n </svg>\n </div>\n )}\n <div className={classes.row}>\n <div className={classes.text}> Answer Key Correct </div>\n <svg width=\"75\" height=\"15\" viewBox=\"0 0 75 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"7.5\" cy=\"7.5\" r=\"7.5\" fill=\"#6A78A1\" />\n <path\n d=\"M3.125 5.76562V3.34375C3.125 3.08984 3.32031 2.875 3.59375 2.875H6.01562C6.13281 2.875 6.25 2.99219 6.25 3.10938V3.89062C6.25 4.02734 6.13281 4.125 6.01562 4.125H4.375V5.76562C4.375 5.90234 4.25781 6 4.14062 6H3.35938C3.22266 6 3.125 5.90234 3.125 5.76562ZM8.75 3.10938C8.75 2.99219 8.84766 2.875 8.98438 2.875H11.4062C11.6602 2.875 11.875 3.08984 11.875 3.34375V5.76562C11.875 5.90234 11.7578 6 11.6406 6H10.8594C10.7227 6 10.625 5.90234 10.625 5.76562V4.125H8.98438C8.84766 4.125 8.75 4.02734 8.75 3.89062V3.10938ZM11.6406 8.5C11.7578 8.5 11.875 8.61719 11.875 8.73438V11.1562C11.875 11.4297 11.6602 11.625 11.4062 11.625H8.98438C8.84766 11.625 8.75 11.5273 8.75 11.3906V10.6094C8.75 10.4922 8.84766 10.375 8.98438 10.375H10.625V8.73438C10.625 8.61719 10.7227 8.5 10.8594 8.5H11.6406ZM6.25 11.3906C6.25 11.5273 6.13281 11.625 6.01562 11.625H3.59375C3.32031 11.625 3.125 11.4297 3.125 11.1562V8.73438C3.125 8.61719 3.22266 8.5 3.35938 8.5H4.14062C4.25781 8.5 4.375 8.61719 4.375 8.73438V10.375H6.01562C6.13281 10.375 6.25 10.4922 6.25 10.6094V11.3906Z\"\n fill=\"white\"\n />\n <path d=\"M75 7L15 7\" stroke=\"#6A78A1\" strokeDasharray=\"4 2\" />\n </svg>\n </div>\n {isLabelAvailable && (\n <div className={classes.row}>\n <div className={classes.text}> Answer Key Correct Label </div>\n <svg width=\"30\" height=\"16\" viewBox=\"0 0 30 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"0.5\" y=\"0.5\" width=\"29\" height=\"15\" rx=\"3.5\" fill=\"white\" />\n <rect x=\"0.5\" y=\"0.5\" width=\"29\" height=\"15\" rx=\"3.5\" stroke=\"#6A78A1\" />\n <path\n d=\"M4.37793 10.2061H6.58984V11.5H2.91309V4.44434H4.37793V10.2061ZM11.6387 10.1377C11.6387 10.6715 11.6794 11.0801 11.7607 11.3633V11.5H10.4473L10.335 10.9531C10.1559 11.168 9.92155 11.3291 9.63184 11.4365C9.34212 11.5439 9.03939 11.5977 8.72363 11.5977C8.55762 11.5977 8.40137 11.583 8.25488 11.5537C8.1084 11.5244 7.9668 11.4756 7.83008 11.4072C7.69661 11.3356 7.58105 11.2477 7.4834 11.1436C7.38574 11.0394 7.30762 10.9076 7.24902 10.748C7.19043 10.5853 7.16113 10.403 7.16113 10.2012C7.16113 9.99935 7.19206 9.81868 7.25391 9.65918C7.31576 9.49642 7.39714 9.3597 7.49805 9.24902C7.59896 9.13835 7.73079 9.03906 7.89355 8.95117C8.05632 8.86328 8.22233 8.79167 8.3916 8.73633C8.56087 8.68099 8.75944 8.62891 8.9873 8.58008L9.8125 8.39453C9.98828 8.35221 10.112 8.30013 10.1836 8.23828C10.2585 8.17318 10.2959 8.08854 10.2959 7.98438C10.2959 7.75977 10.2129 7.59863 10.0469 7.50098C9.88411 7.40332 9.68555 7.35449 9.45117 7.35449C8.875 7.35449 8.54785 7.61003 8.46973 8.12109L7.22461 7.89648C7.32878 7.37891 7.57129 6.99805 7.95215 6.75391C8.33301 6.50651 8.85872 6.38281 9.5293 6.38281C10.9355 6.38281 11.6387 6.98665 11.6387 8.19434V10.1377ZM9.16309 10.6455C9.5179 10.6455 9.80762 10.5251 10.0322 10.2842C10.2568 10.04 10.3691 9.68034 10.3691 9.20508L9.17773 9.54199C8.95964 9.59408 8.79199 9.66243 8.6748 9.74707C8.56087 9.83171 8.50391 9.95215 8.50391 10.1084C8.50391 10.2809 8.56576 10.4144 8.68945 10.5088C8.81315 10.5999 8.97103 10.6455 9.16309 10.6455ZM15.96 6.38281C16.2887 6.38281 16.5996 6.44303 16.8926 6.56348C17.1855 6.68392 17.4411 6.85482 17.6592 7.07617C17.8805 7.29427 18.0547 7.56934 18.1816 7.90137C18.3086 8.2334 18.3721 8.59961 18.3721 9C18.3721 9.40039 18.3086 9.7666 18.1816 10.0986C18.0547 10.4307 17.8805 10.7074 17.6592 10.9287C17.4411 11.1468 17.1855 11.3161 16.8926 11.4365C16.5996 11.557 16.2887 11.6172 15.96 11.6172C15.6084 11.6172 15.291 11.5505 15.0078 11.417C14.7279 11.2803 14.5179 11.0898 14.3779 10.8457L14.3438 11.5H13.0107V4H14.417V7.09082C14.5602 6.86621 14.7686 6.69206 15.042 6.56836C15.3187 6.44466 15.6247 6.38281 15.96 6.38281ZM15.6328 10.4502C16.0169 10.4502 16.3343 10.3184 16.585 10.0547C16.8389 9.79102 16.9658 9.43945 16.9658 9C16.9658 8.55729 16.8389 8.2041 16.585 7.94043C16.3343 7.67676 16.0169 7.54492 15.6328 7.54492C15.2552 7.54492 14.9395 7.68001 14.6855 7.9502C14.4316 8.21712 14.3047 8.56706 14.3047 9C14.3047 9.43294 14.43 9.78288 14.6807 10.0498C14.9346 10.3167 15.252 10.4502 15.6328 10.4502ZM24.1582 8.91699L24.1436 9.25391H20.4229C20.4521 9.6543 20.5856 9.96029 20.8232 10.1719C21.0609 10.3835 21.3555 10.4893 21.707 10.4893C21.9609 10.4893 22.1807 10.4323 22.3662 10.3184C22.555 10.2012 22.6966 10.0319 22.791 9.81055L24.0801 10.001C23.9141 10.5055 23.6211 10.8978 23.2012 11.1777C22.7812 11.4577 22.2865 11.5977 21.7168 11.5977C20.8965 11.5977 20.2438 11.3682 19.7588 10.9092C19.277 10.4469 19.0361 9.80729 19.0361 8.99023C19.0361 8.17969 19.2786 7.54167 19.7637 7.07617C20.2487 6.60742 20.8851 6.37305 21.6729 6.37305C22.4215 6.37305 23.0221 6.58626 23.4746 7.0127C23.9271 7.43913 24.1549 8.07389 24.1582 8.91699ZM21.6826 7.36914C20.999 7.36914 20.5921 7.69141 20.4619 8.33594H22.7666C22.7308 8.02344 22.6152 7.78418 22.4199 7.61816C22.2246 7.45215 21.9788 7.36914 21.6826 7.36914ZM25.2275 11.5V4H26.6484V11.5H25.2275Z\"\n fill=\"#6A78A1\"\n />\n </svg>\n </div>\n )}\n <div className={classes.row}>\n <div className={classes.text}> Student Incorrect </div>\n <svg width=\"77\" height=\"16\" viewBox=\"0 0 77 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"8\" cy=\"8\" r=\"8\" fill=\"#BF0D00\" />\n <path\n d=\"M9.04688 8.5L11.3906 10.8672C11.6953 11.1484 11.6953 11.6172 11.3906 11.8984L10.875 12.4141C10.5938 12.7188 10.125 12.7188 9.84375 12.4141L7.5 10.0703L5.13281 12.4141C4.85156 12.7188 4.38281 12.7188 4.10156 12.4141L3.58594 11.8984C3.28125 11.6172 3.28125 11.1484 3.58594 10.8672L5.92969 8.5L3.58594 6.15625C3.28125 5.875 3.28125 5.40625 3.58594 5.125L4.10156 4.60938C4.38281 4.30469 4.85156 4.30469 5.13281 4.60938L7.5 6.95312L9.84375 4.60938C10.125 4.30469 10.5938 4.30469 10.875 4.60938L11.3906 5.125C11.6953 5.40625 11.6953 5.875 11.3906 6.15625L9.04688 8.5Z\"\n fill=\"white\"\n />\n <path d=\"M77 8L15 8\" stroke=\"#BF0D00\" strokeWidth=\"3\" />\n </svg>\n </div>\n {isLabelAvailable && (\n <div className={classes.row}>\n <div className={classes.text}> Incorrect Student Label </div>\n <svg width=\"42\" height=\"16\" viewBox=\"0 0 42 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"0.5\" y=\"0.5\" width=\"41\" height=\"15\" rx=\"3.5\" fill=\"white\" />\n <rect x=\"0.5\" y=\"0.5\" width=\"41\" height=\"15\" rx=\"3.5\" stroke=\"#BF0D00\" />\n <path\n d=\"M7.23438 8.5L8.92188 10.1875C9.01562 10.2812 9.01562 10.4531 8.92188 10.5469L8.53125 10.9375C8.4375 11.0312 8.26562 11.0312 8.17188 10.9375L6.5 9.25L4.8125 10.9375C4.71875 11.0312 4.54688 11.0312 4.45312 10.9375L4.0625 10.5469C3.96875 10.4531 3.96875 10.2812 4.0625 10.1875L5.75 8.5L4.0625 6.82812C3.96875 6.73438 3.96875 6.5625 4.0625 6.46875L4.45312 6.07812C4.54688 5.98438 4.71875 5.98438 4.8125 6.07812L6.5 7.76562L8.17188 6.07812C8.26562 5.98438 8.4375 5.98438 8.53125 6.07812L8.92188 6.46875C9.01562 6.5625 9.01562 6.73438 8.92188 6.82812L7.23438 8.5Z\"\n fill=\"#BF0D00\"\n />\n <path\n d=\"M14.9531 10.7041H17.3408V11.5H14.0791V4.625H14.9531V10.7041ZM19.5869 11.5928C19.1605 11.5928 18.8089 11.4837 18.5322 11.2656C18.2588 11.0443 18.1221 10.7155 18.1221 10.2793C18.1221 10.0384 18.166 9.83008 18.2539 9.6543C18.3418 9.47526 18.472 9.32878 18.6445 9.21484C18.8171 9.10091 19.0042 9.01139 19.2061 8.94629C19.4111 8.87793 19.6553 8.81934 19.9385 8.77051L20.7148 8.64355C20.998 8.59147 21.1396 8.44336 21.1396 8.19922C21.1396 7.8737 21.0387 7.63607 20.8369 7.48633C20.6383 7.33333 20.3861 7.25684 20.0801 7.25684C19.7806 7.25684 19.5299 7.33008 19.3281 7.47656C19.1263 7.62305 19.0075 7.84766 18.9717 8.15039L18.21 7.98926C18.2816 7.53353 18.4818 7.19173 18.8105 6.96387C19.1393 6.73275 19.5755 6.61719 20.1191 6.61719C20.373 6.61719 20.6042 6.64648 20.8125 6.70508C21.0241 6.76042 21.2178 6.84993 21.3936 6.97363C21.5726 7.09408 21.7109 7.2666 21.8086 7.49121C21.9095 7.71257 21.96 7.97461 21.96 8.27734V10.2598C21.96 10.5072 21.9958 10.6748 22.0674 10.7627C22.1423 10.8473 22.2692 10.8896 22.4482 10.8896H22.5264V11.5H22.1064C21.5889 11.5 21.2861 11.2835 21.1982 10.8506H21.1592C20.7946 11.3454 20.2705 11.5928 19.5869 11.5928ZM19.7822 10.9092C20.2087 10.9092 20.5521 10.7546 20.8125 10.4453C21.0729 10.1361 21.2031 9.71289 21.2031 9.17578L19.9336 9.41992C19.5983 9.47526 19.3493 9.56478 19.1865 9.68848C19.027 9.80892 18.9473 9.98307 18.9473 10.2109C18.9473 10.4486 19.0238 10.6243 19.1768 10.7383C19.333 10.8522 19.5348 10.9092 19.7822 10.9092ZM26.2666 6.60742C26.8916 6.60742 27.4206 6.83854 27.8535 7.30078C28.2865 7.76302 28.5029 8.36361 28.5029 9.10254C28.5029 9.84473 28.2881 10.4469 27.8584 10.9092C27.4287 11.3714 26.8981 11.6025 26.2666 11.6025C25.889 11.6025 25.5472 11.5098 25.2412 11.3242C24.9385 11.1387 24.7106 10.8864 24.5576 10.5674L24.5381 11.5H23.7227V4H24.5625L24.5674 7.61816C24.7236 7.30566 24.9515 7.0599 25.251 6.88086C25.5537 6.69857 25.8923 6.60742 26.2666 6.60742ZM26.0811 10.8701C26.527 10.8701 26.9014 10.7074 27.2041 10.3818C27.5068 10.0531 27.6582 9.62663 27.6582 9.10254C27.6582 8.57845 27.5068 8.15365 27.2041 7.82812C26.9014 7.49935 26.527 7.33496 26.0811 7.33496C25.6416 7.33496 25.2705 7.50423 24.9678 7.84277C24.665 8.18132 24.5137 8.60124 24.5137 9.10254C24.5137 9.6071 24.6634 10.0286 24.9629 10.3672C25.2656 10.7025 25.6383 10.8701 26.0811 10.8701ZM34.0352 9.00488L34.0254 9.23438H30.2754C30.2884 9.76823 30.4414 10.1784 30.7344 10.4648C31.0273 10.748 31.3919 10.8896 31.8281 10.8896C32.1211 10.8896 32.3864 10.8132 32.624 10.6602C32.8617 10.5072 33.0439 10.2956 33.1709 10.0254L33.9326 10.1865C33.7601 10.6227 33.4867 10.9661 33.1123 11.2168C32.738 11.4674 32.3132 11.5928 31.8379 11.5928C31.125 11.5928 30.5488 11.3698 30.1094 10.9238C29.6699 10.4779 29.4502 9.86914 29.4502 9.09766C29.4502 8.32943 29.6699 7.72233 30.1094 7.27637C30.5521 6.8304 31.1201 6.60742 31.8135 6.60742C32.484 6.60742 33.0212 6.8125 33.4248 7.22266C33.8317 7.63281 34.0352 8.22689 34.0352 9.00488ZM31.8135 7.25684C31.4163 7.25684 31.0827 7.37077 30.8125 7.59863C30.5456 7.82324 30.3779 8.15202 30.3096 8.58496H33.1855C33.153 8.15202 33.013 7.82324 32.7656 7.59863C32.5182 7.37077 32.2008 7.25684 31.8135 7.25684ZM35.3633 11.5V4H36.2178V11.5H35.3633Z\"\n fill=\"#BF0D00\"\n />\n </svg>\n </div>\n )}\n <div className={classes.row}>\n <div className={classes.text}> Student Correct </div>\n <svg width=\"76\" height=\"16\" viewBox=\"0 0 76 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M76 8L14 8\" stroke=\"#0B7D38\" strokeWidth=\"3\" />\n <circle cx=\"8\" cy=\"8\" r=\"8\" fill=\"#0B7D38\" />\n <path\n d=\"M12.1953 4.46875C12.3125 4.35156 12.5 4.35156 12.5938 4.46875L13.2734 5.125C13.3672 5.24219 13.3672 5.42969 13.2734 5.52344L6.24219 12.5547C6.125 12.6719 5.96094 12.6719 5.84375 12.5547L2.70312 9.4375C2.60938 9.32031 2.60938 9.13281 2.70312 9.03906L3.38281 8.35938C3.47656 8.26562 3.66406 8.26562 3.78125 8.35938L6.03125 10.6328L12.1953 4.46875Z\"\n fill=\"white\"\n />\n </svg>\n </div>\n {isLabelAvailable && (\n <div className={classes.row}>\n <div className={classes.text}> Student Correct Label </div>\n <svg width=\"43\" height=\"16\" viewBox=\"0 0 43 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"0.5\" y=\"0.5\" width=\"42\" height=\"15\" rx=\"3.5\" fill=\"white\" />\n <rect x=\"0.5\" y=\"0.5\" width=\"42\" height=\"15\" rx=\"3.5\" stroke=\"#0B7D38\" />\n <path\n d=\"M11.7969 5.3125C11.875 5.23438 12 5.23438 12.0625 5.3125L12.5156 5.75C12.5781 5.82812 12.5781 5.95312 12.5156 6.01562L7.82812 10.7031C7.75 10.7812 7.64062 10.7812 7.5625 10.7031L5.46875 8.625C5.40625 8.54688 5.40625 8.42188 5.46875 8.35938L5.92188 7.90625C5.98438 7.84375 6.10938 7.84375 6.1875 7.90625L7.6875 9.42188L11.7969 5.3125Z\"\n fill=\"#0B7D38\"\n />\n <path\n d=\"M15.9531 10.7041H18.3408V11.5H15.0791V4.625H15.9531V10.7041ZM20.5869 11.5928C20.1605 11.5928 19.8089 11.4837 19.5322 11.2656C19.2588 11.0443 19.1221 10.7155 19.1221 10.2793C19.1221 10.0384 19.166 9.83008 19.2539 9.6543C19.3418 9.47526 19.472 9.32878 19.6445 9.21484C19.8171 9.10091 20.0042 9.01139 20.2061 8.94629C20.4111 8.87793 20.6553 8.81934 20.9385 8.77051L21.7148 8.64355C21.998 8.59147 22.1396 8.44336 22.1396 8.19922C22.1396 7.8737 22.0387 7.63607 21.8369 7.48633C21.6383 7.33333 21.3861 7.25684 21.0801 7.25684C20.7806 7.25684 20.5299 7.33008 20.3281 7.47656C20.1263 7.62305 20.0075 7.84766 19.9717 8.15039L19.21 7.98926C19.2816 7.53353 19.4818 7.19173 19.8105 6.96387C20.1393 6.73275 20.5755 6.61719 21.1191 6.61719C21.373 6.61719 21.6042 6.64648 21.8125 6.70508C22.0241 6.76042 22.2178 6.84993 22.3936 6.97363C22.5726 7.09408 22.7109 7.2666 22.8086 7.49121C22.9095 7.71257 22.96 7.97461 22.96 8.27734V10.2598C22.96 10.5072 22.9958 10.6748 23.0674 10.7627C23.1423 10.8473 23.2692 10.8896 23.4482 10.8896H23.5264V11.5H23.1064C22.5889 11.5 22.2861 11.2835 22.1982 10.8506H22.1592C21.7946 11.3454 21.2705 11.5928 20.5869 11.5928ZM20.7822 10.9092C21.2087 10.9092 21.5521 10.7546 21.8125 10.4453C22.0729 10.1361 22.2031 9.71289 22.2031 9.17578L20.9336 9.41992C20.5983 9.47526 20.3493 9.56478 20.1865 9.68848C20.027 9.80892 19.9473 9.98307 19.9473 10.2109C19.9473 10.4486 20.0238 10.6243 20.1768 10.7383C20.333 10.8522 20.5348 10.9092 20.7822 10.9092ZM27.2666 6.60742C27.8916 6.60742 28.4206 6.83854 28.8535 7.30078C29.2865 7.76302 29.5029 8.36361 29.5029 9.10254C29.5029 9.84473 29.2881 10.4469 28.8584 10.9092C28.4287 11.3714 27.8981 11.6025 27.2666 11.6025C26.889 11.6025 26.5472 11.5098 26.2412 11.3242C25.9385 11.1387 25.7106 10.8864 25.5576 10.5674L25.5381 11.5H24.7227V4H25.5625L25.5674 7.61816C25.7236 7.30566 25.9515 7.0599 26.251 6.88086C26.5537 6.69857 26.8923 6.60742 27.2666 6.60742ZM27.0811 10.8701C27.527 10.8701 27.9014 10.7074 28.2041 10.3818C28.5068 10.0531 28.6582 9.62663 28.6582 9.10254C28.6582 8.57845 28.5068 8.15365 28.2041 7.82812C27.9014 7.49935 27.527 7.33496 27.0811 7.33496C26.6416 7.33496 26.2705 7.50423 25.9678 7.84277C25.665 8.18132 25.5137 8.60124 25.5137 9.10254C25.5137 9.6071 25.6634 10.0286 25.9629 10.3672C26.2656 10.7025 26.6383 10.8701 27.0811 10.8701ZM35.0352 9.00488L35.0254 9.23438H31.2754C31.2884 9.76823 31.4414 10.1784 31.7344 10.4648C32.0273 10.748 32.3919 10.8896 32.8281 10.8896C33.1211 10.8896 33.3864 10.8132 33.624 10.6602C33.8617 10.5072 34.0439 10.2956 34.1709 10.0254L34.9326 10.1865C34.7601 10.6227 34.4867 10.9661 34.1123 11.2168C33.738 11.4674 33.3132 11.5928 32.8379 11.5928C32.125 11.5928 31.5488 11.3698 31.1094 10.9238C30.6699 10.4779 30.4502 9.86914 30.4502 9.09766C30.4502 8.32943 30.6699 7.72233 31.1094 7.27637C31.5521 6.8304 32.1201 6.60742 32.8135 6.60742C33.484 6.60742 34.0212 6.8125 34.4248 7.22266C34.8317 7.63281 35.0352 8.22689 35.0352 9.00488ZM32.8135 7.25684C32.4163 7.25684 32.0827 7.37077 31.8125 7.59863C31.5456 7.82324 31.3779 8.15202 31.3096 8.58496H34.1855C34.153 8.15202 34.013 7.82324 33.7656 7.59863C33.5182 7.37077 33.2008 7.25684 32.8135 7.25684ZM36.3633 11.5V4H37.2178V11.5H36.3633Z\"\n fill=\"#0B7D38\"\n />\n </svg>\n </div>\n )}\n </div>\n );\n};\n\nKeyLegend.propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object.isRequired,\n isLabelAvailable: PropTypes.bool,\n};\n\nexport default withStyles(styles)(KeyLegend);\n"],"names":["style","theme","root","fill","palette","common","black","Arrow","React","Component","render","x","y","classes","className","scale","props","names","classNames","direction","xv","yv","transform","getTransform","rotate","propTypes","PropTypes","number","oneOf","object","isRequired","string","types","ScaleType","defaultProps","withStyles","utils","tickCount","bounds","point","getAngleDeg","arrowDimensions","getTickValues","prop","tickValues","tickVal","min","indexOf","push","Math","round","step","max","filter","tV","countWords","label","isEmpty","words","split","length","findLongestWord","longestWord","replace","sort","a","b","amountToIncreaseWidth","polygonToArea","points","h","head","area","left","top","bottom","right","tail","reduce","p","lineToArea","from","to","pointsToArea","invariant","getRightestPoints","sortedPoints","cloneDeep","getMiddleOfTwoPoints","roundNumber","parseFloat","toFixed","sameAxes","p1","p2","equalPoints","isEqual","getDistanceBetweenTicks","axis","size","nbOfTicks","thinnerShapesNeeded","graphProps","domain","range","width","height","getAdjustedGraphLimits","domainTicksDistance","rangeTicksDistance","domainPadding","rangePadding","getDistanceBetweenTwoPoints","sqrt","sortPoints","array","checkCollinearity","c","isSameLine","markA","markB","isSameCircle","edge","isDuplicatedMark","mark","marks","oldMark","type","building","filteredMarks","m","index","findIndex","splice","duplicated","find","AxisPropTypes","includeArrows","AxisDefaultProps","up","down","axisStyles","line","stroke","color","defaults","PRIMARY","strokeWidth","arrow","tick","labelFontSize","fontSize","typography","axisLabelHolder","padding","margin","textAlign","tickLabelStyles","fontFamily","cursor","sharedValues","firstNegativeX","firstNegativeY","distanceFromOriginToFirstNegativeX","distanceFromOriginToFirstNegativeY","deltaAllowance","dy","result","firstNegativeValue","interval","element","RawXAxis","columnTicksValues","skipValues","labelStep","labelProps","textAnchor","dx","necessaryRows","axisLabel","necessaryWidth","value","__html","GraphPropsType","XAxis","RawYAxis","rowTickValues","customTickFormat","digits","toLocaleString","YAxis","Axes","xValues","ticks","negative","abs","yValues","Grid","getAdditionalGridProps","columnTickValues","rowTickLabelValues","includes","columnTickLabelValues","minValueLength","toString","maxValueLength","rowLabelLength","horizontalDistanceToZero","verticalDistanceToZero","columnLabelLength","rowStrokeDasharray","columnStrokeDasharray","displayAdditionalGrid","filteredColumnValues","filteredRowValues","additionalGridStroke","r","grid","disabled","bool","disabledAdditionalGrid","rotations","side","t","getY","RawLabel","disabledLabel","placeholder","text","onChange","mathMlOptions","totalHeight","totalWidth","finalHeight","activePlugins","cn","bottomLabel","disabledAxisLabel","position","noPadding","noBorder","func","Label","SECONDARY","pointerEvents","marginTop","LabelType","Labels","onChangeLabel","newValue","labels","disabledLabels","placeholders","shape","Bg","getRectPadding","onRectClick","rect","onClick","coords","mouse","_groups","invert","rowTicks","columnTicks","closest","prev","curr","currentDistance","previousDistance","snapped","componentDidMount","select","on","bind","shouldComponentUpdate","nextProps","isDomainRangeEqual","log","debug","graphPropTypes","axesSettings","backgroundMarks","collapsibleToolbar","collapsibleToolbarTitle","disabledTitle","DomainType","labelModeEnabled","coordinatesOnHover","onChangeLabels","onChangeMarks","onChangeTitle","showLabels","showPixelGuides","showTitle","title","tools","limitLabeling","getMaskSize","removeBuildingToolIfCurrentToolDiffers","currentTool","removeIncompleteTool","buildingMark","newMarks","Graph","constructor","state","setState","labelNode","changeMark","newMark","completeMark","markData","updatedMark","complete","updateMarks","existing","update","addIfMissing","getComponent","tool","onBgClick","undefined","addPoint","maskUid","generateMaskId","random","labelsPlaceholders","titlePlaceholder","createGraphProps","rootNode","maskSize","Root","map","markType","isBackground","startDrag","stopDrag","action","Array","isArray","Error","combineReducers","undoable","changeMarks","key","disabledSecondary","correct","correctWithIcon","incorrect","incorrectWithIcon","missing","missingWithIcon","styles","input","borderRadius","background","white","PRIMARY_DARK","inputLabel","getLabelPosition","labelLength","topShift","leftShift","rightEdge","CoordinatesLabel","labelPosition","ariaLabel","MissingSVG","CorrectSVG","IncorrectSVG","RawBp","showCoordinates","correctness","onTouchStart","onTouchEnd","rest","_excluded","SvgComponent","ReactDOM","createPortal","RawArrow","angle","vector","ArrowHead","genUid","v","ArrowMarker","id","scaledX","scaledY","opts","anchorPoint","fromDelta","delta","add","BLACK","BasePoint","gridDraggable","BaseArrow","ToolPropTypeFields","any","onDragStart","onDragStop","useDebounce","delay","debouncedValue","setDebouncedValue","useState","useEffect","handler","setTimeout","clearTimeout","SvgIcon","icons","empty","inputStyles","float","spacing","unit","backgroundColor","WHITE","inputStudent","border","fontWeight","disabledMark","inputCorrect","CORRECT_WITH_ICON","inputIncorrect","INCORRECT_WITH_ICON","inputMissing","MISSING_WITH_ICON","shift","bottomEdge","coordinates","LabelInput","_ref","externalInputRef","inputClassName","MarkLabel","setInput","useCallback","node","inputRef","setLabel","correctnesslabel","correctlabel","e","target","debouncedLabel","getBoundingClientRect","pos","leftTop","display","alignItems","gap","secondLabelStyle","disabledInput","renderInput","inputClass","labelValue","marginLeft","withTheme","Point","move","labelChange","clickPoint","focus","stopPropagation","hasOwnProperty","RawCircle","radius","rx","ry","bgCircle","applyStyle","fn","transition","BgCircle","newPoint","RawLinePath","data","isDragging","vx","drawLine","dragging","arrayOf","PointType","LinePath","strokeDasharray","lineTool","lineToolComponent","LineToolComponent","shouldNotChange","middle","changeMarkProps","dragOpts","lineBase","Comp","DraggableComp","FromPoint","ToPoint","LineBase","onChangePoint","dragComp","draggedFrom","draggedTo","updated","dragFrom","dragTo","trig","toDegrees","fromLabelNode","toLabelNode","lineLabelNode","disabledArrow","toRootEdge","out","toFromTo","rootEdgeToFromToWrapper","BaseComp","Wrapper","current","next","rootEdgeComponent","RootEdgeComp","BaseComponent","withPointsGenerationLinePath","getPoints","LinePathComponent","dataPoints","enableCurve","raw","d","curveMonotoneX","withRootEdge","LinePathComp","opacityPulsate","opacity","getRadius","outer","dist","RawBaseCircle","dragCircle","diff","sub","draggedroot","draggedOuter","isCircleDrag","circleLabelNode","bgCircleBuilding","BaseCircle","outerLine","animation","animationIterationCount","Circle","hover","RawLine","Line","getPointString","scaledPoint","join","RawPolygon","closed","pointString","Tag","open","Polygon","fade","primary","light","buildLines","expanded","acc","isLast","all","chunk","initial","swap","arr","pairs","pr","replacement","Number","isFinite","RawBaseComponent","dragPoint","overlapPoint","dragLine","dragPoly","forEach","close","onClosePolygon","onChangeProps","updatedPoint","isToolActive","onChangeLabelProps","lines","polygonLabelIndex","polygonLabelNode","l","change","changeProps","changeLabelProps","closePolygon","onComplete","dragStart","dragStop","stateMark","addPointToArray","hasPoint","Sine","amplitude","freq","getAmplitudeAndFreq","FREQ_DIVIDER","buildDataPoints","sinY","phase","vertical","Parabola","parabolaFromTwoPoints","lineStyles","enabledArrow","correctArrow","incorrectArrow","missingArrow","ArrowedLine","markerId","eFrom","eTo","edges","suffix","StyledArrowedLine","StyledLine","Segment","rayStyles","RayLine","aToB","StyledRay","Ray","startPoint","endPoint","Vector","Absolute","absoluteFromTwoPoints","Exponential","exponentialFromTwoPoints","allTools","labelTool","toolsArr","circle","parabola","polygon","ray","segment","sine","absolute","exponential","translator","Translator","buttonStyles","selected","secondary","notSelected","MiniButton","language","translatorKey","toLowerCase","buttonValue","lng","disabledClassName","ToggleBar","textContent","moveTool","dragIndex","hoverIndex","options","onChangeToolsOrder","dragged","selectedToolType","draggableTools","toolsContainer","option","isSelected","toolRef","createRef","button","flexWrap","marginRight","marginBottom","under","zIndex","wrapper","hidden","withDragContext","DRAG_TYPE","Item","children","connectDragSource","connectDropTarget","connectDragPreview","oneOfType","itemSource","canDrag","draggable","beginDrag","itemTarget","monitor","getItem","hoverBoundingRect","hoverMiddleX","clientOffset","getClientOffset","hoverClientX","collectTarget","connect","dropTarget","collectSource","dragSource","dragPreview","DragTool","DropTarget","DragSource","ToolMenu","updateToolsOrder","onChangeTools","currentToolType","toolbarTools","UndoRedo","onUndo","onRedo","onReset","setToolbarAvailability","tA","toolbar","toolIsAvailable","getAvailableTool","filterByValidToolTypes","bM","filterByVisibleToolTypes","getDefaultCurrentTool","toolType","Collapsible","expansionPanel","summaryRoot","content","summaryContent","details","GraphWithControls","changeCurrentTool","defaultTool","componentDidUpdate","prevProps","uniq","tT","isString","graphActions","graphWithControls","controls","flexDirection","justifyContent","primaryLight","minHeight","lastActionMiddleware","mapStateToProps","s","present","mapDispatchToProps","dispatch","ActionCreators","undo","redo","GraphContainer","onStoreChange","storeState","store","getState","reducer","createStore","applyMiddleware","subscribe","correctnessSet","GridConfig","displayedFields","labelValues","gridValue","gridValues","columnView","enabled","mediumTextField","AxisConfig","displayHeader","maxValue","minValue","Typography","EditableHTML","GridSetup","includeAxes","onChangeView","sizeConstraints","standardGrid","gridProps","dimensionsEnabled","includeAxesEnabled","standardGridEnabled","displayAxisType","gridConfigFields","axisConfigFields","onIncludeAxes","noAxesConfig","updatedRange","updatedDomain","onStandardGridChanged","graph","onSizeChanged","onDomainChanged","onRangeChanged","axesConfig","rowView","gridlinesConfig","largeTextField","ExpansionPanel","ExpansionPanelSummary","ExpansionPanelDetails","dimensions","textField","fontStyle","paddingTop","container","boxShadow","row","h6","KeyLegend","isLabelAvailable","formControl"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAMA,KAAK,GAAIC,KAAD,KAAY;AACxBC,EAAAA,IAAI,EAAE;AACJC,IAAAA,IAAI,EAAG,CAAA,mBAAA,EAAqBF,KAAK,CAACG,OAAN,CAAcC,MAAd,CAAqBC,KAAM,CAAA,CAAA;AADnD;AADkB,CAAZ,CAAd;;cAMO,MAAMC,KAAN,SAAoBC,KAAK,CAACC,SAA1B,CAAoC;AACzCC,EAAAA,MAAM,GAAG;AACP,IAAA,MAAM;AAAEC,MAAAA,CAAF;AAAKC,MAAAA,CAAL;AAAQC,MAAAA,OAAR;AAAiBC,MAAAA,SAAjB;AAA4BC,MAAAA;AAA5B,KAAA,GAAsC,KAAKC,KAAjD;AACA,IAAA,MAAMC,KAAK,GAAGC,UAAU,CAACL,OAAO,CAACX,IAAT,EAAeY,SAAf,CAAxB;AACA,IAAA,IAAIK,SAAS,GAAG,IAAA,CAAKH,KAAL,CAAWG,SAAX,IAAwB,MAAxC;AAEA,IAAA,MAAMC,EAAE,GAAGL,KAAK,CAACJ,CAAN,CAAQA,CAAR,CAAX;AACA,IAAA,MAAMU,EAAE,GAAGN,KAAK,CAACH,CAAN,CAAQA,CAAR,CAAX;AAEA,IAAA,IAAIU,SAAS,GAAG,EAAhB;;AAEA,IAAA,MAAMC,YAAY,GAAG,CAACZ,CAAD,EAAIC,CAAJ,EAAOY,MAAP,KAAmB,aAAYb,CAAE,CAAA,EAAA,EAAIC,CAAE,CAAA,SAAA,EAAWY,MAAO,CAAA,CAAA,CAA9E;;AAEA,IAAA,IAAIL,SAAS,KAAK,MAAlB,EAA0B;AACxBG,MAAAA,SAAS,GAAGC,YAAY,CAACH,EAAE,GAAG,EAAN,EAAUC,EAAV,EAAc,CAAd,CAAxB;AACD,IAAA;;AAED,IAAA,IAAIF,SAAS,KAAK,OAAlB,EAA2B;AACzBG,MAAAA,SAAS,GAAGC,YAAY,CAACH,EAAE,GAAG,EAAN,EAAUC,EAAV,EAAc,GAAd,CAAxB;AACD,IAAA;;AAED,IAAA,IAAIF,SAAS,KAAK,IAAlB,EAAwB;AACtBG,MAAAA,SAAS,GAAGC,YAAY,CAACH,EAAD,EAAKC,EAAE,GAAG,EAAV,EAAc,EAAd,CAAxB;AACD,IAAA;;AAED,IAAA,IAAIF,SAAS,KAAK,MAAlB,EAA0B;AACxBG,MAAAA,SAAS,GAAGC,YAAY,CAACH,EAAD,EAAKC,EAAE,GAAG,EAAV,EAAc,GAAd,CAAxB;AACD,IAAA;;AAED,IAAA,oBAAO,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AAAM,MAAA,CAAC,EAAC,uBAAR;AAAgC,MAAA,SAAS,EAAEC,SAA3C;AAAsD,MAAA,SAAS,EAAEL;AAAjE,KAAA,CAAP;AACD,EAAA;;AA9BwC;AAiC3CV,OAAK,CAACkB,SAAN,GAAkB;AAChBb,EAAAA,CAAC,EAAEc,SAAS,CAACC,MADG;AAEhBhB,EAAAA,CAAC,EAAEe,SAAS,CAACC,MAFG;AAGhBR,EAAAA,SAAS,EAAEO,SAAS,CAACE,KAAV,CAAgB,CAAC,MAAD,EAAS,OAAT,EAAkB,IAAlB,EAAwB,MAAxB,CAAhB,CAHK;AAIhBf,EAAAA,OAAO,EAAEa,SAAS,CAACG,MAAV,CAAiBC,UAJV;AAKhBhB,EAAAA,SAAS,EAAEY,SAAS,CAACK,MALL;AAMhBhB,EAAAA,KAAK,EAAEiB,KAAK,CAACC,SAAN,CAAgBH;AANP,CAAlB;AASAvB,OAAK,CAAC2B,YAAN,GAAqB;AACnBtB,EAAAA,CAAC,EAAE,CADgB;AAEnBD,EAAAA,CAAC,EAAE,CAFgB;AAGnBQ,EAAAA,SAAS,EAAE;AAHQ,CAArB;AAMA,cAAegB,UAAU,CAACnC,KAAD,CAAV,CAAkBO,OAAlB,CAAf;;ACrDyB6B,KAAK,CAACC;AACxB,MAAMC,MAAM,GAAGF,KAAK,CAACE,MAArB;AACA,MAAMC,KAAK,GAAGH,KAAK,CAACG,KAApB;;AAGA,MAAMC,WAAW,GAAG,MAAM,CAA1B;;AAEA,MAAMC,eAAe,GAAG,MAAM,CAA9B;AAEA,MAAMC,aAAa,GAAIC,IAAD,IAAU;AACrC,EAAA,MAAMC,UAAU,GAAG,EAAnB;AACA,EAAA,IAAIC,OAAO,GAAG,CAAd;;AAEA,EAAA,OAAOA,OAAO,IAAIF,IAAI,CAACG,GAAhB,IAAuBF,UAAU,CAACG,OAAX,CAAmBF,OAAnB,CAAA,GAA8B,CAA5D,EAA+D;AAC7DD,IAAAA,UAAU,CAACI,IAAX,CAAgBH,OAAhB,CAAA;AACAA,IAAAA,OAAO,GAAGI,IAAI,CAACC,KAAL,CAAW,CAACL,OAAO,GAAGF,IAAI,CAACQ,IAAhB,IAAwB,KAAnC,IAA4C,KAAtD;AACD,EAAA;;AAEDN,EAAAA,OAAO,GAAGI,IAAI,CAACC,KAAL,CAAWP,IAAI,CAACQ,IAAL,GAAY,KAAvB,CAAA,GAAgC,KAA1C;;AAEA,EAAA,OAAON,OAAO,IAAIF,IAAI,CAACS,GAAhB,IAAuBR,UAAU,CAACG,OAAX,CAAmBF,OAAnB,CAAA,GAA8B,CAA5D,EAA+D;AAC7DD,IAAAA,UAAU,CAACI,IAAX,CAAgBH,OAAhB,CAAA;AACAA,IAAAA,OAAO,GAAGI,IAAI,CAACC,KAAL,CAAW,CAACL,OAAO,GAAGF,IAAI,CAACQ,IAAhB,IAAwB,KAAnC,IAA4C,KAAtD;AACD,EAAA,CAdoC;;;AAiBrC,EAAA,IAAIP,UAAJ,EAAgB;AACd,IAAA,OAAOA,UAAU,CAACS,MAAX,CAAmBC,EAAD,IAAQA,EAAE,IAAIX,IAAI,CAACG,GAAX,IAAkBQ,EAAE,IAAIX,IAAI,CAACS,GAAvD,CAAP;AACD,EAAA;;AAED,EAAA,OAAO,EAAP;AACD,CAtBM;AAwBA,MAAMG,UAAU,GAAIC,KAAD,IAAW;AACnC,EAAA,IAAIA,KAAK,IAAI,IAAT,IAAiBC,OAAO,CAACD,KAAD,CAA5B,EAAqC;AACnC,IAAA,OAAO,CAAP;AACD,EAAA;;AAED,EAAA,MAAME,KAAK,GAAGF,KAAK,CAACG,KAAN,CAAY,GAAZ,CAAd;AACA,EAAA,OAAOD,KAAK,CAACE,MAAb;AACD,CAPM;;AAUA,MAAMC,eAAe,GAAIL,KAAD,IAAW;AACxC,EAAA,IAAIM,WAAW,GAAG,CAACN,KAAK,IAAI,EAAV,EACfO,OADe,CACP,UADO,EACK,EADL,EAEfJ,KAFe,CAET,GAFS,CAAA,CAGfK,IAHe,CAGV,CAACC,CAAD,EAAIC,CAAJ,KAAUA,CAAC,CAACN,MAAF,GAAWK,CAAC,CAACL,MAHb,CAAlB;AAKA,EAAA,OAAOE,WAAW,CAAC,CAAD,CAAX,CAAeF,MAAtB;AACD,CAPM;;AAUA,MAAMO,qBAAqB,GAAIL,WAAD,IAAiB;AACpD,EAAA,IAAI,CAACA,WAAL,EAAkB;AAChB,IAAA,OAAO,CAAP;AACD,EAAA;;AAED,EAAA,OAAOA,WAAW,GAAG,EAArB;AACD,CANM;AAQA,MAAMM,aAAa,GAAIC,MAAD,IAAY;AACvC,EAAA,MAAMC,CAAC,GAAGC,IAAI,CAACF,MAAD,CAAd;AACA,EAAA,MAAMG,IAAI,GAAG;AACXC,IAAAA,IAAI,EAAEH,CAAC,CAAC3D,CADG;AAEX+D,IAAAA,GAAG,EAAEJ,CAAC,CAAC1D,CAFI;AAGX+D,IAAAA,MAAM,EAAEL,CAAC,CAAC1D,CAHC;AAIXgE,IAAAA,KAAK,EAAEN,CAAC,CAAC3D;AAJE,GAAb;AAMA,EAAA,OAAOkE,IAAI,CAACR,MAAD,CAAJ,CAAaS,MAAb,CAAoB,CAACb,CAAD,EAAIc,CAAJ,KAAU;AACnCd,IAAAA,CAAC,CAACQ,IAAF,GAASxB,IAAI,CAACH,GAAL,CAASmB,CAAC,CAACQ,IAAX,EAAiBM,CAAC,CAACpE,CAAnB,CAAT;AACAsD,IAAAA,CAAC,CAACS,GAAF,GAAQzB,IAAI,CAACG,GAAL,CAASa,CAAC,CAACS,GAAX,EAAgBK,CAAC,CAACnE,CAAlB,CAAR;AACAqD,IAAAA,CAAC,CAACU,MAAF,GAAW1B,IAAI,CAACH,GAAL,CAASmB,CAAC,CAACU,MAAX,EAAmBI,CAAC,CAACnE,CAArB,CAAX;AACAqD,IAAAA,CAAC,CAACW,KAAF,GAAU3B,IAAI,CAACG,GAAL,CAASa,CAAC,CAACW,KAAX,EAAkBG,CAAC,CAACpE,CAApB,CAAV;AACA,IAAA,OAAOsD,CAAP;AACD,EAAA,CANM,EAMJO,IANI,CAAP;AAOD,CAfM;AAiBA,MAAMQ,UAAU,GAAG,CAACC,IAAD,EAAOC,EAAP,KAAcC,YAAY,CAACF,IAAD,EAAOC,EAAP,CAA7C;AAEA,MAAMC,YAAY,GAAG,CAAClB,CAAD,EAAIC,CAAJ,KAAU;AACpCkB,EAAAA,SAAS,CAAC,CAAC,CAACnB,CAAF,IAAO,CAAC,CAACC,CAAV,EAAa,qBAAb,CAAT;AACA,EAAA,MAAMO,IAAI,GAAGxB,IAAI,CAACH,GAAL,CAASmB,CAAC,CAACtD,CAAX,EAAcuD,CAAC,CAACvD,CAAhB,CAAb;AACA,EAAA,MAAM+D,GAAG,GAAGzB,IAAI,CAACG,GAAL,CAASa,CAAC,CAACrD,CAAX,EAAcsD,CAAC,CAACtD,CAAhB,CAAZ;AACA,EAAA,MAAM+D,MAAM,GAAG1B,IAAI,CAACH,GAAL,CAASmB,CAAC,CAACrD,CAAX,EAAcsD,CAAC,CAACtD,CAAhB,CAAf;AACA,EAAA,MAAMgE,KAAK,GAAG3B,IAAI,CAACG,GAAL,CAASa,CAAC,CAACtD,CAAX,EAAcuD,CAAC,CAACvD,CAAhB,CAAd;AACA,EAAA,OAAO;AAAE8D,IAAAA,IAAF;AAAQC,IAAAA,GAAR;AAAaC,IAAAA,MAAb;AAAqBC,IAAAA;AAArB,GAAP;AACD,CAPM;AAaA,MAAMS,iBAAiB,GAAIhB,MAAD,IAAY;AAC3C,EAAA,MAAMiB,YAAY,GAAGC,SAAS,CAAClB,MAAD,CAA9B;AACAiB,EAAAA,YAAY,CAACtB,IAAb,CAAkB,CAACC,CAAD,EAAIC,CAAJ,KAAUA,CAAC,CAACvD,CAAF,GAAMsD,CAAC,CAACtD,CAApC,CAAA;AAEA,EAAA,OAAO;AAAEsD,IAAAA,CAAC,EAAEqB,YAAY,CAAC,CAAD,CAAjB;AAAsBpB,IAAAA,CAAC,EAAEoB,YAAY,CAAC,CAAD;AAArC,GAAP;AACD,CALM;AAOA,MAAME,oBAAoB,GAAG,CAACvB,CAAD,EAAIC,CAAJ,MAAW;AAC7CvD,EAAAA,CAAC,EAAE,CAACsD,CAAC,CAACtD,CAAF,GAAMuD,CAAC,CAACvD,CAAT,IAAc,CAD4B;AAE7CC,EAAAA,CAAC,EAAE,CAACqD,CAAC,CAACrD,CAAF,GAAMsD,CAAC,CAACtD,CAAT,IAAc;AAF4B,CAAX,CAA7B;AAKA,MAAM6E,WAAW,GAAI9D,MAAD,IAAY+D,UAAU,CAAC/D,MAAM,CAACgE,OAAP,CAAe,CAAf,CAAD,CAA1C;AAEA,MAAMC,QAAQ,GAAG,CAACC,EAAD,EAAKC,EAAL,KACtBD,EAAE,IAAIC,EAAN,KAAaL,WAAW,CAACI,EAAE,CAAClF,CAAJ,CAAX,KAAsB8E,WAAW,CAACK,EAAE,CAACnF,CAAJ,CAAjC,IAA2C8E,WAAW,CAACI,EAAE,CAACjF,CAAJ,CAAX,KAAsB6E,WAAW,CAACK,EAAE,CAAClF,CAAJ,CAAzF,CADK;AAGA,MAAMmF,WAAW,GAAG,CAACF,EAAD,EAAKC,EAAL,KACzBD,EAAE,IACFC,EADA,IAEAE,OAAO,CACL;AACErF,EAAAA,CAAC,EAAE8E,WAAW,CAACI,EAAE,CAAClF,CAAJ,CADhB;AAEEC,EAAAA,CAAC,EAAE6E,WAAW,CAACI,EAAE,CAACjF,CAAJ;AAFhB,CADK,EAKL;AACED,EAAAA,CAAC,EAAE8E,WAAW,CAACK,EAAE,CAACnF,CAAJ,CADhB;AAEEC,EAAAA,CAAC,EAAE6E,WAAW,CAACK,EAAE,CAAClF,CAAJ;AAFhB,CALK,CAHF;;AAcP,MAAMqF,uBAAuB,GAAG,CAACC,IAAD,EAAOC,IAAP,KAAgB;AAC9C,EAAA,MAAM;AAAErD,IAAAA,GAAF;AAAOM,IAAAA,GAAP;AAAYD,IAAAA;AAAZ,GAAA,GAAqB+C,IAA3B;AACA,EAAA,MAAME,SAAS,GAAG,CAAChD,GAAG,GAAGN,GAAP,IAAcK,IAAhC;AAEA,EAAA,OAAOgD,IAAI,GAAGC,SAAd;AACD,CALD;;AAOO,MAAMC,mBAAmB,GAAIC,UAAD,IAAgB;AACjD,EAAA,MAAM;AACJC,IAAAA,MADI;AAEJC,IAAAA,KAFI;AAGJL,IAAAA,IAAI,EAAE;AAAEM,MAAAA,KAAF;AAASC,MAAAA;AAAT;AAHF,GAAA,GAIFJ,UAJJ,CADiD;;AAQjD,EAAA,OAAOL,uBAAuB,CAACM,MAAD,EAASE,KAAT,CAAvB,GAAyC,EAAzC,IAA+CR,uBAAuB,CAACO,KAAD,EAAQE,MAAR,CAAvB,GAAyC,EAA/F;AACD,CATM;AAWA,MAAMC,sBAAsB,GAAIL,UAAD,IAAgB;AACpD,EAAA,MAAM;AACJC,IAAAA,MADI;AAEJC,IAAAA,KAFI;AAGJL,IAAAA,IAAI,EAAE;AAAEM,MAAAA,KAAF;AAASC,MAAAA;AAAT;AAHF,GAAA,GAIFJ,UAJJ;AAKA,EAAA,MAAMM,mBAAmB,GAAGX,uBAAuB,CAACM,MAAD,EAASE,KAAT,CAAnD;AACA,EAAA,MAAMI,kBAAkB,GAAGZ,uBAAuB,CAACO,KAAD,EAAQE,MAAR,CAAlD,CAPoD;;AAUpD,EAAA,MAAMI,aAAa,GAAGP,MAAM,CAACpD,IAAP,IAAeyD,mBAAmB,GAAG,EAArC,CAAtB;AACA,EAAA,MAAMG,YAAY,GAAGP,KAAK,CAACrD,IAAN,IAAc0D,kBAAkB,GAAG,EAAnC,CAArB;AAEA,EAAA,OAAO;AACLN,IAAAA,MAAM,EAAE;AACNzD,MAAAA,GAAG,EAAEyD,MAAM,CAACzD,GAAP,GAAagE,aADZ;AAEN1D,MAAAA,GAAG,EAAEmD,MAAM,CAACnD,GAAP,GAAa0D;AAFZ,KADH;AAKLN,IAAAA,KAAK,EAAE;AACL1D,MAAAA,GAAG,EAAE0D,KAAK,CAAC1D,GAAN,GAAYiE,YADZ;AAEL3D,MAAAA,GAAG,EAAEoD,KAAK,CAACpD,GAAN,GAAY2D;AAFZ;AALF,GAAP;AAUD,CAvBM;AAyBA,MAAMC,2BAA2B,GAAG,CAAC/C,CAAD,EAAIC,CAAJ,KAAUjB,IAAI,CAACgE,IAAL,CAAU,CAAC/C,CAAC,CAACvD,CAAF,GAAMsD,CAAC,CAACtD,CAAT,KAAeuD,CAAC,CAACvD,CAAF,GAAMsD,CAAC,CAACtD,CAAvB,CAAA,GAA4B,CAACuD,CAAC,CAACtD,CAAF,GAAMqD,CAAC,CAACrD,CAAT,KAAesD,CAAC,CAACtD,CAAF,GAAMqD,CAAC,CAACrD,CAAvB,CAAtC,CAA9C;;AAEP,MAAMsG,UAAU,GAAIC,KAAD,IAAW,CAACA,KAAK,IAAI,EAAV,EAAcnD,IAAd,CAAmB,CAACC,CAAD,EAAIC,CAAJ,KAAUD,CAAC,CAACtD,CAAF,GAAMuD,CAAC,CAACvD,CAAR,IAAasD,CAAC,CAACrD,CAAF,GAAMsD,CAAC,CAACtD,CAAlD,CAA9B;;;AAGA,MAAMwG,iBAAiB,GAAG,CAACnD,CAAD,EAAIC,CAAJ,EAAOmD,CAAP,KAAa,CAACpD,CAAC,CAACtD,CAAF,GAAMuD,CAAC,CAACvD,CAAT,KAAe0G,CAAC,CAACzG,CAAF,GAAMsD,CAAC,CAACtD,CAAvB,MAA8B,CAACyG,CAAC,CAAC1G,CAAF,GAAMuD,CAAC,CAACvD,CAAT,KAAesD,CAAC,CAACrD,CAAF,GAAMsD,CAAC,CAACtD,CAAvB,CAArE;;;AAGA,MAAM0G,UAAU,GAAG,CAACC,KAAD,EAAQC,KAAR,KACjBJ,iBAAiB,CAACG,KAAK,CAACtC,IAAP,EAAauC,KAAK,CAACvC,IAAnB,EAAyBuC,KAAK,CAACtC,EAA/B,CAAjB,IAAuDkC,iBAAiB,CAACG,KAAK,CAACrC,EAAP,EAAWsC,KAAK,CAACvC,IAAjB,EAAuBuC,KAAK,CAACtC,EAA7B,CAD1E;;AAGA,MAAMuC,YAAY,GAAG,CAACF,KAAD,EAAQC,KAAR,KACnBzB,WAAW,CAACwB,KAAK,CAACrH,IAAP,EAAasH,KAAK,CAACtH,IAAnB,CAAX,IACA8G,2BAA2B,CAACQ,KAAK,CAACtH,IAAP,EAAasH,KAAK,CAACE,IAAnB,CAA3B,KAAwDV,2BAA2B,CAACO,KAAK,CAACrH,IAAP,EAAaqH,KAAK,CAACG,IAAnB,CAFrF;;AAIO,MAAMC,gBAAgB,GAAG,CAACC,IAAD,EAAOC,KAAP,EAAcC,OAAd,KAA0B;AACxD,EAAA,MAAM;AAAEC,IAAAA,IAAF;AAAQC,IAAAA;AAAR,GAAA,GAAqBJ,IAA3B;;AAEA,EAAA,IAAII,QAAJ,EAAc;AACZ,IAAA,OAAO,KAAP;AACD,EAAA;;AAED,EAAA,MAAMC,aAAa,GAAG,CAACJ,KAAK,IAAI,EAAV,EAAcxE,MAAd,CAAsB6E,CAAD,IAAOA,CAAC,CAACH,IAAF,KAAWA,IAAX,IAAmB,CAACG,CAAC,CAACF,QAAlD,CAAtB;AACA,EAAA,MAAMG,KAAK,GAAGF,aAAa,CAACG,SAAd,CAAyBF,CAAD,IAAOlC,OAAO,CAACkC,CAAD,EAAIJ,OAAJ,CAAtC,CAAd;;AAEA,EAAA,IAAIK,KAAK,KAAK,EAAd,EAAkB;AAChBF,IAAAA,aAAa,CAACI,MAAd,CAAqBF,KAArB,EAA4B,CAA5B,CAAA;AACD,EAAA;;AAED,EAAA,MAAMG,UAAU,GAAGL,aAAa,CAACM,IAAd,CAAoBL,CAAD,IAAO;AAC3C,IAAA,IAAIH,IAAI,KAAK,QAAT,IAAqBA,IAAI,KAAK,UAA9B,IAA4CA,IAAI,KAAK,MAArD,IAA+DA,IAAI,KAAK,UAAxE,IAAsFA,IAAI,KAAK,aAAnG,EAAkH;AAChH,MAAA,MAAM;AAAE7H,QAAAA,IAAF;AAAQwH,QAAAA;AAAR,OAAA,GAAiBE,IAAvB;AAEA,MAAA,OAAQ7B,WAAW,CAAC7F,IAAD,EAAOgI,CAAC,CAAChI,IAAT,CAAX,IAA6B6F,WAAW,CAAC2B,IAAD,EAAOQ,CAAC,CAACR,IAAT,CAAzC,IAA6DK,IAAI,KAAK,QAAT,IAAqBN,YAAY,CAACS,CAAD,EAAIN,IAAJ,CAArG;AACD,IAAA,CAJD,MAIO,IAAIG,IAAI,KAAK,MAAT,IAAmBA,IAAI,KAAK,KAA5B,IAAqCA,IAAI,KAAK,SAA9C,IAA2DA,IAAI,KAAK,QAAxE,EAAkF;AACvF,MAAA,MAAM;AAAE9C,QAAAA,IAAF;AAAQC,QAAAA;AAAR,OAAA,GAAe0C,IAArB;AAEA,MAAA,OACG7B,WAAW,CAACd,IAAD,EAAOiD,CAAC,CAACjD,IAAT,CAAX,IAA6Bc,WAAW,CAACb,EAAD,EAAKgD,CAAC,CAAChD,EAAP,CAAzC,IACCa,WAAW,CAACd,IAAD,EAAOiD,CAAC,CAAChD,EAAT,CAAX,IAA2Ba,WAAW,CAACb,EAAD,EAAKgD,CAAC,CAACjD,IAAP,CADvC,IAEC8C,IAAI,KAAK,MAAT,IAAmBT,UAAU,CAACY,CAAD,EAAIN,IAAJ,CAHhC;AAKD,IAAA,CARM,MAQA,IAAIG,IAAI,KAAK,SAAb,EAAwB;AAC7B,MAAA,OAAO/B,OAAO,CAACkB,UAAU,CAAC3B,SAAS,CAACqC,IAAI,CAACvD,MAAN,CAAV,CAAX,EAAqC6C,UAAU,CAAC3B,SAAS,CAAC2C,CAAC,CAAC7D,MAAH,CAAV,CAA/C,CAAd;AACD,IAAA,CAFM,MAEA,IAAI0D,IAAI,KAAK,OAAb,EAAsB;AAC3B,MAAA,OAAOhC,WAAW,CAACmC,CAAD,EAAIN,IAAJ,CAAlB;AACD,IAAA;AACF,EAAA,CAlBkB,CAAnB;AAoBA,EAAA,OAAO,CAAC,CAACU,UAAT;AACD,CAnCM;;ACrLA,MAAME,aAAa,GAAG;AAC3BC,EAAAA,aAAa,EAAE/G,SAAS,CAACG,MADE;AAE3ByE,EAAAA,UAAU,EAAE5E,SAAS,CAACG;AAFK,CAAtB;AAKP,MAAM6G,gBAAgB,GAAG;AACvBD,EAAAA,aAAa,EAAE;AACbhE,IAAAA,IAAI,EAAE,IADO;AAEbG,IAAAA,KAAK,EAAE,IAFM;AAGb+D,IAAAA,EAAE,EAAE,IAHS;AAIbC,IAAAA,IAAI,EAAE;AAJO;AADQ,CAAzB;;AASA,MAAMC,UAAU,GAAI5I,KAAD,KAAY;AAC7B6I,EAAAA,IAAI,EAAE;AACJC,IAAAA,MAAM,EAAEC,KAAK,CAACC,QAAN,CAAeC,OADnB;AAEJC,IAAAA,WAAW,EAAE;AAFT,GADuB;AAK7BC,EAAAA,KAAK,EAAE;AACLjJ,IAAAA,IAAI,EAAE6I,KAAK,CAACC,QAAN,CAAeC;AADhB,GALsB;AAQ7BG,EAAAA,IAAI,EAAE;AACJlJ,IAAAA,IAAI,EAAE6I,KAAK,CAACC,QAAN,CAAeC,OADjB;AAEJ,IAAA,UAAA,EAAY;AACVH,MAAAA,MAAM,EAAEC,KAAK,CAACC,QAAN,CAAeC;AADb;AAFR,GARuB;AAc7BI,EAAAA,aAAa,EAAE;AACbC,IAAAA,QAAQ,EAAEtJ,KAAK,CAACuJ,UAAN,CAAiBD;AADd,GAdc;AAiB7BE,EAAAA,eAAe,EAAE;AACfC,IAAAA,OAAO,EAAE,CADM;AAEfC,IAAAA,MAAM,EAAE,CAFO;AAGfC,IAAAA,SAAS,EAAE,QAHI;AAIf,IAAA,OAAA,EAAS;AACPD,MAAAA,MAAM,EAAE,CADD;AAEPD,MAAAA,OAAO,EAAE;AAFF,KAJM;AAQfH,IAAAA,QAAQ,EAAEtJ,KAAK,CAACuJ,UAAN,CAAiBD;AARZ;AAjBY,CAAZ,CAAnB;;AA6BA,MAAMM,eAAe,GAAG;AACtBC,EAAAA,UAAU,EAAE,QADU;AAEtBP,EAAAA,QAAQ,EAAE,MAFY;AAGtBQ,EAAAA,MAAM,EAAE;AAHc,CAAxB;AAMO,MAAMC,YAAY,GAAG,CAC1BC,cAD0B,EAE1BC,cAF0B,EAG1BC,kCAH0B,EAI1BC,kCAJ0B,EAK1BC,cAL0B,EAM1BC,EAN0B,KAOvB;AACH,EAAA,IAAIC,MAAM,GAAG,EAAb;;AAEA,EAAA,IACEN,cAAc,KAAKC,cAAnB,IACAC,kCAAkC,GAAGE,cAArC,GAAsDD,kCADtD,IAEAA,kCAAkC,GAAGD,kCAAkC,GAAGE,cAF1E,IAGAF,kCAAkC,GAAGE,cAArC,GAAsDC,EAHtD,IAIAA,EAAE,GAAGH,kCAAkC,GAAGE,cAL5C,EAME;AACAE,IAAAA,MAAM,CAACvH,IAAP,CAAYiH,cAAZ,CAAA;AACD,EAAA;;AAED,EAAA,OAAOM,MAAP;AACD,CArBM;AAuBA,MAAMC,kBAAkB,GAAIC,QAAD,IAAc,CAACA,QAAQ,IAAI,EAAb,EAAiBlC,IAAjB,CAAuBmC,OAAD,IAAaA,OAAO,GAAG,CAA7C,CAAzC;AAEA,MAAMC,QAAN,SAAuBnK,KAAK,CAACC,SAA7B,CAAuC;AAQ5CC,EAAAA,MAAM,GAAG;AACP,IAAA,MAAM;AACJ+H,MAAAA,aADI;AAEJ5H,MAAAA,OAFI;AAGJyF,MAAAA,UAHI;AAIJsE,MAAAA,iBAJI;AAKJC,MAAAA,UALI;AAMJT,MAAAA,kCANI;AAOJE,MAAAA;AAPI,KAAA,GAQF,KAAKtJ,KART;AASA,IAAA,MAAM;AAAED,MAAAA,KAAF;AAASwF,MAAAA,MAAT;AAAiBJ,MAAAA,IAAjB;AAAuBK,MAAAA;AAAvB,KAAA,GAAiCF,UAAU,IAAI,EAArD,CAVO;AAaP;;AACA,IAAA,MAAM1D,UAAU,GACd,CAAC2D,MAAM,CAACuE,SAAP,IAAoBtE,KAAK,CAACsE,SAA3B,KAAyCvE,MAAM,CAACzD,GAAP,IAAc,CAAvD,GAA2D,CAAC,GAAD,EAAM,GAAG8H,iBAAT,CAA3D,GAAyFA,iBAD3F,CAdO;;AAkBP,IAAA,MAAMG,UAAU,GAAIvH,KAAD,IAAW;AAC5B,MAAA,MAAM5C,CAAC,GAAGiK,UAAU,IAAIA,UAAU,CAAC,CAAD,CAAV,KAAkBrH,KAAhC,GAAwC4G,kCAAkC,GAAG,CAA7E,GAAiFE,EAA3F;AAEA,MAAA,OAAA,QAAA,CAAA,EAAA,EACKT,eADL,EAAA;AAEEmB,QAAAA,UAAU,EAAE,QAFd;AAGEpK,QAAAA,CAAC,EAAEA,CAHL;AAIEqK,QAAAA,EAAE,EAAEzH,KAAK,KAAK,GAAV,GAAgB,GAAhB,GAAsB,CAJ5B;AAKE8G,QAAAA,EAAE,EAAE9G,KAAK,KAAK,GAAV,GAAgB,EAAhB,GAAqB;AAL3B,OAAA,CAAA;AAOD,IAAA,CAVD;;AAYA,IAAA,MAAM0H,aAAa,GAAG3H,UAAU,CAACgD,MAAM,CAAC4E,SAAR,CAAhC;AACA,IAAA,MAAMrH,WAAW,GAAGD,eAAe,CAAC0C,MAAM,CAAC4E,SAAR,CAAnC;AACA,IAAA,MAAMC,cAAc,GAAGjH,qBAAqB,CAACL,WAAD,CAArB,GAAqC,CAA5D;AAEA,IAAA,oBACE,oBAAC,KAAD,CAAO,QAAP,EAAA,IAAA,eACE,oBAAC,IAAD,EAAA;AACE,MAAA,iBAAiB,EAAEjD,OAAO,CAACiI,IAD7B;AAEE,MAAA,KAAK,EAAE/H,KAAK,CAACJ,CAFf;AAGE,MAAA,GAAG,EAAEI,KAAK,CAACH,CAAN,CAAQ,CAAR,CAHP;AAIE,MAAA,IAAI,EAAE,CAJR;AAKE,MAAA,KAAK,EAAE2F,MAAM,CAAC/C,KALhB;AAME,MAAA,YAAY,EAAE,CANhB;AAOE,MAAA,aAAa,EAAE3C,OAAO,CAACwI,IAPzB;AAQE,MAAA,UAAU,EAAGgC,KAAD,IAAWA,KARzB;AASE,MAAA,cAAc,EAAEN,UATlB;AAUE,MAAA,UAAU,EAAEnI;AAVd,KAAA,CADF,EAaG6F,aAAa,IAAIA,aAAa,CAAChE,IAA/B,iBACC,oBAAClE,OAAD,EAAA;AAAO,MAAA,SAAS,EAAC,MAAjB;AAAwB,MAAA,CAAC,EAAEgG,MAAM,CAACzD,GAAlC;AAAuC,MAAA,CAAC,EAAE,CAA1C;AAA6C,MAAA,SAAS,EAAEjC,OAAO,CAACuI,KAAhE;AAAuE,MAAA,KAAK,EAAErI;AAA9E,KAAA,CAdJ,EAgBG0H,aAAa,IAAIA,aAAa,CAAC7D,KAA/B,iBACC,oBAACrE,OAAD,EAAA;AAAO,MAAA,SAAS,EAAC,OAAjB;AAAyB,MAAA,CAAC,EAAEgG,MAAM,CAACnD,GAAnC;AAAwC,MAAA,CAAC,EAAE,CAA3C;AAA8C,MAAA,SAAS,EAAEvC,OAAO,CAACuI,KAAjE;AAAwE,MAAA,KAAK,EAAErI;AAA/E,KAAA,CAjBJ,EAmBGwF,MAAM,CAAC4E,SAAP,iBACC,KAAA,CAAA,aAAA,CAAA,eAAA,EAAA;AAAe,MAAA,CAAC,EAAEhF,IAAI,CAACM,KAAL,GAAa,EAA/B;AAAmC,MAAA,CAAC,EAAE1F,KAAK,CAACH,CAAN,CAAQ,CAAR,IAAa,CAAnD;AAAsD,MAAA,KAAK,EAAEwK,cAA7D;AAA6E,MAAA,MAAM,EAAE,EAAA,GAAKF;AAA1F,KAAA,eACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,MAAA,uBAAuB,EAAE;AAAEI,QAAAA,MAAM,EAAE/E,MAAM,CAAC4E;AAAjB,OAA9B;AAA4D,MAAA,SAAS,EAAEtK,OAAO,CAACyI;AAA/E,KAAA,CADF,CApBJ,CADF;AA2BD,EAAA;;AArE2C;AAAjCqB,SACJlJ,yBACF+G;AACH3H,EAAAA,OAAO,EAAEa,SAAS,CAACG;AACnByE,EAAAA,UAAU,EAAEtE,KAAK,CAACuJ,cAAN,CAAqBzJ;;AAJxB6I,SAMJzI,eAAewG;AAkExB,MAAM8C,KAAK,GAAGrJ,YAAU,CAAC0G,UAAD,CAAV,CAAuB8B,QAAvB,CAAd;AAEO,MAAMc,QAAN,SAAuBjL,KAAK,CAACC,SAA7B,CAAuC;AAO5CC,EAAAA,MAAM,GAAG;AACP,IAAA,MAAM;AAAEG,MAAAA,OAAF;AAAW4H,MAAAA,aAAX;AAA0BnC,MAAAA,UAA1B;AAAsCuE,MAAAA,UAAtC;AAAkDa,MAAAA;AAAlD,KAAA,GAAoE,KAAK1K,KAA/E;AACA,IAAA,MAAM;AAAED,MAAAA,KAAF;AAASyF,MAAAA,KAAT;AAAgBL,MAAAA;AAAhB,KAAA,GAAyBG,UAAU,IAAI,EAA7C;AAEA,IAAA,MAAM8E,cAAc,GAAG5E,KAAK,CAAC2E,SAAN,GAAkBhH,qBAAqB,CAACqC,KAAK,CAAC2E,SAAN,CAAgBvH,MAAjB,CAAvC,GAAkE,CAAzF;;AAEA,IAAA,MAAM+H,gBAAgB,GAAIN,KAAD,IAAYR,UAAU,IAAIA,UAAU,CAAC9H,OAAX,CAAmBsI,KAAnB,CAAA,IAA6B,CAA3C,GAA+C,EAA/C,GAAoDA,KAAzF;;AAEA,IAAA,oBACE,oBAAC,KAAD,CAAO,QAAP,EAAA,IAAA,eACE,oBAAC,IAAD,EAAA;AACE,MAAA,iBAAiB,EAAExK,OAAO,CAACiI,IAD7B;AAEE,MAAA,WAAW,EAAE,MAFf;AAGE,MAAA,KAAK,EAAE/H,KAAK,CAACH,CAHf;AAIE,MAAA,GAAG,EAAE,CAJP;AAKE,MAAA,MAAM,EAAEuF,IAAI,CAACO,MALf;AAME,MAAA,IAAI,EAAE3F,KAAK,CAACJ,CAAN,CAAQ,CAAR,CANR;AAOE,MAAA,KAAK,EAAE6F,KAAK,CAAChD,KAPf;AAQE,MAAA,UAAU,EAAE;AAAE,QAAA,mBAAA,EAAqB;AAAvB,OARd;AASE,MAAA,YAAY,EAAE,CAThB;AAUE,MAAA,UAAU,EAAE,EAVd;AAWE,MAAA,aAAa,EAAE3C,OAAO,CAACwI,IAXzB;AAYE,MAAA,UAAU,EAAEsC,gBAZd;AAaE,MAAA,cAAc,EAAGN,KAAD,IAAW;AACzB,QAAA,IAAIO,MAAM,GAAGP,KAAK,CAACQ,cAAN,EAAA,CAAuB9H,OAAvB,CAA+B,OAA/B,EAAwC,EAAxC,CAAA,CAA4CH,MAA5C,IAAsD,CAAnE;AAEA,QAAA,OAAA,QAAA,CAAA,EAAA,EACKiG,eADL,EAAA;AAEES,UAAAA,EAAE,EAAE,CAFN;AAGEW,UAAAA,EAAE,EAAE,GAAA,GAAMW,MAAM,GAAG,CAHrB;AAIE,UAAA,mBAAA,EAAqB;AAJvB,SAAA,CAAA;AAMD,MAAA,CAtBH;AAuBE,MAAA,QAAQ,EAAE,IAvBZ;AAwBE,MAAA,cAAc,EAAE,QAxBlB;AAyBE,MAAA,UAAU,EAAEF;AAzBd,KAAA,CADF,EA6BGjD,aAAa,IAAIA,aAAa,CAACG,IAA/B,iBACC,oBAACrI,OAAD,EAAA;AAAO,MAAA,SAAS,EAAC,MAAjB;AAAwB,MAAA,CAAC,EAAE,CAA3B;AAA8B,MAAA,CAAC,EAAEiG,KAAK,CAAC1D,GAAvC;AAA4C,MAAA,SAAS,EAAEjC,OAAO,CAACuI,KAA/D;AAAsE,MAAA,KAAK,EAAErI;AAA7E,KAAA,CA9BJ,EAgCG0H,aAAa,IAAIA,aAAa,CAACE,EAA/B,iBACC,oBAACpI,OAAD,EAAA;AAAO,MAAA,SAAS,EAAC,IAAjB;AAAsB,MAAA,CAAC,EAAE,CAAzB;AAA4B,MAAA,CAAC,EAAEiG,KAAK,CAACpD,GAArC;AAA0C,MAAA,SAAS,EAAEvC,OAAO,CAACuI,KAA7D;AAAoE,MAAA,KAAK,EAAErI;AAA3E,KAAA,CAjCJ,EAmCGyF,KAAK,CAAC2E,SAAN,iBACC,KAAA,CAAA,aAAA,CAAA,eAAA,EAAA;AAAe,MAAA,CAAC,EAAEpK,KAAK,CAACJ,CAAN,CAAQ,CAAR,CAAA,GAAayK,cAAc,GAAG,CAAhD;AAAmD,MAAA,CAAC,EAAE,GAAtD;AAA2D,MAAA,KAAK,EAAEA,cAAlE;AAAkF,MAAA,MAAM,EAAC;AAAzF,KAAA,eACE,oBAAC,QAAD,EAAA;AAAU,MAAA,KAAK,EAAA;AAAf,KAAA,eACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,MAAA,uBAAuB,EAAE;AAAEE,QAAAA,MAAM,EAAE9E,KAAK,CAAC2E;AAAhB,OAA9B;AAA2D,MAAA,SAAS,EAAEtK,OAAO,CAAC4I;AAA9E,KAAA,CADF,CADF,CApCJ,CADF;AA6CD,EAAA;;AA5D2C;AAAjCgC,SACJhK,yBACF+G;AACHlC,EAAAA,UAAU,EAAEtE,KAAK,CAACuJ,cAAN,CAAqBzJ;;AAHxB2J,SAKJvJ,eAAewG;AA0DxB,MAAMoD,KAAK,GAAG3J,YAAU,CAAC0G,UAAD,CAAV,CAAuB4C,QAAvB,CAAd;AAEe,MAAMM,IAAN,SAAmBvL,KAAK,CAACC,SAAzB,CAAmC;AAAA,EAAA,WAAA,CAAA,GAAA,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAA,IAAA,CAAA;;AAAA,IAAA,IAAA,CAQhDuL,OARgD,GAQtC,MAAM;AACd,MAAA,MAAM;AAAE1F,QAAAA;AAAF,OAAA,GAAiB,KAAKtF,KAA5B;AACA,MAAA,MAAM;AAAED,QAAAA,KAAF;AAASwF,QAAAA;AAAT,OAAA,GAAoBD,UAAU,IAAI,EAAxC;;AAEA,MAAA,IAAI,CAACC,MAAD,IAAW,CAACxF,KAAhB,EAAuB;AACrB,QAAA;AACD,MAAA;;AAED,MAAA,MAAMkL,KAAK,GAAGvJ,aAAa,CAAA,QAAA,CAAA,EAAA,EAAM6D,MAAN,EAAA;AAAcpD,QAAAA,IAAI,EAAEoD,MAAM,CAACuE;AAA3B,OAAA,CAAA,CAA3B;AACA,MAAA,MAAMoB,QAAQ,GAAG1B,kBAAkB,CAACyB,KAAD,CAAnC;AAEA,MAAA,OAAO;AACLrB,QAAAA,iBAAiB,EAAEqB,KADd;AAELhC,QAAAA,cAAc,EAAEiC,QAFX;AAGL/B,QAAAA,kCAAkC,EAAElH,IAAI,CAACkJ,GAAL,CAASpL,KAAK,CAACH,CAAN,CAAQ,CAAR,CAAA,GAAaG,KAAK,CAACH,CAAN,CAAQsL,QAAR,CAAtB;AAH/B,OAAP;AAKD,IAAA,CAxB+C;;AAAA,IAAA,IAAA,CA0BhDE,OA1BgD,GA0BtC,MAAM;AACd,MAAA,MAAM;AAAE9F,QAAAA;AAAF,OAAA,GAAiB,KAAKtF,KAA5B;AACA,MAAA,MAAM;AAAED,QAAAA,KAAF;AAASyF,QAAAA;AAAT,OAAA,GAAmBF,UAAU,IAAI,EAAvC;;AAEA,MAAA,IAAI,CAACE,KAAD,IAAU,CAACzF,KAAf,EAAsB;AACpB,QAAA;AACD,MAAA;;AAED,MAAA,MAAMkL,KAAK,GAAGvJ,aAAa,CAAA,QAAA,CAAA,EAAA,EAAM8D,KAAN,EAAA;AAAarD,QAAAA,IAAI,EAAEqD,KAAK,CAACsE;AAAzB,OAAA,CAAA,CAA3B;AACA,MAAA,MAAMoB,QAAQ,GAAG1B,kBAAkB,CAACyB,KAAD,CAAnC;AAEA,MAAA,OAAO;AACLP,QAAAA,aAAa,EAAEO,KADV;AAEL/B,QAAAA,cAAc,EAAEgC,QAFX;AAGL9B,QAAAA,kCAAkC,EAAEnH,IAAI,CAACkJ,GAAL,CAASpL,KAAK,CAACJ,CAAN,CAAQ,CAAR,CAAA,GAAaI,KAAK,CAACJ,CAAN,CAAQuL,QAAR,CAAtB;AAH/B,OAAP;AAKD,IAAA,CA1C+C;AAAA,EAAA;;AA4ChDxL,EAAAA,MAAM,GAAG;AACP,IAAA,MAAM;AAAE4F,MAAAA;AAAF,KAAA,GAAiB,KAAKtF,KAA5B;AACA,IAAA,MAAM;AAAEuF,MAAAA,MAAF;AAAUC,MAAAA;AAAV,KAAA,GAAoBF,UAAU,IAAI,EAAxC;AACA,IAAA,MAAM;AAAEsE,MAAAA,iBAAF;AAAqBX,MAAAA,cAArB;AAAqCE,MAAAA;AAArC,KAAA,GAA4E,IAAA,CAAK6B,OAAL,EAAlF;AACA,IAAA,MAAM;AAAEN,MAAAA,aAAF;AAAiBxB,MAAAA,cAAjB;AAAiCE,MAAAA;AAAjC,KAAA,GAAwE,IAAA,CAAKgC,OAAL,EAA9E;AACA,IAAA,MAAM/B,cAAc,GAAG,CAAvB;AACA,IAAA,MAAMC,EAAE,GAAG,EAAX;AAEA,IAAA,MAAMO,UAAU,GAAGb,YAAY,CAC7BC,cAD6B,EAE7BC,cAF6B,EAG7BC,kCAH6B,EAI7BC,kCAJ6B,EAK7BC,cAL6B,EAM7BC,EAN6B,CAA/B,CARO;;AAkBP,IAAA,oBACE,KAAA,CAAA,aAAA,CAAC,KAAD,CAAO,QAAP,QACG9D,KAAK,CAAC1D,GAAN,IAAa,CAAb,gBACC,KAAA,CAAA,aAAA,CAAC,KAAD,EAAA,QAAA,CAAA,EAAA,EACM,KAAK9B,KADX,EAAA;AAEE,MAAA,UAAU,EAAE6J,UAFd;AAGE,MAAA,iBAAiB,EAAED,iBAHrB;AAIE,MAAA,kCAAkC,EAAER,kCAJtC;AAKE,MAAA,EAAE,EAAEE;AALN,KAAA,CAAA,CADD,GAQG,IATN,EAUG/D,MAAM,CAACzD,GAAP,IAAc,CAAd,gBACC,KAAA,CAAA,aAAA,CAAC,KAAD,EAAA,QAAA,CAAA,EAAA,EACM,KAAK9B,KADX,EAAA;AAEE,MAAA,UAAU,EAAE6J,UAFd;AAGE,MAAA,aAAa,EAAEa,aAHjB;AAIE,MAAA,kCAAkC,EAAEvB;AAJtC,KAAA,CAAA,CADD,GAOG,IAjBN,CADF;AAqBD,EAAA;;AAnF+C;AAA7B4B,KACZtK,yBACF+G;AACH3H,EAAAA,OAAO,EAAEa,SAAS,CAACG;AACnByE,EAAAA,UAAU,EAAEtE,KAAK,CAACuJ,cAAN,CAAqBzJ;;AAJhBiK,KAMZ7J,eAAewG;;AC7NjB,MAAM2D,IAAN,SAAmB7L,KAAK,CAACC,SAAzB,CAAmC;AAAA,EAAA,WAAA,CAAA,GAAA,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAA,IAAA,CAAA;;AAAA,IAAA,IAAA,CAQxC6L,sBARwC,GAQf,CAACZ,aAAD,EAAgBa,gBAAhB,KAAqC;AAC5D,MAAA,MAAM;AACJjG,QAAAA,UAAU,EAAE;AACVvF,UAAAA,KADU;AAEVoF,UAAAA,IAAI,EAAE;AAAEM,YAAAA,KAAF;AAASC,YAAAA;AAAT,WAFI;AAGVH,UAAAA,MAHU;AAIVC,UAAAA;AAJU;AADR,OAAA,GAOF,KAAKxF,KAPT;AAQA,MAAA,MAAMwL,kBAAkB,GAAG9J,aAAa,CAAA,QAAA,CAAA,EAAA,EACnC8D,KADmC,EAAA;AAEtCrD,QAAAA,IAAI,EAAEqD,KAAK,CAACsE;AAF0B,OAAA,CAAA,CAAb,CAGxBzH,MAHwB,CAGhBgI,KAAD,IAAWK,aAAa,CAACe,QAAd,CAAuBpB,KAAvB,CAHM,CAA3B;AAIA,MAAA,MAAMqB,qBAAqB,GAAGhK,aAAa,CAAA,QAAA,CAAA,EAAA,EACtC6D,MADsC,EAAA;AAEzCpD,QAAAA,IAAI,EAAEoD,MAAM,CAACuE;AAF4B,OAAA,CAAA,CAAb,CAG3BzH,MAH2B,CAGnBgI,KAAD,IAAWkB,gBAAgB,CAACE,QAAjB,CAA0BpB,KAA1B,CAHS,CAA9B;AAKA,MAAA,MAAMsB,cAAc,GACjBH,kBAAkB,CAAC5I,MAAnB,IACCX,IAAI,CAACH,GAAL,CAAS,GAAG0J,kBAAZ,CAAA,CACGI,QADH,EAAA,CAEG7I,OAFH,CAEW,OAFX,EAEoB,EAFpB,CAAA,CAEwBH,MAH1B,IAIA,CALF;AAMA,MAAA,MAAMiJ,cAAc,GACjBL,kBAAkB,CAAC5I,MAAnB,IACCX,IAAI,CAACG,GAAL,CAAS,GAAGoJ,kBAAZ,CAAA,CACGI,QADH,EAAA,CAEG7I,OAFH,CAEW,OAFX,EAEoB,EAFpB,CAAA,CAEwBH,MAH1B,IAIA,CALF;AAOA,MAAA,MAAMkJ,cAAc,GAAG7J,IAAI,CAACG,GAAL,CAASuJ,cAAT,EAAyBE,cAAzB,CAAA,GAA2C,CAA3C,GAA+C,EAAtE;AACA,MAAA,MAAME,wBAAwB,GAAGhM,KAAK,CAACJ,CAAN,CAAQ,CAAR,CAAjC;AACA,MAAA,MAAMqM,sBAAsB,GAAGjM,KAAK,CAACH,CAAN,CAAQ,CAAR,CAA/B;AACA,MAAA,MAAMqM,iBAAiB,GAAG,EAA1B;AACA,MAAA,MAAMC,kBAAkB,GAAI,CAAA,EAAEH,wBAAwB,GAAGD,cAAe,CAAA,CAAA,EAAGA,cAAe,CAAA,CAAA,EAAGrG,KAAM,CAAA,CAAnG;AACA,MAAA,MAAM0G,qBAAqB,GAAI,CAAA,EAAEH,sBAAuB,IAAGC,iBAAkB,CAAA,CAAA,EAAGvG,MAAO,CAAA,CAAvF;AAEA,MAAA,MAAM0G,qBAAqB,GACzB7G,MAAM,CAACuE,SAAP,GAAmB,CAAnB,IACAtE,KAAK,CAACsE,SAAN,GAAkB,CADlB,IAEA0B,kBAFA,IAGAE,qBAHA,IAIAF,kBAAkB,CAAC5I,MAAnB,GAA4B,CAJ5B,IAKA8I,qBAAqB,CAAC9I,MAAtB,GAA+B,CAL/B,KAMC4I,kBAAkB,CAAC5I,MAAnB,KAA8B8H,aAAa,CAAC9H,MAA5C,IAAsD8I,qBAAqB,CAAC9I,MAAtB,KAAiC2I,gBAAgB,CAAC3I,MANzG,CADF;AASA,MAAA,MAAMyJ,oBAAoB,GAAGX,qBAAqB,CAACrJ,MAAtB,CAC1BgI,KAAD,IAAWA,KAAK,IAAI,CAAT,IAAc0B,wBAAwB,GAAGhM,KAAK,CAACJ,CAAN,CAAQ0K,KAAR,CAA3B,GAA4CyB,cAD1C,CAA7B;AAGA,MAAA,MAAMQ,iBAAiB,GAAGd,kBAAkB,CAACnJ,MAAnB,CACvBgI,KAAD,IAAWA,KAAK,IAAI,CAAT,IAActK,KAAK,CAACH,CAAN,CAAQyK,KAAR,CAAA,GAAiB2B,sBAAjB,GAA0CC,iBAD3C,CAA1B;AAIA,MAAA,OAAO;AACLT,QAAAA,kBAAkB,EAAEc,iBADf;AAELZ,QAAAA,qBAAqB,EAAEW,oBAFlB;AAGLH,QAAAA,kBAHK;AAILC,QAAAA,qBAJK;AAKLC,QAAAA;AALK,OAAP;AAOD,IAAA,CArEuC;AAAA,EAAA;;AAuExC1M,EAAAA,MAAM,GAAG;AACP,IAAA,MAAM;AAAE4F,MAAAA;AAAF,KAAA,GAAiB,KAAKtF,KAA5B;AACA,IAAA,MAAM;AACJD,MAAAA,KADI;AAEJoF,MAAAA,IAAI,EAAE;AAAEO,QAAAA,MAAF;AAAUD,QAAAA;AAAV,OAFF;AAGJF,MAAAA,MAHI;AAIJC,MAAAA;AAJI,KAAA,GAKFF,UALJ;AAMA,IAAA,MAAMoF,aAAa,GAAGhJ,aAAa,CAAC8D,KAAD,CAAnC;AACA,IAAA,MAAM+F,gBAAgB,GAAG7J,aAAa,CAAC6D,MAAD,CAAtC;AACA,IAAA,MAAM;AACJiG,MAAAA,kBADI;AAEJE,MAAAA,qBAFI;AAGJQ,MAAAA,kBAHI;AAIJC,MAAAA,qBAJI;AAKJC,MAAAA;AALI,KAAA,GAMF,KAAKd,sBAAL,CAA4BZ,aAA5B,EAA2Ca,gBAA3C,CANJ;AAQA,IAAA,MAAMgB,oBAAoB,GACxBhH,MAAM,CAACuE,SAAP,GAAmB,CAAnB,KAAyBvE,MAAM,CAACpD,IAAhC,IAAwCqD,KAAK,CAACsE,SAAN,GAAkB,CAAlB,KAAwBtE,KAAK,CAACrD,IAAtE,GAA6E,SAA7E,GAAyF,SAD3F;AAGA,IAAA,oBACE,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,eACE,KAAA,CAAA,aAAA,CAAC,EAAD,CAAI,IAAJ,EAAA;AACE,MAAA,QAAQ,EAAGqK,CAAD,IAAQ,IAAA,CAAKC,IAAL,GAAYD,CADhC;AAEE,MAAA,MAAM,EAAEzM,KAAK,CAACJ,CAFhB;AAGE,MAAA,MAAM,EAAEI,KAAK,CAACH,CAHhB;AAIE,MAAA,KAAK,EAAE6F,KAJT;AAKE,MAAA,MAAM,EAAEC,MALV;AAME,MAAA,MAAM,EAAC,SANT;AAOE,MAAA,aAAa,EAAEgF,aAPjB;AAQE,MAAA,gBAAgB,EAAEa;AARpB,KAAA,CADF,EAWGa,qBAAqB,iBACpB,uDACE,KAAA,CAAA,aAAA,CAAC,EAAD,CAAI,QAAJ,EAAA;AACE,MAAA,KAAK,EAAErM,KAAK,CAACH,CADf;AAEE,MAAA,KAAK,EAAE6F,KAFT;AAGE,MAAA,UAAU,EAAE+F,kBAHd;AAIE,MAAA,MAAM,EAAEe,oBAJV;AAKE,MAAA,eAAe,EAAEL;AALnB,KAAA,CADF,eAQE,KAAA,CAAA,aAAA,CAAC,EAAD,CAAI,WAAJ,EAAA;AACE,MAAA,KAAK,EAAEnM,KAAK,CAACJ,CADf;AAEE,MAAA,MAAM,EAAE+F,MAFV;AAGE,MAAA,UAAU,EAAEgG,qBAHd;AAIE,MAAA,MAAM,EAAEa,oBAJV;AAKE,MAAA,eAAe,EAAEJ;AALnB,KAAA,CARF,CAZJ,CADF;AAgCD,EAAA;;AA5HuC;AAA7Bd,KACJ5K,YAAY;AACjBiM,EAAAA,QAAQ,EAAEhM,SAAS,CAACiM,IADH;AAEjBC,EAAAA,sBAAsB,EAAElM,SAAS,CAACiM,IAFjB;AAGjB9M,EAAAA,OAAO,EAAEa,SAAS,CAACG,MAAV,CAAiBC,UAHT;AAIjBwE,EAAAA,UAAU,EAAEtE,KAAK,CAACuJ,cAAN,CAAqBzJ;AAJhB;AA8HrB,aAAeK,UAAU,CAAC,OAAO,EAAP,CAAD,CAAV,CAAuBkK,IAAvB,CAAf;;AC9HA,MAAMwB,SAAS,GAAG;AAChBpJ,EAAAA,IAAI,EAAE,GADU;AAEhBC,EAAAA,GAAG,EAAE,CAFW;AAGhBC,EAAAA,MAAM,EAAE,CAHQ;AAIhBC,EAAAA,KAAK,EAAE;AAJS,CAAlB;AAOO,MAAMrD,YAAY,GAAG,CAACuM,IAAD,EAAOrH,KAAP,EAAcC,MAAd,KAAyB;AACnD,EAAA,MAAMqH,CAAC,GAAG,CAACpN,CAAD,EAAIC,CAAJ,EAAOY,MAAP,KAAmB,aAAYb,CAAE,CAAA,EAAA,EAAIC,CAAE,CAAA,UAAA,EAAYY,MAAO,CAAA,CAAA,CAApE;;AAEA,EAAA,IAAIsM,IAAI,KAAK,MAAb,EAAqB;AACnB,IAAA,OAAOC,CAAC,CAAC,GAAD,EAAMrH,MAAM,GAAG,CAAf,EAAkBmH,SAAS,CAACC,IAAD,CAA3B,CAAR;AACD,EAAA;;AACD,EAAA,IAAIA,IAAI,KAAK,OAAb,EAAsB;AACpB,IAAA,OAAOC,CAAC,CAACtH,KAAK,GAAG,EAAT,EAAaC,MAAM,GAAG,CAAtB,EAAyBmH,SAAS,CAACC,IAAD,CAAlC,CAAR;AACD,EAAA;;AACD,EAAA,IAAIA,IAAI,KAAK,KAAb,EAAoB;AAClB,IAAA,OAAOC,CAAC,CAACtH,KAAK,GAAG,CAAT,EAAY,GAAZ,EAAiBoH,SAAS,CAACC,IAAD,CAA1B,CAAR;AACD,EAAA;;AACD,EAAA,IAAIA,IAAI,KAAK,QAAb,EAAuB;AACrB,IAAA,OAAOC,CAAC,CAACtH,KAAK,GAAG,CAAT,EAAYC,MAAM,GAAG,EAArB,EAAyBmH,SAAS,CAACC,IAAD,CAAlC,CAAR;AACD,EAAA;AACF,CAfM;;AAiBP,MAAME,IAAI,GAAG,CAACF,IAAD,EAAOpH,MAAP,KAAkB;AAC7B,EAAA,QAAQoH,IAAR;AACE,IAAA,KAAK,MAAL;AACE,MAAA,OAAO,GAAP;;AACF,IAAA,KAAK,KAAL;AACE,MAAA,OAAO,GAAP;;AACF,IAAA,KAAK,OAAL;AACE,MAAA,OAAO,GAAA,GAAU,EAAjB;;AACF,IAAA;AACE,MAAA,OAAO,GAAA,GAAU,EAAjB;AARJ;AAUD,CAXD;;AAaA,MAAMG,QAAN,SAAuBzN,KAAK,CAACC,SAA7B,CAAuC;AAerCC,EAAAA,MAAM,GAAG;AACP,IAAA,MAAM;AAAEwN,MAAAA,aAAF;AAAiBC,MAAAA,WAAjB;AAA8BC,MAAAA,IAA9B;AAAoCN,MAAAA,IAApC;AAA0CxH,MAAAA,UAA1C;AAAsDzF,MAAAA,OAAtD;AAA+DwN,MAAAA,QAA/D;AAAyEC,MAAAA,aAAa,GAAG;AAAzF,KAAA,GAAgG,KAAKtN,KAA3G;AACA,IAAA,MAAM;AAAEmF,MAAAA,IAAF;AAAQI,MAAAA,MAAR;AAAgBC,MAAAA;AAAhB,KAAA,GAA0BF,UAAhC;AACA,IAAA,MAAMiI,WAAW,GAAG,CAACpI,IAAI,CAACO,MAAL,IAAe,GAAhB,IAAuB,CAACF,KAAK,CAACkD,OAAN,IAAiB,CAAlB,IAAuB,CAAlE;AACA,IAAA,MAAM8E,UAAU,GAAG,CAACrI,IAAI,CAACM,KAAL,IAAc,GAAf,IAAsB,CAACF,MAAM,CAACmD,OAAP,IAAkB,CAAnB,IAAwB,CAAjE;AAEA,IAAA,MAAMpI,SAAS,GAAGC,YAAY,CAACuM,IAAD,EAAOU,UAAP,EAAmBD,WAAnB,CAA9B;AACA,IAAA,MAAM9H,KAAK,GAAGqH,IAAI,KAAK,MAAT,IAAmBA,IAAI,KAAK,OAA5B,GAAsCS,WAAtC,GAAoDC,UAAlE;AACA,IAAA,MAAM9H,MAAM,GAAG,EAAf;AACA,IAAA,MAAM9F,CAAC,GAAGoN,IAAI,CAACF,IAAD,CAAd;AACA,IAAA,MAAMW,WAAW,GAAGX,IAAI,KAAK,QAAT,GAAoBpH,MAAM,GAAG,EAA7B,GAAkCA,MAAM,GAAG,EAA/D;AAEA,IAAA,MAAMgI,aAAa,GAAG,CACpB,MADoB,EAEpB,QAFoB,EAGpB,WAHoB,EAIpB,eAJoB,EAKpB,MALoB;AAAA,KAAtB;AASA,IAAA,oBACE,KAAA,CAAA,aAAA,CAAA,eAAA,EAAA;AACE,MAAA,CAAC,EAAE,EAAEjI,KAAK,GAAG,CAAV,CADL;AAEE,MAAA,CAAC,EAAE7F,CAFL;AAGE,MAAA,KAAK,EAAE6F,KAHT;AAIE,MAAA,MAAM,EAAEgI,WAJV;AAKE,MAAA,SAAS,EAAEnN,SALb;AAME,MAAA,UAAU,EAAC;AANb,KAAA,eAQE,oBAAC,QAAD,EAAA;AAAU,MAAA,KAAK,EAAA;AAAf,KAAA,eACE,oBAAC,YAAD,EAAA;AACE,MAAA,SAAS,EAAEqN,UAAE,CACX;AACE,QAAA,CAAC9N,OAAO,CAAC+N,WAAT,GAAuBd,IAAI,KAAK,QADlC;AAEE,QAAA,CAACjN,OAAO,CAACgO,iBAAT,GAA6BX;AAF/B,OADW,EAKXrN,OAAO,CAACsK,SALG,CADf;AAQE,MAAA,MAAM,EAAEiD,IAAI,IAAI,EARlB;AASE,MAAA,QAAQ,EAAEC,QATZ;AAUE,MAAA,WAAW,EAAE,CAACH,aAAD,IAAkBC,WAVjC;AAWE,MAAA,WAAW,EAAE;AACXW,QAAAA,QAAQ,EAAEhB,IAAI,KAAK,QAAT,GAAoB,KAApB,GAA4B,QAD3B;AAEXiB,QAAAA,SAAS,EAAE,IAFA;AAGXC,QAAAA,QAAQ,EAAE;AAHC,OAXf;AAgBE,MAAA,aAAa,EAAEN,aAhBjB;AAiBE,MAAA,aAAa,EAAEJ;AAjBjB,KAAA,CADF,CARF,CADF;AAgCD,EAAA;;AApEoC;;AAAjCL,SACGxM,YAAY;AACjB2M,EAAAA,IAAI,EAAE1M,SAAS,CAACK,MADC;AAEjB+L,EAAAA,IAAI,EAAEpM,SAAS,CAACK,MAFC;AAGjBlB,EAAAA,OAAO,EAAEa,SAAS,CAACG,MAHF;AAIjBqM,EAAAA,aAAa,EAAExM,SAAS,CAACiM,IAJR;AAKjBQ,EAAAA,WAAW,EAAEzM,SAAS,CAACK,MALN;AAMjBuE,EAAAA,UAAU,EAAEtE,KAAK,CAACuJ,cAAN,CAAqBzJ,UANhB;AAOjBuM,EAAAA,QAAQ,EAAE3M,SAAS,CAACuN;AAPH;AADfhB,SAWG/L,eAAe;AACpBmM,EAAAA,QAAQ,EAAE,MAAM,CAAE;AADE;AA4DxB,MAAMa,KAAK,GAAG/M,UAAU,CAAElC,KAAD,KAAY;AACnCuD,EAAAA,KAAK,EAAE;AACLrD,IAAAA,IAAI,EAAE6I,KAAK,CAACC,QAAN,CAAekG;AADhB,GAD4B;AAInChE,EAAAA,SAAS,EAAE;AACT5B,IAAAA,QAAQ,EAAEtJ,KAAK,CAACuJ,UAAN,CAAiBD,QAAjB,GAA4B,CAD7B;AAETK,IAAAA,SAAS,EAAE,QAFF;AAGTF,IAAAA,OAAO,EAAE;AAHA,GAJwB;AASnCmF,EAAAA,iBAAiB,EAAE;AACjBO,IAAAA,aAAa,EAAE;AADE,GATgB;AAYnCR,EAAAA,WAAW,EAAE;AACXS,IAAAA,SAAS,EAAE;AADA;AAZsB,CAAZ,CAAD,CAAV,CAeVpB,QAfU,CAAd;AAiBO,MAAMqB,SAAS,GAAG;AACvB7K,EAAAA,IAAI,EAAE/C,SAAS,CAACK,MADO;AAEvB2C,EAAAA,GAAG,EAAEhD,SAAS,CAACK,MAFQ;AAGvB4C,EAAAA,MAAM,EAAEjD,SAAS,CAACK,MAHK;AAIvB6C,EAAAA,KAAK,EAAElD,SAAS,CAACK;AAJM,CAAlB;AAOA,MAAMwN,MAAN,SAAqB/O,KAAK,CAACC,SAA3B,CAAqC;AAAA,EAAA,WAAA,CAAA,GAAA,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAA,IAAA,CAAA;;AAAA,IAAA,IAAA,CAa1C+O,aAb0C,GAa1B,CAACC,QAAD,EAAW3B,IAAX,KAAoB;AAClC,MAAA,MAAM;AAAEzC,QAAAA,KAAF;AAASgD,QAAAA;AAAT,OAAA,GAAsB,KAAKrN,KAAjC;;AACA,MAAA,MAAM0O,MAAM,gBACPrE,KADO,EAAA;AAEV,QAAA,CAACyC,IAAD,GAAQ2B;AAFE,OAAA,CAAZ;;AAKApB,MAAAA,QAAQ,CAACqB,MAAD,CAAR;AACD,IAAA,CArByC;AAAA,EAAA;;AAuB1ChP,EAAAA,MAAM,GAAG;AACP,IAAA,MAAM;AAAEiP,MAAAA,cAAF;AAAkBC,MAAAA,YAAY,GAAG,EAAjC;AAAqCvE,MAAAA,KAAK,GAAG,EAA7C;AAAiD/E,MAAAA,UAAjD;AAA6DgI,MAAAA,aAAa,GAAG;AAA7E,KAAA,GAAoF,KAAKtN,KAA/F;AAEA,IAAA,oBACE,oBAAC,KAAD,CAAO,QAAP,EAAA,IAAA,eACE,oBAAC,KAAD,EAAA;AACE,MAAA,GAAG,EAAC,MADN;AAEE,MAAA,IAAI,EAAC,MAFP;AAGE,MAAA,IAAI,EAAEqK,KAAK,CAAC5G,IAHd;AAIE,MAAA,aAAa,EAAEkL,cAJjB;AAKE,MAAA,WAAW,EAAEC,YAAY,CAACnL,IAL5B;AAME,MAAA,UAAU,EAAE6B,UANd;AAOE,MAAA,QAAQ,EAAG+E,KAAD,IAAW,IAAA,CAAKmE,aAAL,CAAmBnE,KAAnB,EAA0B,MAA1B,CAPvB;AAQE,MAAA,aAAa,EAAEiD;AARjB,KAAA,CADF,eAWE,oBAAC,KAAD,EAAA;AACE,MAAA,GAAG,EAAC,KADN;AAEE,MAAA,IAAI,EAAC,KAFP;AAGE,MAAA,IAAI,EAAEjD,KAAK,CAAC3G,GAHd;AAIE,MAAA,aAAa,EAAEiL,cAJjB;AAKE,MAAA,WAAW,EAAEC,YAAY,CAAClL,GAL5B;AAME,MAAA,UAAU,EAAE4B,UANd;AAOE,MAAA,QAAQ,EAAG+E,KAAD,IAAW,IAAA,CAAKmE,aAAL,CAAmBnE,KAAnB,EAA0B,KAA1B,CAPvB;AAQE,MAAA,aAAa,EAAEiD;AARjB,KAAA,CAXF,eAqBE,oBAAC,KAAD,EAAA;AACE,MAAA,GAAG,EAAC,QADN;AAEE,MAAA,IAAI,EAAC,QAFP;AAGE,MAAA,IAAI,EAAEjD,KAAK,CAAC1G,MAHd;AAIE,MAAA,aAAa,EAAEgL,cAJjB;AAKE,MAAA,WAAW,EAAEC,YAAY,CAACjL,MAL5B;AAME,MAAA,UAAU,EAAE2B,UANd;AAOE,MAAA,QAAQ,EAAG+E,KAAD,IAAW,IAAA,CAAKmE,aAAL,CAAmBnE,KAAnB,EAA0B,QAA1B,CAPvB;AAQE,MAAA,aAAa,EAAEiD;AARjB,KAAA,CArBF,eA+BE,oBAAC,KAAD,EAAA;AACE,MAAA,GAAG,EAAC,OADN;AAEE,MAAA,IAAI,EAAC,OAFP;AAGE,MAAA,IAAI,EAAEjD,KAAK,CAACzG,KAHd;AAIE,MAAA,aAAa,EAAE+K,cAJjB;AAKE,MAAA,WAAW,EAAEC,YAAY,CAAChL,KAL5B;AAME,MAAA,UAAU,EAAE0B,UANd;AAOE,MAAA,QAAQ,EAAG+E,KAAD,IAAW,IAAA,CAAKmE,aAAL,CAAmBnE,KAAnB,EAA0B,OAA1B,CAPvB;AAQE,MAAA,aAAa,EAAEiD;AARjB,KAAA,CA/BF,CADF;AA4CD,EAAA;;AAtEyC;AAA/BiB,OACJ9N,YAAY;AACjBZ,EAAAA,OAAO,EAAEa,SAAS,CAACG,MADF;AAEjBf,EAAAA,SAAS,EAAEY,SAAS,CAACK,MAFJ;AAGjB4N,EAAAA,cAAc,EAAEjO,SAAS,CAACiM,IAHT;AAIjBiC,EAAAA,YAAY,EAAElO,SAAS,CAACG,MAJP;AAKjBwJ,EAAAA,KAAK,EAAE3J,SAAS,CAACmO,KAAV,CAAgBP,SAAhB,CALU;AAMjBhJ,EAAAA,UAAU,EAAE5E,SAAS,CAACG,MANL;AAOjBwM,EAAAA,QAAQ,EAAE3M,SAAS,CAACG;AAPH;AADR0N,OAWJrN,eAAe;;ACjJT,MAAM4N,EAAN,SAAiBtP,KAAK,CAACC,SAAvB,CAAiC;AAAA,EAAA,WAAA,CAAA,GAAA,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAA,IAAA,CAAA;;AAAA,IAAA,IAAA,CAwB9CsP,cAxB8C,GAwB7B,MAAM;AACrB,MAAA,MAAM;AAAEzJ,QAAAA;AAAF,OAAA,GAAiB,KAAKtF,KAA5B;AAEA,MAAA,OAAOqF,mBAAmB,CAACC,UAAD,CAAnB,GAAkC,CAAlC,GAAsC,EAA7C;AACD,IAAA,CA5B6C;;AAAA,IAAA,IAAA,CAkC9C0J,WAlC8C,GAkC/BC,IAAD,IAAU;AACtB,MAAA,MAAM;AAAEC,QAAAA,OAAF;AAAW5J,QAAAA;AAAX,OAAA,GAA0B,KAAKtF,KAArC;AACA,MAAA,MAAM;AAAED,QAAAA;AAAF,OAAA,GAAYuF,UAAlB;AAEA,MAAA,MAAMoD,OAAO,GAAG,IAAA,CAAKqG,cAAL,EAAhB;AACA,MAAA,MAAMI,MAAM,GAAGC,KAAK,CAACH,IAAI,CAACI,OAAL,CAAa,CAAb,CAAA,CAAgB,CAAhB,CAAD,CAApB,CALsB;;AAQtB,MAAA,MAAM1P,CAAC,GAAGI,KAAK,CAACJ,CAAN,CAAQ2P,MAAR,CAAeH,MAAM,CAAC,CAAD,CAAN,GAAYzG,OAA3B,CAAV;AACA,MAAA,MAAM9I,CAAC,GAAGG,KAAK,CAACH,CAAN,CAAQ0P,MAAR,CAAeH,MAAM,CAAC,CAAD,CAAN,GAAYzG,OAA3B,CAAV;AAEA,MAAA,MAAM6G,QAAQ,GAAG7N,aAAa,CAAC4D,UAAU,CAACE,KAAZ,CAA9B;AACA,MAAA,MAAMgK,WAAW,GAAG9N,aAAa,CAAC4D,UAAU,CAACC,MAAZ,CAAjC;;AAEA,MAAA,MAAMkK,OAAO,GAAG,CAACxE,KAAD,EAAQZ,KAAR,KAAkB;AAChC,QAAA,OACEY,KAAK,CAACrI,MAAN,IACAqI,KAAK,CAACnH,MAAN,CAAa,CAAC4L,IAAD,EAAOC,IAAP,KAAgB;AAC3B,UAAA,MAAMC,eAAe,GAAG3N,IAAI,CAACkJ,GAAL,CAASwE,IAAI,GAAGtF,KAAhB,CAAxB;AACA,UAAA,MAAMwF,gBAAgB,GAAG5N,IAAI,CAACkJ,GAAL,CAASuE,IAAI,GAAGrF,KAAhB,CAAzB;AAEA,UAAA,OAAOuF,eAAe,IAAIC,gBAAnB,GAAsCF,IAAtC,GAA6CD,IAApD;AACD,QAAA,CALD,CAFF;AASD,MAAA,CAVD;;AAYA,MAAA,IAAII,OAAO,GAAG,EAAd;;AAEA,MAAA,IAAIN,WAAW,CAACzN,OAAZ,CAAoBpC,CAApB,CAAA,IAA0B,CAA1B,IAA+B4P,QAAQ,CAACxN,OAAT,CAAiBnC,CAAjB,CAAA,IAAuB,CAA1D,EAA6D;AAC3DkQ,QAAAA,OAAO,CAACnQ,CAAR,GAAYA,CAAZ;AACAmQ,QAAAA,OAAO,CAAClQ,CAAR,GAAYA,CAAZ;AACD,MAAA,CAHD,MAGO;AACLkQ,QAAAA,OAAO,CAACnQ,CAAR,GAAY8P,OAAO,CAACD,WAAD,EAAc7P,CAAd,CAAnB;AACAmQ,QAAAA,OAAO,CAAClQ,CAAR,GAAY6P,OAAO,CAACF,QAAD,EAAW3P,CAAX,CAAnB;AACD,MAAA;;AAEDsP,MAAAA,OAAO,CAACY,OAAD,CAAP;AACD,IAAA,CAvE6C;AAAA,EAAA;;AAU9CC,EAAAA,iBAAiB,GAAG;AAClB,IAAA,MAAMd,IAAI,GAAGe,MAAM,CAAC,IAAA,CAAKf,IAAN,CAAnB;AAEAA,IAAAA,IAAI,CAACgB,EAAL,CAAQ,OAAR,EAAiB,IAAA,CAAKjB,WAAL,CAAiBkB,IAAjB,CAAsB,IAAtB,EAA4BjB,IAA5B,CAAjB,CAAA;AACD,EAAA;;AAEDkB,EAAAA,qBAAqB,CAACC,SAAD,EAAY;AAC/B,IAAA,OACE,CAAChP,KAAK,CAACiP,kBAAN,CAAyB,IAAA,CAAKrQ,KAAL,CAAWsF,UAApC,EAAgD8K,SAAS,CAAC9K,UAA1D,CAAD,IACA,IAAA,CAAKtF,KAAL,CAAWyF,KAAX,KAAqB2K,SAAS,CAAC3K,KAD/B,IAEA,IAAA,CAAKzF,KAAL,CAAW0F,MAAX,KAAsB0K,SAAS,CAAC1K,MAHlC;AAKD,EAAA;;AAmDDhG,EAAAA,MAAM,GAAG;AACP,IAAA,MAAM;AAAE+F,MAAAA,KAAF;AAASC,MAAAA;AAAT,KAAA,GAAoB,KAAK1F,KAA/B;AACA,IAAA,MAAM0I,OAAO,GAAG,IAAA,CAAKqG,cAAL,EAAhB,CAFO;;AAKP,IAAA,oBACE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AACE,MAAA,GAAG,EAAGE,IAAD,IAAW,IAAA,CAAKA,IAAL,GAAYA,IAD9B;AAEE,MAAA,SAAS,EAAG,CAAA,WAAA,EAAavG,OAAQ,CAAA,GAAA,EAAKA,OAAQ,CAAA,CAAA,CAFhD;AAGE,MAAA,IAAI,EAAC,KAHP;AAIE,MAAA,WAAW,EAAC,KAJd;AAKE,MAAA,KAAK,EAAEjD,KAAK,GAAGiD,OAAO,GAAG,CAL3B;AAME,MAAA,MAAM,EAAEhD,MAAM,GAAGgD,OAAO,GAAG;AAN7B,KAAA,CADF;AAUD,EAAA;;AAxF6C;AAA3BoG,GACZrO,YAAY;AACjBgF,EAAAA,KAAK,EAAE/E,SAAS,CAACC,MAAV,CAAiBG,UADP;AAEjB4E,EAAAA,MAAM,EAAEhF,SAAS,CAACC,MAAV,CAAiBG,UAFR;AAGjBoO,EAAAA,OAAO,EAAExO,SAAS,CAACuN,IAAV,CAAenN,UAHP;AAIjBwE,EAAAA,UAAU,EAAEtE,KAAK,CAACuJ,cAAN,CAAqBzJ;AAJhB;AADAgO,GAQZ5N,eAAe;;ACDxB,MAAMoP,KAAG,GAAGC,KAAK,CAAC,wBAAD,CAAjB;AAEO,MAAMC,cAAc,GAAG;AAC5BC,EAAAA,YAAY,EAAE/P,SAAS,CAACmO,KAAV,CAAgBrH,aAAhB,CADc;AAE5BkJ,EAAAA,eAAe,EAAEhQ,SAAS,CAACyF,KAFC;AAG5BrG,EAAAA,SAAS,EAAEY,SAAS,CAACK,MAHO;AAI5B4P,EAAAA,kBAAkB,EAAEjQ,SAAS,CAACiM,IAJF;AAK5BiE,EAAAA,uBAAuB,EAAElQ,SAAS,CAACK,MALP;AAM5B4N,EAAAA,cAAc,EAAEjO,SAAS,CAACiM,IANE;AAO5BkE,EAAAA,aAAa,EAAEnQ,SAAS,CAACiM,IAPG;AAQ5BpH,EAAAA,MAAM,EAAEvE,KAAK,CAAC8P,UARc;AAS5BpC,EAAAA,MAAM,EAAEhO,SAAS,CAACmO,KAAV,CAAgBP,SAAhB,CAToB;AAU5ByC,EAAAA,gBAAgB,EAAErQ,SAAS,CAACiM,IAVA;AAW5BqE,EAAAA,kBAAkB,EAAEtQ,SAAS,CAACiM,IAXF;AAY5B9F,EAAAA,KAAK,EAAEnG,SAAS,CAACyF,KAZW;AAa5B8K,EAAAA,cAAc,EAAEvQ,SAAS,CAACuN,IAbE;AAc5BiD,EAAAA,aAAa,EAAExQ,SAAS,CAACuN,IAdG;AAe5BkD,EAAAA,aAAa,EAAEzQ,SAAS,CAACuN,IAfG;AAgB5BzI,EAAAA,KAAK,EAAExE,KAAK,CAAC8P,UAhBe;AAiB5B3L,EAAAA,IAAI,EAAEzE,SAAS,CAACmO,KAAV,CAAgB;AACpBpJ,IAAAA,KAAK,EAAE/E,SAAS,CAACC,MAAV,CAAiBG,UADJ;AAEpB4E,IAAAA,MAAM,EAAEhF,SAAS,CAACC,MAAV,CAAiBG;AAFL,GAAhB,CAjBsB;AAqB5BsQ,EAAAA,UAAU,EAAE1Q,SAAS,CAACiM,IArBM;AAsB5B0E,EAAAA,eAAe,EAAE3Q,SAAS,CAACiM,IAtBC;AAuB5B2E,EAAAA,SAAS,EAAE5Q,SAAS,CAACiM,IAvBO;AAwB5B4E,EAAAA,KAAK,EAAE7Q,SAAS,CAACK,MAxBW;AAyB5ByQ,EAAAA,KAAK,EAAE9Q,SAAS,CAACyF,KAzBW;AA0B5BsL,EAAAA,aAAa,EAAE/Q,SAAS,CAACiM;AA1BG,CAAvB;;AA6BP,MAAM+E,WAAW,GAAIvM,IAAD,KAAW;AAC7BxF,EAAAA,CAAC,EAAE,GAD0B;AAE7BC,EAAAA,CAAC,EAAE,GAF0B;AAG7B6F,EAAAA,KAAK,EAAEN,IAAI,CAACM,KAAL,GAAa,EAHS;AAI7BC,EAAAA,MAAM,EAAEP,IAAI,CAACO,MAAL,GAAc;AAJO,CAAX,CAApB;;AAOO,MAAMiM,sCAAsC,GAAG,CAAC;AAAE9K,EAAAA,KAAF;AAAS+K,EAAAA,WAAT;AAAsBV,EAAAA,aAAtB;AAAqCW,EAAAA;AAArC,CAAD,KAAiE;AACrH,EAAA,MAAMC,YAAY,GAAGjL,KAAK,CAACxE,MAAN,CAAc6E,CAAD,IAAOA,CAAC,CAACF,QAAtB,CAAA,CAAgC,CAAhC,CAArB;AACA,EAAA,IAAI+K,QAAQ,GAAGxN,SAAS,CAACsC,KAAD,CAAxB;;AAEA,EAAA,IAAIiL,YAAY,IAAIF,WAAhB,IAA+BE,YAAY,CAAC/K,IAAb,KAAsB6K,WAAW,CAAC7K,IAArE,EAA2E;AACzE,IAAA,MAAMI,KAAK,GAAG4K,QAAQ,CAAC3K,SAAT,CAAoBF,CAAD,IAAOlC,OAAO,CAACkC,CAAD,EAAI4K,YAAJ,CAAjC,CAAd;;AAEA,IAAA,IAAI3K,KAAK,IAAI,CAAb,EAAgB;AACd4K,MAAAA,QAAQ,CAAC1K,MAAT,CAAgBF,KAAhB,EAAuB,CAAvB,CAAA;AACD,IAAA;AACF,EAAA;;AACD,EAAA,IAAI0K,oBAAoB,IAAI,CAAC7M,OAAO,CAAC+M,QAAD,EAAWlL,KAAX,CAApC,EAAuD;AACrDqK,IAAAA,aAAa,CAACa,QAAD,CAAb;AACD,EAAA;;AACD,EAAA,OAAOA,QAAP;AACD,CAfM;AAiBA,MAAMC,KAAN,SAAoBxS,KAAK,CAACC,SAA1B,CAAoC;AACzCwS,EAAAA,WAAW,CAACjS,KAAD,EAAQ;AACjB,IAAA,KAAA,CAAMA,KAAN,CAAA;AADiB,IAAA,IAAA,CAgBnBkS,KAhBmB,GAgBX,EAhBW;;AAAA,IAAA,IAAA,CAsBnBnC,iBAtBmB,GAsBC,MAAM,IAAA,CAAKoC,QAAL,CAAc;AAAEC,MAAAA,SAAS,EAAE,IAAA,CAAKA;AAAlB,KAAd,CAtBP;;AAAA,IAAA,IAAA,CAwBnBC,UAxBmB,GAwBN,CAACvL,OAAD,EAAUwL,OAAV,KAAsB;AACjC,MAAA,MAAM;AAAEpB,QAAAA,aAAF;AAAiBrK,QAAAA;AAAjB,OAAA,GAA2B,KAAK7G,KAAtC;AACA,MAAA,IAAI+R,QAAQ,GAAGxN,SAAS,CAACsC,KAAD,CAAxB;AAEA,MAAA,MAAMM,KAAK,GAAG4K,QAAQ,CAAC3K,SAAT,CAAoBF,CAAD,IAAOlC,OAAO,CAACkC,CAAD,EAAIJ,OAAJ,CAAjC,CAAd;;AAEA,MAAA,IAAIK,KAAK,IAAI,CAAT,IAAc,CAACR,gBAAgB,CAAC2L,OAAD,EAAUzL,KAAV,EAAiBC,OAAjB,CAAnC,EAA8D;AAC5DiL,QAAAA,QAAQ,CAAC1K,MAAT,CAAgBF,KAAhB,EAAuB,CAAvB,EAA0BmL,OAA1B,CAAA;AAEApB,QAAAA,aAAa,CAACa,QAAD,CAAb;AACD,MAAA;AACF,IAAA,CAnCkB;;AAAA,IAAA,IAAA,CAqCnBQ,YArCmB,GAqCHC,QAAD,IAAc;AAC3B,MAAA,MAAM;AAAEZ,QAAAA,WAAF;AAAe/K,QAAAA;AAAf,OAAA,GAAyB,KAAK7G,KAApC;AACA,MAAA,MAAM8R,YAAY,GAAGjL,KAAK,CAACxE,MAAN,CAAc6E,CAAD,IAAOA,CAAC,CAACF,QAAtB,CAAA,CAAgC,CAAhC,CAArB;AAEA,MAAA,IAAI,CAAC8K,YAAD,IAAiB,CAACF,WAAtB,EAAmC;AAEnC,MAAA,MAAMa,WAAW,GAAGb,WAAW,CAACc,QAAZ,CAAqBZ,YAArB,EAAmCU,QAAnC,CAApB;AAEA,MAAA,IAAA,CAAKG,WAAL,CAAiBb,YAAjB,EAA+BW,WAA/B,CAAA;AACD,IAAA,CA9CkB;;AAAA,IAAA,IAAA,CAgDnBE,WAhDmB,GAgDL,CAACC,QAAD,EAAWC,MAAX,EAAmBC,YAAY,GAAG,KAAlC,KAA4C;AACxD,MAAA,MAAM;AAAE5B,QAAAA,aAAF;AAAiBrK,QAAAA;AAAjB,OAAA,GAA2B,KAAK7G,KAAtC;AACA,MAAA,IAAI+R,QAAQ,GAAGxN,SAAS,CAACsC,KAAD,CAAxB;;AAEA,MAAA,IAAI,CAACgM,MAAD,IAAY,CAACA,MAAM,CAAC7L,QAAR,IAAoBL,gBAAgB,CAACkM,MAAD,EAAShM,KAAT,CAApD,EAAsE;AACpE,QAAA;AACD,MAAA;;AAED,MAAA,MAAMM,KAAK,GAAG4K,QAAQ,CAAC3K,SAAT,CAAoBF,CAAD,IAAOlC,OAAO,CAACkC,CAAD,EAAI0L,QAAJ,CAAjC,CAAd;;AAEA,MAAA,IAAIzL,KAAK,IAAI,CAAb,EAAgB;AACd4K,QAAAA,QAAQ,CAAC1K,MAAT,CAAgBF,KAAhB,EAAuB,CAAvB,EAA0B0L,MAA1B,CAAA;AAEA3B,QAAAA,aAAa,CAACa,QAAD,CAAb;AACD,MAAA,CAJD,MAIO,IAAIe,YAAJ,EAAkB;AACvB5B,QAAAA,aAAa,CAAC,CAAC,GAAGa,QAAJ,EAAcc,MAAd,CAAD,CAAb;AACD,MAAA;AACF,IAAA,CAjEkB;;AAAA,IAAA,IAAA,CAmEnBE,YAnEmB,GAmEHnM,IAAD,IAAU;AACvB,MAAA,IAAI,CAACA,IAAL,EAAW,OAAO,IAAP;AAEX,MAAA,MAAMoM,IAAI,GAAG,CAAC,IAAA,CAAKhT,KAAL,CAAWwR,KAAX,IAAoB,EAArB,EAAyBjK,IAAzB,CAA+BwF,CAAD,IAAOA,CAAC,CAAChG,IAAF,KAAWH,IAAI,CAACG,IAArD,CAAb;AAEA,MAAA,OAAQiM,IAAI,IAAIA,IAAI,CAACvT,SAAd,IAA4B,IAAnC;AACD,IAAA,CAzEkB;;AAAA,IAAA,IAAA,CA2EnBwT,SA3EmB,GA2EN1R,KAAD,IAAW;AACrB,MAAA,MAAM;AAAE5B,QAAAA,CAAF;AAAKC,QAAAA;AAAL,OAAA,GAAW2B,KAAK,IAAI,EAA1B;AACA,MAAA,MAAM;AAAEwP,QAAAA,gBAAF;AAAoBa,QAAAA,WAApB;AAAiC/K,QAAAA;AAAjC,OAAA,GAA2C,KAAK7G,KAAtD;;AAEA,MAAA,IAAI+Q,gBAAgB,IAAI,CAACa,WAArB,IAAoC,CAAC,IAAD,EAAOsB,SAAP,CAAA,CAAkBzH,QAAlB,CAA2B9L,CAA3B,CAApC,IAAqE,CAAC,IAAD,EAAOuT,SAAP,EAAkBzH,QAAlB,CAA2B7L,CAA3B,CAAzE,EAAwG;AACtG,QAAA;AACD,MAAA;;AAED0Q,MAAAA,KAAG,CAAC,mBAAD,EAAsB3Q,CAAtB,EAAyBC,CAAzB,CAAH;AAEA,MAAA,MAAMkS,YAAY,GAAGjL,KAAK,CAACxE,MAAN,CAAc6E,CAAD,IAAOA,CAAC,CAACF,QAAtB,CAAA,CAAgC,CAAhC,CAArB;AACA,MAAA,IAAIyL,WAAJ,CAXqB;;AAcrB,MAAA,IAAIX,YAAY,IAAIF,WAAhB,IAA+BE,YAAY,CAAC/K,IAAb,KAAsB6K,WAAW,CAAC7K,IAArE,EAA2E;AACzE0L,QAAAA,WAAW,GAAGb,WAAW,CAACuB,QAAZ,CAAqB;AAAExT,UAAAA,CAAF;AAAKC,UAAAA;AAAL,SAArB,EAAA,QAAA,CAAA,EAAA,EAAoCkS,YAApC,CAAA,CAAd;AACD,MAAA,CAFD,MAEO;AACLW,QAAAA,WAAW,GAAGb,WAAW,CAACuB,QAAZ,CAAqB;AAAExT,UAAAA,CAAF;AAAKC,UAAAA;AAAL,SAArB,EAA+BsT,SAA/B,CAAd;AACD,MAAA;;AAED,MAAA,IAAA,CAAKP,WAAL,CAAiBb,YAAjB,EAA+BW,WAA/B,EAA4C,IAA5C,CAAA;AACD,IAAA,CAhGkB;;AAEjB,IAAA,IAAA,CAAKW,OAAL,GAAe,IAAA,CAAKC,cAAL,EAAf;AACD,EAAA;;AAeDA,EAAAA,cAAc,GAAG;AACf,IAAA,OAAO,QAAA,GAAW,CAACpR,IAAI,CAACqR,MAAL,EAAA,GAAgB,KAAjB,EAAwB3O,OAAxB,EAAlB;AACD,EAAA;;AA8EDjF,EAAAA,MAAM,GAAG;AACP,IAAA,MAAM;AACJ+Q,MAAAA,YADI;AAEJmB,MAAAA,WAFI;AAGJZ,MAAAA,kBAHI;AAIJ7L,MAAAA,IAJI;AAKJwJ,MAAAA,cALI;AAMJkC,MAAAA,aANI;AAOJtL,MAAAA,MAPI;AAQJmL,MAAAA,eARI;AASJlL,MAAAA,KATI;AAUJ+L,MAAAA,KAVI;AAWJ7C,MAAAA,MAXI;AAYJqC,MAAAA,gBAZI;AAaJwC,MAAAA,kBAbI;AAcJ9B,MAAAA,aAdI;AAeJL,MAAAA,UAfI;AAgBJC,MAAAA,eAhBI;AAiBJC,MAAAA,SAjBI;AAkBJkC,MAAAA,gBAlBI;AAmBJvC,MAAAA,cAnBI;AAoBJE,MAAAA,aApBI;AAqBJ7D,MAAAA,aAAa,GAAG,EArBZ;AAsBJ4D,MAAAA,aAtBI;AAuBJW,MAAAA;AAvBI,KAAA,GAwBF,KAAK7R,KAxBT;AAyBA,IAAA,IAAI;AAAE6G,MAAAA;AAAF,KAAA,GAAY,KAAK7G,KAArB;AAEA,IAAA,MAAMsF,UAAU,GAAGmO,gBAAgB,CAAClO,MAAD,EAASC,KAAT,EAAgBL,IAAhB,EAAsB,MAAM,IAAA,CAAKuO,QAAjC,CAAnC;AAEA,IAAA,MAAMC,QAAQ,GAAGjC,WAAW,CAACvM,IAAD,CAA5B;AACA,IAAA,MAAM9F,MAAM,GAAG;AAAEiG,MAAAA,UAAF;AAAcyL,MAAAA,gBAAd;AAAgCU,MAAAA;AAAhC,KAAf;AAEA5K,IAAAA,KAAK,GAAG8K,sCAAsC,CAAC;AAC7C9K,MAAAA,KAAK,EAAEA,KAAK,IAAI,EAD6B;AAE7C+K,MAAAA,WAF6C;AAG7CV,MAAAA,aAH6C;AAI7CW,MAAAA;AAJ6C,KAAD,CAA9C;AAOA,IAAA,oBACE,oBAAC+B,MAAD,EAAA,QAAA,CAAA;AACE,MAAA,OAAO,EAAGpH,CAAD,IAAQ,IAAA,CAAKkH,QAAL,GAAgBlH,CADnC;AAEE,MAAA,aAAa,EAAEqE,aAFjB;AAGE,MAAA,cAAc,EAAElC,cAHlB;AAIE,MAAA,MAAM,EAAED,MAJV;AAKE,MAAA,kBAAkB,EAAE6E,kBAAkB,IAAI,EAL5C;AAME,MAAA,eAAe,EAAElC,eANnB;AAOE,MAAA,UAAU,EAAED,UAPd;AAQE,MAAA,SAAS,EAAEE,SARb;AASE,MAAA,KAAK,EAAEC,KATT;AAUE,MAAA,gBAAgB,EAAEiC,gBAVpB;AAWE,MAAA,aAAa,EAAErC,aAXjB;AAYE,MAAA,cAAc,EAAEF,cAZlB;AAaE,MAAA,aAAa,EAAE3D;AAbjB,KAAA,EAcMjO,MAdN,CAAA,eAgBE,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA;AACE,MAAA,SAAS,EACPkG,MAAM,IAAIA,MAAM,CAACmD,OAAjB,IAA4BnD,MAAM,CAACC,KAAnC,GAA4C,CAAA,UAAA,EAAYD,MAAM,CAACmD,OAAQ,KAAIlD,KAAK,CAACkD,OAAQ,CAAA,CAAA,CAAzF,GAA8FwK;AAFlG,KAAA,eAKE,oBAAC7H,MAAD,EAAUhM,MAAV,CALF,eAME,KAAA,CAAA,aAAA,CAAC,IAAD,EAAA,QAAA,CAAA,EAAA,EAAUoR,YAAV,EAA4BpR,MAA5B,CAAA,CANF,eAOE,KAAA,CAAA,aAAA,CAAC,EAAD,eAAQ8F,IAAR,EAAA;AAAc,MAAA,OAAO,EAAE,IAAA,CAAK8N;AAA5B,KAAA,EAA2C5T,MAA3C,EAPF,eAQE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AAAM,MAAA,EAAE,EAAG,CAAA,EAAE,IAAA,CAAK+T,OAAQ,CAAA;AAA1B,KAAA,eACE,yCAAUO,QAAV,EAAA;AAAoB,MAAA,IAAI,EAAC;AAAzB,KAAA,CAAA,CADF,MARF,eAYE,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA;AAAG,MAAA,EAAE,EAAC,OAAN;AAAc,MAAA,IAAI,EAAG,CAAA,MAAA,EAAQ,IAAA,CAAKP,OAAQ,CAAA,EAAA;AAA1C,KAAA,EACG,CAAC1C,eAAe,IAAI,EAApB,EAAwBmD,GAAxB,CAA4B,CAAC3M,CAAD,EAAIC,KAAJ,KAAc;AACzC,MAAA,MAAM1H,SAAS,GAAG,IAAA,CAAKsT,YAAL,CAAkB7L,CAAlB,CAAlB;AACA,MAAA,MAAM4M,QAAQ,GAAG5M,CAAC,CAACH,IAAnB;AAEA,MAAA,oBACE,oBAAC,SAAD,EAAA,QAAA,CAAA;AACE,QAAA,GAAG,EAAG,CAAA,EAAE+M,QAAS,CAAA,CAAA,EAAG3M,KAAM,CAAA,GAAA,CAD5B;AAEE,QAAA,IAAI,eAAOD,CAAP,EAAA;AAAUwF,UAAAA,QAAQ,EAAE,IAApB;AAA0BqH,UAAAA,YAAY,EAAE;AAAxC,SAAA,CAFN;AAGE,QAAA,SAAS,EAAE,IAAA,CAAK7B,KAAL,CAAWE,SAHxB;AAIE,QAAA,OAAO,EAAE,IAAA,CAAKa;AAJhB,OAAA,EAKM5T,MALN,CAAA,CADF;AASD,IAAA,CAbA,CADH,EAgBGwH,KAAK,CAACgN,GAAN,CAAU,CAAC3M,CAAD,EAAIC,KAAJ,KAAc;AACvB,MAAA,MAAM1H,SAAS,GAAG,IAAA,CAAKsT,YAAL,CAAkB7L,CAAlB,CAAlB;AACA,MAAA,MAAM4M,QAAQ,GAAG5M,CAAC,CAACH,IAAnB;AAEA,MAAA,oBACE,oBAAC,SAAD,EAAA,QAAA,CAAA;AACE,QAAA,GAAG,EAAG,CAAA,EAAE+M,QAAS,CAAA,CAAA,EAAG3M,KAAM,CAAA,CAD5B;AAEE,QAAA,IAAI,EAAED,CAFR;AAGE,QAAA,kBAAkB,EAAE8J,kBAHtB;AAIE,QAAA,QAAQ,EAAE,IAAA,CAAKqB,UAJjB;AAKE,QAAA,UAAU,EAAE,IAAA,CAAKE,YALnB;AAME,QAAA,OAAO,EAAE,IAAA,CAAKU,SANhB;AAOE,QAAA,WAAW,EAAE,IAAA,CAAKe,SAPpB;AAQE,QAAA,UAAU,EAAE,IAAA,CAAKC,QARnB;AASE,QAAA,SAAS,EAAE,IAAA,CAAK/B,KAAL,CAAWE,SATxB;AAUE,QAAA,YAAY,EAAER,WAAW,IAAIkC,QAAQ,KAAKlC,WAAW,CAAC7K;AAVxD,OAAA,EAWM1H,MAXN,CAAA,CADF;AAeD,IAAA,CAnBA,CAhBH,eAoCE,KAAA,CAAA,aAAA,CAAA,eAAA,EAAA,QAAA,CAAA;AACE,MAAA,GAAG,EAAG+S,SAAD,IAAgB,IAAA,CAAKA,SAAL,GAAiBA,SADxC;AAEE,MAAA,CAAC,EAAC,GAFJ;AAGE,MAAA,CAAC,EAAC;AAHJ,KAAA,EAIMjN,IAJN,EAAA;AAKE,MAAA,KAAK,EAAE;AAAEiJ,QAAAA,aAAa,EAAE,MAAjB;AAAyB7F,QAAAA,QAAQ,EAAE;AAAnC;AALT,KAAA,CAAA,CApCF,CAZF,CAhBF,CADF;AA4ED,EAAA;;AAvNwC;AAA9ByJ,MAMJvR,yBACF+P;AACHoB,EAAAA,WAAW,EAAElR,SAAS,CAACG;;AARdmR,MAWJ9Q,eAAe;AACpBgQ,EAAAA,aAAa,EAAE,MAAM,CAAE,CADH;AAEpBvC,EAAAA,cAAc,EAAE,KAFI;AAGpBkC,EAAAA,aAAa,EAAE;AAHK;;AC/ExB,MAAMhK,KAAK,GAAG,CAACqL,KAAK,GAAG,EAAT,EAAagC,MAAb,KAAwB;AACpC,EAAA,QAAQA,MAAM,CAACnN,IAAf;AACE,IAAA,KAAK,cAAL;AACE,MAAA,IAAIoN,KAAK,CAACC,OAAN,CAAcF,MAAM,CAACrN,KAArB,CAAJ,EAAiC;AAC/B,QAAA,OAAOqN,MAAM,CAACrN,KAAd;AACD,MAAA,CAFD,MAEO;AACL,QAAA,MAAM,IAAIwN,KAAJ,CAAU,wBAAV,CAAN;AACD,MAAA;;AACH,IAAA;AACE,MAAA,OAAOnC,KAAP;AARJ;AAUD,CAXD;;ACIA,cAAA,CAAe,MAAMoC,eAAe,CAAC;AAAEzN,EAAAA,KAAK,EAAE0N,QAAQ,CAAC1N,KAAD,EAAQ;AAAE0J,IAAAA,KAAK,EAAE;AAAT,GAAR;AAAjB,CAAD,CAApC;;ACAO,MAAMiE,WAAW,GAAI3N,KAAD,KAAY;AACrCE,EAAAA,IAAI,EAAE,cAD+B;AAErCF,EAAAA;AAFqC,CAAZ,CAApB;;ACFA,MAAM6F,QAAQ,GAAG,CAAC+H,GAAG,GAAG,MAAP,MAAmB;AACzC,EAAA,CAACA,GAAD,GAAOzM,KAAK,CAAC0E,QAAN,EADkC;AAEzC0B,EAAAA,aAAa,EAAE;AAF0B,CAAnB,CAAjB;AAKA,MAAMsG,iBAAiB,GAAG,CAACD,GAAG,GAAG,MAAP,MAAmB;AAClD,EAAA,CAACA,GAAD,GAAOzM,KAAK,CAAC0M,iBAAN,EAD2C;AAElDtG,EAAAA,aAAa,EAAE;AAFmC,CAAnB,CAA1B;AAKA,MAAMuG,OAAO,GAAG,CAACF,GAAG,GAAG,MAAP,MAAmB;AACxC,EAAA,CAACA,GAAD,GAAOzM,KAAK,CAAC4M,eAAN,EADiC;AAExCxG,EAAAA,aAAa,EAAE;AAFyB,CAAnB,CAAhB;AAIA,MAAMyG,SAAS,GAAG,CAACJ,GAAG,GAAG,MAAP,MAAmB;AAC1C,EAAA,CAACA,GAAD,GAAOzM,KAAK,CAAC8M,iBAAN,EADmC;AAE1C1G,EAAAA,aAAa,EAAE;AAF2B,CAAnB,CAAlB;AAKA,MAAM2G,OAAO,GAAG,CAACN,GAAG,GAAG,MAAP,MAAmB;AACxC,EAAA,CAACA,GAAD,GAAOzM,KAAK,CAACgN,eAAN,EADiC;AAExC5G,EAAAA,aAAa,EAAE;AAFyB,CAAnB,CAAhB;;ACbP,MAAM6G,QAAM,GAAIhW,KAAD,KAAY;AACzBiW,EAAAA,KAAK,EAAE;AACLpM,IAAAA,UAAU,EAAE7J,KAAK,CAACuJ,UAAN,CAAiBM,UADxB;AAELP,IAAAA,QAAQ,EAAEtJ,KAAK,CAACuJ,UAAN,CAAiBD,QAFtB;AAGL4M,IAAAA,YAAY,EAAE,KAHT;AAILC,IAAAA,UAAU,EAAEnW,KAAK,CAACG,OAAN,CAAcC,MAAd,CAAqBgW,KAJ5B;AAKLrN,IAAAA,KAAK,EAAEA,KAAK,CAACC,QAAN,CAAeqN;AALjB,GADkB;AAQzBC,EAAAA,UAAU,EAAE;AACV7M,IAAAA,OAAO,EAAE;AADC;AARa,CAAZ,CAAf;;AAaO,MAAM8M,gBAAgB,GAAG,CAAClQ,UAAD,EAAa3F,CAAb,EAAgBC,CAAhB,EAAmB6V,WAAnB,KAAmC;AACjE,EAAA,MAAM;AAAE1V,IAAAA,KAAF;AAASwF,IAAAA,MAAT;AAAiBC,IAAAA;AAAjB,GAAA,GAA2BF,UAAjC,CADiE;;AAGjE,EAAA,MAAMoQ,QAAQ,GAAG9V,CAAC,KAAK4F,KAAK,CAAC1D,GAAZ,GAAkB,EAAlB,GAAuBlC,CAAC,KAAK4F,KAAK,CAACpD,GAAZ,GAAkB,CAAlB,GAAsB,CAA9D;AACA,EAAA,MAAMuT,SAAS,GAAG,EAAlB;AACA,EAAA,MAAMC,SAAS,GAAG7V,KAAK,CAACJ,CAAN,CAAQA,CAAR,CAAA,GAAa8V,WAAb,GAA2BE,SAA7C;;AAEA,EAAA,IAAIC,SAAS,IAAI7V,KAAK,CAACJ,CAAN,CAAQ4F,MAAM,CAACnD,GAAf,CAAjB,EAAsC;AACpC,IAAA,OAAO;AACLqB,MAAAA,IAAI,EAAE1D,KAAK,CAACJ,CAAN,CAAQA,CAAR,CAAA,GAAagW,SAAb,GAAyBF,WAD1B;AAEL/R,MAAAA,GAAG,EAAE3D,KAAK,CAACH,CAAN,CAAQA,CAAR,CAAA,GAAa8V;AAFb,KAAP;AAID,EAAA;;AAED,EAAA,OAAO;AACLjS,IAAAA,IAAI,EAAE1D,KAAK,CAACJ,CAAN,CAAQA,CAAR,IAAagW,SADd;AAELjS,IAAAA,GAAG,EAAE3D,KAAK,CAACH,CAAN,CAAQA,CAAR,CAAA,GAAa8V;AAFb,GAAP;AAID,CAlBM;AAoBA,MAAMG,gBAAgB,GAAG,CAAC;AAAElW,EAAAA,CAAF;AAAKC,EAAAA,CAAL;AAAQ0F,EAAAA,UAAR;AAAoBzF,EAAAA;AAApB,CAAD,KAAmC;AACjE,EAAA,MAAM2C,KAAK,GAAI,CAAA,CAAA,EAAGiC,WAAW,CAAC9E,CAAD,CAAI,CAAA,EAAA,EAAI8E,WAAW,CAAC7E,CAAD,CAAI,CAAA,CAAA,CAApD;AACA,EAAA,MAAM6V,WAAW,GAAG,CAACjT,KAAK,CAACI,MAAN,IAAgB,CAAjB,IAAsB,CAA1C;AACA,EAAA,MAAMkT,aAAa,GAAGN,gBAAgB,CAAClQ,UAAD,EAAa3F,CAAb,EAAgBC,CAAhB,EAAmB6V,WAAnB,CAAtC;;AAEA,EAAA,MAAMzW,KAAK,GAAA,QAAA,CAAA;AACT8O,IAAAA,QAAQ,EAAE,UADD;AAETM,IAAAA,aAAa,EAAE,MAFN;AAGT3I,IAAAA,KAAK,EAAEgQ,WAHE;AAIT/M,IAAAA,OAAO,EAAE;AAJA,GAAA,EAKNoN,aALM,CAAX;;AAQA,EAAA,oBACE,oBAAC,SAAD,EAAA;AACE,IAAA,KAAK,EAAE9W,KADT;AAEE,IAAA,OAAO,EAAE;AAAEkW,MAAAA,KAAK,EAAErV,OAAO,CAAC0V;AAAjB,KAFX;AAGE,IAAA,SAAS,EAAE1V,OAAO,CAACqV,KAHrB;AAIE,IAAA,KAAK,EAAE1S,KAJT;AAKE,IAAA,UAAU,EAAE;AAAEuT,MAAAA,SAAS,EAAE;AAAb;AALd,GAAA,CADF;AASD,CAtBM;AAwBPF,gBAAgB,CAACpV,SAAjB,GAA6B;AAC3B6E,EAAAA,UAAU,EAAEtE,KAAK,CAACuJ,cADS;AAE3B1K,EAAAA,OAAO,EAAEa,SAAS,CAACG,MAFQ;AAG3BlB,EAAAA,CAAC,EAAEe,SAAS,CAACC,MAHc;AAI3Bf,EAAAA,CAAC,EAAEc,SAAS,CAACC;AAJc,CAA7B;AAOA,yBAAeQ,UAAU,CAAC8T,QAAD,CAAV,CAAmBY,gBAAnB,CAAf;;ACtEA,MAAMG,UAAU,GAAG,CAAC;AAAEjW,EAAAA,KAAF;AAASJ,EAAAA,CAAT;AAAYC,EAAAA;AAAZ,CAAD,kBACjB,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AACE,EAAA,KAAK,EAAC,GADR;AAEE,EAAA,MAAM,EAAC,IAFT;AAGE,EAAA,OAAO,EAAC,UAHV;AAIE,EAAA,IAAI,EAAC,MAJP;AAKE,EAAA,KAAK,EAAC,4BALR;AAME,EAAA,CAAC,EAAEG,KAAK,CAACJ,CAAN,CAAQA,CAAR,IAAa,GANlB;AAOE,EAAA,CAAC,EAAEI,KAAK,CAACH,CAAN,CAAQA,CAAR,IAAa,CAPlB;AAQE,EAAA,KAAK,EAAE;AAAEwO,IAAAA,aAAa,EAAE;AAAjB;AART,CAAA,eAUE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AACE,EAAA,CAAC,EAAC,khCADJ;AAEE,EAAA,IAAI,EAAC;AAFP,CAAA,CAVF,CADF;;ACAA,MAAM6H,UAAU,GAAG,CAAC;AAAElW,EAAAA,KAAF;AAASJ,EAAAA,CAAT;AAAYC,EAAAA;AAAZ,CAAD,kBACjB,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AACE,EAAA,KAAK,EAAC,IADR;AAEE,EAAA,MAAM,EAAC,IAFT;AAGE,EAAA,OAAO,EAAC,WAHV;AAIE,EAAA,IAAI,EAAC,MAJP;AAKE,EAAA,MAAM,EAAC,SALT;AAME,EAAA,CAAC,EAAEG,KAAK,CAACJ,CAAN,CAAQA,CAAR,IAAa,CANlB;AAOE,EAAA,CAAC,EAAEI,KAAK,CAACH,CAAN,CAAQA,CAAR,IAAa,CAPlB;AAQE,EAAA,KAAK,EAAE;AAAEwO,IAAAA,aAAa,EAAE;AAAjB,GART;AASE,EAAA,KAAK,EAAC;AATR,CAAA,eAWE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AACE,EAAA,CAAC,EAAC,+VADJ;AAEE,EAAA,IAAI,EAAC;AAFP,CAAA,CAXF,CADF;;ACAA,MAAM8H,YAAY,GAAG,CAAC;AAAEnW,EAAAA,KAAF;AAASJ,EAAAA,CAAT;AAAYC,EAAAA;AAAZ,CAAD,kBACnB,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AACE,EAAA,KAAK,EAAC,MADR;AAEE,EAAA,MAAM,EAAC,MAFT;AAGE,EAAA,OAAO,EAAC,WAHV;AAIE,EAAA,IAAI,EAAC,MAJP;AAKE,EAAA,MAAM,EAAC,SALT;AAME,EAAA,WAAW,EAAC,GANd;AAOE,EAAA,CAAC,EAAEG,KAAK,CAACJ,CAAN,CAAQA,CAAR,IAAa,CAPlB;AAQE,EAAA,CAAC,EAAEI,KAAK,CAACH,CAAN,CAAQA,CAAR,IAAa,CARlB;AASE,EAAA,KAAK,EAAE;AAAEwO,IAAAA,aAAa,EAAE;AAAjB,GATT;AAUE,EAAA,KAAK,EAAC;AAVR,CAAA,eAYE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AAAM,EAAA,CAAC,EAAC;AAAR,CAAA,CAZF,CADF;;;ACSO,MAAM+H,KAAN,SAAoB3W,KAAK,CAACC,SAA1B,CAAoC;AAazCwS,EAAAA,WAAW,CAACjS,KAAD,EAAQ;AACjB,IAAA,KAAA,CAAMA,KAAN,CAAA;AACA,IAAA,IAAA,CAAKkS,KAAL,GAAa;AAAEkE,MAAAA,eAAe,EAAE;AAAnB,KAAb;AACD,EAAA;;AAED1W,EAAAA,MAAM,GAAG;AACP,IAAA,MAAA,WAAA,GAmBI,KAAKM,KAnBT;AAAA,UAAM;AACJH,MAAAA,OADI;AAEJC,MAAAA,SAFI;AAGJkR,MAAAA,kBAHI;AAIJrR,MAAAA,CAJI;AAKJC,MAAAA,CALI;AAMJ8M,MAAAA,QANI;AAOJ2J,MAAAA,WAPI;AAQJ/Q,MAAAA,UARI;AASJ8M,MAAAA,SATI;AAaJlD,MAAAA,OAbI;AAcJ;AACA;AACAoH,MAAAA,YAhBI;AAiBJC,MAAAA;AAjBI,KAAN,GAAA,WAAA;AAAA,UAkBKC,IAlBL,GAAA,6BAAA,CAAA,WAAA,EAAAC,WAAA,CAAA;;AAoBA,IAAA,MAAM;AAAEL,MAAAA;AAAF,KAAA,GAAsB,KAAKlE,KAAjC;AACA,IAAA,MAAM;AAAEnS,MAAAA;AAAF,KAAA,GAAYuF,UAAlB;AACA,IAAA,MAAMkH,CAAC,GAAGnH,mBAAmB,CAACC,UAAD,CAAnB,GAAkC,CAAlC,GAAsC,CAAhD;AACA,IAAA,IAAIoR,YAAJ;;AACA,IAAA,QAAQL,WAAR;AACE,MAAA,KAAK,SAAL;AACEK,QAAAA,YAAY,GAAGV,UAAf;AACA,QAAA;;AACF,MAAA,KAAK,SAAL;AACEU,QAAAA,YAAY,GAAGT,UAAf;AACA,QAAA;;AACF,MAAA,KAAK,WAAL;AACES,QAAAA,YAAY,GAAGR,YAAf;AACA,QAAA;;AACF,MAAA;AACEQ,QAAAA,YAAY,GAAG,IAAf;AACA,QAAA;AAZJ;;AAeA,IAAA,oBACE,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,eACE,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA;AACE,MAAA,KAAK,EAAE;AAAEvX,QAAAA,IAAI,EAAE,aAAR;AAAuB4J,QAAAA,MAAM,EAAE,SAA/B;AAA0CqF,QAAAA,aAAa,EAAE;AAAzD,OADT;AAEE,MAAA,CAAC,EAAE5B,CAAC,GAAG,CAFT;AAGE,MAAA,EAAE,EAAEzM,KAAK,CAACJ,CAAN,CAAQA,CAAR,CAHN;AAIE,MAAA,EAAE,EAAEI,KAAK,CAACH,CAAN,CAAQA,CAAR,CAJN;AAKE,MAAA,YAAY,EAAE,MAAM,IAAA,CAAKuS,QAAL,CAAc;AAAEiE,QAAAA,eAAe,EAAE;AAAnB,OAAd,CALtB;AAME,MAAA,YAAY,EAAE,MAAM,IAAA,CAAKjE,QAAL,CAAc;AAAEiE,QAAAA,eAAe,EAAE;AAAnB,OAAd,CANtB;AAOE,MAAA,YAAY,EAAEE,YAPhB;AAQE,MAAA,UAAU,EAAEC,UARd;AASE,MAAA,OAAO,EAAErH;AATX,KAAA,CADF,eAYE,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA;AACE,MAAA,SAAS,EAAEhP,UAAU,CAACL,OAAO,CAAC0B,KAAT,EAAgBmL,QAAQ,IAAI7M,OAAO,CAAC6U,iBAApC,EAAuD7U,OAAO,CAACwW,WAAD,CAA9D,EAA6EvW,SAA7E,CADvB;AAEE,MAAA,YAAY,EAAE,MAAM,IAAA,CAAKqS,QAAL,CAAc;AAAEiE,QAAAA,eAAe,EAAE;AAAnB,OAAd,CAFtB;AAGE,MAAA,YAAY,EAAE,MAAM,IAAA,CAAKjE,QAAL,CAAc;AAAEiE,QAAAA,eAAe,EAAE;AAAnB,OAAd;AAHtB,KAAA,eAKE,2CAAYI,IAAZ,EAAA;AAAkB,MAAA,CAAC,EAAEhK,CAArB;AAAwB,MAAA,EAAE,EAAEzM,KAAK,CAACJ,CAAN,CAAQA,CAAR,CAA5B;AAAwC,MAAA,EAAE,EAAEI,KAAK,CAACH,CAAN,CAAQA,CAAR;AAA5C,KAAA,CAAA,CALF,EAMG8W,YAAY,iBAAI,KAAA,CAAA,aAAA,CAAC,YAAD,EAAA;AAAc,MAAA,KAAK,EAAE3W,KAArB;AAA4B,MAAA,CAAC,EAAEJ,CAA/B;AAAkC,MAAA,CAAC,EAAEC;AAArC,KAAA,CANnB,EAOGwS,SAAS,IACRpB,kBADD,IAECoF,eAFD,iBAGCO,QAAQ,CAACC,YAAT,eAAsB,KAAA,CAAA,aAAA,CAACf,kBAAD,EAAA;AAAkB,MAAA,UAAU,EAAEvQ,UAA9B;AAA0C,MAAA,CAAC,EAAE3F,CAA7C;AAAgD,MAAA,CAAC,EAAEC;AAAnD,KAAA,CAAtB,EAAgFwS,SAAhF,CAVJ,CAZF,CADF;AA2BD,EAAA;;AArFwC;AAA9B+D,MACJ1V,YAAY;AACjBZ,EAAAA,OAAO,EAAEa,SAAS,CAACG,MADF;AAEjBf,EAAAA,SAAS,EAAEY,SAAS,CAACK,MAFJ;AAGjBiQ,EAAAA,kBAAkB,EAAEtQ,SAAS,CAACiM,IAHb;AAIjB0J,EAAAA,WAAW,EAAE3V,SAAS,CAACK,MAJN;AAKjB2L,EAAAA,QAAQ,EAAEhM,SAAS,CAACiM,IALH;AAMjByF,EAAAA,SAAS,EAAE1R,SAAS,CAACG,MANJ;AAOjBlB,EAAAA,CAAC,EAAEe,SAAS,CAACC,MAPI;AAQjBf,EAAAA,CAAC,EAAEc,SAAS,CAACC,MARI;AASjB2E,EAAAA,UAAU,EAAEtE,KAAK,CAACuJ,cAAN,CAAqBzJ;AAThB;;;ACLd,MAAM+V,QAAN,SAAuBrX,KAAK,CAACC,SAA7B,CAAuC;AAwB5CC,EAAAA,MAAM,GAAG;AACP,IAAA,MAAA,WAAA,GAA2F,KAAKM,KAAhG;AAAA,UAAM;AAAEH,MAAAA,OAAF;AAAWC,MAAAA,SAAX;AAAsBH,MAAAA,CAAtB;AAAyBC,MAAAA,CAAzB;AAA4B8M,MAAAA,QAA5B;AAAsC2J,MAAAA,WAAtC;AAAmD/Q,MAAAA,UAAnD;AAA+DrB,MAAAA,IAA/D;AAAqEC,MAAAA;AAArE,KAAN,GAAA,WAAA;AAAA,UAAkFsS,IAAlF,2DADO;AAGP;;;AAEA,IAAA,MAAM;AAAEzW,MAAAA;AAAF,KAAA,GAAYuF,UAAlB;AACA,IAAA,MAAMwR,KAAK,GAAGtV,WAAW,CAACyC,IAAI,CAACtE,CAAN,EAASsE,IAAI,CAACrE,CAAd,EAAiBsE,EAAE,CAACvE,CAApB,EAAuBuE,EAAE,CAACtE,CAA1B,CAAzB;AAEA,IAAA,IAAIyD,MAAM,GAAG,EAAb;;AAEA,IAAA,IAAI2B,OAAO,CAACf,IAAD,EAAOC,EAAP,CAAX,EAAuB;AACrBb,MAAAA,MAAM,GAAG,aAAT;AACD,IAAA,CAFD,MAEO;AACLA,MAAAA,MAAM,GAAI,CAAA,IAAA,EAAM5B,eAAe,CAACsV,MAAO,CAAA,CAAA,EAAGtV,eAAe,CAACsV,MAAhB,GAAyB,CAAE,CAAA;AAC3E,OAAA,EAAStV,eAAe,CAACsV,MAAO,CAAA,CAAA,EAAGtV,eAAe,CAACsV,MAAhB,GAAyB,CAAE,CAAA,CADxD;AAED,IAAA;;AAED,IAAA,oBACE,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,QAAA,CAAA;AACE,MAAA,SAAS,EAAE7W,UAAU,CAACL,OAAO,CAAC0B,KAAT,EAAgBmL,QAAQ,IAAI7M,OAAO,CAAC6U,iBAApC,EAAuD7U,OAAO,CAACwW,WAAD,CAA9D,EAA6EvW,SAA7E;AADvB,KAAA,EAEM0W,IAFN,CAAA,eAIE,KAAA,CAAA,aAAA,CAAA,SAAA,EAAA;AACE,MAAA,MAAM,EAAEnT,MADV;AAEE,MAAA,SAAS,EAAG;AACtB,oBAAA,EAAsBtD,KAAK,CAACJ,CAAN,CAAQA,CAAR,CAAW,CAAA,EAAA,EAAII,KAAK,CAACH,CAAN,CAAQA,CAAR,CAAW,CAAA;AAChD,iBAAA,EAAmBkX,KAAM,CAAA,KAAA;AAJjB,KAAA,CAJF,CADF;AAaD,EAAA;;AAtD2C;AAAjCD,SACJpW,YAAY;AACjBZ,EAAAA,OAAO,EAAEa,SAAS,CAACG,MADF;AAEjBf,EAAAA,SAAS,EAAEY,SAAS,CAACK,MAFJ;AAGjBsV,EAAAA,WAAW,EAAE3V,SAAS,CAACK,MAHN;AAIjB2L,EAAAA,QAAQ,EAAEhM,SAAS,CAACiM,IAJH;AAKjBhN,EAAAA,CAAC,EAAEe,SAAS,CAACC,MALI;AAMjBf,EAAAA,CAAC,EAAEc,SAAS,CAACC,MANI;AAOjBsD,EAAAA,IAAI,EAAEvD,SAAS,CAACmO,KAAV,CAAgB;AACpBlP,IAAAA,CAAC,EAAEe,SAAS,CAACC,MADO;AAEpBf,IAAAA,CAAC,EAAEc,SAAS,CAACC;AAFO,GAAhB,EAGHG,UAVc;AAWjBoD,EAAAA,EAAE,EAAExD,SAAS,CAACmO,KAAV,CAAgB;AAClBlP,IAAAA,CAAC,EAAEe,SAAS,CAACC,MADK;AAElBf,IAAAA,CAAC,EAAEc,SAAS,CAACC;AAFK,GAAhB,CAXa;AAejB2E,EAAAA,UAAU,EAAEtE,KAAK,CAACuJ,cAAN,CAAqBzJ;AAfhB;AADR+V,SAmBJ3V,eAAe;AACpB+C,EAAAA,IAAI,EAAE,EADc;AAEpBC,EAAAA,EAAE,EAAE;AAFgB;;ACvBjB,MAAM8S,SAAS,GAAG,CAAC;AAAE7R,EAAAA,IAAF;AAAQ7E,EAAAA,SAAR;AAAmB+C,EAAAA;AAAnB,CAAD,kBACvB,KAAA,CAAA,aAAA,CAAA,SAAA,EAAA;AAAS,EAAA,MAAM,EAAEA,MAAM,IAAK,CAAA,IAAA,EAAM8B,IAAK,CAAA,CAAA,EAAGA,IAAI,GAAG,CAAE,CAAA,GAAA,EAAKA,IAAK,CAAA,CAA7D;AAAgE,EAAA,SAAS,EAAE7E;AAA3E,CAAA,CADK;AAGP0W,SAAS,CAACvW,SAAV,GAAsB;AACpB4C,EAAAA,MAAM,EAAE3C,SAAS,CAACK,MADE;AAEpBoE,EAAAA,IAAI,EAAEzE,SAAS,CAACC,MAFI;AAGpBL,EAAAA,SAAS,EAAEI,SAAS,CAACK;AAHD,CAAtB;AAKAiW,SAAS,CAAC9V,YAAV,GAAyB;AACvBmC,EAAAA,MAAM,EAAE,EADe;AAEvB8B,EAAAA,IAAI,EAAE,EAFiB;AAGvB7E,EAAAA,SAAS,EAAE;AAHY,CAAzB;AAKO,MAAM2W,MAAM,GAAG,MAAM;AAC1B,EAAA,MAAMC,CAAC,GAAG,CAACjV,IAAI,CAACqR,MAAL,EAAA,GAAgB,IAAjB,EAAuB3O,OAAvB,CAA+B,CAA/B,CAAV;AACA,EAAA,OAAQ,CAAA,MAAA,EAAQuS,CAAE,CAAA,CAAlB;AACD,CAHM;AAIA,MAAMC,WAAW,GAAG,CAAC;AAAEC,EAAAA,EAAF;AAAMjS,EAAAA,IAAN;AAAYrF,EAAAA;AAAZ,CAAD,KAA6B;AACtD,EAAA,oBACE,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA;AACE,IAAA,EAAE,EAAEsX,EADN;AAEE,IAAA,OAAO,EAAG,CAAA,IAAA,EAAMjS,IAAK,CAAA,CAAA,EAAGA,IAAK,CAAA,CAF/B;AAGE,IAAA,IAAI,EAAEA,IAAI,GAAG,CAHf;AAIE,IAAA,IAAI,EAAEA,IAAI,GAAG,CAJf;AAKE,IAAA,WAAW,EAAEA,IALf;AAME,IAAA,YAAY,EAAEA,IANhB;AAOE,IAAA,MAAM,EAAC,oBAPT;AAQE,IAAA,SAAS,EAAErF;AARb,GAAA,eAUE,oBAAC,SAAD,EAAA;AAAW,IAAA,IAAI,EAAEqF;AAAjB,GAAA,CAVF,CADF;AAcD,CAfM;AAgBPgS,WAAW,CAAC1W,SAAZ,GAAwB;AACtB2W,EAAAA,EAAE,EAAE1W,SAAS,CAACK,MADQ;AAEtBoE,EAAAA,IAAI,EAAEzE,SAAS,CAACC,MAFM;AAGtBb,EAAAA,SAAS,EAAEY,SAAS,CAACK;AAHC,CAAxB;AAKAoW,WAAW,CAACjW,YAAZ,GAA2B;AACzBiE,EAAAA,IAAI,EAAE;AADmB,CAA3B;;;cClCe,MAAM5F,KAAN,SAAoBC,KAAK,CAACC,SAA1B,CAAoC;AAYjDC,EAAAA,MAAM,GAAG;AACP,IAAA,MAAA,WAAA,GAAwF,KAAKM,KAA7F;AAAA,UAAM;AAAEH,MAAAA,OAAF;AAAWiX,MAAAA,KAAX;AAAkBhX,MAAAA,SAAlB;AAA6BH,MAAAA,CAA7B;AAAgCC,MAAAA,CAAhC;AAAmC8M,MAAAA,QAAnC;AAA6C2J,MAAAA,WAA7C;AAA0D/Q,MAAAA;AAA1D,KAAN,GAAA,WAAA;AAAA,UAA+EkR,IAA/E,GAAA,6BAAA,CAAA,WAAA,EAAAC,WAAA,CAAA;;AAEA,IAAA,MAAMtR,IAAI,GAAGE,mBAAmB,CAACC,UAAD,CAAnB,GAAkC,EAAlC,GAAuC,EAApD;AACA,IAAA,MAAM;AAAEvF,MAAAA;AAAF,KAAA,GAAYuF,UAAlB;AAEA,IAAA,MAAM+R,OAAO,GAAGtX,KAAK,CAACJ,CAAN,CAAQA,CAAR,CAAhB;AACA,IAAA,MAAM2X,OAAO,GAAGvX,KAAK,CAACH,CAAN,CAAQA,CAAR,CAAhB;AAEA,IAAA,MAAMU,SAAS,GAAI,CAAA,OAAA,EAAS,CAACwW,KAAM,CAAA,EAAA,EAAIO,OAAQ,CAAA,CAAA,EAAGC,OAAQ,CAAA,CAAA,CAA1D;AACA,IAAA,MAAMjU,MAAM,GAAI,CAAA,EAAEgU,OAAQ,IAAGC,OAAQ;AACzC,QAAA,EAAUD,OAAO,GAAGlS,IAAK,CAAA,CAAA,EAAGmS,OAAO,GAAGnS,IAAI,GAAG,CAAE;AAC/C,QAAA,EAAUkS,OAAO,GAAGlS,IAAK,CAAA,EAAA,EAAImS,OAAO,GAAGnS,IAAI,GAAG,CAAE,CAAA,CAF5C;AAIA,IAAA,oBACE,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,QAAA,CAAA;AACE,MAAA,SAAS,EAAEjF,UAAU,CAACL,OAAO,CAAC0B,KAAT,EAAgBmL,QAAQ,IAAI7M,OAAO,CAAC6U,iBAApC,EAAuD7U,OAAO,CAACwW,WAAD,CAA9D,EAA6EvW,SAA7E;AADvB,KAAA,EAEM0W,IAFN,CAAA,eAIE,KAAA,CAAA,aAAA,CAAC,SAAD,EAAA;AAAW,MAAA,IAAI,EAAErR,IAAjB;AAAuB,MAAA,SAAS,EAAE7E,SAAlC;AAA6C,MAAA,MAAM,EAAE+C;AAArD,KAAA,CAJF,CADF;AAQD,EAAA;;AAlCgD;AAA9B9D,QACZkB,YAAY;AACjBZ,EAAAA,OAAO,EAAEa,SAAS,CAACG,MADF;AAEjBf,EAAAA,SAAS,EAAEY,SAAS,CAACK,MAFJ;AAGjBsV,EAAAA,WAAW,EAAE3V,SAAS,CAACK,MAHN;AAIjB2L,EAAAA,QAAQ,EAAEhM,SAAS,CAACiM,IAJH;AAKjBhN,EAAAA,CAAC,EAAEe,SAAS,CAACC,MAAV,CAAiBG,UALH;AAMjBlB,EAAAA,CAAC,EAAEc,SAAS,CAACC,MAAV,CAAiBG,UANH;AAOjBgW,EAAAA,KAAK,EAAEpW,SAAS,CAACC,MAAV,CAAiBG,UAPP;AAQjBwE,EAAAA,UAAU,EAAEtE,KAAK,CAACuJ,cAAN,CAAqBzJ;AARhB;;ACCrB,MAAMyW,IAAI,GAAG;AACXjW,EAAAA,MAAM,EAAE,CAACtB,KAAD,EAAQ;AAAEuF,IAAAA,MAAF;AAAUC,IAAAA;AAAV,GAAR,KAA8B;AACpC,IAAA,MAAM;AAAE7F,MAAAA,CAAF;AAAKC,MAAAA;AAAL,KAAA,GAAWI,KAAjB;AACA,IAAA,MAAMwD,IAAI,GAAG;AAAEC,MAAAA,IAAI,EAAE9D,CAAR;AAAW+D,MAAAA,GAAG,EAAE9D,CAAhB;AAAmB+D,MAAAA,MAAM,EAAE/D,CAA3B;AAA8BgE,MAAAA,KAAK,EAAEjE;AAArC,KAAb;AAEA,IAAA,OAAOyB,MAAA,CAAaoC,IAAb,EAAmB+B,MAAnB,EAA2BC,KAA3B,CAAP;AACD,EAAA,CANU;AAOXgS,EAAAA,WAAW,EAAGxX,KAAD,IAAW;AACtB,IAAA,MAAM;AAAEL,MAAAA,CAAF;AAAKC,MAAAA;AAAL,KAAA,GAAWI,KAAjB;AAEA,IAAA,OAAO;AAAEL,MAAAA,CAAF;AAAKC,MAAAA;AAAL,KAAP;AACD,EAAA,CAXU;AAYX6X,EAAAA,SAAS,EAAE,CAACzX,KAAD,EAAQ0X,KAAR,KAAkB;AAC3B,IAAA,OAAOtW,KAAA,CAAYpB,KAAZ,CAAA,CAAmB2X,GAAnB,CAAuBvW,KAAA,CAAYsW,KAAZ,CAAvB,CAAP;AACD,EAAA;AAdU,CAAb;;AAiBA,MAAMzC,QAAM,GAAG,MAAM;AACnB,EAAA,OAAO;AACL1T,IAAAA,KAAK,EAAE;AACL,MAAA,qBAAA,EAAuB;AACrBwH,QAAAA,MAAM,EAAE,SADa;AAErB5J,QAAAA,IAAI,EAAE6I,KAAK,CAACC,QAAN,CAAe2P;AAFA;AADlB,KADF;AAOLlL,IAAAA,QAAQ,EAAE;AACR,MAAA,qBAAA,EAAA,QAAA,CAAA,EAAA,EACKA,QAAQ,EADb;AADQ,KAPL;AAYLgI,IAAAA,iBAAiB,EAAE;AACjB,MAAA,qBAAA,EAAA,QAAA,CAAA,EAAA,EACKA,iBAAiB,EADtB;AADiB,KAZd;AAiBLC,IAAAA,OAAO,EAAE;AACP,MAAA,qBAAA,EAAA,QAAA,CAAA,EAAA,EACKA,OAAO,EADZ;AADO,KAjBJ;AAsBLE,IAAAA,SAAS,EAAE;AACT,MAAA,qBAAA,EAAA,QAAA,CAAA,EAAA,EACKA,SAAS,EADd;AADS,KAtBN;AA2BLE,IAAAA,OAAO,EAAE;AACP,MAAA,qBAAA,EAAA,QAAA,CAAA,EAAA,EACKA,OAAO,EADZ;AADO;AA3BJ,GAAP;AAiCD,CAlCD;;AAoCO,MAAM8C,SAAS,GAAG1W,YAAU,CAAC8T,QAAD,CAAV,CAAmB6C,aAAa,CAACP,IAAD,CAAb,CAAoBpB,KAApB,CAAnB,CAAlB;AACmBhV,YAAU,CAAC8T,QAAD,CAAV,CAAmB6C,aAAa,CAACP,IAAD,CAAb,CAAoBV,QAApB,CAAnB;AACnB,MAAMtX,KAAK,GAAG4B,YAAU,CAAC8T,QAAD,CAAV,CAAmB6C,aAAa,CAACP,IAAD,CAAb,CAAoBQ,OAApB,CAAnB,CAAd;;AC9DA,MAAMC,kBAAkB,GAAG;AAChCpR,EAAAA,IAAI,EAAElG,SAAS,CAACuX,GADgB;AAEhC5K,EAAAA,QAAQ,EAAE3M,SAAS,CAACuN,IAFY;AAGhCiK,EAAAA,WAAW,EAAExX,SAAS,CAACuN,IAHS;AAIhCkK,EAAAA,UAAU,EAAEzX,SAAS,CAACuN;AAJU,CAA3B;AAOqBvN,SAAS,CAACmO,KAAV,CAAgBmJ,kBAAhB;;ACPrB,MAAMI,WAAW,GAAG,CAAC/N,KAAD,EAAQgO,KAAR,KAAkB;AAC3C,EAAA,MAAM,CAACC,cAAD,EAAiBC,iBAAjB,IAAsCC,QAAQ,CAACnO,KAAD,CAApD;AAEAoO,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,MAAMC,OAAO,GAAGC,UAAU,CAAC,MAAM;AAC/BJ,MAAAA,iBAAiB,CAAClO,KAAD,CAAjB;AACD,IAAA,CAFyB,EAEvBgO,KAFuB,CAA1B;AAGA,IAAA,OAAO,MAAMO,YAAY,CAACF,OAAD,CAAzB;AACD,EAAA,CALQ,EAKN,CAACrO,KAAD,CALM,CAAT;AAMA,EAAA,OAAOiO,cAAP;AACD,CAVM;;ACCP,MAAMO,OAAO,GAAG,CAAC;AAAE9R,EAAAA;AAAF,CAAD,KAAc;AAC5B,EAAA,MAAM+R,KAAK,GAAG;AACZnE,IAAAA,OAAO,eACL,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,MAAA,KAAK,EAAC,GAAX;AAAe,MAAA,MAAM,EAAC,GAAtB;AAA0B,MAAA,OAAO,EAAC,SAAlC;AAA4C,MAAA,IAAI,EAAC,MAAjD;AAAwD,MAAA,KAAK,EAAC;AAA9D,KAAA,eACE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AACE,MAAA,CAAC,EAAC,wVADJ;AAEE,MAAA,IAAI,EAAC;AAFP,KAAA,CADF,CAFU;AASZE,IAAAA,SAAS,eACP,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,MAAA,KAAK,EAAC,GAAX;AAAe,MAAA,MAAM,EAAC,GAAtB;AAA0B,MAAA,OAAO,EAAC,SAAlC;AAA4C,MAAA,IAAI,EAAC,MAAjD;AAAwD,MAAA,KAAK,EAAC;AAA9D,KAAA,eACE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AACE,MAAA,CAAC,EAAC,gkBADJ;AAEE,MAAA,IAAI,EAAC;AAFP,KAAA,CADF,CAVU;AAiBZkE,IAAAA,KAAK,eACH,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,MAAA,KAAK,EAAC,IAAX;AAAgB,MAAA,MAAM,EAAC,IAAvB;AAA4B,MAAA,OAAO,EAAC,WAApC;AAAgD,MAAA,IAAI,EAAC,MAArD;AAA4D,MAAA,KAAK,EAAC;AAAlE,KAAA,eACE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AACE,MAAA,CAAC,EAAC,6jCADJ;AAEE,MAAA,IAAI,EAAC;AAFP,KAAA,CADF;AAlBU,GAAd;AA2BA,EAAA,OAAOD,KAAK,CAAC/R,IAAD,CAAL,IAAe,IAAtB;AACD,CA7BD;;AA+BA8R,OAAO,CAACpY,SAAR,GAAoB;AAClBsG,EAAAA,IAAI,EAAErG,SAAS,CAACK,MAAV,CAAiBD;AADL,CAApB;;ACxBA,MAAMkY,WAAW,GAAI/Z,KAAD,KAAY;AAC9Bga,EAAAA,KAAK,EAAE,OADuB;AAE9BvQ,EAAAA,OAAO,EAAEzJ,KAAK,CAACia,OAAN,CAAcC,IAAd,GAAqB,GAFA;AAG9BhE,EAAAA,YAAY,EAAE,KAHgB;AAI9B5M,EAAAA,QAAQ,EAAE,MAJoB;AAK9B6Q,EAAAA,eAAe,EAAEpR,KAAK,CAACC,QAAN,CAAeoR;AALF,CAAZ,CAApB;;AAQA,MAAMpE,QAAM,GAAIhW,KAAD,KAAY;AACzBqa,EAAAA,YAAY,EAAA,QAAA,CAAA,EAAA,EACPN,WAAW,CAAC/Z,KAAD,CADJ,EAAA;AAEVyJ,IAAAA,OAAO,EAAE,GAFC;AAGV6Q,IAAAA,MAAM,EAAE,MAHE;AAIVvR,IAAAA,KAAK,EAAE,SAJG;AAKVwR,IAAAA,UAAU,EAAE;AALF,GAAA,CADa;AAQzBtE,EAAAA,KAAK,EAAE;AACL+D,IAAAA,KAAK,EAAE,OADF;AAELvQ,IAAAA,OAAO,EAAEzJ,KAAK,CAACia,OAAN,CAAcC,IAAd,GAAqB,GAFzB;AAGLrQ,IAAAA,UAAU,EAAE7J,KAAK,CAACuJ,UAAN,CAAiBM,UAHxB;AAILP,IAAAA,QAAQ,EAAE,MAJL;AAKLgR,IAAAA,MAAM,EAAG,CAAA,UAAA,EAAYvR,KAAK,CAACC,QAAN,CAAekG,SAAU,CAAA,CALzC;AAMLgH,IAAAA,YAAY,EAAE,KANT;AAOLnN,IAAAA,KAAK,EAAEA,KAAK,CAACC,QAAN,CAAeqN,YAPjB;AAQL8D,IAAAA,eAAe,EAAEpR,KAAK,CAACC,QAAN,CAAeoR;AAR3B,GARkB;AAkBzB3M,EAAAA,QAAQ,EAAE;AACR6M,IAAAA,MAAM,EAAG,CAAA,UAAA,EAAYvR,KAAK,CAACC,QAAN,CAAeqN,YAAa,CAAA,CADzC;AAER8D,IAAAA,eAAe,EAAEpR,KAAK,CAACC,QAAN,CAAeoR,KAFxB;AAGR,IAAA,iBAAA,EAAmB;AAHX,GAlBe;AAuBzBI,EAAAA,YAAY,EAAE;AACZF,IAAAA,MAAM,EAAG,CAAA,UAAA,EAAYvR,KAAK,CAAC0E,QAAN,EAAiB,CAAA,CAD1B;AAEZ1E,IAAAA,KAAK,EAAEA,KAAK,CAAC0E,QAAN,EAFK;AAGZ,IAAA,yBAAA,EAA2B1E,KAAK,CAAC0E,QAAN;AAHf,GAvBW;AA4BzBgN,EAAAA,YAAY,EAAA,QAAA,CAAA,EAAA,EACPV,WAAW,CAAC/Z,KAAD,CADJ,EAAA;AAEV+I,IAAAA,KAAK,EAAEA,KAAK,CAACC,QAAN,CAAe0R,iBAFZ;AAGVJ,IAAAA,MAAM,EAAG,CAAA,UAAA,EAAYvR,KAAK,CAACC,QAAN,CAAe0R,iBAAkB,CAAA;AAH5C,GAAA,CA5Ba;AAiCzBC,EAAAA,cAAc,EAAA,QAAA,CAAA,EAAA,EACTZ,WAAW,CAAC/Z,KAAD,CADF,EAAA;AAEZ+I,IAAAA,KAAK,EAAEA,KAAK,CAACC,QAAN,CAAe4R,mBAFV;AAGZN,IAAAA,MAAM,EAAG,CAAA,UAAA,EAAYvR,KAAK,CAACC,QAAN,CAAe4R,mBAAoB,CAAA;AAH5C,GAAA,CAjCW;AAsCzBC,EAAAA,YAAY,EAAA,QAAA,CAAA,EAAA,EACPd,WAAW,CAAC/Z,KAAD,CADJ,EAAA;AAEV+I,IAAAA,KAAK,EAAEA,KAAK,CAACC,QAAN,CAAe8R,iBAFZ;AAGVR,IAAAA,MAAM,EAAG,CAAA,UAAA,EAAYvR,KAAK,CAACC,QAAN,CAAe8R,iBAAkB,CAAA,CAH5C;AAIVP,IAAAA,UAAU,EAAE;AAJF,GAAA,CAtCa;AA4CzB3E,EAAAA,SAAS,EAAA,QAAA,CAAA,EAAA,EACJmE,WAAW,CAAC/Z,KAAD,CADP,EAAA;AAEP+I,IAAAA,KAAK,EAAEA,KAAK,CAACC,QAAN,CAAe4R,mBAFf;AAGPL,IAAAA,UAAU,EAAE,MAHL;AAIP9Q,IAAAA,OAAO,EAAE;AAJF,GAAA;AA5CgB,CAAZ,CAAf;;AAoDO,MAAMoF,QAAQ,GAAG,CAACxI,UAAD,EAAasB,IAAb,EAAmBqI,IAAI,GAAG;AAAExJ,EAAAA,KAAK,EAAE,CAAT;AAAYC,EAAAA,MAAM,EAAE;AAApB,CAA1B,KAAsD;AAC5E,EAAA,MAAM;AAAE3F,IAAAA,KAAF;AAASwF,IAAAA,MAAT;AAAiBC,IAAAA;AAAjB,GAAA,GAA2BF,UAAjC;AACA,EAAA,MAAM0U,KAAK,GAAG,CAAd;AAEA,EAAA,MAAMpE,SAAS,GAAG7V,KAAK,CAACJ,CAAN,CAAQiH,IAAI,CAACjH,CAAb,CAAA,GAAkBsP,IAAI,CAACxJ,KAAvB,GAA+BuU,KAAjD;AACA,EAAA,MAAMC,UAAU,GAAGla,KAAK,CAACH,CAAN,CAAQgH,IAAI,CAAChH,CAAb,CAAA,GAAkBqP,IAAI,CAACvJ,MAAvB,GAAgCsU,KAAnD;AAEA,EAAA,MAAM1W,CAAC,GAAGsS,SAAS,IAAI7V,KAAK,CAACJ,CAAN,CAAQ4F,MAAM,CAACnD,GAAf,CAAb,GAAmC,MAAnC,GAA4C,OAAtD;AACA,EAAA,MAAM8U,CAAC,GAAG+C,UAAU,IAAIla,KAAK,CAACH,CAAN,CAAQ4F,KAAK,CAAC1D,GAAd,CAAd,GAAmC,KAAnC,GAA2C,QAArD;AAEA,EAAA,OAAQ,CAAA,EAAEoV,CAAE,CAAA,CAAA,EAAG5T,CAAE,CAAA,CAAjB;AACD,CAXM;AAaA,MAAM4W,WAAW,GAAG,CAAC5U,UAAD,EAAasB,IAAb,EAAmBqI,IAAI,GAAG;AAAExJ,EAAAA,KAAK,EAAE,CAAT;AAAYC,EAAAA,MAAM,EAAE;AAApB,CAA1B,EAAmDoI,QAAnD,KAAgE;AACzF,EAAA,MAAM;AAAE/N,IAAAA;AAAF,GAAA,GAAYuF,UAAlB;AACA,EAAA,MAAM0U,KAAK,GAAG,CAAd;;AAEA,EAAA,QAAQlM,QAAR;AACE,IAAA,KAAK,cAAL;AACE,MAAA,OAAO;AAAErK,QAAAA,IAAI,EAAE1D,KAAK,CAACJ,CAAN,CAAQiH,IAAI,CAACjH,CAAb,CAAA,GAAkBqa,KAA1B;AAAiCtW,QAAAA,GAAG,EAAE3D,KAAK,CAACH,CAAN,CAAQgH,IAAI,CAAChH,CAAb,CAAA,GAAkBoa;AAAxD,OAAP;;AACF,IAAA,KAAK,aAAL;AACE,MAAA,OAAO;AAAEvW,QAAAA,IAAI,EAAE1D,KAAK,CAACJ,CAAN,CAAQiH,IAAI,CAACjH,CAAb,CAAA,GAAkBqa,KAAlB,GAA0B/K,IAAI,CAACxJ,KAAvC;AAA8C/B,QAAAA,GAAG,EAAE3D,KAAK,CAACH,CAAN,CAAQgH,IAAI,CAAChH,CAAb,CAAA,GAAkBoa;AAArE,OAAP;;AACF,IAAA,KAAK,UAAL;AACE,MAAA,OAAO;AAAEvW,QAAAA,IAAI,EAAE1D,KAAK,CAACJ,CAAN,CAAQiH,IAAI,CAACjH,CAAb,CAAA,GAAkBqa,KAAlB,GAA0B/K,IAAI,CAACxJ,KAAvC;AAA8C/B,QAAAA,GAAG,EAAE3D,KAAK,CAACH,CAAN,CAAQgH,IAAI,CAAChH,CAAb,CAAA,GAAkBoa,KAAlB,GAA0B/K,IAAI,CAACvJ;AAAlF,OAAP;;AACF,IAAA,KAAK,WAAL;AACE,MAAA,OAAO;AAAEjC,QAAAA,IAAI,EAAE1D,KAAK,CAACJ,CAAN,CAAQiH,IAAI,CAACjH,CAAb,CAAA,GAAkBqa,KAA1B;AAAiCtW,QAAAA,GAAG,EAAE3D,KAAK,CAACH,CAAN,CAAQgH,IAAI,CAAChH,CAAb,CAAA,GAAkBoa,KAAlB,GAA0B/K,IAAI,CAACvJ;AAArE,OAAP;;AACF,IAAA;AACE,MAAA,OAAO,EAAP;AAVJ;AAYD,CAhBM;;AAkBP,MAAMyU,UAAU,GAAG,CAAC;AAAEC,EAAAA,IAAF;AAAQC,EAAAA,gBAAR;AAA0B7X,EAAAA,KAA1B;AAAiCkK,EAAAA,QAAjC;AAA2C4N,EAAAA,cAA3C;AAA2DjN,EAAAA;AAA3D,CAAD,kBACjB,oBAAC,aAAD,EAAA;AACE,EAAA,QAAQ,EAAGb,CAAD,IAAO;AACf4N,IAAAA,IAAI,CAAC5N,CAAD,CAAJ;;AACA6N,IAAAA,gBAAgB,CAAC7N,CAAD,CAAhB;AACD,EAAA,CAJH;AAKE,EAAA,QAAQ,EAAEE,QALZ;AAME,EAAA,cAAc,EAAE4N,cANlB;AAOE,EAAA,KAAK,EAAE9X,KAPT;AAQE,EAAA,QAAQ,EAAE6K;AARZ,CAAA,CADF;;AAaO,MAAMkN,SAAS,GAAIva,KAAD,IAAW;AAClC,EAAA,MAAM,CAACkV,KAAD,EAAQsF,QAAR,IAAoBhC,QAAQ,CAAC,IAAD,CAAlC;;AACA,EAAA,MAAM4B,IAAI,GAAGK,WAAW,CAAEC,IAAD,IAAUF,QAAQ,CAACE,IAAD,CAAnB,CAAxB;;AAEA,EAAA,MAAM;AAAE9T,IAAAA,IAAF;AAAQtB,IAAAA,UAAR;AAAoBzF,IAAAA,OAApB;AAA6B6M,IAAAA,QAA7B;AAAuCiO,IAAAA,QAAQ,EAAEN,gBAAjD;AAAmEpb,IAAAA;AAAnE,GAAA,GAA6Ee,KAAnF;AAEA,EAAA,MAAM,CAACwC,KAAD,EAAQoY,QAAR,CAAA,GAAoBpC,QAAQ,CAAC5R,IAAI,CAACpE,KAAN,CAAlC;AACA,EAAA,MAAM;AAAE6T,IAAAA,WAAF;AAAewE,IAAAA,gBAAf;AAAiCC,IAAAA;AAAjC,GAAA,GAAkDlU,IAAxD;;AACA,EAAA,MAAMyG,QAAQ,GAAI0N,CAAD,IAAOH,QAAQ,CAACG,CAAC,CAACC,MAAF,CAAS3Q,KAAV,CAAhC;;AAEA,EAAA,MAAM4Q,cAAc,GAAG7C,WAAW,CAAC5V,KAAD,EAAQ,GAAR,CAAlC,CAVkC;;AAalCiW,EAAAA,SAAS,CAAC,MAAM;AACdmC,IAAAA,QAAQ,CAAChU,IAAI,CAACpE,KAAN,CAAR;AACD,EAAA,CAFQ,EAEN,CAACoE,IAAI,CAACpE,KAAN,CAFM,CAAT,CAbkC;;AAkBlCiW,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAI,OAAOwC,cAAP,KAA0B,QAA1B,IAAsCA,cAAc,KAAKrU,IAAI,CAACpE,KAAlE,EAAyE;AACvExC,MAAAA,KAAK,CAACqN,QAAN,CAAe4N,cAAf,CAAA;AACD,IAAA;AACF,EAAA,CAJQ,EAIN,CAACA,cAAD,CAJM,CAAT;AAMA,EAAA,MAAMhM,IAAI,GAAGiG,KAAK,GAAGA,KAAK,CAACgG,qBAAN,EAAH,GAAmC;AAAEzV,IAAAA,KAAK,EAAE,CAAT;AAAYC,IAAAA,MAAM,EAAE;AAApB,GAArD;AACA,EAAA,MAAMyV,GAAG,GAAGrN,QAAQ,CAACxI,UAAD,EAAasB,IAAb,EAAmBqI,IAAnB,CAApB;AACA,EAAA,MAAMmM,OAAO,GAAGlB,WAAW,CAAC5U,UAAD,EAAasB,IAAb,EAAmBqI,IAAnB,EAAyBkM,GAAzB,CAA3B;;AAEA,EAAA,MAAMnc,KAAK,GAAA,QAAA,CAAA;AACT8O,IAAAA,QAAQ,EAAE,OADD;AAETM,IAAAA,aAAa,EAAE,MAFN;AAGTiN,IAAAA,OAAO,EAAE,MAHA;AAITC,IAAAA,UAAU,EAAE,QAJH;AAKTC,IAAAA,GAAG,EAAE;AALI,GAAA,EAMNH,OANM,CAAX;;AASA,EAAA,MAAMI,gBAAgB,gBACjBxc,KADiB,EAAA;AAEpB0E,IAAAA,GAAG,EAAE0X,OAAO,CAAC1X,GAAR,GAAc;AAFC,GAAA,CAAtB;;AAKA,EAAA,MAAM+X,aAAa,GAAG/O,QAAQ,IAAI9F,IAAI,CAAC8F,QAAvC;;AAEA,EAAA,MAAMgP,WAAW,GAAG,CAACC,UAAD,EAAaC,UAAb,kBAClB,oBAAC,UAAD,EAAA;AACE,IAAA,IAAI,EAAExB,IADR;AAEE,IAAA,gBAAgB,EAAEC,gBAFpB;AAGE,IAAA,KAAK,EAAEuB,UAHT;AAIE,IAAA,QAAQ,EAAEH,aAJZ;AAKE,IAAA,cAAc,EAAE9N,UAAE,CAACgO,UAAD,CALpB;AAME,IAAA,QAAQ,EAAEtO;AANZ,GAAA,CADF;;AAWA,EAAA,IAAIgJ,WAAW,KAAK,SAAhB,IAA6BwE,gBAAgB,KAAK,SAAlD,IAA+DC,YAAnE,EAAiF;AAC/E,IAAA,oBACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,MAAA,SAAS,EAAEjb,OAAO,CAAC6Z,YAAxB;AAAsC,MAAA,KAAK,EAAE1a;AAA7C,KAAA,eACE,oBAAC,OAAD,EAAA;AAAS,MAAA,IAAI,EAAC;AAAd,KAAA,CADF,EAEG0c,WAAW,CAAC7b,OAAO,CAACyZ,YAAT,EAAuBwB,YAAvB,CAFd,CADF;AAMD,EAAA,CA9DiC;;;AAiElC,EAAA,IAAIzE,WAAW,KAAK,SAAhB,IAA6BwE,gBAAgB,KAAK,SAAlD,IAA+D,CAACC,YAApE,EAAkF;AAChF,IAAA,OAAO,IAAP;AACD,EAAA;;AAED,EAAA,IAAIzE,WAAW,KAAK,SAAhB,IAA6BwE,gBAAgB,KAAK,WAAtD,EAAmE;AACjE,IAAA,oBACE,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,eACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,MAAA,SAAS,EAAEhb,OAAO,CAAC+Z,cAAxB;AAAwC,MAAA,KAAK,EAAE5a;AAA/C,KAAA,eACE,oBAAC,OAAD,EAAA;AAAS,MAAA,IAAI,EAAC;AAAd,KAAA,CADF,EAEGwD,KAAK,KAAK,EAAV,gBACC,oBAAC,OAAD,EAAA;AAAS,MAAA,IAAI,EAAC,OAAd;AAAsB,MAAA,KAAK,EAAE;AAAEqZ,QAAAA,UAAU,EAAE;AAAd;AAA7B,KAAA,CADD,GAGCH,WAAW,CAAC7b,OAAO,CAACyZ,YAAT,EAAuB9W,KAAvB,CALf,CADF,eASE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,MAAA,SAAS,EAAE3C,OAAO,CAACia,YAAxB;AAAsC,MAAA,KAAK,EAAE0B;AAA7C,KAAA,EACGE,WAAW,CAAC7b,OAAO,CAACyZ,YAAT,EAAuBwB,YAAvB,CADd,CATF,CADF;AAeD,EAAA;;AAED,EAAA,IAAIzE,WAAW,KAAK,SAApB,EAA+B;AAC7B,IAAA,oBACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,MAAA,SAAS,EAAExW,OAAO,CAACia,YAAxB;AAAsC,MAAA,KAAK,EAAE9a;AAA7C,KAAA,EACG0c,WAAW,CAAC7b,OAAO,CAACyZ,YAAT,EAAuB9W,KAAvB,CADd,CADF;AAKD,EAAA;;AAED,EAAA,IAAI6T,WAAW,KAAK,WAApB,EAAiC;AAC/B,IAAA,oBACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,MAAA,SAAS,EAAExW,OAAO,CAACgV,SAAxB;AAAmC,MAAA,KAAK,EAAE7V;AAA1C,KAAA,EACG0c,WAAW,CAAC7b,OAAO,CAACyZ,YAAT,EAAuB9W,KAAvB,CADd,CADF;AAKD,EAAA;;AAED,EAAA,oBACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAExD;AAAZ,GAAA,EACG0c,WAAW,CACV/N,UAAE,CAAC9N,OAAO,CAACqV,KAAT,EAAgB;AAChB,IAAA,CAACrV,OAAO,CAAC6M,QAAT,GAAoBA,QADJ;AAEhB,IAAA,CAAC7M,OAAO,CAAC4Z,YAAT,GAAwB7S,IAAI,CAAC8F;AAFb,GAAhB,CADQ,EAKVlK,KALU,CADd,CADF;AAWD,CAlHM;AAoHP+X,SAAS,CAAC9Z,SAAV,GAAsB;AACpBiM,EAAAA,QAAQ,EAAEhM,SAAS,CAACiM,IADA;AAEpBU,EAAAA,QAAQ,EAAE3M,SAAS,CAACuN,IAFA;AAGpB3I,EAAAA,UAAU,EAAEtE,KAAK,CAACuJ,cAHE;AAIpB1K,EAAAA,OAAO,EAAEa,SAAS,CAACG,MAJC;AAKpB8Z,EAAAA,QAAQ,EAAEja,SAAS,CAACuN,IALA;AAMpBrH,EAAAA,IAAI,EAAElG,SAAS,CAACG,MANI;AAOpB5B,EAAAA,KAAK,EAAEyB,SAAS,CAACG;AAPG,CAAtB;AAUA,kBAAeM,UAAU,CAAC8T,QAAD,EAAS;AAAE6G,EAAAA,SAAS,EAAE;AAAb,CAAT,CAAV,CAAwCvB,SAAxC,CAAf;;ACvOO,MAAMwB,KAAN,SAAoBvc,KAAK,CAACC,SAA1B,CAAoC;AAQzCwS,EAAAA,WAAW,CAACjS,KAAD,EAAQ;AACjB,IAAA,KAAA,CAAMA,KAAN,CAAA;;AADiB,IAAA,IAAA,CAKnBgc,IALmB,GAKXjY,CAAD,IAAO;AACZ,MAAA,MAAM6C,IAAI,gBAAQ,IAAA,CAAKsL,KAAL,CAAWtL,IAAnB,EAA4B7C,CAA5B,CAAV;;AACA,MAAA,IAAA,CAAKoO,QAAL,CAAc;AAAEvL,QAAAA;AAAF,OAAd,CAAA;AACD,IAAA,CARkB;;AAAA,IAAA,IAAA,CAUnBoN,SAVmB,GAUP,MAAM;AAChB,MAAA,MAAMnB,MAAM,GAAA,QAAA,CAAA,EAAA,EAAQ,IAAA,CAAK7S,KAAL,CAAW4G,IAAnB,CAAZ;;AAEA,MAAA,IAAIiM,MAAM,CAACrQ,KAAP,KAAiB,EAArB,EAAyB;AACvB,QAAA,OAAOqQ,MAAM,CAACrQ,KAAd;AACD,MAAA;;AACD,MAAA,IAAA,CAAK2P,QAAL,CAAc;AAAEvL,QAAAA,IAAI,EAAEiM;AAAR,OAAd,CAAA;AACD,IAAA,CAjBkB;;AAAA,IAAA,IAAA,CAmBnBoB,QAnBmB,GAmBR,MAAM;AACf,MAAA,MAAM;AAAE5G,QAAAA;AAAF,OAAA,GAAe,KAAKrN,KAA1B;;AACA,MAAA,MAAM4G,IAAI,GAAA,QAAA,CAAA,EAAA,EAAQ,IAAA,CAAKsL,KAAL,CAAWtL,IAAnB,CAAV;;AACA,MAAA,IAAA,CAAKuL,QAAL,CAAc;AAAEvL,QAAAA,IAAI,EAAEsM;AAAR,OAAd,EAAmC,MAAM;AACvC,QAAA,IAAI,CAAClO,OAAO,CAAC,IAAA,CAAKhF,KAAL,CAAW4G,IAAZ,EAAkBA,IAAlB,CAAZ,EAAqC;AACnCyG,UAAAA,QAAQ,CAAC,IAAA,CAAKrN,KAAL,CAAW4G,IAAZ,EAAkBA,IAAlB,CAAR;AACD,QAAA;AACF,MAAA,CAJD,CAAA;AAKD,IAAA,CA3BkB;;AAAA,IAAA,IAAA,CA6BnBqV,WA7BmB,GA6BJzZ,KAAD,IAAW;AACvB,MAAA,MAAM;AAAE6K,QAAAA;AAAF,OAAA,GAAe,KAAKrN,KAA1B;;AACA,MAAA,MAAM6S,MAAM,GAAA,QAAA,CAAA,EAAA,EAAQ,IAAA,CAAK7S,KAAL,CAAW4G,IAAnB,EAAA;AAAyBpE,QAAAA;AAAzB,OAAA,CAAZ;;AAEA,MAAA,IAAI,CAACA,KAAD,IAAUC,OAAO,CAACD,KAAD,CAArB,EAA8B;AAC5B,QAAA,OAAOqQ,MAAM,CAACrQ,KAAd;AACD,MAAA;;AAED,MAAA,IAAA,CAAK2P,QAAL,CAAc;AAAEvL,QAAAA,IAAI,EAAEiM;AAAR,OAAd,EAAgC,MAAM;AACpCxF,QAAAA,QAAQ,CAAC,IAAA,CAAKrN,KAAL,CAAW4G,IAAZ,EAAkBiM,MAAlB,CAAR;AACD,MAAA,CAFD,CAAA;AAGD,IAAA,CAxCkB;;AAAA,IAAA,IAAA,CA0CnBqJ,UA1CmB,GA0CN,MAAM;AACjB,MAAA,MAAM;AAAEnL,QAAAA,gBAAF;AAAoB1D,QAAAA,QAApB;AAA8B6B,QAAAA,OAA9B;AAAuCtI,QAAAA;AAAvC,OAAA,GAAgD,KAAK5G,KAA3D;;AAEA,MAAA,IAAI,CAAC+Q,gBAAL,EAAuB;AACrB7B,QAAAA,OAAO,CAACtI,IAAD,CAAP;AACA,QAAA;AACD,MAAA;;AAED,MAAA,IAAIA,IAAI,CAAC8F,QAAT,EAAmB;AACjB,QAAA;AACD,MAAA;;AAEDW,MAAAA,QAAQ,CAACzG,IAAD,EAAA,QAAA,CAAA;AAASpE,QAAAA,KAAK,EAAE;AAAhB,OAAA,EAAuBoE,IAAvB,CAAA,CAAR;;AAEA,MAAA,IAAI,IAAA,CAAKsO,KAAT,EAAgB;AACd,QAAA,IAAA,CAAKA,KAAL,CAAWiH,KAAX,EAAA;AACD,MAAA;AACF,IAAA,CA3DkB;;AAEjB,IAAA,IAAA,CAAKjK,KAAL,GAAa,EAAb;AACD,EAAA;;AA0DDxS,EAAAA,MAAM,GAAG;AACP,IAAA,MAAM;AAAEsR,MAAAA,kBAAF;AAAsB1L,MAAAA,UAAtB;AAAkC8M,MAAAA,SAAlC;AAA6CrB,MAAAA;AAA7C,KAAA,GAAkE,KAAK/Q,KAA7E;AACA,IAAA,MAAM4G,IAAI,GAAG,IAAA,CAAKsL,KAAL,CAAWtL,IAAX,GAAkB,IAAA,CAAKsL,KAAL,CAAWtL,IAA7B,GAAoC,IAAA,CAAK5G,KAAL,CAAW4G,IAA5D;AAEA,IAAA,oBACE,KAAA,CAAA,aAAA,CAAC,KAAD,CAAO,QAAP,qBACE,KAAA,CAAA,aAAA,CAAC,SAAD,eACMA,IADN,EAAA;AAEE,MAAA,kBAAkB,EAAEoK,kBAFtB;AAGE,MAAA,UAAU,EAAE1L,UAHd;AAIE,MAAA,SAAS,EAAE8M,SAJb;AAKE,MAAA,MAAM,EAAE,IAAA,CAAK4J,IALf;AAME,MAAA,WAAW,EAAE,IAAA,CAAKhI,SANpB;AAOE,MAAA,UAAU,EAAE,IAAA,CAAKC,QAPnB;AAQE,MAAA,OAAO,EAAE,IAAA,CAAKiI,UARhB;AASE,MAAA,YAAY,EAAGnB,CAAD,IAAO;AACnBA,QAAAA,CAAC,CAACqB,eAAF,EAAA;AACA,QAAA,IAAA,CAAKF,UAAL,EAAA;AACD,MAAA,CAZH;AAaE,MAAA,UAAU,EAAGnB,CAAD,IAAO;AACjBA,QAAAA,CAAC,CAACqB,eAAF,EAAA;AACA,QAAA,IAAA,CAAKF,UAAL,EAAA;AACD,MAAA;AAhBH,KAAA,CAAA,CADF,EAmBG9J,SAAS,IACRxL,IAAI,CAACyV,cAAL,CAAoB,OAApB,CADD,iBAEC1F,QAAQ,CAACC,YAAT,eACE,oBAAC2D,WAAD,EAAA;AACE,MAAA,QAAQ,EAAG/N,CAAD,IAAQ,IAAA,CAAK0I,KAAL,GAAa1I,CADjC;AAEE,MAAA,QAAQ,EAAE,CAACuE,gBAFb;AAGE,MAAA,IAAI,EAAEnK,IAHR;AAIE,MAAA,UAAU,EAAEtB,UAJd;AAKE,MAAA,QAAQ,EAAE,IAAA,CAAK2W;AALjB,KAAA,CADF,EAQE7J,SARF,CArBJ,CADF;AAkCD,EAAA;;AA3GwC;AAA9B2J,MACJtb;AACL6E,EAAAA,UAAU,EAAEtE,KAAK,CAACuJ,cAAN,CAAqBzJ;GAC9BkX;AAHM+D,MAMJ7a,eAAe;;ACbjB,MAAM8R,MAAI,GAAG,OAAO;AACzBxQ,EAAAA,KAAK,EAAE,OADkB;AAEzBuE,EAAAA,IAAI,EAAE,OAFmB;AAGzBtH,EAAAA,SAAS,EAAEsc,KAHc;AAIzB5I,EAAAA,QAAQ,EAAG5R,KAAD,IAAA,QAAA,CAAA;AACRwF,IAAAA,IAAI,EAAE;AADE,GAAA,EAELxF,KAFK;AAJe,CAAP,CAAb;;;ACOP;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM+a,SAAN,SAAwB9c,KAAK,CAACC,SAA9B,CAAwC;AAYtCC,EAAAA,MAAM,GAAG;AACP,IAAA,MAAA,WAAA,GAAyF,KAAKM,KAA9F;AAAA,UAAM;AAAEH,MAAAA,OAAF;AAAW6M,MAAAA,QAAX;AAAqB5M,MAAAA,SAArB;AAAgCuW,MAAAA,WAAhC;AAA6C1W,MAAAA,CAA7C;AAAgDC,MAAAA,CAAhD;AAAmD2c,MAAAA,MAAnD;AAA2DjX,MAAAA;AAA3D,KAAN,GAAA,WAAA;AAAA,UAAgFkR,IAAhF,GAAA,6BAAA,CAAA,WAAA,EAAAC,WAAA,CAAA;;AACA,IAAA,MAAM;AAAE1W,MAAAA;AAAF,KAAA,GAAYuF,UAAlB;AACA,IAAA,MAAMkX,EAAE,GAAGva,IAAI,CAACkJ,GAAL,CAASpL,KAAK,CAACJ,CAAN,CAAQA,CAAC,GAAG4c,MAAZ,IAAsBxc,KAAK,CAACJ,CAAN,CAAQA,CAAR,CAA/B,CAAX;AACA,IAAA,MAAM8c,EAAE,GAAGxa,IAAI,CAACkJ,GAAL,CAASpL,KAAK,CAACH,CAAN,CAAQA,CAAC,GAAG2c,MAAZ,IAAsBxc,KAAK,CAACH,CAAN,CAAQA,CAAR,CAA/B,CAAX;AAEA,IAAA,oBACE,KAAA,CAAA,aAAA,CAAA,SAAA,EAAA,QAAA,CAAA;AACE,MAAA,SAAS,EAAEM,UAAU,CAACL,OAAO,CAAC6c,QAAT,EAAmBhQ,QAAQ,IAAI7M,OAAO,CAAC6U,iBAAvC,EAA0D7U,OAAO,CAACwW,WAAD,CAAjE,EAAgFvW,SAAhF,CADvB;AAEE,MAAA,EAAE,EAAEC,KAAK,CAACJ,CAAN,CAAQA,CAAR,CAFN;AAGE,MAAA,EAAE,EAAEI,KAAK,CAACH,CAAN,CAAQA,CAAR,CAHN;AAIE,MAAA,EAAE,EAAE4c,EAJN;AAKE,MAAA,EAAE,EAAEC;AALN,KAAA,EAMMjG,IANN,CAAA,CADF;AAUD,EAAA;;AA5BqC;;AAAlC8F,UACG7b,YAAY;AACjBZ,EAAAA,OAAO,EAAEa,SAAS,CAACG,MAAV,CAAiBC,UADT;AAEjBhB,EAAAA,SAAS,EAAEY,SAAS,CAACK,MAFJ;AAGjBsV,EAAAA,WAAW,EAAE3V,SAAS,CAACK,MAHN;AAIjB2L,EAAAA,QAAQ,EAAEhM,SAAS,CAACiM,IAJH;AAKjBhN,EAAAA,CAAC,EAAEe,SAAS,CAACC,MAAV,CAAiBG,UALH;AAMjBlB,EAAAA,CAAC,EAAEc,SAAS,CAACC,MAAV,CAAiBG,UANH;AAOjByb,EAAAA,MAAM,EAAE7b,SAAS,CAACC,MAPD;AAQjB2E,EAAAA,UAAU,EAAEtE,KAAK,CAACuJ,cAAN,CAAqBzJ;AARhB;;AA8BrB,MAAM6b,UAAU,GAAIC,EAAD,iBACdA,EAAE,CAAC,QAAD,CADY,EAAA;AAEjB,EAAA,SAAA,EAAA,QAAA,CAAA;AACEzU,IAAAA,WAAW,EAAE;AADf,GAAA,EAEKyU,EAAE,CAAC,QAAD,CAFP;AAFiB,CAAA,CAAnB;;AAQA,MAAM3H,QAAM,GAAG,OAAO;AACpByH,EAAAA,QAAQ,EAAE;AACRvd,IAAAA,IAAI,EAAE,aADE;AAER4I,IAAAA,MAAM,EAAEC,KAAK,CAACC,QAAN,CAAe2P,KAFf;AAGRzP,IAAAA,WAAW,EAAE,CAHL;AAIR0U,IAAAA,UAAU,EAAE,kDAJJ;AAKR,IAAA,SAAA,EAAW;AACT1U,MAAAA,WAAW,EAAE,CADJ;AAETJ,MAAAA,MAAM,EAAEC,KAAK,CAACC,QAAN,CAAeqN;AAFd;AALH,GADU;AAWpB5I,EAAAA,QAAQ,EAAEiQ,UAAU,CAACjQ,QAAD,CAXA;AAYpBgI,EAAAA,iBAAiB,EAAEiI,UAAU,CAACjI,iBAAD,CAZT;AAapBC,EAAAA,OAAO,EAAEgI,UAAU,CAAChI,OAAD,CAbC;AAcpBE,EAAAA,SAAS,EAAE8H,UAAU,CAAC9H,SAAD,CAdD;AAepBE,EAAAA,OAAO,EAAE4H,UAAU,CAAC5H,OAAD;AAfC,CAAP,CAAf;;AAkBO,MAAM+H,QAAQ,GAAG3b,UAAU,CAAC8T,QAAD,CAAV,CAAmBqH,SAAnB,CAAjB;AAEP,iBAAexE,aAAa,CAAC;AAC3BxW,EAAAA,MAAM,EAAE,CAACtB,KAAD,EAAQ;AAAEuF,IAAAA,MAAF;AAAUC,IAAAA;AAAV,GAAR,KAA8B;AACpC,IAAA,MAAM;AAAE7F,MAAAA,CAAF;AAAKC,MAAAA;AAAL,KAAA,GAAWI,KAAjB;AACA,IAAA,MAAMwD,IAAI,GAAG;AAAEC,MAAAA,IAAI,EAAE9D,CAAR;AAAW+D,MAAAA,GAAG,EAAE9D,CAAhB;AAAmB+D,MAAAA,MAAM,EAAE/D,CAA3B;AAA8BgE,MAAAA,KAAK,EAAEjE;AAArC,KAAb;AACA,IAAA,OAAOyB,MAAA,CAAaoC,IAAb,EAAmB+B,MAAnB,EAA2BC,KAA3B,CAAP;AACD,EAAA,CAL0B;AAM3BgS,EAAAA,WAAW,EAAGxX,KAAD,IAAW;AACtB,IAAA,MAAM;AAAEL,MAAAA,CAAF;AAAKC,MAAAA;AAAL,KAAA,GAAWI,KAAjB;AACA,IAAA,OAAO;AAAEL,MAAAA,CAAF;AAAKC,MAAAA;AAAL,KAAP;AACD,EAAA,CAT0B;AAU3B6X,EAAAA,SAAS,EAAE,CAACzX,KAAD,EAAQ0X,KAAR,KAAkB;AAC3B,IAAA,MAAMqF,QAAQ,GAAG3b,KAAA,CAAYpB,KAAZ,CAAA,CAAmB2X,GAAnB,CAAuBvW,KAAA,CAAYsW,KAAZ,CAAvB,CAAjB;AACA,IAAA,OAAOqF,QAAP;AACD,EAAA;AAb0B,CAAD,CAAb,CAcZD,QAdY,CAAf;;;ACjEO,MAAME,WAAN,SAA0Bxd,KAAK,CAACC,SAAhC,CAA0C;AAkB/CC,EAAAA,MAAM,GAAG;AACP;AACA,IAAA,MAAA,WAAA,GAAuG,KAAKM,KAA5G;AAAA,UAAM;AAAEid,MAAAA,IAAF;AAAQpd,MAAAA,OAAR;AAAiBC,MAAAA,SAAjB;AAA4B4M,MAAAA,QAA5B;AAAsC2J,MAAAA,WAAtC;AAAyE6G,MAAAA;AAAzE,KAAN,GAAA,WAAA;AAAA,UAA8F1G,IAA9F,GAAA,6BAAA,CAAA,WAAA,EAAAC,WAAA,CAAA;AACA;;;AAEA,IAAA,oBACE,KAAA,CAAA,aAAA,CAAC,KAAD,CAAO,QAAP,qBACE,KAAA,CAAA,aAAA,CAAC0G,IAAD,CAAI,QAAJ,EAAA,QAAA,CAAA;AACE,MAAA,IAAI,EAAEF,IADR;AAEE,MAAA,SAAS,EAAE/c,UAAU,CACnBL,OAAO,CAACud,QADW,EAEnB1Q,QAAQ,IAAI7M,OAAO,CAAC6U,iBAFD,EAGnB7U,OAAO,CAACwW,WAAD,CAHY,EAInBvW,SAJmB;AAFvB,KAAA,EAQM0W,IARN,CAAA,CADF,eAWE,KAAA,CAAA,aAAA,CAAC2G,IAAD,CAAI,QAAJ,EAAA,QAAA,CAAA;AACE,MAAA,IAAI,EAAEF,IADR;AAEE,MAAA,SAAS,EAAE/c,UAAU,CACnBL,OAAO,CAACiI,IADW,EAEnBoV,UAAU,IAAIrd,OAAO,CAACwd,QAFH,EAGnB3Q,QAAQ,IAAI7M,OAAO,CAAC6U,iBAHD,EAInB7U,OAAO,CAACwW,WAAD,CAJY,EAKnBvW,SALmB;AAFvB,KAAA,EASM0W,IATN,EAXF,CADF;AAyBD,EAAA;;AAhD8C;AAApCwG,YACJvc,YAAY;AACjBX,EAAAA,SAAS,EAAEY,SAAS,CAACK,MADJ;AAEjBlB,EAAAA,OAAO,EAAEa,SAAS,CAACG,MAFF;AAGjBoc,EAAAA,IAAI,EAAEvc,SAAS,CAAC4c,OAAV,CAAkB5c,SAAS,CAAC4c,OAAV,CAAkB5c,SAAS,CAACC,MAA5B,CAAlB,CAHW;AAIjB2E,EAAAA,UAAU,EAAEtE,KAAK,CAACuJ,cAAN,CAAqBzJ,UAJhB;AAKjB4L,EAAAA,QAAQ,EAAEhM,SAAS,CAACiM,IALH;AAMjB0J,EAAAA,WAAW,EAAE3V,SAAS,CAACK,MANN;AAOjBkD,EAAAA,IAAI,EAAEjD,KAAK,CAACuc,SAPK;AAQjBrZ,EAAAA,EAAE,EAAElD,KAAK,CAACuc,SARO;AASjBL,EAAAA,UAAU,EAAExc,SAAS,CAACiM;AATL;AADRqQ,YAaJ9b,eAAe;AACpB+C,EAAAA,IAAI,EAAE,EADc;AAEpBC,EAAAA,EAAE,EAAE;AAFgB;;AAsCxB,MAAMmZ,QAAQ,GAAG,OAAO;AACtBlV,EAAAA,WAAW,EAAE,CADS;AAEtBJ,EAAAA,MAAM,EAAEC,KAAK,CAACC,QAAN,CAAe2P;AAFD,CAAP,CAAjB;;AAKO,MAAM4F,QAAQ,GAAGrc,UAAU,CAAElC,KAAD,KAAY;AAC7Cme,EAAAA,QAAQ,EAAE;AACRje,IAAAA,IAAI,EAAE,MADE;AAERgJ,IAAAA,WAAW,EAAE,CAFL;AAGRJ,IAAAA,MAAM,EAAEC,KAAK,CAAC1I,KAAN;AAHA,GADmC;AAM7CwI,EAAAA,IAAI,EAAE;AACJK,IAAAA,WAAW,EAAE,CADT;AAEJhJ,IAAAA,IAAI,EAAE,MAFF;AAGJ0d,IAAAA,UAAU,EAAE,kDAHR;AAIJ9U,IAAAA,MAAM,EAAE,aAJJ;AAKJ,IAAA,SAAA,EAAWsV,QAAQ,CAAA;AALf,GANuC;AAa7CA,EAAAA,QAAQ,EAAEA,QAAQ,CAAA,CAb2B;AAc7C3Q,EAAAA,QAAQ,EAAA,QAAA,CAAA,EAAA,EACHA,QAAQ,CAAC,QAAD,CADL,EAAA;AAENvE,IAAAA,WAAW,EAAE;AAFP,GAAA,CAdqC;AAkB7CuM,EAAAA,iBAAiB,EAAA,QAAA,CAAA,EAAA,EACZA,iBAAiB,CAAC,QAAD,CADL,EAAA;AAEfvM,IAAAA,WAAW,EAAE;AAFE,GAAA,CAlB4B;AAsB7CwM,EAAAA,OAAO,EAAA,QAAA,CAAA,EAAA,EACFA,OAAO,CAAC,QAAD,CADL,CAtBsC;AAyB7CE,EAAAA,SAAS,EAAA,QAAA,CAAA,EAAA,EACJA,SAAS,CAAC,QAAD,CADL,CAzBoC;AA4B7CE,EAAAA,OAAO,EAAA,QAAA,CAAA,EAAA,EACFA,OAAO,CAAC,QAAD,CADL,EAAA;AAEL5M,IAAAA,WAAW,EAAE,CAFR;AAGLsV,IAAAA,eAAe,EAAE;AAHZ,GAAA;AA5BsC,CAAZ,CAAD,CAAV,CAiCpBT,WAjCoB,CAAjB;;ACpDA,MAAMU,QAAQ,GAAG,CAAC3W,IAAD,EAAOtH,SAAP,KAAqB,OAAO;AAClDsH,EAAAA,IADkD;AAElDtH,EAAAA,SAFkD;AAGlD0T,EAAAA,QAAQ,EAAE,CAAC5R,KAAD,EAAQqF,IAAR,KAAiB;AACzB,IAAA,IAAIA,IAAI,IAAI7B,WAAW,CAAC6B,IAAI,CAAC1H,IAAN,EAAYqC,KAAZ,CAAvB,EAA2C;AACzC,MAAA,OAAOqF,IAAP;AACD,IAAA;;AAED,IAAA,IAAI,CAACA,IAAL,EAAW;AACT,MAAA,OAAO;AACLG,QAAAA,IADK;AAELC,QAAAA,QAAQ,EAAE,IAFL;AAGL/C,QAAAA,IAAI,EAAE1C;AAHD,OAAP;AAKD,IAAA;;AAED,IAAA,IAAIwD,WAAW,CAACxD,KAAD,EAAQqF,IAAI,CAAC3C,IAAb,CAAf,EAAmC;AACjC,MAAA,OAAA,QAAA,CAAA,EAAA,EAAY2C,IAAZ,CAAA;AACD,IAAA;;AAED,IAAA,OAAA,QAAA,CAAA,EAAA,EAAYA,IAAZ,EAAA;AAAkBI,MAAAA,QAAQ,EAAE,KAA5B;AAAmC9C,MAAAA,EAAE,EAAE3C;AAAvC,KAAA,CAAA;AACD,EAAA;AArBiD,CAAP,CAAtC;AAwBA,MAAMoc,iBAAiB,GAAIle,SAAD,IAAe;AAAA,EAAA,IAAA,MAAA;;AAC9C,EAAA,OAAA,MAAA,GAAO,MAAMme,iBAAN,SAAgCpe,KAAK,CAACC,SAAtC,CAAgD;AAMrDwS,IAAAA,WAAW,CAACjS,KAAD,EAAQ;AACjB,MAAA,KAAA,CAAMA,KAAN,CAAA;;AADiB,MAAA,IAAA,CAKnBgU,SALmB,GAKP,MAAM,IAAA,CAAK7B,QAAL,CAAc;AAAEvL,QAAAA,IAAI,EAAA,QAAA,CAAA,EAAA,EAAO,IAAA,CAAK5G,KAAL,CAAW4G,IAAlB;AAAN,OAAd,CALC;;AAAA,MAAA,IAAA,CAOnBqN,QAPmB,GAOR,MAAM;AACf,QAAA,MAAM;AAAE5G,UAAAA,QAAF;AAAYzG,UAAAA;AAAZ,SAAA,GAAqB,KAAK5G,KAAhC;;AACA,QAAA,MAAM6S,MAAM,GAAA,QAAA,CAAA,EAAA,EAAQ,IAAA,CAAKX,KAAL,CAAWtL,IAAnB,CAAZ;;AAEA,QAAA,IAAA,CAAKuL,QAAL,CAAc;AAAEvL,UAAAA,IAAI,EAAEsM;AAAR,SAAd,EAAmC,MAAM;AACvC,UAAA,MAAM;AAAEnM,YAAAA;AAAF,WAAA,GAAW8L,MAAjB;AACA,UAAA,IAAIgL,eAAe,GACjB9W,IAAI,KACHA,IAAI,KAAK,UAAT,IAAuBA,IAAI,KAAK,MAAhC,IAA0CA,IAAI,KAAK,UAAnD,IAAiEA,IAAI,KAAK,aADvE,CAAJ,IAEAnC,QAAQ,CAACiO,MAAM,CAAC5O,IAAR,EAAc4O,MAAM,CAAC3O,EAArB,CAHV;;AAIA,UAAA,IAAI,CAAC2Z,eAAD,IAAoB9W,IAApB,IAA4BA,IAAI,KAAK,aAArC,IAAsD8L,MAAM,CAAC5O,IAA7D,IAAqE4O,MAAM,CAAC3O,EAAhF,EAAoF;AAClF2Z,YAAAA,eAAe,GAAGhL,MAAM,CAAC5O,IAAP,CAAYrE,CAAZ,KAAkB,CAAlB,IAAuBiT,MAAM,CAAC3O,EAAP,CAAUtE,CAAV,KAAgB,CAAvC,IAA4CiT,MAAM,CAAC5O,IAAP,CAAYrE,CAAZ,GAAgBiT,MAAM,CAAC3O,EAAP,CAAUtE,CAA1B,GAA8B,CAA5F;AACD,UAAA;;AACD,UAAA,IAAI,CAACoF,OAAO,CAAC4B,IAAD,EAAOiM,MAAP,CAAR,IAA0B,CAACgL,eAA/B,EAAgD;AAC9CxQ,YAAAA,QAAQ,CAACzG,IAAD,EAAOiM,MAAP,CAAR;AACD,UAAA;AACF,QAAA,CAZD,CAAA;AAaD,MAAA,CAxBkB;;AAAA,MAAA,IAAA,CA0BnBR,UA1BmB,GA0BN,CAAC;AAAEpO,QAAAA,IAAF;AAAQC,QAAAA,EAAR;AAAY4Z,QAAAA;AAAZ,OAAD,KAA0B;AACrC,QAAA,IAAIlX,IAAI,GAAA,QAAA,CAAA,EAAA,EAAQ,IAAA,CAAKsL,KAAL,CAAWtL,IAAnB,EAAA;AAAyB3C,UAAAA,IAAzB;AAA+BC,UAAAA;AAA/B,SAAA,CAAR;;AAEA,QAAA,IAAI4Z,MAAJ,EAAY;AACVlX,UAAAA,IAAI,gBAAQA,IAAR,EAAA;AAAckX,YAAAA;AAAd,WAAA,CAAJ;AACD,QAAA;;AAED,QAAA,IAAA,CAAK3L,QAAL,CAAc;AAAEvL,UAAAA;AAAF,SAAd,CAAA;AACD,MAAA,CAlCkB;;AAAA,MAAA,IAAA,CAoCnBmX,eApCmB,GAoCD,CAAC;AAAE9Z,QAAAA,IAAF;AAAQC,QAAAA,EAAR;AAAY4Z,QAAAA;AAAZ,OAAD,KAA0B;AAC1C,QAAA,MAAM;AAAEzQ,UAAAA,QAAF;AAAYzG,UAAAA;AAAZ,SAAA,GAAqB,KAAK5G,KAAhC;;AACA,QAAA,IAAI6S,MAAM,gBAAQjM,IAAR,EAAiB,KAAKsL,KAAL,CAAWtL,IAA5B,CAAV;;AAEA,QAAA,IAAI3C,IAAJ,EAAU;AACR4O,UAAAA,MAAM,gBAAQA,MAAR,EAAA;AAAgB5O,YAAAA;AAAhB,WAAA,CAAN;AACD,QAAA;;AAED,QAAA,IAAIC,EAAJ,EAAQ;AACN2O,UAAAA,MAAM,gBAAQA,MAAR,EAAA;AAAgB3O,YAAAA;AAAhB,WAAA,CAAN;AACD,QAAA;;AAED,QAAA,IAAI4Z,MAAJ,EAAY;AACVjL,UAAAA,MAAM,gBAAQA,MAAR,EAAA;AAAgBiL,YAAAA;AAAhB,WAAA,CAAN;AACD,QAAA;;AAED,QAAA,IAAI,CAAC9Y,OAAO,CAAC4B,IAAD,EAAOiM,MAAP,CAAZ,EAA4B;AAC1BxF,UAAAA,QAAQ,CAACzG,IAAD,EAAOiM,MAAP,CAAR;AACD,QAAA;AACF,MAAA,CAvDkB;;AAEjB,MAAA,IAAA,CAAKX,KAAL,GAAa,EAAb;AACD,IAAA;;AAsDDxS,IAAAA,MAAM,GAAG;AACP,MAAA,MAAM;AAAE4F,QAAAA,UAAF;AAAc4J,QAAAA,OAAd;AAAuBkD,QAAAA,SAAvB;AAAkCrB,QAAAA,gBAAlC;AAAoDC,QAAAA,kBAApD;AAAwES,QAAAA;AAAxE,OAAA,GAA0F,KAAKzR,KAArG;AACA,MAAA,MAAM4G,IAAI,GAAG,IAAA,CAAKsL,KAAL,CAAWtL,IAAX,GAAkB,IAAA,CAAKsL,KAAL,CAAWtL,IAA7B,GAAoC,IAAA,CAAK5G,KAAL,CAAW4G,IAA5D;AAEA,MAAA,MAAM3C,IAAI,GAAGM,SAAS,CAACqC,IAAI,CAAC3C,IAAN,CAAtB;AACA,MAAA,MAAMC,EAAE,GAAGK,SAAS,CAACqC,IAAI,CAAC1C,EAAN,CAApB;AACA,MAAA,MAAM4Z,MAAM,GAAGvZ,SAAS,CAACqC,IAAI,CAACkX,MAAN,CAAxB,CANO;AASP;;AACA,MAAA,IAAI7Z,IAAI,IAAI2C,IAAI,CAACmN,YAAjB,EAA+B;AAC7B9P,QAAAA,IAAI,CAACyI,QAAL,GAAgB,IAAhB;AACD,MAAA;;AAED,MAAA,IAAIxI,EAAE,IAAI0C,IAAI,CAACmN,YAAf,EAA6B;AAC3B7P,QAAAA,EAAE,CAACwI,QAAH,GAAc,IAAd;AACD,MAAA;;AAED,MAAA,IAAIoR,MAAM,IAAIlX,IAAI,CAACmN,YAAnB,EAAiC;AAC/B+J,QAAAA,MAAM,CAACpR,QAAP,GAAkB,IAAlB;AACD,MAAA;;AAED,MAAA,oBACE,oBAAC,SAAD,EAAA;AACE,QAAA,QAAQ,EAAE9F,IAAI,CAAC8F,QADjB;AAEE,QAAA,kBAAkB,EAAEsE,kBAFtB;AAGE,QAAA,WAAW,EAAEpK,IAAI,CAACyP,WAHpB;AAIE,QAAA,IAAI,EAAEpS,IAJR;AAKE,QAAA,EAAE,EAAEC,EALN;AAME,QAAA,MAAM,EAAE4Z,MANV;AAOE,QAAA,UAAU,EAAExY,UAPd;AAQE,QAAA,QAAQ,EAAE,IAAA,CAAK+M,UARjB;AASE,QAAA,eAAe,EAAE,IAAA,CAAK0L,eATxB;AAUE,QAAA,OAAO,EAAE7O,OAVX;AAWE,QAAA,WAAW,EAAE,IAAA,CAAK8E,SAXpB;AAYE,QAAA,UAAU,EAAE,IAAA,CAAKC,QAZnB;AAaE,QAAA,SAAS,EAAE7B,SAbb;AAcE,QAAA,gBAAgB,EAAErB,gBAdpB;AAeE,QAAA,aAAa,EAAEU;AAfjB,OAAA,CADF;AAmBD,IAAA;;AAxGoD,GAAvD,EAAA,MAAA,CACShR,SADT,GAAA,QAAA,CAAA,EAAA,EAEOO,KAAK,CAACgX,kBAFb,EAAA;AAGI1S,IAAAA,UAAU,EAAEtE,KAAK,CAACuJ,cAAN,CAAqBzJ;AAHrC,GAAA,CAAA,EAAA,MAAA;AA0GD,CA3GM;;AA6GP,MAAMkd,QAAQ,GAAG,OAAO;AACtB1c,EAAAA,MAAM,EAAE,CAACtB,KAAD,EAAQ;AAAEuF,IAAAA,MAAF;AAAUC,IAAAA;AAAV,GAAR,KAA8B;AACpC,IAAA,MAAMhC,IAAI,GAAGpC,KAAK,CAAC4C,UAAN,CAAiBhE,KAAK,CAACiE,IAAvB,EAA6BjE,KAAK,CAACkE,EAAnC,CAAb;AACA,IAAA,OAAO9C,KAAK,CAACE,MAAN,CAAakC,IAAb,EAAmB+B,MAAnB,EAA2BC,KAA3B,CAAP;AACD,EAAA,CAJqB;AAKtBgS,EAAAA,WAAW,EAAGxX,KAAD,IAAW;AACtB,IAAA,MAAM;AAAEiE,MAAAA;AAAF,KAAA,GAAWjE,KAAjB;AACA,IAAA,OAAOiE,IAAP;AACD,EAAA,CARqB;AAStBwT,EAAAA,SAAS,EAAE,CAACzX,KAAD,EAAQ0X,KAAR,KAAkB;AAC3B,IAAA,MAAM;AAAEzT,MAAAA,IAAF;AAAQC,MAAAA;AAAR,KAAA,GAAelE,KAArB;AACA,IAAA,OAAO;AACLiE,MAAAA,IAAI,EAAE7C,KAAK,CAACG,KAAN,CAAY0C,IAAZ,CAAA,CAAkB0T,GAAlB,CAAsBvW,KAAK,CAACG,KAAN,CAAYmW,KAAZ,CAAtB,CADD;AAELxT,MAAAA,EAAE,EAAE9C,KAAK,CAACG,KAAN,CAAY2C,EAAZ,CAAA,CAAgByT,GAAhB,CAAoBvW,KAAK,CAACG,KAAN,CAAYmW,KAAZ,CAApB;AAFC,KAAP;AAID,EAAA;AAfqB,CAAP,CAAjB;;AAkBO,MAAMuG,QAAQ,GAAG,CAACC,IAAD,EAAO3G,IAAP,KAAgB;AACtC,EAAA,MAAM4G,aAAa,GAAGrG,aAAa,CAACkG,QAAQ,EAAT,CAAb,CAA0BE,IAA1B,CAAtB;AAEA,EAAA,MAAME,SAAS,GAAG7G,IAAI,IAAIA,IAAI,CAACtT,IAAb,GAAoBsT,IAAI,CAACtT,IAAzB,GAAgC4T,SAAlD;AACA,EAAA,MAAMwG,OAAO,GAAG9G,IAAI,IAAIA,IAAI,CAACrT,EAAb,GAAkBqT,IAAI,CAACrT,EAAvB,GAA4B2T,SAA5C;;AAEA,EAAA,MAAMyG,QAAN,SAAuB9e,KAAK,CAACC,SAA7B,CAAuC;AAAA,IAAA,WAAA,CAAA,GAAA,IAAA,EAAA;AAAA,MAAA,KAAA,CAAA,GAAA,IAAA,CAAA;;AAAA,MAAA,IAAA,CAkBrC8e,aAlBqC,GAkBpBhd,KAAD,IAAW;AACzB,QAAA,MAAM;AAAEuc,UAAAA,MAAF;AAAUzQ,UAAAA;AAAV,SAAA,GAAuB,KAAKrN,KAAlC;AACA,QAAA,MAAM;AAAEiE,UAAAA,IAAF;AAAQC,UAAAA;AAAR,SAAA,GAAe3C,KAArB,CAFyB;;AAKzB,QAAA,IAAI,CAACwD,WAAW,CAACd,IAAD,EAAOC,EAAP,CAAhB,EAA4B;AAC1B,UAAA,IAAI4Z,MAAJ,EAAY;AACVvc,YAAAA,KAAK,CAACuc,MAAN,GAAA,QAAA,CAAA,EAAA,EAAoBA,MAApB,EAA+BtZ,oBAAoB,CAACP,IAAD,EAAOC,EAAP,CAAnD,CAAA;AACD,UAAA;;AAEDmJ,UAAAA,QAAQ,CAAC9L,KAAD,CAAR;AACD,QAAA;AACF,MAAA,CA9BoC;;AAAA,MAAA,IAAA,CAgCrCid,QAhCqC,GAgC1B,CAAC;AAAEva,QAAAA,IAAI,EAAEwa,WAAR;AAAqBva,QAAAA,EAAE,EAAEwa;AAAzB,OAAD,KAA0C;AACnD,QAAA,MAAM;AAAEza,UAAAA,IAAF;AAAQC,UAAAA,EAAR;AAAYmJ,UAAAA,QAAZ;AAAsByQ,UAAAA;AAAtB,SAAA,GAAiC,KAAK9d,KAA5C;;AAEA,QAAA,IAAIiE,IAAI,CAACzB,KAAT,EAAgB;AACdic,UAAAA,WAAW,CAACjc,KAAZ,GAAoByB,IAAI,CAACzB,KAAzB;AACD,QAAA;;AAED,QAAA,IAAI0B,EAAE,CAAC1B,KAAP,EAAc;AACZkc,UAAAA,SAAS,CAAClc,KAAV,GAAkB0B,EAAE,CAAC1B,KAArB;AACD,QAAA;;AAED,QAAA,MAAMmc,OAAO,GAAG;AAAE1a,UAAAA,IAAI,EAAEwa,WAAR;AAAqBva,UAAAA,EAAE,EAAEwa;AAAzB,SAAhB;;AAEA,QAAA,IAAIZ,MAAJ,EAAY;AACVa,UAAAA,OAAO,CAACb,MAAR,GAAA,QAAA,CAAA,EAAA,EAAsBA,MAAtB,EAAiCtZ,oBAAoB,CAACia,WAAD,EAAcC,SAAd,CAArD,CAAA;AACD,QAAA;;AAEDrR,QAAAA,QAAQ,CAACsR,OAAD,CAAR;AACD,MAAA,CAlDoC;;AAAA,MAAA,IAAA,CAoDrCC,QApDqC,GAoDzBH,WAAD,IAAiB;AAC1B,QAAA,MAAM;AAAExa,UAAAA,IAAF;AAAQC,UAAAA;AAAR,SAAA,GAAe,KAAKlE,KAA1B;;AAEA,QAAA,IAAIiE,IAAI,CAACzB,KAAT,EAAgB;AACdic,UAAAA,WAAW,CAACjc,KAAZ,GAAoByB,IAAI,CAACzB,KAAzB;AACD,QAAA;;AAED,QAAA,IAAI,CAACuC,WAAW,CAAC0Z,WAAD,EAAcva,EAAd,CAAhB,EAAmC;AACjC,UAAA,IAAA,CAAKqa,aAAL,CAAmB;AAAEta,YAAAA,IAAI,EAAEwa,WAAR;AAAqBva,YAAAA,EAAE,EAAEA;AAAzB,WAAnB,CAAA;AACD,QAAA;AACF,MAAA,CA9DoC;;AAAA,MAAA,IAAA,CAgErC2a,MAhEqC,GAgE3BH,SAAD,IAAe;AACtB,QAAA,MAAM;AAAEza,UAAAA,IAAF;AAAQC,UAAAA;AAAR,SAAA,GAAe,KAAKlE,KAA1B;;AAEA,QAAA,IAAIkE,EAAE,CAAC1B,KAAP,EAAc;AACZkc,UAAAA,SAAS,CAAClc,KAAV,GAAkB0B,EAAE,CAAC1B,KAArB;AACD,QAAA;;AAED,QAAA,IAAI,CAACuC,WAAW,CAACd,IAAD,EAAOya,SAAP,CAAhB,EAAmC;AACjC,UAAA,IAAA,CAAKH,aAAL,CAAmB;AAAEta,YAAAA,IAAI,EAAEA,IAAR;AAAcC,YAAAA,EAAE,EAAEwa;AAAlB,WAAnB,CAAA;AACD,QAAA;AACF,MAAA,CA1EoC;;AAAA,MAAA,IAAA,CA4ErCzC,WA5EqC,GA4EvB,CAAC1a,KAAD,EAAQwF,IAAR,KAAiB;AAC7B,QAAA,MAAM;AAAEgX,UAAAA;AAAF,SAAA,GAAsB,KAAK/d,KAAjC;;AACA,QAAA,MAAM6S,MAAM,GAAA,QAAA,CAAA,EAAA,EAAQtR,KAAR,CAAZ;;AAEA,QAAA,IAAI,CAACA,KAAK,CAACiB,KAAP,IAAgBC,OAAO,CAAClB,KAAK,CAACiB,KAAP,CAA3B,EAA0C;AACxC,UAAA,OAAOqQ,MAAM,CAACrQ,KAAd;AACD,QAAA;;AAEDub,QAAAA,eAAe,CAAC;AAAE,UAAA,CAAChX,IAAD,GAAQ8L;AAAV,SAAD,CAAf;AACD,MAAA,CArFoC;;AAAA,MAAA,IAAA,CAuFrCqJ,UAvFqC,GAuFxB,CAAC3a,KAAD,EAAQwF,IAAR,EAAckW,IAAd,KAAuB;AAClC,QAAA,MAAM;AAAEc,UAAAA,eAAF;AAAmBrR,UAAAA,QAAnB;AAA6BzI,UAAAA,IAA7B;AAAmCC,UAAAA,EAAnC;AAAuC6M,UAAAA,gBAAvC;AAAyDU,UAAAA,aAAzD;AAAwEvC,UAAAA;AAAxE,SAAA,GAAoF,KAAKlP,KAA/F;;AAEA,QAAA,IAAI,CAAC+Q,gBAAL,EAAuB;AACrB7B,UAAAA,OAAO,CAAC3N,KAAK,IAAI0b,IAAV,CAAP;AACA,UAAA;AACD,QAAA;;AAED,QAAA,IAAIvQ,QAAJ,EAAc;AACZ,UAAA;AACD,QAAA,CAViC;;;AAalC,QAAA,IAAI+E,aAAJ,EAAmB;AACjB,UAAA;AACD,QAAA;;AAED,QAAA,IAAI1K,IAAI,KAAK,QAAT,IAAqB,CAACxF,KAAtB,IAA+B0C,IAA/B,IAAuCC,EAA3C,EAA+C;AAC7C3C,UAAAA,KAAK,GAAA,QAAA,CAAA,EAAA,EAAQA,KAAR,EAAkBiD,oBAAoB,CAACP,IAAD,EAAOC,EAAP,CAAtC,CAAL;AACD,QAAA;;AAED6Z,QAAAA,eAAe,CAAC;AAAE9Z,UAAAA,IAAF;AAAQC,UAAAA,EAAR;AAAY,UAAA,CAAC6C,IAAD,GAAA,QAAA,CAAA;AAAUvE,YAAAA,KAAK,EAAE;AAAjB,WAAA,EAAwBjB,KAAxB;AAAZ,SAAD,CAAf;;AAEA,QAAA,IAAI,IAAA,CAAK2T,KAAL,CAAWnO,IAAX,CAAJ,EAAsB;AACpB,UAAA,IAAA,CAAKmO,KAAL,CAAWnO,IAAX,CAAA,CAAiBoV,KAAjB,EAAA;AACD,QAAA;AACF,MAAA,CAjHoC;;AAAA,MAAA,IAAA,CAoHrCjH,KApHqC,GAoH7B,EApH6B;AAAA,IAAA;;AAsHrCxV,IAAAA,MAAM,GAAG;AACP,MAAA,MAAM;AACJsR,QAAAA,kBADI;AAEJ1L,QAAAA,UAFI;AAGJ4S,QAAAA,WAHI;AAIJC,QAAAA,UAJI;AAKJlU,QAAAA,IALI;AAMJC,QAAAA,EANI;AAOJ4Z,QAAAA,MAPI;AAQJpR,QAAAA,QARI;AASJ2J,QAAAA,WATI;AAUJnH,QAAAA,OAVI;AAWJkD,QAAAA,SAXI;AAYJrB,QAAAA;AAZI,OAAA,GAaF,KAAK/Q,KAbT;AAcA,MAAA,MAAMX,MAAM,GAAG;AAAEiG,QAAAA,UAAF;AAAc4S,QAAAA,WAAd;AAA2BC,QAAAA,UAA3B;AAAuCzL,QAAAA,QAAvC;AAAiD2J,QAAAA,WAAjD;AAA8DnH,QAAAA;AAA9D,OAAf;AACA,MAAA,MAAM4H,KAAK,GAAG5S,EAAE,GAAG4a,IAAI,CAACC,SAAL,CAAeD,IAAI,CAAChI,KAAL,CAAW7S,IAAX,EAAiBC,EAAjB,CAAf,CAAH,GAA0C,CAA1D;AAEA,MAAA,IAAI8a,aAAa,GAAG,IAApB;AACA,MAAA,IAAIC,WAAW,GAAG,IAAlB;AACA,MAAA,IAAIC,aAAa,GAAG,IAApB;;AAEA,MAAA,IAAI9M,SAAJ,EAAe;AACb,QAAA,IAAInO,IAAI,IAAIA,IAAI,CAACoY,cAAL,CAAoB,OAApB,CAAZ,EAA0C;AACxC2C,UAAAA,aAAa,gBAAGrI,QAAQ,CAACC,YAAT,eACd,oBAAC2D,WAAD,EAAA;AACE,YAAA,QAAQ,EAAG/N,CAAD,IAAQ,KAAK0I,KAAL,CAAWjR,IAAX,GAAkBuI,CADtC;AAEE,YAAA,QAAQ,EAAE,CAACuE,gBAFb;AAGE,YAAA,IAAI,EAAE9M,IAHR;AAIE,YAAA,UAAU,EAAEqB,UAJd;AAKE,YAAA,QAAQ,EAAG9C,KAAD,IAAW,IAAA,CAAKyZ,WAAL,cAAsBhY,IAAtB,EAAA;AAA4BzB,cAAAA;AAA5B,aAAA,CAAA,EAAqC,MAArC;AALvB,WAAA,CADc,EAQd4P,SARc,CAAhB;AAUD,QAAA;;AAED,QAAA,IAAIlO,EAAE,IAAIA,EAAE,CAACmY,cAAH,CAAkB,OAAlB,CAAV,EAAsC;AACpC4C,UAAAA,WAAW,gBAAGtI,QAAQ,CAACC,YAAT,eACZ,oBAAC2D,WAAD,EAAA;AACE,YAAA,QAAQ,EAAG/N,CAAD,IAAQ,KAAK0I,KAAL,CAAWhR,EAAX,GAAgBsI,CADpC;AAEE,YAAA,QAAQ,EAAE,CAACuE,gBAFb;AAGE,YAAA,IAAI,EAAE7M,EAHR;AAIE,YAAA,UAAU,EAAEoB,UAJd;AAKE,YAAA,QAAQ,EAAG9C,KAAD,IAAW,IAAA,CAAKyZ,WAAL,cAAsB/X,EAAtB,EAAA;AAA0B1B,cAAAA;AAA1B,aAAA,CAAA,EAAmC,IAAnC;AALvB,WAAA,CADY,EAQZ4P,SARY,CAAd;AAUD,QAAA;;AAED,QAAA,IAAI0L,MAAM,IAAIA,MAAM,CAACzB,cAAP,CAAsB,OAAtB,CAAd,EAA8C;AAC5C6C,UAAAA,aAAa,gBAAGvI,QAAQ,CAACC,YAAT,eACd,oBAAC2D,WAAD,EAAA;AACE,YAAA,QAAQ,EAAG/N,CAAD,IAAQ,KAAK0I,KAAL,CAAW4I,MAAX,GAAoBtR,CADxC;AAEE,YAAA,QAAQ,EAAE,CAACuE,gBAFb;AAGE,YAAA,IAAI,EAAE+M,MAHR;AAIE,YAAA,UAAU,EAAExY,UAJd;AAKE,YAAA,QAAQ,EAAG9C,KAAD,IAAW,IAAA,CAAKyZ,WAAL,cAAsB6B,MAAtB,EAAA;AAA8Btb,cAAAA;AAA9B,aAAA,CAAA,EAAuC,QAAvC;AALvB,WAAA,CADc,EAQd4P,SARc,CAAhB;AAUD,QAAA;AACF,MAAA;;AAED,MAAA,oBACE,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,IAAA,EACGlO,EAAE,iBACD,KAAA,CAAA,aAAA,CAAC,aAAD,EAAA,QAAA,CAAA;AACE,QAAA,IAAI,EAAED,IADR;AAEE,QAAA,EAAE,EAAEC,EAFN;AAGE,QAAA,MAAM,EAAE4Z,MAHV;AAIE,QAAA,MAAM,EAAE,IAAA,CAAKU;AAJf,OAAA,EAKMnf,MALN,EAAA;AAME,QAAA,OAAO,EAAG4d,IAAD,IAAU,IAAA,CAAKf,UAAL,CAAgB4B,MAAhB,EAAwB,QAAxB,EAAkCb,IAAlC;AANrB,OAAA,CAAA,CAFJ,EAWGiC,aAXH,eAaE,KAAA,CAAA,aAAA,CAAC,SAAD,EAAA,QAAA,CAAA;AACE,QAAA,CAAC,EAAEjb,IAAI,CAACtE,CADV;AAEE,QAAA,CAAC,EAAEsE,IAAI,CAACrE,CAFV;AAGE,QAAA,SAAS,EAAEwS,SAHb;AAIE,QAAA,kBAAkB,EAAEpB,kBAJtB;AAKE,QAAA,MAAM,EAAE,IAAA,CAAK4N;AALf,OAAA,EAMMvf,MANN,EAAA;AAOE,QAAA,OAAO,EAAG4d,IAAD,IAAU,IAAA,CAAKf,UAAL,CAAgBjY,IAAhB,EAAsB,MAAtB,EAA8BgZ,IAA9B;AAPrB,OAAA,CAAA,CAbF,EAsBG+B,aAtBH,EAwBG9a,EAAE,iBACD,oBAAC,OAAD,EAAA,QAAA,CAAA;AACE,QAAA,CAAC,EAAEA,EAAE,CAACvE,CADR;AAEE,QAAA,CAAC,EAAEuE,EAAE,CAACtE,CAFR;AAGE,QAAA,KAAK,EAAEkX,KAHT;AAAA;AAIE,QAAA,SAAS,EAAE1E,SAJb;AAKE,QAAA,kBAAkB,EAAEpB,kBALtB;AAME,QAAA,MAAM,EAAE,IAAA,CAAK6N;AANf,OAAA,EAOMxf,MAPN,EAAA;AAQE,QAAA,OAAO,EAAG4d,IAAD,IAAU,IAAA,CAAKf,UAAL,CAAgBhY,EAAhB,EAAoB,IAApB,EAA0B+Y,IAA1B;AARrB,OAAA,CAAA,CAzBJ,EAoCGgC,WApCH,CADF;AAwCD,IAAA;;AA7NoC;;AAAjCX,EAAAA,QANgC,CAO7B7d,SAP6B,GAOjB;AACjBuQ,IAAAA,kBAAkB,EAAEtQ,SAAS,CAACiM,IADb;AAEjBrH,IAAAA,UAAU,EAAEtE,KAAK,CAACuJ,cAFD;AAGjBtG,IAAAA,IAAI,EAAEjD,KAAK,CAACuc,SAHK;AAIjBrZ,IAAAA,EAAE,EAAElD,KAAK,CAACuc,SAJO;AAKjBO,IAAAA,MAAM,EAAE9c,KAAK,CAACuc,SALG;AAMjBlQ,IAAAA,QAAQ,EAAE3M,SAAS,CAACuN,IANH;AAOjBiK,IAAAA,WAAW,EAAExX,SAAS,CAACuN,IAPN;AAQjBkK,IAAAA,UAAU,EAAEzX,SAAS,CAACuN,IARL;AASjBiB,IAAAA,OAAO,EAAExO,SAAS,CAACuN,IATF;AAUjBoI,IAAAA,WAAW,EAAE3V,SAAS,CAACK,MAVN;AAWjB2L,IAAAA,QAAQ,EAAEhM,SAAS,CAACiM,IAXH;AAYjByF,IAAAA,SAAS,EAAE1R,SAAS,CAACG,MAZJ;AAajBkQ,IAAAA,gBAAgB,EAAErQ,SAAS,CAACiM,IAbX;AAcjBoR,IAAAA,eAAe,EAAErd,SAAS,CAACuN;AAdV,GAPiB;AAsOtC,EAAA,OAAOqQ,QAAP;AACD,CAvOM;AAyOA,MAAMrJ,QAAM,GAAG;AACpBnN,EAAAA,IAAI,EAAE,OAAO;AACX3I,IAAAA,IAAI,EAAE,aADK;AAEX4I,IAAAA,MAAM,EAAEC,KAAK,CAACC,QAAN,CAAe2P,KAFZ;AAGXzP,IAAAA,WAAW,EAAE,CAHF;AAIX0U,IAAAA,UAAU,EAAE,kDAJD;AAKX,IAAA,SAAA,EAAW;AACT1U,MAAAA,WAAW,EAAE,CADJ;AAETJ,MAAAA,MAAM,EAAEC,KAAK,CAACC,QAAN,CAAeqN;AAFd;AALA,GAAP,CADc;AAWpBlN,EAAAA,KAAK,EAAE,OAAO;AACZjJ,IAAAA,IAAI,EAAE6I,KAAK,CAACC,QAAN,CAAe2P;AADT,GAAP,CAXa;AAcpBuH,EAAAA,aAAa,EAAE,MAAA,QAAA,CAAA,EAAA,EACVzK,iBAAiB,EADP,CAdK;AAiBpBA,EAAAA,iBAAiB,EAAE,MAAA,QAAA,CAAA,EAAA,EACdA,iBAAiB,CAAC,QAAD,CADH,EAAA;AAEjBvM,IAAAA,WAAW,EAAE;AAFI,GAAA,CAjBC;AAqBpBuE,EAAAA,QAAQ,EAAE,MAAA,QAAA,CAAA,EAAA,EACLA,QAAQ,CAAC,QAAD,CADH,EAAA;AAERvE,IAAAA,WAAW,EAAE;AAFL,GAAA,CArBU;AAyBpBwM,EAAAA,OAAO,EAAE,CAAC1V,KAAD,EAAQwV,GAAR,KAAA,QAAA,CAAA,EAAA,EACJE,OAAO,CAACF,GAAD,CADH,CAzBW;AA4BpBI,EAAAA,SAAS,EAAE,CAAC5V,KAAD,EAAQwV,GAAR,KAAA,QAAA,CAAA,EAAA,EACNI,SAAS,CAACJ,GAAD,CADH,CA5BS;AA+BpBM,EAAAA,OAAO,EAAE,CAAC9V,KAAD,EAAQwV,GAAR,KAAA,QAAA,CAAA,EAAA,EACJM,OAAO,CAACN,GAAD,CADH,EAAA;AAEPtM,IAAAA,WAAW,EAAE,CAFN;AAGPsV,IAAAA,eAAe,EAAE;AAHV,GAAA;AA/BW,CAAf;;;;ACtYP,MAAM2B,UAAU,GAAIlY,CAAD,IAAO;AACxB,EAAA,MAAMmY,GAAG,GAAA,QAAA,CAAA,EAAA,EAAQnY,CAAR,CAAT;;AACAmY,EAAAA,GAAG,CAACngB,IAAJ,GAAA,QAAA,CAAA,EAAA,EAAgBgI,CAAC,CAACjD,IAAlB,CAAA;AACAob,EAAAA,GAAG,CAAC3Y,IAAJ,GAAWQ,CAAC,CAAChD,EAAF,GAAA,QAAA,CAAA,EAAA,EAAYgD,CAAC,CAAChD,EAAd,CAAA,GAAqBgP,SAAhC;AACA,EAAA,OAAOmM,GAAG,CAACpb,IAAX;AACA,EAAA,OAAOob,GAAG,CAACnb,EAAX;AACA,EAAA,OAAOmb,GAAP;AACD,CAPD;;AASA,MAAMC,QAAQ,GAAIpY,CAAD,IAAO;AACtB,EAAA,MAAMmY,GAAG,GAAA,QAAA,CAAA,EAAA,EAAQnY,CAAR,CAAT;;AACAmY,EAAAA,GAAG,CAACpb,IAAJ,GAAA,QAAA,CAAA,EAAA,EAAgBiD,CAAC,CAAChI,IAAlB,CAAA;AACAmgB,EAAAA,GAAG,CAACnb,EAAJ,GAASgD,CAAC,CAACR,IAAF,GAAA,QAAA,CAAA,EAAA,EAAcQ,CAAC,CAACR,IAAhB,CAAA,GAAyBwM,SAAlC;AACA,EAAA,OAAOmM,GAAG,CAACngB,IAAX;AACA,EAAA,OAAOmgB,GAAG,CAAC3Y,IAAX;AACA,EAAA,OAAO2Y,GAAP;AACD,CAPD;;AASO,MAAME,uBAAuB,GAAIC,QAAD,IAAc;AACnD,EAAA,MAAMC,OAAO,GAAIzf,KAAD,IAAW;AACzB,IAAA,MAAMkH,CAAC,GAAGoY,QAAQ,CAACtf,KAAK,CAAC4G,IAAP,CAAlB;;AAEA,IAAA,MAAMyG,QAAQ,GAAG,CAACqS,OAAD,EAAUC,IAAV,KAAmB;AAClC3f,MAAAA,KAAK,CAACqN,QAAN,CAAe+R,UAAU,CAACM,OAAD,CAAzB,EAAoCN,UAAU,CAACO,IAAD,CAA9C,CAAA;AACD,IAAA,CAFD;;AAIA,IAAA,oBAAO,KAAA,CAAA,aAAA,CAAC,QAAD,EAAA,QAAA,CAAA,EAAA,EAAc3f,KAAd,EAAA;AAAqB,MAAA,IAAI,EAAEkH,CAA3B;AAA8B,MAAA,QAAQ,EAAEmG;AAAxC,KAAA,CAAA,CAAP;AACD,EAAA,CARD;;AAUAoS,EAAAA,OAAO,CAAChf,SAAR,GAAoB;AAClB4M,IAAAA,QAAQ,EAAE3M,SAAS,CAACuN,IADF;AAElBrH,IAAAA,IAAI,EAAElG,SAAS,CAACG;AAFE,GAApB;AAKA,EAAA,OAAO4e,OAAP;AACD,CAjBM;AAmBA,MAAMG,iBAAiB,GAAIC,YAAD,IAAkB;AACjD,EAAA,MAAMC,aAAa,GAAGnC,iBAAiB,CAACkC,YAAD,CAAvC;AACA,EAAA,OAAON,uBAAuB,CAACO,aAAD,CAA9B;AACD,CAHM;;AAKP,MAAMC,4BAA4B,GAAIC,SAAD,IAAe;AAClD,EAAA,MAAMC,iBAAiB,GAAIjgB,KAAD,IAAW;AACnC,IAAA,MAAM;AAAEsF,MAAAA,UAAF;AAAcrB,MAAAA,IAAd;AAAoBC,MAAAA,EAApB;AAAwBgL,MAAAA,OAAxB;AAAiCgJ,MAAAA,WAAjC;AAA8CC,MAAAA,UAA9C;AAA0D9K,MAAAA,QAA1D;AAAoEX,MAAAA,QAApE;AAA8E2J,MAAAA;AAA9E,KAAA,GAAuGrW,KAA7G;AAAA,UAAoGwW,IAApG,iCAA6GxW,KAA7G,EAAAyW,WAAA,CAAA;;AAEA,IAAA,MAAM;AAAEyJ,MAAAA,UAAF;AAAcC,MAAAA,WAAW,GAAG;AAA5B,KAAA,GAAqCH,SAAS,CAAC;AACnD1a,MAAAA,UAAU,EAAEtF,KAAK,CAACsF,UADiC;AAEnDpG,MAAAA,IAAI,EAAE+E,IAF6C;AAGnDyC,MAAAA,IAAI,EAAExC;AAH6C,KAAD,CAApD;AAMA,IAAA,MAAMkc,GAAG,GAAGF,UAAU,CAACrM,GAAX,CAAgBwM,CAAD,IAAO,CAAC/a,UAAU,CAACvF,KAAX,CAAiBJ,CAAjB,CAAmB0gB,CAAC,CAAC1gB,CAArB,CAAD,EAA0B2F,UAAU,CAACvF,KAAX,CAAiBH,CAAjB,CAAmBygB,CAAC,CAACzgB,CAArB,CAA1B,CAAtB,CAAZ;AAEA,IAAA,MAAMP,MAAM,GAAG;AACb6P,MAAAA,OADa;AAEb5J,MAAAA,UAFa;AAGb4S,MAAAA,WAHa;AAIbC,MAAAA,UAJa;AAKb9K,MAAAA,QALa;AAMbX,MAAAA,QANa;AAOb2J,MAAAA;AAPa,KAAf;;AAUA,IAAA,IAAI,CAAC8J,WAAL,EAAkB;AAChB,MAAA,oBAAO,oBAAC,QAAD,EAAA,QAAA,CAAA;AAAU,QAAA,IAAI,EAAEC,GAAhB;AAAqB,QAAA,IAAI,EAAEnc,IAA3B;AAAiC,QAAA,EAAE,EAAEC;AAArC,OAAA,EAA6C7E,MAA7C,EAAyDmX,IAAzD,CAAA,CAAP;AACD,IAAA,CAFD,MAEO;AACL,MAAA,oBAAO,oBAAC,QAAD,EAAA,QAAA,CAAA;AAAU,QAAA,IAAI,EAAE4J,GAAhB;AAAqB,QAAA,IAAI,EAAEnc,IAA3B;AAAiC,QAAA,EAAE,EAAEC,EAArC;AAAyC,QAAA,KAAK,EAAEoc;AAAhD,OAAA,EAAoEjhB,MAApE,EAAgFmX,IAAhF,CAAA,CAAP;AACD,IAAA;AACF,EAAA,CA1BD;;AA4BAyJ,EAAAA,iBAAiB,CAACxf,SAAlB,GAA8B;AAC5B6E,IAAAA,UAAU,EAAEtE,KAAK,CAACuJ,cAAN,CAAqBzJ,UADL;AAE5BmD,IAAAA,IAAI,EAAEjD,KAAK,CAACuc,SAAN,CAAgBzc,UAFM;AAG5BoD,IAAAA,EAAE,EAAElD,KAAK,CAACuc,SAHkB;AAI5BrO,IAAAA,OAAO,EAAExO,SAAS,CAACuN,IAJS;AAK5BiK,IAAAA,WAAW,EAAExX,SAAS,CAACuN,IALK;AAM5BkK,IAAAA,UAAU,EAAEzX,SAAS,CAACuN,IANM;AAO5BZ,IAAAA,QAAQ,EAAE3M,SAAS,CAACuN,IAPQ;AAQ5BvB,IAAAA,QAAQ,EAAEhM,SAAS,CAACiM,IARQ;AAS5B0J,IAAAA,WAAW,EAAE3V,SAAS,CAACK;AATK,GAA9B;AAYA,EAAA,OAAOkf,iBAAP;AACD,CA1CD;;AA4CO,MAAMM,YAAY,GAAIP,SAAD,IAAe;AACzC,EAAA,MAAMQ,YAAY,GAAGT,4BAA4B,CAACC,SAAD,CAAjD;AACA,EAAA,OAAO/B,QAAQ,CAACuC,YAAD,CAAf;AACD,CAHM;;AC/EP,MAAMC,cAAc,GAAIC,OAAD,KAAc;AACnC,EAAA,IAAA,EAAM;AAAEA,IAAAA,OAAO,EAAE;AAAX,GAD6B;AAEnC,EAAA,KAAA,EAAO;AAAEA,IAAAA;AAAF,GAF4B;AAGnC,EAAA,MAAA,EAAQ;AAAEA,IAAAA,OAAO,EAAE;AAAX;AAH2B,CAAd,CAAvB;;AAMA,MAAMC,SAAS,GAAG,CAAC1c,IAAD,EAAO2c,KAAP,KAAiB;AACjC,EAAA,MAAMva,CAAC,GAAG9E,KAAK,CAAC0C,IAAD,CAAf;AACA,EAAA,OAAOoC,CAAC,CAACwa,IAAF,CAAOtf,KAAK,CAACqf,KAAD,CAAZ,CAAP;AACD,CAHD;;AAKO,MAAME,aAAN,SAA4BthB,KAAK,CAACC,SAAlC,CAA4C;AAAA,EAAA,WAAA,CAAA,GAAA,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAA,IAAA,CAAA;;AAAA,IAAA,IAAA,CA0BjD8e,aA1BiD,GA0BhChd,KAAD,IAAW;AACzB,MAAA,MAAM;AAAEuc,QAAAA,MAAF;AAAUzQ,QAAAA;AAAV,OAAA,GAAuB,KAAKrN,KAAlC;AACA,MAAA,MAAM;AAAEiE,QAAAA,IAAF;AAAQC,QAAAA;AAAR,OAAA,GAAe3C,KAArB,CAFyB;;AAKzB,MAAA,IAAI,CAACwD,WAAW,CAACd,IAAD,EAAOC,EAAP,CAAhB,EAA4B;AAC1B,QAAA,IAAI4Z,MAAJ,EAAY;AACVvc,UAAAA,KAAK,CAACuc,MAAN,GAAA,QAAA,CAAA,EAAA,EAAoBA,MAApB,EAA+BtZ,oBAAoB,CAACP,IAAD,EAAOC,EAAP,CAAnD,CAAA;AACD,QAAA;;AAEDmJ,QAAAA,QAAQ,CAAC9L,KAAD,CAAR;AACD,MAAA;AACF,IAAA,CAtCgD;;AAAA,IAAA,IAAA,CAwCjDqd,QAxCiD,GAwCrCH,WAAD,IAAiB;AAC1B,MAAA,MAAM;AAAExa,QAAAA,IAAF;AAAQC,QAAAA;AAAR,OAAA,GAAe,KAAKlE,KAA1B;;AAEA,MAAA,IAAIiE,IAAI,CAACzB,KAAT,EAAgB;AACdic,QAAAA,WAAW,CAACjc,KAAZ,GAAoByB,IAAI,CAACzB,KAAzB;AACD,MAAA;;AAED,MAAA,IAAI,CAACuC,WAAW,CAAC0Z,WAAD,EAAcva,EAAd,CAAhB,EAAmC;AACjC,QAAA,IAAA,CAAKqa,aAAL,CAAmB;AAAEta,UAAAA,IAAI,EAAEwa,WAAR;AAAqBva,UAAAA;AAArB,SAAnB,CAAA;AACD,MAAA;AACF,IAAA,CAlDgD;;AAAA,IAAA,IAAA,CAoDjD2a,MApDiD,GAoDvCH,SAAD,IAAe;AACtB,MAAA,MAAM;AAAEza,QAAAA,IAAF;AAAQC,QAAAA;AAAR,OAAA,GAAe,KAAKlE,KAA1B;;AAEA,MAAA,IAAIkE,EAAE,CAAC1B,KAAP,EAAc;AACZkc,QAAAA,SAAS,CAAClc,KAAV,GAAkB0B,EAAE,CAAC1B,KAArB;AACD,MAAA;;AAED,MAAA,IAAI,CAACuC,WAAW,CAACd,IAAD,EAAOya,SAAP,CAAhB,EAAmC;AACjC,QAAA,IAAA,CAAKH,aAAL,CAAmB;AAAEta,UAAAA,IAAF;AAAQC,UAAAA,EAAE,EAAEwa;AAAZ,SAAnB,CAAA;AACD,MAAA;AACF,IAAA,CA9DgD;;AAAA,IAAA,IAAA,CAgEjDqC,UAhEiD,GAgEnCtC,WAAD,IAAiB;AAC5B,MAAA,MAAM;AAAExa,QAAAA,IAAF;AAAQC,QAAAA,EAAR;AAAYmJ,QAAAA,QAAZ;AAAsByQ,QAAAA;AAAtB,OAAA,GAAiC,KAAK9d,KAA5C;AACA,MAAA,MAAMghB,IAAI,GAAGzf,KAAK,CAAC0C,IAAD,CAAL,CAAYgd,GAAZ,CAAgB1f,KAAK,CAACkd,WAAD,CAArB,CAAb;AACA,MAAA,MAAMC,SAAS,GAAGnd,KAAK,CAAC2C,EAAD,CAAL,CAAU+c,GAAV,CAAcD,IAAd,CAAlB;;AAEA,MAAA,IAAI/c,IAAI,CAACzB,KAAT,EAAgB;AACdic,QAAAA,WAAW,CAACjc,KAAZ,GAAoByB,IAAI,CAACzB,KAAzB;AACD,MAAA;;AAED,MAAA,IAAI0B,EAAE,CAAC1B,KAAP,EAAc;AACZkc,QAAAA,SAAS,CAAClc,KAAV,GAAkB0B,EAAE,CAAC1B,KAArB;AACD,MAAA;;AAED,MAAA,MAAMmc,OAAO,GAAG;AAAE1a,QAAAA,IAAI,EAAEwa,WAAR;AAAqBva,QAAAA,EAAE,EAAEwa;AAAzB,OAAhB;;AAEA,MAAA,IAAIZ,MAAJ,EAAY;AACVa,QAAAA,OAAO,CAACb,MAAR,GAAA,QAAA,CAAA,EAAA,EAAsBA,MAAtB,EAAiCtZ,oBAAoB,CAACia,WAAD,EAAcC,SAAd,CAArD,CAAA;AACD,MAAA;;AAED,MAAA,IAAA,CAAKvM,QAAL,CACE;AACE+O,QAAAA,WAAW,EAAEhO,SADf;AAEEiO,QAAAA,YAAY,EAAEjO,SAFhB;AAGEkO,QAAAA,YAAY,EAAE;AAHhB,OADF,EAME,MAAM;AACJ/T,QAAAA,QAAQ,CAACsR,OAAD,CAAR;AACD,MAAA,CARH,CAAA;AAUD,IAAA,CA7FgD;;AAAA,IAAA,IAAA,CA+FjD1C,WA/FiD,GA+FnC,CAAC1a,KAAD,EAAQwF,IAAR,KAAiB;AAC7B,MAAA,MAAM;AAAEgX,QAAAA;AAAF,OAAA,GAAsB,KAAK/d,KAAjC;;AACA,MAAA,MAAM6S,MAAM,GAAA,QAAA,CAAA,EAAA,EAAQtR,KAAR,CAAZ;;AAEA,MAAA,IAAI,CAACA,KAAK,CAACiB,KAAP,IAAgBC,OAAO,CAAClB,KAAK,CAACiB,KAAP,CAA3B,EAA0C;AACxC,QAAA,OAAOqQ,MAAM,CAACrQ,KAAd;AACD,MAAA;;AAEDub,MAAAA,eAAe,CAAC;AAAE,QAAA,CAAChX,IAAD,GAAQ8L;AAAV,OAAD,CAAf;AACD,IAAA,CAxGgD;;AAAA,IAAA,IAAA,CA0GjDqJ,UA1GiD,GA0GpC,CAAC3a,KAAD,EAAQwF,IAAR,EAAckW,IAAd,KAAuB;AAClC,MAAA,MAAM;AAAEc,QAAAA,eAAF;AAAmBrR,QAAAA,QAAnB;AAA6BzI,QAAAA,IAA7B;AAAmCC,QAAAA,EAAnC;AAAuC6M,QAAAA,gBAAvC;AAAyDU,QAAAA,aAAzD;AAAwEvC,QAAAA;AAAxE,OAAA,GAAoF,KAAKlP,KAA/F;;AACA,MAAA,IAAI,CAAC+Q,gBAAL,EAAuB;AACrB7B,QAAAA,OAAO,CAAC3N,KAAK,IAAI0b,IAAV,CAAP;AACA,QAAA;AACD,MAAA;;AAED,MAAA,IAAIvQ,QAAJ,EAAc;AACZ,QAAA;AACD,MAAA,CATiC;;;AAYlC,MAAA,IAAI+E,aAAJ,EAAmB;AACjB,QAAA;AACD,MAAA;;AAED,MAAA,IAAI1K,IAAI,KAAK,QAAT,IAAqB,CAACxF,KAAtB,IAA+B0C,IAA/B,IAAuCC,EAA3C,EAA+C;AAC7C3C,QAAAA,KAAK,GAAA,QAAA,CAAA,EAAA,EAAQA,KAAR,EAAkBiD,oBAAoB,CAACP,IAAD,EAAOC,EAAP,CAAtC,CAAL;AACD,MAAA;;AAED6Z,MAAAA,eAAe,CAAC;AAAE9Z,QAAAA,IAAF;AAAQC,QAAAA,EAAR;AAAY,QAAA,CAAC6C,IAAD,GAAA,QAAA,CAAA;AAAUvE,UAAAA,KAAK,EAAE;AAAjB,SAAA,EAAwBjB,KAAxB;AAAZ,OAAD,CAAf;;AAEA,MAAA,IAAI,IAAA,CAAK2T,KAAL,CAAWnO,IAAX,CAAJ,EAAsB;AACpB,QAAA,IAAA,CAAKmO,KAAL,CAAWnO,IAAX,CAAA,CAAiBoV,KAAjB,EAAA;AACD,MAAA;AACF,IAAA,CAnIgD;;AAAA,IAAA,IAAA,CAsIjDjH,KAtIiD,GAsIzC,EAtIyC;AAAA,EAAA;;AAwIjDxV,EAAAA,MAAM,GAAG;AACP,IAAA,IAAI;AACFuE,MAAAA,IADE;AAEFC,MAAAA,EAFE;AAGF4Z,MAAAA,MAHE;AAIFpR,MAAAA,QAJE;AAKF7M,MAAAA,OALE;AAMFmR,MAAAA,kBANE;AAOFhK,MAAAA,QAPE;AAQFkR,MAAAA,WARE;AASFC,MAAAA,UATE;AAUFjJ,MAAAA,OAVE;AAWFmH,MAAAA,WAXE;AAYF/Q,MAAAA,UAZE;AAaF8M,MAAAA,SAbE;AAcFrB,MAAAA;AAdE,KAAA,GAeA,KAAK/Q,KAfT;AAgBA,IAAA,MAAMX,MAAM,GAAG;AAAE6Y,MAAAA,WAAF;AAAeC,MAAAA,UAAf;AAA2B7S,MAAAA,UAA3B;AAAuC4J,MAAAA;AAAvC,KAAf;AAEAhL,IAAAA,EAAE,GAAGA,EAAE,IAAID,IAAX;AAEA,IAAA,MAAMsY,MAAM,GAAGoE,SAAS,CAAC1c,IAAD,EAAOC,EAAP,CAAxB;AAEA,IAAA,IAAI8a,aAAa,GAAG,IAApB;AACA,IAAA,IAAIC,WAAW,GAAG,IAAlB;AACA,IAAA,IAAIoC,eAAe,GAAG,IAAtB;;AAEA,IAAA,IAAIjP,SAAJ,EAAe;AACb,MAAA,IAAInO,IAAI,IAAIA,IAAI,CAACoY,cAAL,CAAoB,OAApB,CAAZ,EAA0C;AACxC2C,QAAAA,aAAa,gBAAGrI,QAAQ,CAACC,YAAT,eACd,oBAAC2D,WAAD,EAAA;AACE,UAAA,QAAQ,EAAG/N,CAAD,IAAQ,KAAK0I,KAAL,CAAWjR,IAAX,GAAkBuI,CADtC;AAEE,UAAA,QAAQ,EAAE,CAACuE,gBAFb;AAGE,UAAA,IAAI,EAAE9M,IAHR;AAIE,UAAA,UAAU,EAAEqB,UAJd;AAKE,UAAA,QAAQ,EAAG9C,KAAD,IAAW,IAAA,CAAKyZ,WAAL,cAAsBhY,IAAtB,EAAA;AAA4BzB,YAAAA;AAA5B,WAAA,CAAA,EAAqC,MAArC;AALvB,SAAA,CADc,EAQd4P,SARc,CAAhB;AAUD,MAAA;;AAED,MAAA,IAAIlO,EAAE,IAAIA,EAAE,CAACmY,cAAH,CAAkB,OAAlB,CAAV,EAAsC;AACpC4C,QAAAA,WAAW,gBAAGtI,QAAQ,CAACC,YAAT,eACZ,oBAAC2D,WAAD,EAAA;AACE,UAAA,QAAQ,EAAG/N,CAAD,IAAQ,KAAK0I,KAAL,CAAWhR,EAAX,GAAgBsI,CADpC;AAEE,UAAA,QAAQ,EAAE,CAACuE,gBAFb;AAGE,UAAA,IAAI,EAAE7M,EAHR;AAIE,UAAA,UAAU,EAAEoB,UAJd;AAKE,UAAA,QAAQ,EAAG9C,KAAD,IAAW,IAAA,CAAKyZ,WAAL,cAAsB/X,EAAtB,EAAA;AAA0B1B,YAAAA;AAA1B,WAAA,CAAA,EAAmC,IAAnC;AALvB,SAAA,CADY,EAQZ4P,SARY,CAAd;AAUD,MAAA;;AAED,MAAA,IAAI0L,MAAM,IAAIA,MAAM,CAACzB,cAAP,CAAsB,OAAtB,CAAd,EAA8C;AAC5CgF,QAAAA,eAAe,gBAAG1K,QAAQ,CAACC,YAAT,eAChB,oBAAC2D,WAAD,EAAA;AACE,UAAA,QAAQ,EAAG/N,CAAD,IAAQ,KAAK0I,KAAL,CAAW4I,MAAX,GAAoBtR,CADxC;AAEE,UAAA,QAAQ,EAAE,CAACuE,gBAFb;AAGE,UAAA,IAAI,EAAE+M,MAHR;AAIE,UAAA,UAAU,EAAExY,UAJd;AAKE,UAAA,QAAQ,EAAG9C,KAAD,IAAW,IAAA,CAAKyZ,WAAL,cAAsB6B,MAAtB,EAAA;AAA8Btb,YAAAA;AAA9B,WAAA,CAAA,EAAuC,QAAvC;AALvB,SAAA,CADgB,EAQhB4P,SARgB,CAAlB;AAUD,MAAA;AACF,IAAA;;AAED,IAAA,oBACE,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,IAAA,eACE,oBAAC0K,UAAD,EAAA,QAAA,CAAA;AACE,MAAA,QAAQ,EAAE9V,QAAQ,IAAI0F,QADxB;AAEE,MAAA,WAAW,EAAE2J,WAFf;AAGE,MAAA,SAAS,EAAEnW,UAAU,CAAC8G,QAAQ,IAAInH,OAAO,CAACyhB,gBAArB,CAHvB;AAIE,MAAA,CAAC,EAAErd,IAAI,CAACtE,CAJV;AAKE,MAAA,CAAC,EAAEsE,IAAI,CAACrE,CALV;AAME,MAAA,MAAM,EAAE2c,MANV;AAOE,MAAA,MAAM,EAAE,IAAA,CAAKwE;AAPf,KAAA,EAQM1hB,MARN,EAAA;AASE,MAAA,OAAO,EAAG4d,IAAD,IAAU,IAAA,CAAKf,UAAL,CAAgB4B,MAAhB,EAAwB,QAAxB,EAAkCb,IAAlC;AATrB,KAAA,CAAA,CADF,EAYGoE,eAZH,eAcE,KAAA,CAAA,aAAA,CAAC,SAAD,EAAA,QAAA,CAAA;AACE,MAAA,QAAQ,EAAEra,QAAQ,IAAI0F,QADxB;AAEE,MAAA,kBAAkB,EAAEsE,kBAFtB;AAGE,MAAA,WAAW,EAAEqF,WAHf;AAIE,MAAA,SAAS,EAAEjE,SAJb;AAKE,MAAA,CAAC,EAAElO,EAAE,CAACvE,CALR;AAME,MAAA,CAAC,EAAEuE,EAAE,CAACtE,CANR;AAOE,MAAA,MAAM,EAAE,IAAA,CAAKif;AAPf,KAAA,EAQMxf,MARN,EAAA;AASE,MAAA,OAAO,EAAG4d,IAAD,IAAU,IAAA,CAAKf,UAAL,CAAgBhY,EAAhB,EAAoB,IAApB,EAA0B+Y,IAA1B;AATrB,KAAA,CAAA,CAdF,EAyBGgC,WAzBH,eA2BE,KAAA,CAAA,aAAA,CAAC,SAAD,EAAA,QAAA,CAAA;AACE,MAAA,QAAQ,EAAEjY,QAAQ,IAAI0F,QADxB;AAEE,MAAA,kBAAkB,EAAEsE,kBAFtB;AAGE,MAAA,WAAW,EAAEqF,WAHf;AAIE,MAAA,SAAS,EAAEjE,SAJb;AAKE,MAAA,CAAC,EAAEnO,IAAI,CAACtE,CALV;AAME,MAAA,CAAC,EAAEsE,IAAI,CAACrE,CANV;AAOE,MAAA,SAAS,EAAEC,OAAO,CAACoE,IAPrB;AAQE,MAAA,MAAM,EAAE,IAAA,CAAK2a;AARf,KAAA,EASMvf,MATN,EAAA;AAUE,MAAA,OAAO,EAAG4d,IAAD,IAAU,IAAA,CAAKf,UAAL,CAAgBjY,IAAhB,EAAsB,MAAtB,EAA8BgZ,IAA9B;AAVrB,KAAA,CAAA,CA3BF,EAuCG+B,aAvCH,CADF;AA2CD,EAAA;;AAvPgD;AAAtC8B,cACJrgB,YAAY;AACjBuG,EAAAA,QAAQ,EAAEtG,SAAS,CAACiM,IADH;AAEjB9M,EAAAA,OAAO,EAAEa,SAAS,CAACG,MAAV,CAAiBC,UAFT;AAGjBhB,EAAAA,SAAS,EAAEY,SAAS,CAACK,MAHJ;AAIjBiQ,EAAAA,kBAAkB,EAAEtQ,SAAS,CAACiM,IAJb;AAKjB0J,EAAAA,WAAW,EAAE3V,SAAS,CAACK,MALN;AAMjBkD,EAAAA,IAAI,EAAEjD,KAAK,CAACuc,SANK;AAOjB7Q,EAAAA,QAAQ,EAAEhM,SAAS,CAACiM,IAPH;AAQjBzI,EAAAA,EAAE,EAAElD,KAAK,CAACuc,SARO;AASjBO,EAAAA,MAAM,EAAE9c,KAAK,CAACuc,SATG;AAUjBlQ,EAAAA,QAAQ,EAAE3M,SAAS,CAACuN,IAAV,CAAenN,UAVR;AAWjBoX,EAAAA,WAAW,EAAExX,SAAS,CAACuN,IAXN;AAYjBkK,EAAAA,UAAU,EAAEzX,SAAS,CAACuN,IAZL;AAajB3I,EAAAA,UAAU,EAAEtE,KAAK,CAACuJ,cAAN,CAAqBzJ,UAbhB;AAcjBoO,EAAAA,OAAO,EAAExO,SAAS,CAACuN,IAdF;AAejBmE,EAAAA,SAAS,EAAE1R,SAAS,CAACG,MAfJ;AAgBjBkQ,EAAAA,gBAAgB,EAAErQ,SAAS,CAACiM,IAhBX;AAiBjBoR,EAAAA,eAAe,EAAErd,SAAS,CAACuN,IAjBV;AAkBjBwD,EAAAA,aAAa,EAAE/Q,SAAS,CAACiM;AAlBR;AADRmU,cAsBJ5f,eAAe;AACpBgO,EAAAA,OAAO,EAAE,OAAO,EAAP;AADW;AAoOjB,MAAMqS,UAAU,GAAGpgB,UAAU,CAAC,OAAO;AAC1CqgB,EAAAA,SAAS,EAAE;AACTriB,IAAAA,IAAI,EAAE,cADG;AACa;AACtB4I,IAAAA,MAAM,EAAEC,KAAK,CAACC,QAAN,CAAe2P,KAFd;AAGTzP,IAAAA,WAAW,EAAE,CAHJ;AAIT,IAAA,SAAA,EAAW;AACTA,MAAAA,WAAW,EAAE,CADJ;AAETJ,MAAAA,MAAM,EAAEC,KAAK,CAACC,QAAN,CAAeqN;AAFd;AAJF,GAD+B;AAU1CpW,EAAAA,IAAI,EAAE,EAVoC;AAW1CoiB,EAAAA,gBAAgB,EAAE;AAChBvZ,IAAAA,MAAM,EAAEC,KAAK,CAACC,QAAN,CAAe2P,KADP;AAEhB6J,IAAAA,SAAS,EAAE,0BAFK;AAGhBC,IAAAA,uBAAuB,EAAE,UAHT;AAIhBhB,IAAAA,OAAO,EAAE;AAJO,GAXwB;AAiB1C,EAAA,yBAAA,EAA2BD,cAAc,CAAC,KAAD;AAjBC,CAAP,CAAD,CAAV,CAkBtBK,aAlBsB,CAAnB;AAoBP,MAAMrhB,WAAS,GAAGmgB,iBAAiB,CAAC2B,UAAD,CAAnC;;ACpSO,MAAMvO,MAAI,GAAG,OAAO;AACzBjM,EAAAA,IAAI,EAAE,QADmB;AAEzBtH,EAAAA,SAAS,EAAEkiB,WAFc;AAGzBC,EAAAA,KAAK,EAAE,CAACrgB,KAAD,EAAQqF,IAAR,KAAiB;AACtB,IAAA,OAAA,QAAA,CAAA,EAAA,EAAYA,IAAZ,EAAA;AAAkBF,MAAAA,IAAI,EAAEnF;AAAxB,KAAA,CAAA;AACD,EAAA,CALwB;AAMzB4R,EAAAA,QAAQ,EAAE,CAAC5R,KAAD,EAAQqF,IAAR,KAAiB;AACzB,IAAA,IAAIA,IAAI,IAAI7B,WAAW,CAAC6B,IAAI,CAAC1H,IAAN,EAAYqC,KAAZ,CAAvB,EAA2C;AACzC,MAAA,OAAOqF,IAAP;AACD,IAAA;;AAED,IAAA,IAAI,CAACA,IAAL,EAAW;AACT,MAAA,OAAO;AACLG,QAAAA,IAAI,EAAE,QADD;AAEL7H,QAAAA,IAAI,EAAEqC,KAFD;AAGLyF,QAAAA,QAAQ,EAAE;AAHL,OAAP;AAKD,IAAA,CAND,MAMO;AACL,MAAA,OAAA,QAAA,CAAA,EAAA,EAAYJ,IAAZ,EAAA;AAAkBF,QAAAA,IAAI,EAAEnF,KAAxB;AAA+ByF,QAAAA,QAAQ,EAAE;AAAzC,OAAA,CAAA;AACD,IAAA;AACF,EAAA;AApBwB,CAAP,CAAb;;;;ACMP,MAAM6a,OAAN,SAAsBriB,KAAK,CAACC,SAA5B,CAAsC;AAgBpCC,EAAAA,MAAM,GAAG;AACP,IAAA,MAAA,WAAA,GAAqF,KAAKM,KAA1F;AAAA,UAAM;AAAEsF,MAAAA,UAAF;AAAczF,MAAAA,OAAd;AAAuBoE,MAAAA,IAAvB;AAA6BC,MAAAA,EAA7B;AAAiCpE,MAAAA,SAAjC;AAA4C4M,MAAAA,QAA5C;AAAsD2J,MAAAA;AAAtD,KAAN,GAAA,WAAA;AAAA,UAA4EG,IAA5E,GAAA,6BAAA,CAAA,WAAA,EAAAC,WAAA,CAAA;;AACA,IAAA,MAAM;AAAE1W,MAAAA;AAAF,KAAA,GAAYuF,UAAlB;AACA,IAAA,oBACE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,QAAA,CAAA;AACE,MAAA,EAAE,EAAEvF,KAAK,CAACJ,CAAN,CAAQsE,IAAI,CAACtE,CAAb,CADN;AAEE,MAAA,EAAE,EAAEI,KAAK,CAACH,CAAN,CAAQqE,IAAI,CAACrE,CAAb,CAFN;AAGE,MAAA,EAAE,EAAEG,KAAK,CAACJ,CAAN,CAAQuE,EAAE,CAACvE,CAAX,CAHN;AAIE,MAAA,EAAE,EAAEI,KAAK,CAACH,CAAN,CAAQsE,EAAE,CAACtE,CAAX,CAJN;AAKE,MAAA,SAAS,EAAEM,UAAU,CAACL,OAAO,CAACiI,IAAT,EAAe4E,QAAQ,IAAI7M,OAAO,CAAC6U,iBAAnC,EAAsD5U,SAAtD,EAAiED,OAAO,CAACwW,WAAD,CAAxE;AALvB,KAAA,EAMMG,IANN,CAAA,CADF;AAUD,EAAA;;AA7BmC;;AAAhCqL,QACGphB,YAAY;AACjBX,EAAAA,SAAS,EAAEY,SAAS,CAACK,MADJ;AAEjBlB,EAAAA,OAAO,EAAEa,SAAS,CAACG,MAFF;AAGjBoD,EAAAA,IAAI,EAAEjD,KAAK,CAACuc,SAHK;AAIjBrZ,EAAAA,EAAE,EAAElD,KAAK,CAACuc,SAJO;AAKjBjY,EAAAA,UAAU,EAAEtE,KAAK,CAACuJ,cAAN,CAAqBzJ,UALhB;AAMjB4L,EAAAA,QAAQ,EAAEhM,SAAS,CAACiM,IANH;AAOjB0J,EAAAA,WAAW,EAAE3V,SAAS,CAACK;AAPN;AADf8gB,QAWG3gB,eAAe;AACpB+C,EAAAA,IAAI,EAAE,EADc;AAEpBC,EAAAA,EAAE,EAAE;AAFgB;AAqBjB,MAAM4d,MAAI,GAAG3gB,UAAU,CAAC,OAAO;AACpC2G,EAAAA,IAAI,EAAE;AACJK,IAAAA,WAAW,EAAE,CADT;AAEJ0U,IAAAA,UAAU,EAAE,kDAFR;AAGJ9U,IAAAA,MAAM,EAAE,aAHJ;AAIJ,IAAA,SAAA,EAAW;AACTI,MAAAA,WAAW,EAAE,CADJ;AAETJ,MAAAA,MAAM,EAAEC,KAAK,CAACC,QAAN,CAAe2P;AAFd;AAJP,GAD8B;AAUpClL,EAAAA,QAAQ,EAAA,QAAA,CAAA,EAAA,EACHA,QAAQ,CAAC,QAAD,CADL,EAAA;AAENvE,IAAAA,WAAW,EAAE;AAFP,GAAA,CAV4B;AAcpCuM,EAAAA,iBAAiB,EAAA,QAAA,CAAA,EAAA,EACZA,iBAAiB,CAAC,QAAD,CADL,EAAA;AAEfvM,IAAAA,WAAW,EAAE;AAFE,GAAA,CAdmB;AAkBpCwM,EAAAA,OAAO,EAAEA,OAAO,CAAC,QAAD,CAlBoB;AAmBpCE,EAAAA,SAAS,EAAEA,SAAS,CAAC,QAAD,CAnBgB;AAoBpCE,EAAAA,OAAO,EAAA,QAAA,CAAA,EAAA,EACFA,OAAO,CAAC,QAAD,CADL,EAAA;AAEL5M,IAAAA,WAAW,EAAE,CAFR;AAGLsV,IAAAA,eAAe,EAAE;AAHZ,GAAA;AApB6B,CAAP,CAAD,CAAV,CAyBhBoE,OAzBgB,CAAb;AA2BP,aAAe/J,aAAa,CAAC;AAC3BxW,EAAAA,MAAM,EAAE,CAACtB,KAAD,EAAQ;AAAEuF,IAAAA,MAAF;AAAUC,IAAAA;AAAV,GAAR,KAA8B;AACpC,IAAA,MAAM;AAAEvB,MAAAA,IAAF;AAAQC,MAAAA;AAAR,KAAA,GAAelE,KAArB;AACA,IAAA,MAAMwD,IAAI,GAAGpC,UAAA,CAAiB6C,IAAjB,EAAuBC,EAAvB,CAAb;AACA,IAAA,OAAO9C,MAAA,CAAaoC,IAAb,EAAmB+B,MAAnB,EAA2BC,KAA3B,CAAP;AACD,EAAA,CAL0B;AAM3BgS,EAAAA,WAAW,EAAGxX,KAAD,IAAW;AACtB,IAAA,MAAM;AAAEiE,MAAAA;AAAF,KAAA,GAAWjE,KAAjB;AACA,IAAA,OAAOiE,IAAP;AACD,EAAA,CAT0B;AAU3BwT,EAAAA,SAAS,EAAE,CAACzX,KAAD,EAAQ0X,KAAR,KAAkB;AAC3B,IAAA,MAAM;AAAEzT,MAAAA,IAAF;AAAQC,MAAAA;AAAR,KAAA,GAAelE,KAArB;AACA,IAAA,OAAO;AACLiE,MAAAA,IAAI,EAAE7C,KAAA,CAAY6C,IAAZ,CAAA,CAAkB0T,GAAlB,CAAsBvW,KAAA,CAAYsW,KAAZ,CAAtB,CADD;AAELxT,MAAAA,EAAE,EAAE9C,KAAA,CAAY8C,EAAZ,CAAA,CAAgByT,GAAhB,CAAoBvW,KAAA,CAAYsW,KAAZ,CAApB;AAFC,KAAP;AAID,EAAA;AAhB0B,CAAD,CAAb,CAiBZoK,MAjBY,CAAf;;;AC1DO,MAAMC,cAAc,GAAG,CAAC1e,MAAD,EAAStD,KAAT,KAAmB;AAC/C,EAAA,OAAO,CAACsD,MAAM,IAAI,EAAX,EACJwQ,GADI,CACC9P,CAAD,IAAO;AACV,IAAA,MAAMie,WAAW,GAAG;AAClBriB,MAAAA,CAAC,EAAEI,KAAK,CAACJ,CAAN,CAAQoE,CAAC,CAACpE,CAAV,CADe;AAElBC,MAAAA,CAAC,EAAEG,KAAK,CAACH,CAAN,CAAQmE,CAAC,CAACnE,CAAV;AAFe,KAApB;AAIA,IAAA,OAAQ,CAAA,EAAEoiB,WAAW,CAACriB,CAAE,IAAGqiB,WAAW,CAACpiB,CAAE,CAAA,CAAzC;AACD,EAAA,CAPI,CAAA,CAQJqiB,IARI,CAQC,GARD,CAAP;AASD,CAVM;AAYA,MAAMC,UAAN,SAAyB1iB,KAAK,CAACC,SAA/B,CAAyC;AAe9CC,EAAAA,MAAM,GAAG;AACP,IAAA,MAAA,WAAA,GAA2F,KAAKM,KAAhG;AAAA,UAAM;AAAEqD,MAAAA,MAAF;AAAUxD,MAAAA,OAAV;AAAmBC,MAAAA,SAAnB;AAA8B4M,MAAAA,QAA9B;AAAwC2J,MAAAA,WAAxC;AAAqD/Q,MAAAA,UAArD;AAAiE6c,MAAAA;AAAjE,KAAN,GAAA,WAAA;AAAA,UAAkF3L,IAAlF,GAAA,6BAAA,CAAA,WAAA,EAAAC,WAAA,CAAA;;AACA,IAAA,MAAM;AAAE1W,MAAAA;AAAF,KAAA,GAAYuF,UAAlB;AAEA,IAAA,MAAM8c,WAAW,GAAGL,cAAc,CAAC1e,MAAD,EAAStD,KAAT,CAAlC;AACA,IAAA,MAAMsiB,GAAG,GAAGF,MAAM,GAAG,SAAH,GAAe,UAAjC;AACA,IAAA,oBACE,oBAAC,GAAD,EAAA,QAAA,CAAA;AACE,MAAA,MAAM,EAAEC,WADV;AAEE,MAAA,SAAS,EAAEliB,UAAU,CACnBiiB,MAAM,IAAItiB,OAAO,CAACsiB,MADC,EAEnB,CAACA,MAAD,IAAWtiB,OAAO,CAACyiB,IAFA,EAGnB5V,QAAQ,IAAI7M,OAAO,CAAC6M,QAHD,EAInB7M,OAAO,CAACwW,WAAD,CAJY,EAKnBvW,SALmB;AAFvB,KAAA,EASM0W,IATN,CAAA,CADF;AAaD,EAAA;;AAlC6C;AAAnC0L,WACJzhB,YAAY;AACjBZ,EAAAA,OAAO,EAAEa,SAAS,CAACG,MADF;AAEjBf,EAAAA,SAAS,EAAEY,SAAS,CAACK,MAFJ;AAGjB2L,EAAAA,QAAQ,EAAEhM,SAAS,CAACiM,IAHH;AAIjBtJ,EAAAA,MAAM,EAAE3C,SAAS,CAAC4c,OAAV,CAAkBtc,KAAK,CAACuc,SAAxB,CAJS;AAKjBjY,EAAAA,UAAU,EAAEtE,KAAK,CAACuJ,cAAN,CAAqBzJ,UALhB;AAMjBqhB,EAAAA,MAAM,EAAEzhB,SAAS,CAACiM,IAAV,CAAe7L,UANN;AAOjBuV,EAAAA,WAAW,EAAE3V,SAAS,CAACK;AAPN;AADRmhB,WAWJhhB,eAAe;AACpBmC,EAAAA,MAAM,EAAE;AADY;AA0BjB,MAAMkf,OAAO,GAAGphB,UAAU,CAAElC,KAAD,KAAY;AAC5CkjB,EAAAA,MAAM,EAAE;AACNhjB,IAAAA,IAAI,EAAEqjB,IAAI,CAACvjB,KAAK,CAACG,OAAN,CAAcqjB,OAAd,CAAsBC,KAAvB,EAA8B,GAA9B,CADJ;AACwC;AAC9Cva,IAAAA,WAAW,EAAE,CAFP;AAGNJ,IAAAA,MAAM,EAAEC,KAAK,CAACC,QAAN,CAAe2P;AAHjB,GADoC;AAM5C0K,EAAAA,IAAI,EAAE;AACJnjB,IAAAA,IAAI,EAAEqjB,IAAI,CAACvjB,KAAK,CAACG,OAAN,CAAcqjB,OAAd,CAAsBC,KAAvB,EAA8B,GAA9B,CADN;AAC0C;AAC9Cva,IAAAA,WAAW,EAAE,CAFT;AAGJJ,IAAAA,MAAM,EAAEC,KAAK,CAACC,QAAN,CAAe2P,KAHnB;AAIJxJ,IAAAA,aAAa,EAAE;AAJX,GANsC;AAY5C1B,EAAAA,QAAQ,EAAA,QAAA,CAAA,EAAA,EACHA,QAAQ,CAAC,QAAD,CADL,CAZoC;AAe5CiI,EAAAA,OAAO,EAAA,QAAA,CAAA,EAAA,EACFA,OAAO,CAAC,QAAD,CADL,CAfqC;AAkB5CE,EAAAA,SAAS,EAAA,QAAA,CAAA,EAAA,EACJA,SAAS,CAAC,QAAD,CADL,CAlBmC;AAqB5CE,EAAAA,OAAO,EAAA,QAAA,CAAA,EAAA,EACFA,OAAO,CAAC,QAAD,CADL,EAAA;AAELhN,IAAAA,MAAM,EAAE;AAFH,GAAA;AArBqC,CAAZ,CAAD,CAAV,CAyBnBma,UAzBmB,CAAhB;AA2BP,uBAAepK,aAAa,CAAC;AAC3BxW,EAAAA,MAAM,EAAE,CAACtB,KAAD,EAAQ;AAAEuF,IAAAA,MAAF;AAAUC,IAAAA;AAAV,GAAR,KAA8B;AACpC,IAAA,MAAM;AAAEnC,MAAAA;AAAF,KAAA,GAAarD,KAAnB;AACA,IAAA,MAAMwD,IAAI,GAAGpC,aAAA,CAAoBiC,MAApB,CAAb;AACA,IAAA,OAAOjC,MAAA,CAAaoC,IAAb,EAAmB+B,MAAnB,EAA2BC,KAA3B,CAAP;AACD,EAAA,CAL0B;AAM3BgS,EAAAA,WAAW,EAAGxX,KAAD,IAAW;AACtB,IAAA,MAAM;AAAEqD,MAAAA;AAAF,KAAA,GAAarD,KAAnB;AACA,IAAA,OAAOqD,MAAM,CAAC,CAAD,CAAb;AACD,EAAA,CAT0B;AAU3BoU,EAAAA,SAAS,EAAE,CAACzX,KAAD,EAAQ0X,KAAR,KAAkB;AAC3B,IAAA,MAAM;AAAErU,MAAAA;AAAF,KAAA,GAAarD,KAAnB;AAEA,IAAA,OAAOqD,MAAM,CAACwQ,GAAP,CAAY9P,CAAD,IAAO3C,KAAA,CAAY2C,CAAZ,CAAA,CAAe4T,GAAf,CAAmBvW,KAAA,CAAYsW,KAAZ,CAAnB,CAAlB,CAAP;AACD,EAAA;AAd0B,CAAD,CAAb,CAeZ6K,OAfY,CAAf;;ACrEA,MAAMjS,KAAG,GAAGC,KAAK,CAAC,0BAAD,CAAjB;AAEO,MAAMoS,UAAU,GAAG,CAACtf,MAAD,EAAS8e,MAAT,KAAoB;AAC5C,EAAA,MAAMS,QAAQ,GAAGvf,MAAM,CAACS,MAAP,CAAc,CAAC+e,GAAD,EAAM9e,CAAN,EAASoD,KAAT,KAAmB;AAChD0b,IAAAA,GAAG,CAAC7gB,IAAJ,CAAA,QAAA,CAAA,EAAA,EAAc+B,CAAd,EAAA;AAAiBoD,MAAAA;AAAjB,KAAA,CAAA,CAAA;AAEA,IAAA,MAAM2b,MAAM,GAAG3b,KAAK,KAAK9D,MAAM,CAACT,MAAP,GAAgB,CAAzC;AACA,IAAA,MAAM+c,IAAI,GAAGmD,MAAM,GAAG,CAAH,GAAO3b,KAAK,GAAG,CAAlC;AAEA0b,IAAAA,GAAG,CAAC7gB,IAAJ,cAAcqB,MAAM,CAACsc,IAAD,CAApB,EAAA;AAA4BxY,MAAAA,KAAK,EAAEwY;AAAnC,KAAA,CAAA,CAAA;AAEA,IAAA,OAAOkD,GAAP;AACD,EAAA,CATgB,EASd,EATc,CAAjB;AAWA,EAAA,MAAME,GAAG,GAAGC,KAAK,CAACJ,QAAD,EAAW,CAAX,CAAL,CAAmB/O,GAAnB,CAAuB,CAAC,CAAC5P,IAAD,EAAOC,EAAP,CAAD,KAAgB;AACjD,IAAA,OAAO;AAAED,MAAAA,IAAF;AAAQC,MAAAA;AAAR,KAAP;AACD,EAAA,CAFW,CAAZ;AAIA,EAAA,OAAOie,MAAM,GAAGY,GAAH,GAASE,OAAO,CAACF,GAAD,CAA7B;AACD,CAjBM;AAmBA,MAAMG,IAAI,GAAG,CAACC,GAAD,EAAM,GAAG3M,IAAT,KAAkB;AACpC,EAAA,MAAM4M,KAAK,GAAGJ,KAAK,CAACxM,IAAD,EAAO,CAAP,CAAnB;AAEA,EAAA,OAAO4M,KAAK,CAACtf,MAAN,CACL,CAAC+e,GAAD,EAAMQ,EAAN,KAAa;AACX,IAAA,IAAIA,EAAE,CAACzgB,MAAH,KAAc,CAAlB,EAAqB;AACnB,MAAA,IAAI,CAACmY,CAAD,EAAIuI,WAAJ,IAAmBD,EAAvB;AAEAjf,MAAAA,SAAS,CAACmf,MAAM,CAACC,QAAP,CAAgBzI,CAAC,CAAC5T,KAAlB,CAAD,EAA2B,uBAA3B,CAAT;AAEA,MAAA,MAAMA,KAAK,GAAG4T,CAAC,CAAC5T,KAAhB,CALmB;;AAQnB,MAAA,IAAIA,KAAK,IAAI,CAAb,EAAgB;AACd0b,QAAAA,GAAG,CAACxb,MAAJ,CAAWF,KAAX,EAAkB,CAAlB,EAAqBmc,WAArB,CAAA;AAEA,QAAA,OAAOT,GAAP;AACD,MAAA,CAJD,MAIO;AACL,QAAA,OAAOA,GAAP;AACD,MAAA;AACF,IAAA,CAfD,MAeO;AACL,MAAA,OAAOA,GAAP;AACD,IAAA;AACF,EAAA,CApBI,EAqBL,CAAC,GAAGM,GAAJ,CArBK,CAAP;AAuBD,CA1BM;AA4BA,MAAMM,gBAAN,SAA+BjkB,KAAK,CAACC,SAArC,CAA+C;AAAA,EAAA,WAAA,CAAA,GAAA,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAA,IAAA,CAAA;;AAAA,IAAA,IAAA,CA4BpDikB,SA5BoD,GA4BxC,CAACvc,KAAD,EAAQlD,IAAR,EAAcC,EAAd,KAAqB;AAC/BoM,MAAAA,KAAG,CAAC,uBAAD,EAA0BrM,IAA1B,EAAgCC,EAAhC,CAAH;AACA,MAAA,MAAM;AAAEmJ,QAAAA,QAAF;AAAYhK,QAAAA;AAAZ,OAAA,GAAuB,KAAKrD,KAAlC;AACA,MAAA,MAAM6S,MAAM,GAAG,CAAC,GAAGxP,MAAJ,CAAf;AACA,MAAA,MAAMsgB,YAAY,GAAG,CAAC,CAAC,CAACtgB,MAAM,IAAI,EAAX,EAAekE,IAAf,CAAqBxD,CAAD,IAAOgB,WAAW,CAAChB,CAAD,EAAIG,EAAJ,CAAtC,CAAvB;;AAEA,MAAA,IAAIa,WAAW,CAACd,IAAD,EAAOC,EAAP,CAAX,IAAyByf,YAA7B,EAA2C;AACzC,QAAA;AACD,MAAA;;AAED,MAAA,IAAItgB,MAAM,CAAC8D,KAAD,CAAN,CAAc3E,KAAlB,EAAyB;AACvB0B,QAAAA,EAAE,CAAC1B,KAAH,GAAWa,MAAM,CAAC8D,KAAD,CAAN,CAAc3E,KAAzB;AACD,MAAA;;AAEDqQ,MAAAA,MAAM,CAACxL,MAAP,CAAcF,KAAd,EAAqB,CAArB,EAAwBjD,EAAxB,CAAA;AACAmJ,MAAAA,QAAQ,CAACwF,MAAD,CAAR;AACD,IAAA,CA5CmD;;AAAA,IAAA,IAAA,CA8CpD+Q,QA9CoD,GA8CzC,CAAChR,QAAD,EAAW+M,IAAX,KAAoB;AAC7BrP,MAAAA,KAAG,CAAC,cAAD,EAAiBsC,QAAjB,EAA2B+M,IAA3B,CAAH;AACA,MAAA,MAAM;AAAEtS,QAAAA;AAAF,OAAA,GAAe,KAAKrN,KAA1B;;AAEA,MAAA,IAAI4S,QAAQ,CAAC3O,IAAT,CAAczB,KAAlB,EAAyB;AACvBmd,QAAAA,IAAI,CAAC1b,IAAL,CAAUzB,KAAV,GAAkBoQ,QAAQ,CAAC3O,IAAT,CAAczB,KAAhC;AACD,MAAA;;AAED,MAAA,IAAIoQ,QAAQ,CAAC1O,EAAT,CAAY1B,KAAhB,EAAuB;AACrBmd,QAAAA,IAAI,CAACzb,EAAL,CAAQ1B,KAAR,GAAgBoQ,QAAQ,CAAC1O,EAAT,CAAY1B,KAA5B;AACD,MAAA;;AAED,MAAA,MAAMa,MAAM,GAAG6f,IAAI,CAAC,IAAA,CAAKljB,KAAL,CAAWqD,MAAZ,EAAoBuP,QAAQ,CAAC3O,IAA7B,EAAmC0b,IAAI,CAAC1b,IAAxC,EAA8C2O,QAAQ,CAAC1O,EAAvD,EAA2Dyb,IAAI,CAACzb,EAAhE,CAAnB;AACAmJ,MAAAA,QAAQ,CAAChK,MAAD,CAAR;AACD,IAAA,CA5DmD;;AAAA,IAAA,IAAA,CA8DpDwgB,QA9DoD,GA8DzC,CAACjR,QAAD,EAAW+M,IAAX,KAAoB;AAC7BrP,MAAAA,KAAG,CAAC,aAAD,EAAgBsC,QAAhB,EAA0B+M,IAA1B,CAAH;AACA,MAAA,MAAM;AAAEtS,QAAAA;AAAF,OAAA,GAAe,KAAKrN,KAA1B;AAEA2f,MAAAA,IAAI,CAACmE,OAAL,CAAa,CAACviB,KAAD,EAAQ4F,KAAR,KAAkB;AAC7B,QAAA,IAAIyL,QAAQ,CAACzL,KAAD,CAAR,CAAgB3E,KAApB,EAA2B;AACzBmd,UAAAA,IAAI,CAACxY,KAAD,CAAJ,CAAY3E,KAAZ,GAAoBoQ,QAAQ,CAACzL,KAAD,CAAR,CAAgB3E,KAApC;AACD,QAAA;AACF,MAAA,CAJD,CAAA;AAMA6K,MAAAA,QAAQ,CAACsS,IAAD,CAAR;AACD,IAAA,CAzEmD;;AAAA,IAAA,IAAA,CA2EpDoE,KA3EoD,GA2E5C,MAAM;AACZ,MAAA,MAAM;AAAE1gB,QAAAA,MAAF;AAAU2gB,QAAAA;AAAV,OAAA,GAA6B,KAAKhkB,KAAxC;AACAsQ,MAAAA,KAAG,CAAC,aAAD,CAAH;;AAEA,MAAA,IAAIjN,MAAM,CAACT,MAAP,IAAiB,CAArB,EAAwB;AACtBohB,QAAAA,cAAc,EAAA;AACf,MAAA,CAFD,MAEO;AACL1T,QAAAA,KAAG,CAAC,gBAAD,CAAH;AACD,MAAA;AACF,IAAA,CApFmD;;AAAA,IAAA,IAAA,CAsFpD2L,WAtFoD,GAsFtC,CAAC1a,KAAD,EAAQ4F,KAAR,KAAkB;AAC9B,MAAA,MAAM;AAAE9D,QAAAA,MAAF;AAAU4gB,QAAAA;AAAV,OAAA,GAA4B,KAAKjkB,KAAvC;;AACA,MAAA,MAAMkkB,YAAY,GAAA,QAAA,CAAA,EAAA,EAAQ3iB,KAAR,CAAlB;;AAEA,MAAA,IAAI,CAACA,KAAK,CAACiB,KAAP,IAAgBC,OAAO,CAAClB,KAAK,CAACiB,KAAP,CAA3B,EAA0C;AACxC,QAAA,OAAO0hB,YAAY,CAAC1hB,KAApB;AACD,MAAA;;AAED,MAAA,MAAMqQ,MAAM,GAAG,CAAC,GAAGxP,MAAJ,CAAf;AAEAwP,MAAAA,MAAM,CAACxL,MAAP,CAAcF,KAAd,EAAqB,CAArB,EAAwB+c,YAAxB,CAAA;AACAD,MAAAA,aAAa,CAACpR,MAAD,CAAb;AACD,IAAA,CAlGmD;;AAAA,IAAA,IAAA,CAoGpDqJ,UApGoD,GAoGvC,CAAC3a,KAAD,EAAQ4F,KAAR,EAAe8V,IAAf,KAAwB;AACnC,MAAA,MAAM;AACJkF,QAAAA,MADI;AAEJzV,QAAAA,QAFI;AAGJwC,QAAAA,OAHI;AAIJiV,QAAAA,YAJI;AAKJpT,QAAAA,gBALI;AAMJU,QAAAA,aANI;AAOJwS,QAAAA,aAPI;AAQJG,QAAAA,kBARI;AASJ/gB,QAAAA;AATI,OAAA,GAUF,KAAKrD,KAVT;;AAYA,MAAA,IAAI+Q,gBAAJ,EAAsB;AACpB;AACA,QAAA,IAAIrE,QAAQ,IAAI+E,aAAhB,EAA+B;AAC7B,UAAA;AACD,QAAA;;AAED,QAAA,IAAIpO,MAAM,IAAI8D,KAAK,KAAK9D,MAAM,CAACT,MAA/B,EAAuC;AACrC,UAAA,MAAM;AAAEK,YAAAA,CAAF;AAAKC,YAAAA;AAAL,WAAA,GAAWmB,iBAAiB,CAAChB,MAAD,CAAlC;;AACA,UAAA,MAAMya,MAAM,GAAA,QAAA,CAAA;AAAKtb,YAAAA,KAAK,EAAE;AAAZ,WAAA,EAAmBjB,KAAnB,EAA6BiD,oBAAoB,CAACvB,CAAD,EAAIC,CAAJ,CAAjD,CAAZ;;AAEAkhB,UAAAA,kBAAkB,CAACtG,MAAD,CAAlB;AACD,QAAA,CALD,MAKO;AACL,UAAA,MAAMjL,MAAM,GAAG,CAAC,GAAGxP,MAAJ,CAAf;AAEAwP,UAAAA,MAAM,CAACxL,MAAP,CAAcF,KAAd,EAAqB,CAArB,EAAA,QAAA,CAAA;AAA0B3E,YAAAA,KAAK,EAAE;AAAjC,WAAA,EAAwCjB,KAAxC,CAAA,CAAA;AACA0iB,UAAAA,aAAa,CAACpR,MAAD,CAAb;AACD,QAAA;;AAED,QAAA,IAAI,IAAA,CAAKqC,KAAL,CAAW/N,KAAX,CAAJ,EAAuB;AACrB,UAAA,IAAA,CAAK+N,KAAL,CAAW/N,KAAX,CAAA,CAAkBgV,KAAlB,EAAA;AACD,QAAA;;AAED,QAAA;AACD,MAAA;;AAED,MAAA,IAAIgI,YAAY,IAAI,CAAChC,MAAjB,IAA2Bhb,KAAK,KAAK,CAAzC,EAA4C;AAC1C,QAAA,IAAA,CAAK4c,KAAL,EAAA;AACA,QAAA;AACD,MAAA;;AAED7U,MAAAA,OAAO,CAAC3N,KAAK,IAAI0b,IAAV,CAAP;AACD,IAAA,CAhJmD;;AAAA,IAAA,IAAA,CAmJpD/H,KAnJoD,GAmJ5C,EAnJ4C;AAAA,EAAA;;AAqJpDxV,EAAAA,MAAM,GAAG;AACP,IAAA,MAAM;AACJyiB,MAAAA,MADI;AAEJnR,MAAAA,kBAFI;AAGJqF,MAAAA,WAHI;AAIJ3J,MAAAA,QAJI;AAKJpH,MAAAA,UALI;AAMJ8e,MAAAA,kBANI;AAOJlM,MAAAA,WAPI;AAQJC,MAAAA,UARI;AASJ9U,MAAAA,MATI;AAUJya,MAAAA,MAVI;AAWJ1L,MAAAA,SAXI;AAYJrB,MAAAA;AAZI,KAAA,GAaF,KAAK/Q,KAbT;AAcA,IAAA,MAAMqkB,KAAK,GAAG1B,UAAU,CAACtf,MAAD,EAAS8e,MAAT,CAAxB;AACA,IAAA,MAAM9iB,MAAM,GAAG;AAAE6Y,MAAAA,WAAF;AAAeC,MAAAA,UAAf;AAA2B7S,MAAAA,UAA3B;AAAuCoH,MAAAA,QAAvC;AAAiD2J,MAAAA;AAAjD,KAAf;AACA,IAAA,MAAMiO,iBAAiB,GAAIjhB,MAAM,IAAIA,MAAM,CAACT,MAAlB,IAA6B,CAAvD;AACA,IAAA,IAAI2hB,gBAAgB,GAAG,IAAvB;;AAEA,IAAA,IAAInS,SAAS,IAAI0L,MAAb,IAAuBA,MAAM,CAACzB,cAAP,CAAsB,OAAtB,CAA3B,EAA2D;AACzDkI,MAAAA,gBAAgB,gBAAG5N,QAAQ,CAACC,YAAT,eACjB,oBAAC2D,WAAD,EAAA;AACE,QAAA,QAAQ,EAAG/N,CAAD,IAAQ,KAAK0I,KAAL,CAAWoP,iBAAX,CAAA,GAAgC9X,CADpD;AAEE,QAAA,QAAQ,EAAE,CAACuE,gBAFb;AAGE,QAAA,IAAI,EAAE+M,MAHR;AAIE,QAAA,UAAU,EAAExY,UAJd;AAKE,QAAA,QAAQ,EAAG9C,KAAD,IAAW4hB,kBAAkB,cAAMtG,MAAN,EAAA;AAActb,UAAAA;AAAd,SAAA,CAAA;AALzC,OAAA,CADiB,EAQjB4P,SARiB,CAAnB;AAUD,IAAA;;AAED,IAAA,oBACE,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,IAAA,EACG+P,MAAM,gBACL,KAAA,CAAA,aAAA,CAAC,KAAD,CAAO,QAAP,EAAA,IAAA,eACE,KAAA,CAAA,aAAA,CAAC,gBAAD,EAAA,QAAA,CAAA;AACE,MAAA,MAAM,EAAE9e,MADV;AAEE,MAAA,MAAM,EAAE,IAAA,CAAKwgB,QAAL,CAAc3T,IAAd,CAAmB,IAAnB,EAAyB7M,MAAzB,CAFV;AAGE,MAAA,MAAM,EAAE8e;AAHV,KAAA,EAIM9iB,MAJN,EAAA;AAKE,MAAA,OAAO,EAAE,IAAA,CAAK6c,UAAL,CAAgBhM,IAAhB,CAAqB,IAArB,EAA2B4N,MAA3B,EAAmCwG,iBAAnC;AALX,KAAA,CAAA,CADF,EAQGC,gBARH,CADK,gBAYL,oBAAC,OAAD,EAAA;AAAS,MAAA,MAAM,EAAElhB,MAAjB;AAAyB,MAAA,UAAU,EAAEiC,UAArC;AAAiD,MAAA,MAAM,EAAE6c;AAAzD,KAAA,CAbJ,EAeG,CAACkC,KAAK,IAAI,EAAV,EAAcxQ,GAAd,CAAkB,CAAC2Q,CAAD,EAAIrd,KAAJ,kBACjB,oBAAC2a,MAAD,EAAA,QAAA,CAAA;AACE,MAAA,GAAG,EAAG,CAAA,KAAA,EAAO3a,KAAM,CAAA,CADrB;AAEE,MAAA,IAAI,EAAEqd,CAAC,CAACvgB,IAFV;AAGE,MAAA,EAAE,EAAEugB,CAAC,CAACtgB,EAHR;AAIE,MAAA,MAAM,EAAE,IAAA,CAAK0f,QAAL,CAAc1T,IAAd,CAAmB,IAAnB,EAAyBsU,CAAzB;AAJV,KAAA,EAKMnlB,MALN,EAAA;AAME,MAAA,OAAO,EAAE,IAAA,CAAK6c,UAAL,CAAgBhM,IAAhB,CAAqB,IAArB,EAA2B4N,MAA3B,EAAmCwG,iBAAnC;AANX,KAAA,CAAA,CADD,CAfH,EA0BG,CAACjhB,MAAM,IAAI,EAAX,EAAewQ,GAAf,CAAmB,CAAC9P,CAAD,EAAIoD,KAAJ,KAAc;AAChC,MAAA,OAAO,cACL,oBAAC,SAAD,EAAA,QAAA,CAAA;AACE,QAAA,GAAG,EAAG,CAAA,MAAA,EAAQA,KAAM,CAAA,CADtB;AAEE,QAAA,kBAAkB,EAAE6J,kBAFtB;AAGE,QAAA,SAAS,EAAEoB,SAHb;AAIE,QAAA,CAAC,EAAErO,CAAC,CAACpE,CAJP;AAKE,QAAA,CAAC,EAAEoE,CAAC,CAACnE,CALP;AAME,QAAA,MAAM,EAAE,IAAA,CAAK8jB,SAAL,CAAexT,IAAf,CAAoB,IAApB,EAA0B/I,KAA1B,EAAiCpD,CAAjC;AANV,OAAA,EAOM1E,MAPN,EAAA;AAQE,QAAA,OAAO,EAAE,IAAA,CAAK6c,UAAL,CAAgBhM,IAAhB,CAAqB,IAArB,EAA2BnM,CAA3B,EAA8BoD,KAA9B;AARX,OAAA,CAAA,CADK,EAWLiL,SAAS,IAAIrO,CAAC,CAACsY,cAAF,CAAiB,OAAjB,CAAb,gBACI1F,QAAQ,CAACC,YAAT,eACE,oBAAC2D,WAAD,EAAA;AACE,QAAA,QAAQ,EAAG/N,CAAD,IAAQ,KAAK0I,KAAL,CAAW/N,KAAX,CAAA,GAAoBqF,CADxC;AAEE,QAAA,QAAQ,EAAE,CAACuE,gBAFb;AAGE,QAAA,IAAI,EAAEhN,CAHR;AAIE,QAAA,UAAU,EAAEuB,UAJd;AAKE,QAAA,QAAQ,EAAG9C,KAAD,IAAW,IAAA,CAAKyZ,WAAL,cAAsBlY,CAAtB,EAAA;AAAyBvB,UAAAA;AAAzB,SAAA,CAAA,EAAkC2E,KAAlC;AALvB,OAAA,CADF,EAQEiL,SARF,CADJ,GAWI,IAtBC,CAAP;AAwBD,IAAA,CAzBA,CA1BH,CADF;AAuDD,EAAA;;AA7OmD;AAAzCqR,iBACJhjB,YAAY;AACjBZ,EAAAA,OAAO,EAAEa,SAAS,CAACG,MADF;AAEjBf,EAAAA,SAAS,EAAEY,SAAS,CAACK,MAFJ;AAGjB2L,EAAAA,QAAQ,EAAEhM,SAAS,CAACiM,IAHH;AAIjB0J,EAAAA,WAAW,EAAE3V,SAAS,CAACK,MAJN;AAKjBsC,EAAAA,MAAM,EAAE3C,SAAS,CAAC4c,OAAV,CAAkBtc,KAAK,CAACuc,SAAxB,CALS;AAMjB4E,EAAAA,MAAM,EAAEzhB,SAAS,CAACiM,IAND;AAOjBqE,EAAAA,kBAAkB,EAAEtQ,SAAS,CAACiM,IAPb;AAQjBU,EAAAA,QAAQ,EAAE3M,SAAS,CAACuN,IAAV,CAAenN,UARR;AASjBkjB,EAAAA,cAAc,EAAEtjB,SAAS,CAACuN,IAAV,CAAenN,UATd;AAUjBoX,EAAAA,WAAW,EAAExX,SAAS,CAACuN,IAVN;AAWjBkK,EAAAA,UAAU,EAAEzX,SAAS,CAACuN,IAXL;AAYjBiB,EAAAA,OAAO,EAAExO,SAAS,CAACuN,IAZF;AAajB3I,EAAAA,UAAU,EAAEtE,KAAK,CAACuJ,cAAN,CAAqBzJ,UAbhB;AAcjBqjB,EAAAA,YAAY,EAAEzjB,SAAS,CAACiM,IAdP;AAejBmR,EAAAA,MAAM,EAAEpd,SAAS,CAACG,MAfD;AAgBjBuR,EAAAA,SAAS,EAAE1R,SAAS,CAACG,MAhBJ;AAiBjBkQ,EAAAA,gBAAgB,EAAErQ,SAAS,CAACiM,IAjBX;AAkBjB8E,EAAAA,aAAa,EAAE/Q,SAAS,CAACiM,IAlBR;AAmBjByX,EAAAA,kBAAkB,EAAE1jB,SAAS,CAACuN,IAnBb;AAoBjBgW,EAAAA,aAAa,EAAEvjB,SAAS,CAACuN;AApBR;AADRwV,iBAwBJviB,eAAe;AACpBmC,EAAAA,MAAM,EAAE;AADY;AAwNjB,MAAMyc,aAAa,GAAG3e,UAAU,CAAC,OAAO,EAAP,CAAD,CAAV,CAAuBsiB,gBAAvB,CAAtB;kBAEQ,MAAMhkB,SAAN,SAAwBD,KAAK,CAACC,SAA9B,CAAwC;AAQrDwS,EAAAA,WAAW,CAACjS,KAAD,EAAQ;AACjB,IAAA,KAAA,CAAMA,KAAN,CAAA;;AADiB,IAAA,IAAA,CAKnBykB,MALmB,GAKTphB,MAAD,IAAY;AACnB,MAAA,MAAM;AACJuD,QAAAA,IAAI,EAAE;AAAEkX,UAAAA;AAAF;AADF,OAAA,GAEF,KAAK9d,KAFT;;AAGA,MAAA,MAAM4G,IAAI,GAAA,QAAA,CAAA,EAAA,EAAQ,IAAA,CAAKsL,KAAL,CAAWtL,IAAnB,EAAA;AAAyBvD,QAAAA;AAAzB,OAAA,CAAV;;AAEA,MAAA,IAAIya,MAAJ,EAAY;AACV,QAAA,MAAM;AAAE7a,UAAAA,CAAF;AAAKC,UAAAA;AAAL,SAAA,GAAWmB,iBAAiB,CAAChB,MAAD,CAAlC;AAEAuD,QAAAA,IAAI,CAACkX,MAAL,GAAA,QAAA,CAAA,EAAA,EAAmBA,MAAnB,EAA8BtZ,oBAAoB,CAACvB,CAAD,EAAIC,CAAJ,CAAlD,CAAA;AACD,MAAA;;AAED,MAAA,IAAA,CAAKiP,QAAL,CAAc;AAAEvL,QAAAA;AAAF,OAAd,CAAA;AACD,IAAA,CAlBkB;;AAAA,IAAA,IAAA,CAoBnB8d,WApBmB,GAoBJrhB,MAAD,IAAY;AACxB,MAAA,MAAMuD,IAAI,GAAA,QAAA,CAAA,EAAA,EAAQ,IAAA,CAAK5G,KAAL,CAAW4G,IAAnB,EAAA;AAAyBvD,QAAAA;AAAzB,OAAA,CAAV;;AAEA,MAAA,IAAA,CAAKrD,KAAL,CAAWqN,QAAX,CAAoB,KAAKrN,KAAL,CAAW4G,IAA/B,EAAqCA,IAArC,CAAA;AACD,IAAA,CAxBkB;;AAAA,IAAA,IAAA,CA0BnB+d,gBA1BmB,GA0BCpjB,KAAD,IAAW;AAC5B,MAAA,MAAM;AAAEqF,QAAAA,IAAF;AAAQyG,QAAAA;AAAR,OAAA,GAAqB,KAAKrN,KAAhC;;AACA,MAAA,MAAM8d,MAAM,GAAA,QAAA,CAAA,EAAA,EAAQlX,IAAI,CAACkX,MAAb,EAAwBvc,KAAxB,CAAZ;;AAEA8L,MAAAA,QAAQ,CAACzG,IAAD,EAAA,QAAA,CAAA,EAAA,EAAYA,IAAZ,EAAA;AAAkBkX,QAAAA;AAAlB,OAAA,CAAA,CAAR;AACD,IAAA,CA/BkB;;AAAA,IAAA,IAAA,CAiCnB8G,YAjCmB,GAiCJ,MAAM;AACnBtU,MAAAA,KAAG,CAAC,oBAAD,CAAH;AACA,MAAA,MAAM;AAAEuU,QAAAA,UAAF;AAAcje,QAAAA;AAAd,OAAA,GAAuB,KAAK5G,KAAlC;;AACA,MAAA,MAAM6S,MAAM,gBAAQjM,IAAR,EAAA;AAAcub,QAAAA,MAAM,EAAE;AAAtB,OAAA,CAAZ;;AAEA0C,MAAAA,UAAU,CAACje,IAAD,EAAOiM,MAAP,CAAV;AACD,IAAA,CAvCkB;;AAAA,IAAA,IAAA,CAyCnBiS,SAzCmB,GAyCP,MAAM,IAAA,CAAK3S,QAAL,CAAc;AAAEvL,MAAAA,IAAI,EAAE,IAAA,CAAK5G,KAAL,CAAW4G;AAAnB,KAAd,CAzCC;;AAAA,IAAA,IAAA,CA2CnBme,QA3CmB,GA2CR,MAAM;AACf,MAAA,MAAM;AAAE1X,QAAAA;AAAF,OAAA,GAAe,KAAKrN,KAA1B;;AACA,MAAA,MAAMkH,CAAC,GAAA,QAAA,CAAA,EAAA,EAAQ,IAAA,CAAKgL,KAAL,CAAWtL,IAAnB,CAAP;;AAEA,MAAA,IAAA,CAAKuL,QAAL,CAAc;AAAEvL,QAAAA,IAAI,EAAEsM;AAAR,OAAd,EAAmC,MAAM;AACvC7F,QAAAA,QAAQ,CAAC,IAAA,CAAKrN,KAAL,CAAW4G,IAAZ,EAAkBM,CAAlB,CAAR;AACD,MAAA,CAFD,CAAA;AAGD,IAAA,CAlDkB;;AAEjB,IAAA,IAAA,CAAKgL,KAAL,GAAa,EAAb;AACD,EAAA;;AAiDDxS,EAAAA,MAAM,GAAG;AACP,IAAA,MAAM;AACJsR,MAAAA,kBADI;AAEJpK,MAAAA,IAFI;AAGJtB,MAAAA,UAHI;AAIJ4J,MAAAA,OAJI;AAKJiV,MAAAA,YALI;AAMJ/R,MAAAA,SANI;AAOJrB,MAAAA,gBAPI;AAQJU,MAAAA;AARI,KAAA,GASF,KAAKzR,KATT;AAUA,IAAA,MAAM;AAAE4G,MAAAA,IAAI,EAAEoe;AAAR,KAAA,GAAsB,KAAK9S,KAAjC;AAEA,IAAA,oBACE,KAAA,CAAA,aAAA,CAAC,aAAD,EAAA,QAAA,CAAA,EAAA,EACO8S,SAAS,IAAIpe,IADpB,EAAA;AAEE,MAAA,kBAAkB,EAAEoK,kBAFtB;AAGE,MAAA,QAAQ,EAAE,IAAA,CAAKyT,MAHjB;AAIE,MAAA,kBAAkB,EAAE,IAAA,CAAKE,gBAJ3B;AAKE,MAAA,aAAa,EAAE,IAAA,CAAKD,WALtB;AAME,MAAA,cAAc,EAAE,IAAA,CAAKE,YANvB;AAOE,MAAA,WAAW,EAAE,IAAA,CAAKE,SAPpB;AAQE,MAAA,UAAU,EAAE,IAAA,CAAKC,QARnB;AASE,MAAA,OAAO,EAAE7V,OATX;AAUE,MAAA,UAAU,EAAE5J,UAVd;AAWE,MAAA,YAAY,EAAE6e,YAXhB;AAYE,MAAA,SAAS,EAAE/R,SAZb;AAaE,MAAA,gBAAgB,EAAErB,gBAbpB;AAcE,MAAA,aAAa,EAAEU;AAdjB,KAAA,CAAA,CADF;AAkBD,EAAA;;AA3FoD;AAAlChS,YACZgB,yBACFuX;AACH1S,EAAAA,UAAU,EAAEtE,KAAK,CAACuJ,cAAN,CAAqBzJ;;AAHhBrB,YAMZyB,eAAe;;ACvTjB,MAAM+jB,eAAe,GAAG,CAAC1jB,KAAD,EAAQ4hB,GAAR,KAAgB;AAC7CA,EAAAA,GAAG,GAAGA,GAAG,IAAI,EAAb;;AAEA,EAAA,IAAIA,GAAG,CAACvgB,MAAJ,KAAe,CAAnB,EAAsB;AACpB,IAAA,OAAO;AAAES,MAAAA,MAAM,EAAE,CAAC9B,KAAD,CAAV;AAAmB4gB,MAAAA,MAAM,EAAE;AAA3B,KAAP;AACD,EAAA,CAFD,MAEO,IAAIgB,GAAG,CAACvgB,MAAJ,KAAe,CAAnB,EAAsB;AAC3B,IAAA,IAAImC,WAAW,CAACxD,KAAD,EAAQ4hB,GAAG,CAAC,CAAD,CAAX,CAAf,EAAgC;AAC9B,MAAA,OAAO;AAAE9f,QAAAA,MAAM,EAAE8f,GAAV;AAAehB,QAAAA,MAAM,EAAE;AAAvB,OAAP;AACD,IAAA,CAFD,MAEO;AACL,MAAA,OAAO;AAAE9e,QAAAA,MAAM,EAAE,CAAC,GAAG8f,GAAJ,EAAS5hB,KAAT,CAAV;AAA2B4gB,QAAAA,MAAM,EAAE;AAAnC,OAAP;AACD,IAAA;AACF,EAAA,CANM,MAMA,IAAIgB,GAAG,CAACvgB,MAAJ,IAAc,CAAlB,EAAqB;AAC1B,IAAA,MAAMuf,MAAM,GAAGpd,WAAW,CAACxD,KAAD,EAAQ4hB,GAAG,CAAC,CAAD,CAAX,CAA1B;;AAEA,IAAA,IAAIhB,MAAJ,EAAY;AACV,MAAA,OAAO;AAAE9e,QAAAA,MAAM,EAAE8f,GAAV;AAAehB,QAAAA;AAAf,OAAP;AACD,IAAA,CAFD,MAEO;AACL,MAAA,MAAM+C,QAAQ,GAAG,CAAC,CAAC/B,GAAG,CAAC5b,IAAJ,CAAUxD,CAAD,IAAOgB,WAAW,CAAChB,CAAD,EAAIxC,KAAJ,CAA3B,CAAnB;;AAEA,MAAA,IAAI2jB,QAAJ,EAAc;AACZ,QAAA,OAAO;AAAE7hB,UAAAA,MAAM,EAAE8f,GAAV;AAAehB,UAAAA,MAAM,EAAE;AAAvB,SAAP;AACD,MAAA,CAFD,MAEO;AACL,QAAA,OAAO;AAAE9e,UAAAA,MAAM,EAAE,CAAC,GAAG8f,GAAJ,EAAS5hB,KAAT,CAAV;AAA2B4gB,UAAAA,MAAM,EAAE;AAAnC,SAAP;AACD,MAAA;AACF,IAAA;AACF,EAAA;AACF,CA1BM;AA4BA,MAAMnP,MAAI,GAAG,OAAO;AACzBjM,EAAAA,IAAI,EAAE,SADmB;AAEzBtH,EAAAA,SAAS,EAAE8iB,WAFc;AAGzB7P,EAAAA,QAAQ,EAAE,CAACuK,IAAD,EAAOrW,IAAP,KAAgB;AACxB,IAAA,OAAA,QAAA,CAAA,EAAA,EAAYA,IAAZ,EAAA;AAAkBI,MAAAA,QAAQ,EAAE,KAA5B;AAAmCmb,MAAAA,MAAM,EAAE;AAA3C,KAAA,CAAA;AACD,EAAA,CALwB;AAMzBhP,EAAAA,QAAQ,EAAE,CAAC5R,KAAD,EAAQqF,IAAR,KAAiB;AACzB,IAAA,IAAI,CAACA,IAAL,EAAW;AACT,MAAA,OAAO;AACLG,QAAAA,IAAI,EAAE,SADD;AAEL1D,QAAAA,MAAM,EAAE,CAAC9B,KAAD,CAFH;AAGL4gB,QAAAA,MAAM,EAAE,KAHH;AAILnb,QAAAA,QAAQ,EAAE;AAJL,OAAP;AAMD,IAAA,CAPD,MAOO;AACL,MAAA,MAAM;AAAEmb,QAAAA,MAAF;AAAU9e,QAAAA;AAAV,OAAA,GAAqB4hB,eAAe,CAAC1jB,KAAD,EAAQqF,IAAI,CAACvD,MAAb,CAA1C;AAEA,MAAA,OAAA,QAAA,CAAA,EAAA,EAAYuD,IAAZ,EAAA;AAAkBub,QAAAA,MAAlB;AAA0B9e,QAAAA,MAA1B;AAAkC2D,QAAAA,QAAQ,EAAE,CAACmb;AAA7C,OAAA,CAAA;AACD,IAAA;AACF,EAAA;AAnBwB,CAAP,CAAb;;AC3BP,MAAM7R,KAAG,GAAGC,KAAK,CAAC,uBAAD,CAAjB;AAEA,MAAM4U,IAAI,GAAG5E,YAAY,CAAEvgB,KAAD,IAAW;AACnC,EAAA,MAAM;AAAEd,IAAAA,IAAF;AAAQwH,IAAAA,IAAR;AAAcpB,IAAAA;AAAd,GAAA,GAA6BtF,KAAnC;AACA,EAAA,MAAM;AAAEuF,IAAAA,MAAF;AAAUC,IAAAA;AAAV,GAAA,GAAoBF,UAA1B;AAEA,EAAA,MAAM;AAAE8f,IAAAA,SAAF;AAAaC,IAAAA;AAAb,GAAA,GAAsBC,mBAAmB,CAACpmB,IAAD,EAAOwH,IAAP,CAA/C;AACA,EAAA,MAAM+C,QAAQ,GAAG4b,IAAI,GAAGE,YAAxB;AAEAjV,EAAAA,KAAG,CAAC,wBAAD,EAA2B8U,SAA3B,EAAsC,OAAtC,EAA+CC,IAA/C,CAAH;AAEA,EAAA,MAAMnF,UAAU,GACdxZ,IAAI,IAAIA,IAAI,CAAC/G,CAAL,KAAWT,IAAI,CAACS,CAAxB,GACI,EADJ,GAEI6lB,eAAe,cACRjgB,MADQ,EAAA;AACApD,IAAAA,IAAI,EAAEsH;AADN,GAAA,CAAA,EAEbjE,KAFa,EAGbtG,IAHa,EAIbwH,IAJa,EAKb+e,IAAI,CAACL,SAAD,EAAYC,IAAZ,EAAkB;AAAEK,IAAAA,KAAK,EAAExmB,IAAI,CAACS,CAAd;AAAiBgmB,IAAAA,QAAQ,EAAEzmB,IAAI,CAACU;AAAhC,GAAlB,CALS,CAHrB;AAWA,EAAA,OAAO;AAAEV,IAAAA,IAAI,EAAEc,KAAK,CAACd,IAAd;AAAoBwH,IAAAA,IAAI,EAAE1G,KAAK,CAAC0G,IAAhC;AAAsCwZ,IAAAA;AAAtC,GAAP;AACD,CArBwB,CAAzB;AAuBA,MAAMzgB,WAAS,GAAGmgB,iBAAiB,CAACuF,IAAD,CAAnC;;ACzBA,MAAM7U,KAAG,GAAGC,KAAK,CAAC,uBAAD,CAAjB;AAEO,MAAMyC,MAAI,GAAG,OAAO;AACzBjM,EAAAA,IAAI,EAAE,MADmB;AAEzBtH,EAAAA,SAAS,EAAE0lB,WAFc;AAGzBzS,EAAAA,QAAQ,EAAE,CAACuK,IAAD,EAAOrW,IAAP,KAAgB;AACxB,IAAA,OAAA,QAAA,CAAA,EAAA,EAAYA,IAAZ,EAAA;AAAkBI,MAAAA,QAAQ,EAAE,KAA5B;AAAmCmb,MAAAA,MAAM,EAAE;AAA3C,KAAA,CAAA;AACD,EAAA,CALwB;AAMzBhP,EAAAA,QAAQ,EAAE,CAAC5R,KAAD,EAAQqF,IAAR,KAAiB;AACzB0J,IAAAA,KAAG,CAAC,2BAAD,EAA8B/O,KAA9B,EAAqC,QAArC,EAA+CqF,IAA/C,CAAH;;AACA,IAAA,IAAIA,IAAI,KAAK7B,WAAW,CAAC6B,IAAI,CAAC1H,IAAN,EAAYqC,KAAZ,CAAX,IAAiCqD,QAAQ,CAACgC,IAAI,CAAC1H,IAAN,EAAYqC,KAAZ,CAA9C,CAAR,EAA2E;AACzE,MAAA,OAAOqF,IAAP;AACD,IAAA;;AAED,IAAA,IAAI,CAACA,IAAL,EAAW;AACT,MAAA,OAAO;AACLG,QAAAA,IAAI,EAAE,MADD;AAEL7H,QAAAA,IAAI,EAAEqC,KAFD;AAGLmF,QAAAA,IAAI,EAAEwM,SAHD;AAILiP,QAAAA,MAAM,EAAE,KAJH;AAKLnb,QAAAA,QAAQ,EAAE;AALL,OAAP;AAOD,IAAA,CARD,MAQO,IAAIJ,IAAI,IAAI,CAACA,IAAI,CAAC1H,IAAlB,EAAwB;AAC7B,MAAA,MAAM,IAAImV,KAAJ,CAAU,+BAAV,CAAN;AACD,IAAA,CAFM,MAEA;AACL,MAAA,OAAA,QAAA,CAAA,EAAA,EAAYzN,IAAZ,EAAA;AAAkBF,QAAAA,IAAI,EAAEnF,KAAxB;AAA+B4gB,QAAAA,MAAM,EAAE,IAAvC;AAA6Cnb,QAAAA,QAAQ,EAAE;AAAvD,OAAA,CAAA;AACD,IAAA;AACF,EAAA;AAzBwB,CAAP,CAAb;;ACFP,MAAMsJ,KAAG,GAAGC,KAAK,CAAC,2BAAD,CAAjB;AAEA,MAAMqV,QAAQ,GAAGrF,YAAY,CAAEvgB,KAAD,IAAW;AACvC,EAAA,MAAM;AAAEd,IAAAA,IAAF;AAAQwH,IAAAA,IAAR;AAAcpB,IAAAA;AAAd,GAAA,GAA6BtF,KAAnC;AACA,EAAA,MAAM;AAAEuF,IAAAA,MAAF;AAAUC,IAAAA;AAAV,GAAA,GAAoBF,UAA1B;AAEA,EAAA,MAAM4a,UAAU,GACdxZ,IAAI,IAAIA,IAAI,CAAC/G,CAAL,KAAWT,IAAI,CAACS,CAAxB,GACI,EADJ,GAEI6lB,eAAe,CAACjgB,MAAD,EAASC,KAAT,EAAgBtG,IAAhB,EAAsBwH,IAAtB,EAA4Bmf,qBAAqB,CAAC3mB,IAAD,EAAOwH,IAAP,CAAjD,EAA+D,IAA/D,CAHrB;AAKA4J,EAAAA,KAAG,CAAC,aAAD,EAAgB4P,UAAhB,CAAH;AAEA,EAAA,OAAO;AAAEhhB,IAAAA,IAAI,EAAEc,KAAK,CAACd,IAAd;AAAoBwH,IAAAA,IAAI,EAAE1G,KAAK,CAAC0G,IAAhC;AAAsCwZ,IAAAA;AAAtC,GAAP;AACD,CAZ4B,CAA7B;AAcA,MAAMzgB,WAAS,GAAGmgB,iBAAiB,CAACgG,QAAD,CAAnC;;AChBA,MAAMtV,KAAG,GAAGC,KAAK,CAAC,2BAAD,CAAjB;AAEO,MAAMyC,MAAI,GAAG,OAAO;AACzBjM,EAAAA,IAAI,EAAE,UADmB;AAEzBtH,EAAAA,SAAS,EAAEmmB,WAFc;AAGzBlT,EAAAA,QAAQ,EAAE,CAACuK,IAAD,EAAOrW,IAAP,kBAAsBA,IAAtB,EAAA;AAA4BI,IAAAA,QAAQ,EAAE,KAAtC;AAA6Cmb,IAAAA,MAAM,EAAE;AAArD,GAAA,CAHe;AAIzBhP,EAAAA,QAAQ,EAAE,CAAC5R,KAAD,EAAQqF,IAAR,KAAiB;AACzB0J,IAAAA,KAAG,CAAC,+BAAD,EAAkC/O,KAAlC,EAAyC,QAAzC,EAAmDqF,IAAnD,CAAH;;AACA,IAAA,IAAIA,IAAI,KAAK7B,WAAW,CAAC6B,IAAI,CAAC1H,IAAN,EAAYqC,KAAZ,CAAX,IAAiCqD,QAAQ,CAACgC,IAAI,CAAC1H,IAAN,EAAYqC,KAAZ,CAA9C,CAAR,EAA2E;AACzE,MAAA,OAAOqF,IAAP;AACD,IAAA;;AAED,IAAA,IAAI,CAACA,IAAL,EAAW;AACT,MAAA,OAAO;AACLG,QAAAA,IAAI,EAAE,UADD;AAEL7H,QAAAA,IAAI,EAAEqC,KAFD;AAGLmF,QAAAA,IAAI,EAAEwM,SAHD;AAILiP,QAAAA,MAAM,EAAE,KAJH;AAKLnb,QAAAA,QAAQ,EAAE;AALL,OAAP;AAOD,IAAA,CARD,MAQO,IAAIJ,IAAI,IAAI,CAACA,IAAI,CAAC1H,IAAlB,EAAwB;AAC7B,MAAA,MAAM,IAAImV,KAAJ,CAAU,+BAAV,CAAN;AACD,IAAA,CAFM,MAEA;AACL,MAAA,OAAA,QAAA,CAAA,EAAA,EAAYzN,IAAZ,EAAA;AAAkBF,QAAAA,IAAI,EAAEnF,KAAxB;AAA+B4gB,QAAAA,MAAM,EAAE,IAAvC;AAA6Cnb,QAAAA,QAAQ,EAAE;AAAvD,OAAA,CAAA;AACD,IAAA;AACF,EAAA;AAvBwB,CAAP,CAAb;;;;ACGP,MAAM8e,YAAU,GAAI7mB,KAAD,KAAY;AAC7B6I,EAAAA,IAAI,EAAEmN,QAAM,CAACnN,IAAP,CAAY7I,KAAZ,CADuB;AAE7B8mB,EAAAA,YAAY,EAAE9Q,QAAM,CAAC7M,KAAP,CAAanJ,KAAb,CAFe;AAG7BkgB,EAAAA,aAAa,EAAElK,QAAM,CAACkK,aAAP,CAAqBlgB,KAArB,CAHc;AAI7ByN,EAAAA,QAAQ,EAAEuI,QAAM,CAACvI,QAAP,CAAgBzN,KAAhB,CAJmB;AAK7ByV,EAAAA,iBAAiB,EAAEO,QAAM,CAACP,iBAAP,CAAyBzV,KAAzB,CALU;AAM7B0V,EAAAA,OAAO,EAAEM,QAAM,CAACN,OAAP,CAAe1V,KAAf,EAAsB,QAAtB,CANoB;AAO7B+mB,EAAAA,YAAY,EAAE/Q,QAAM,CAACN,OAAP,CAAe1V,KAAf,CAPe;AAQ7B4V,EAAAA,SAAS,EAAEI,QAAM,CAACJ,SAAP,CAAiB5V,KAAjB,EAAwB,QAAxB,CARkB;AAS7BgnB,EAAAA,cAAc,EAAEhR,QAAM,CAACJ,SAAP,CAAiB5V,KAAjB,CATa;AAU7B8V,EAAAA,OAAO,EAAEE,QAAM,CAACF,OAAP,CAAe9V,KAAf,EAAsB,QAAtB,CAVoB;AAW7BinB,EAAAA,YAAY,EAAEjR,QAAM,CAACF,OAAP,CAAe9V,KAAf;AAXe,CAAZ,CAAnB;;AAcO,MAAMknB,WAAW,GAAInmB,KAAD,IAAW;AACpC,EAAA,MAAMomB,QAAQ,GAAGnP,MAAM,EAAvB;;AACA,EAAA,MAAM;AAAEnX,IAAAA,SAAF;AAAaD,IAAAA,OAAb;AAAsBwW,IAAAA,WAAtB;AAAmC3J,IAAAA,QAAnC;AAA6CpH,IAAAA,UAA7C;AAAyDrB,IAAAA,IAAzD;AAA+DC,IAAAA;AAA/D,GAAA,GAA+ElE,KAArF;AAAA,QAA4EwW,IAA5E,iCAAqFxW,KAArF,EAAAyW,WAAA,CAAA;;AACA,EAAA,MAAM;AAAE1W,IAAAA;AAAF,GAAA,GAAYuF,UAAlB;AACA,EAAA,MAAM;AAAEC,IAAAA,MAAF;AAAUC,IAAAA;AAAV,GAAA,GAAoBG,sBAAsB,CAACL,UAAD,CAAhD;AACA,EAAA,MAAM,CAAC+gB,KAAD,EAAQC,GAAR,CAAA,GAAexH,IAAI,CAACyH,KAAL,CAAWhhB,MAAX,EAAmBC,KAAnB,CAAA,CAA0BvB,IAA1B,EAAgCC,EAAhC,CAArB;AACA,EAAA,MAAMsiB,MAAM,GAAGnQ,WAAW,IAAK3J,QAAQ,IAAI,UAA5B,IAA2C,SAA1D;AAEA,EAAA,oBACE,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,IAAA,eACE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,IAAA,eACE,KAAA,CAAA,aAAA,CAAC,WAAD,EAAA;AACE,IAAA,IAAI,EAAErH,mBAAmB,CAACC,UAAD,CAAnB,GAAkC,CAAlC,GAAsC,CAD9C;AAEE,IAAA,EAAE,EAAG,CAAA,EAAEtF,KAAK,CAAComB,QAAN,IAAkBA,QAAS,CAAA,CAAA,EAAGI,MAAO,CAAA,CAF9C;AAGE,IAAA,SAAS,EAAEtmB,UAAU,CAACL,OAAO,CAAE,CAAA,EAAE2mB,MAAO,CAAA,KAAA,CAAX,CAAR;AAHvB,GAAA,CADF,CADF,eAQE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,QAAA,CAAA;AACE,IAAA,EAAE,EAAEzmB,KAAK,CAACJ,CAAN,CAAQ0mB,KAAK,CAAC1mB,CAAd,CADN;AAEE,IAAA,EAAE,EAAEI,KAAK,CAACH,CAAN,CAAQymB,KAAK,CAACzmB,CAAd,CAFN;AAGE,IAAA,EAAE,EAAEG,KAAK,CAACJ,CAAN,CAAQ2mB,GAAG,CAAC3mB,CAAZ,CAHN;AAIE,IAAA,EAAE,EAAEI,KAAK,CAACH,CAAN,CAAQ0mB,GAAG,CAAC1mB,CAAZ,CAJN;AAKE,IAAA,SAAS,EAAEM,UAAU,CAACL,OAAO,CAACiI,IAAT,EAAe4E,QAAQ,IAAI7M,OAAO,CAAC6U,iBAAnC,EAAsD7U,OAAO,CAACwW,WAAD,CAA7D,EAA4EvW,SAA5E,CALvB;AAME,IAAA,SAAS,EAAG,CAAA,KAAA,EAAOE,KAAK,CAAComB,QAAN,IAAkBA,QAAS,CAAA,CAAA,EAAGI,MAAO,CAAA,CAAA,CAN1D;AAOE,IAAA,WAAW,EAAG,CAAA,KAAA,EAAOxmB,KAAK,CAAComB,QAAN,IAAkBA,QAAS,CAAA,CAAA,EAAGI,MAAO,CAAA,CAAA;AAP5D,GAAA,EAQMhQ,IARN,EARF,CADF;AAqBD,CA7BM;AA+BP2P,WAAW,CAAC1lB,SAAZ,GAAwB;AACtBX,EAAAA,SAAS,EAAEY,SAAS,CAACK,MADC;AAEtBlB,EAAAA,OAAO,EAAEa,SAAS,CAACG,MAFG;AAGtBwV,EAAAA,WAAW,EAAE3V,SAAS,CAACK,MAHD;AAItB2L,EAAAA,QAAQ,EAAEhM,SAAS,CAACiM,IAJE;AAKtBrH,EAAAA,UAAU,EAAEtE,KAAK,CAACuJ,cALI;AAMtBtG,EAAAA,IAAI,EAAEjD,KAAK,CAACuc,SANU;AAOtBrZ,EAAAA,EAAE,EAAElD,KAAK,CAACuc,SAPY;AAQtB6I,EAAAA,QAAQ,EAAE1lB,SAAS,CAACK;AARE,CAAxB;AAWA,MAAM0lB,iBAAiB,GAAGtlB,UAAU,CAAC2kB,YAAD,CAAV,CAAuBK,WAAvB,CAA1B;AAEA,MAAMrE,MAAI,GAAG7D,QAAQ,CAACwI,iBAAD,CAArB;AACA,MAAMhnB,WAAS,GAAGke,iBAAiB,CAACmE,MAAD,CAAnC;;ACjEO,MAAM9O,MAAI,GAAG0K,QAAQ,CAAC,MAAD,EAASoE,WAAT,CAArB;;;;ACKP,MAAMgE,YAAU,GAAI7mB,KAAD,KAAY;AAC7B6I,EAAAA,IAAI,EAAEmN,QAAM,CAACnN,IAAP,CAAY7I,KAAZ,CADuB;AAE7ByN,EAAAA,QAAQ,EAAEuI,QAAM,CAACvI,QAAP,CAAgBzN,KAAhB,CAFmB;AAG7ByV,EAAAA,iBAAiB,EAAEO,QAAM,CAACP,iBAAP,CAAyBzV,KAAzB,CAHU;AAI7B0V,EAAAA,OAAO,EAAEM,QAAM,CAACN,OAAP,CAAe1V,KAAf,EAAsB,QAAtB,CAJoB;AAK7B4V,EAAAA,SAAS,EAAEI,QAAM,CAACJ,SAAP,CAAiB5V,KAAjB,EAAwB,QAAxB,CALkB;AAM7B8V,EAAAA,OAAO,EAAEE,QAAM,CAACF,OAAP,CAAe9V,KAAf,EAAsB,QAAtB;AANoB,CAAZ,CAAnB;;AAQO,MAAM6iB,MAAI,GAAI9hB,KAAD,IAAW;AAC7B,EAAA,MAAM;AAAEF,IAAAA,SAAF;AAAaD,IAAAA,OAAb;AAAsBwW,IAAAA,WAAtB;AAAmC3J,IAAAA,QAAnC;AAA6CpH,IAAAA,UAA7C;AAAyDrB,IAAAA,IAAzD;AAA+DC,IAAAA;AAA/D,GAAA,GAA+ElE,KAArF;AAAA,QAA4EwW,IAA5E,iCAAqFxW,KAArF,EAAAyW,WAAA,CAAA;;AACA,EAAA,MAAM;AAAE1W,IAAAA;AAAF,GAAA,GAAYuF,UAAlB;AAEA,EAAA,oBACE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,QAAA,CAAA;AACE,IAAA,MAAM,EAAC,OADT;AAEE,IAAA,WAAW,EAAC,GAFd;AAGE,IAAA,EAAE,EAAEvF,KAAK,CAACJ,CAAN,CAAQsE,IAAI,CAACtE,CAAb,CAHN;AAIE,IAAA,EAAE,EAAEI,KAAK,CAACH,CAAN,CAAQqE,IAAI,CAACrE,CAAb,CAJN;AAKE,IAAA,EAAE,EAAEG,KAAK,CAACJ,CAAN,CAAQuE,EAAE,CAACvE,CAAX,CALN;AAME,IAAA,EAAE,EAAEI,KAAK,CAACH,CAAN,CAAQsE,EAAE,CAACtE,CAAX,CANN;AAOE,IAAA,SAAS,EAAEM,UAAU,CAACL,OAAO,CAACiI,IAAT,EAAe4E,QAAQ,IAAI7M,OAAO,CAAC6U,iBAAnC,EAAsD7U,OAAO,CAACwW,WAAD,CAA7D,EAA4EvW,SAA5E;AAPvB,GAAA,EAQM0W,IARN,CAAA,CADF;AAYD,CAhBM;AAkBPsL,MAAI,CAACrhB,SAAL,GAAiB;AACfX,EAAAA,SAAS,EAAEY,SAAS,CAACK,MADN;AAEflB,EAAAA,OAAO,EAAEa,SAAS,CAACG,MAFJ;AAGfwV,EAAAA,WAAW,EAAE3V,SAAS,CAACK,MAHR;AAIf2L,EAAAA,QAAQ,EAAEhM,SAAS,CAACiM,IAJL;AAKfrH,EAAAA,UAAU,EAAE5E,SAAS,CAACuX,GALP;AAMfhU,EAAAA,IAAI,EAAEjD,KAAK,CAACuc,SANG;AAOfrZ,EAAAA,EAAE,EAAElD,KAAK,CAACuc;AAPK,CAAjB;AAUA,MAAMmJ,YAAU,GAAGvlB,UAAU,CAAC2kB,YAAD,CAAV,CAAuBhE,MAAvB,CAAnB;AACA,MAAM6E,OAAO,GAAG1I,QAAQ,CAACyI,YAAD,CAAxB;AACA,MAAMjnB,WAAS,GAAGke,iBAAiB,CAACgJ,OAAD,CAAnC;;AC3CO,MAAM3T,MAAI,GAAG0K,QAAQ,CAAC,SAAD,EAAYiJ,WAAZ,CAArB;;;;ACMP,MAAMC,SAAS,GAAI3nB,KAAD,KAAY;AAC5B6I,EAAAA,IAAI,EAAEmN,QAAM,CAACnN,IAAP,CAAY7I,KAAZ,CADsB;AAE5B8mB,EAAAA,YAAY,EAAE9Q,QAAM,CAAC7M,KAAP,CAAanJ,KAAb,CAFc;AAG5BkgB,EAAAA,aAAa,EAAElK,QAAM,CAACkK,aAAP,CAAqBlgB,KAArB,CAHa;AAI5ByN,EAAAA,QAAQ,EAAEuI,QAAM,CAACvI,QAAP,CAAgBzN,KAAhB,CAJkB;AAK5ByV,EAAAA,iBAAiB,EAAEO,QAAM,CAACP,iBAAP,CAAyBzV,KAAzB,CALS;AAM5B0V,EAAAA,OAAO,EAAEM,QAAM,CAACN,OAAP,CAAe1V,KAAf,EAAsB,QAAtB,CANmB;AAO5B+mB,EAAAA,YAAY,EAAE/Q,QAAM,CAACN,OAAP,CAAe1V,KAAf,CAPc;AAQ5B4V,EAAAA,SAAS,EAAEI,QAAM,CAACJ,SAAP,CAAiB5V,KAAjB,EAAwB,QAAxB,CARiB;AAS5BgnB,EAAAA,cAAc,EAAEhR,QAAM,CAACJ,SAAP,CAAiB5V,KAAjB,CATY;AAU5B8V,EAAAA,OAAO,EAAEE,QAAM,CAACF,OAAP,CAAe9V,KAAf,EAAsB,QAAtB,CAVmB;AAW5BinB,EAAAA,YAAY,EAAEjR,QAAM,CAACF,OAAP,CAAe9V,KAAf;AAXc,CAAZ,CAAlB;;AAcO,MAAM4nB,OAAO,GAAI7mB,KAAD,IAAW;AAChC,EAAA,MAAMomB,QAAQ,GAAGnP,MAAM,EAAvB;;AACA,EAAA,MAAM;AAAE3R,IAAAA,UAAF;AAAcrB,IAAAA,IAAd;AAAoBC,IAAAA,EAApB;AAAwBrE,IAAAA,OAAxB;AAAiC6M,IAAAA,QAAjC;AAA2C2J,IAAAA,WAA3C;AAAwDvW,IAAAA;AAAxD,GAAA,GAA+EE,KAArF;AAAA,QAA4EwW,IAA5E,iCAAqFxW,KAArF,EAAAyW,WAAA,CAAA;;AACA,EAAA,MAAM;AAAE1W,IAAAA;AAAF,GAAA,GAAYuF,UAAlB;AACA,EAAA,MAAM;AAAEC,IAAAA,MAAF;AAAUC,IAAAA;AAAV,GAAA,GAAoBG,sBAAsB,CAACL,UAAD,CAAhD;AACA,EAAA,MAAM,CAACwhB,IAAD,CAAA,GAAShI,IAAI,CAACyH,KAAL,CAAWhhB,MAAX,EAAmBC,KAAnB,CAAA,CAA0BvB,IAA1B,EAAgCC,EAAhC,CAAf;AACA,EAAA,MAAMsiB,MAAM,GAAGnQ,WAAW,IAAK3J,QAAQ,IAAI,UAA5B,IAA2C,SAA1D;AAEA,EAAA,oBACE,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,IAAA,eACE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,IAAA,eACE,KAAA,CAAA,aAAA,CAAC,WAAD,EAAA;AACE,IAAA,IAAI,EAAErH,mBAAmB,CAACC,UAAD,CAAnB,GAAkC,CAAlC,GAAsC,CAD9C;AAEE,IAAA,EAAE,EAAG,CAAA,EAAEtF,KAAK,CAAComB,QAAN,IAAkBA,QAAS,CAAA,CAAA,EAAGI,MAAO,CAAA,CAF9C;AAGE,IAAA,SAAS,EAAEtmB,UAAU,CAACL,OAAO,CAAE,CAAA,EAAE2mB,MAAO,CAAA,KAAA,CAAX,CAAR;AAHvB,GAAA,CADF,CADF,eAQE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,QAAA,CAAA;AACE,IAAA,EAAE,EAAEzmB,KAAK,CAACJ,CAAN,CAAQsE,IAAI,CAACtE,CAAb,CADN;AAEE,IAAA,EAAE,EAAEI,KAAK,CAACH,CAAN,CAAQqE,IAAI,CAACrE,CAAb,CAFN;AAGE,IAAA,EAAE,EAAEG,KAAK,CAACJ,CAAN,CAAQmnB,IAAI,CAACnnB,CAAb,CAHN;AAIE,IAAA,EAAE,EAAEI,KAAK,CAACH,CAAN,CAAQknB,IAAI,CAAClnB,CAAb;AAJN,GAAA,EAKM4W,IALN,EAAA;AAME,IAAA,SAAS,EAAEtW,UAAU,CAACL,OAAO,CAACiI,IAAT,EAAe4E,QAAQ,IAAI7M,OAAO,CAAC6U,iBAAnC,EAAsD7U,OAAO,CAACwW,WAAD,CAA7D,EAA4EvW,SAA5E,CANvB;AAOE,IAAA,SAAS,EAAG,CAAA,KAAA,EAAOE,KAAK,CAAComB,QAAN,IAAkBA,QAAS,CAAA,CAAA,EAAGI,MAAO,CAAA,CAAA;AAP1D,GAAA,CAAA,CARF,CADF;AAoBD,CA5BM;AA8BPK,OAAO,CAACpmB,SAAR,GAAoB;AAClBZ,EAAAA,OAAO,EAAEa,SAAS,CAACG,MADD;AAElBf,EAAAA,SAAS,EAAEY,SAAS,CAACK,MAFH;AAGlB2L,EAAAA,QAAQ,EAAEhM,SAAS,CAACiM,IAHF;AAIlB0J,EAAAA,WAAW,EAAE3V,SAAS,CAACK,MAJL;AAKlBuE,EAAAA,UAAU,EAAE5E,SAAS,CAACuX,GALJ;AAMlBhU,EAAAA,IAAI,EAAEjD,KAAK,CAACuc,SANM;AAOlBrZ,EAAAA,EAAE,EAAElD,KAAK,CAACuc,SAPQ;AAQlB6I,EAAAA,QAAQ,EAAE1lB,SAAS,CAACK;AARF,CAApB;AAWA,MAAMgmB,SAAS,GAAG5lB,UAAU,CAACylB,SAAD,CAAV,CAAsBC,OAAtB,CAAlB;AAEA,MAAMG,GAAG,GAAG/I,QAAQ,CAAC8I,SAAD,CAApB;AACA,MAAMtnB,WAAS,GAAGke,iBAAiB,CAACqJ,GAAD,CAAnC;;AChEO,MAAMhU,MAAI,GAAG0K,QAAQ,CAAC,KAAD,EAAQsJ,WAAR,CAArB;;;;ACMP,MAAMlB,UAAU,GAAI7mB,KAAD,KAAY;AAC7B6I,EAAAA,IAAI,EAAEmN,QAAM,CAACnN,IAAP,CAAY7I,KAAZ,CADuB;AAE7ByN,EAAAA,QAAQ,EAAEuI,QAAM,CAACvI,QAAP,CAAgBzN,KAAhB,CAFmB;AAG7ByV,EAAAA,iBAAiB,EAAEO,QAAM,CAACP,iBAAP,CAAyBzV,KAAzB,CAHU;AAI7B0V,EAAAA,OAAO,EAAEM,QAAM,CAACN,OAAP,CAAe1V,KAAf,EAAsB,QAAtB,CAJoB;AAK7B4V,EAAAA,SAAS,EAAEI,QAAM,CAACJ,SAAP,CAAiB5V,KAAjB,EAAwB,QAAxB,CALkB;AAM7B8V,EAAAA,OAAO,EAAEE,QAAM,CAACF,OAAP,CAAe9V,KAAf,EAAsB,QAAtB;AANoB,CAAZ,CAAnB;;AASO,MAAM6iB,IAAI,GAAI9hB,KAAD,IAAW;AAC7B,EAAA,MAAM;AACJF,IAAAA,SADI;AAEJD,IAAAA,OAFI;AAGJ6M,IAAAA,QAHI;AAIJ2J,IAAAA,WAJI;AAKJ/Q,IAAAA,UAAU,EAAE;AAAEvF,MAAAA;AAAF,KALR;AAMJkE,IAAAA,IANI;AAOJC,IAAAA;AAPI,GAAA,GASFlE,KATJ;AAAA,QAQKwW,IARL,iCASIxW,KATJ,EAAAyW,WAAA,CAAA;;AAUA,EAAA,MAAMwQ,UAAU,GAAG;AAAEtnB,IAAAA,CAAC,EAAEI,KAAK,CAACJ,CAAN,CAAQsE,IAAI,CAACtE,CAAb,CAAL;AAAsBC,IAAAA,CAAC,EAAEG,KAAK,CAACH,CAAN,CAAQqE,IAAI,CAACrE,CAAb;AAAzB,GAAnB;AACA,EAAA,MAAMsnB,QAAQ,GAAG;AAAEvnB,IAAAA,CAAC,EAAEI,KAAK,CAACJ,CAAN,CAAQuE,EAAE,CAACvE,CAAX,CAAL;AAAoBC,IAAAA,CAAC,EAAEG,KAAK,CAACH,CAAN,CAAQsE,EAAE,CAACtE,CAAX;AAAvB,GAAjB;AACA,EAAA,MAAMgD,MAAM,GAAGoD,2BAA2B,CAACihB,UAAD,EAAaC,QAAb,CAA1C;AAEA,EAAA,oBACE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,QAAA,CAAA;AACE,IAAA,SAAS,EAAEhnB,UAAU,CAACL,OAAO,CAACiI,IAAT,EAAe4E,QAAQ,IAAI7M,OAAO,CAAC6U,iBAAnC,EAAsD7U,OAAO,CAACwW,WAAD,CAA7D,EAA4EvW,SAA5E,CADvB;AAEE,IAAA,EAAE,EAAEmnB,UAAU,CAACtnB,CAFjB;AAGE,IAAA,EAAE,EAAEsnB,UAAU,CAACrnB,CAHjB;AAIE,IAAA,EAAE,EAAEsnB,QAAQ,CAACvnB,CAJf;AAKE,IAAA,EAAE,EAAEunB,QAAQ,CAACtnB,CALf;AAME,IAAA,eAAe,EAAEgD,MAAM,GAAG;AAN5B,GAAA,EAOM4T,IAPN,CAAA,CADF;AAWD,CA1BM;AA4BPsL,IAAI,CAACrhB,SAAL,GAAiB;AACfX,EAAAA,SAAS,EAAEY,SAAS,CAACK,MADN;AAEflB,EAAAA,OAAO,EAAEa,SAAS,CAACG,MAFJ;AAGf6L,EAAAA,QAAQ,EAAEhM,SAAS,CAACiM,IAHL;AAIf0J,EAAAA,WAAW,EAAE3V,SAAS,CAACK,MAJR;AAKfuE,EAAAA,UAAU,EAAE5E,SAAS,CAACuX,GALP;AAMfhU,EAAAA,IAAI,EAAEjD,KAAK,CAACuc,SANG;AAOfrZ,EAAAA,EAAE,EAAElD,KAAK,CAACuc;AAPK,CAAjB;AAUA,MAAMmJ,UAAU,GAAGvlB,UAAU,CAAC2kB,UAAD,CAAV,CAAuBhE,IAAvB,CAAnB;AACA,MAAMqF,MAAM,GAAGlJ,QAAQ,CAACyI,UAAD,EAAa;AAAExiB,EAAAA,EAAE,EAAE3E;AAAN,CAAb,CAAvB;AACA,MAAME,WAAS,GAAGke,iBAAiB,CAACwJ,MAAD,CAAnC;;ACvDO,MAAMnU,MAAI,GAAG0K,QAAQ,CAAC,QAAD,EAAWyJ,WAAX,CAArB;;ACCP,MAAM7W,KAAG,GAAGC,KAAK,CAAC,2BAAD,CAAjB;AAEA,MAAM6W,QAAQ,GAAG7G,YAAY,CAAEvgB,KAAD,IAAW;AACvC,EAAA,MAAM;AAAEd,IAAAA,IAAF;AAAQwH,IAAAA,IAAR;AAAcpB,IAAAA;AAAd,GAAA,GAA6BtF,KAAnC;AACA,EAAA,MAAM;AAAEuF,IAAAA,MAAF;AAAUC,IAAAA;AAAV,GAAA,GAAoBF,UAA1B;AAEA,EAAA,MAAM4a,UAAU,GACdxZ,IAAI,IAAIA,IAAI,CAAC/G,CAAL,KAAWT,IAAI,CAACS,CAAxB,GACI,EADJ,GAEI6lB,eAAe,CAACjgB,MAAD,EAASC,KAAT,EAAgBtG,IAAhB,EAAsBwH,IAAtB,EAA4B2gB,qBAAqB,CAACnoB,IAAD,EAAOwH,IAAP,CAAjD,EAA+D,IAA/D,CAHrB;AAKA4J,EAAAA,KAAG,CAAC,aAAD,EAAgB4P,UAAhB,CAAH;AAEA,EAAA,OAAO;AAAEhhB,IAAAA,IAAI,EAAEc,KAAK,CAACd,IAAd;AAAoBwH,IAAAA,IAAI,EAAE1G,KAAK,CAAC0G,IAAhC;AAAsCwZ,IAAAA,UAAtC;AAAkDC,IAAAA,WAAW,EAAE;AAA/D,GAAP;AACD,CAZ4B,CAA7B;AAcA,MAAM1gB,WAAS,GAAGmgB,iBAAiB,CAACwH,QAAD,CAAnC;;AChBA,MAAM9W,KAAG,GAAGC,KAAK,CAAC,2BAAD,CAAjB;AAEO,MAAMyC,MAAI,GAAG,OAAO;AACzBjM,EAAAA,IAAI,EAAE,UADmB;AAEzBtH,EAAAA,SAAS,EAAE2nB,WAFc;AAGzB1U,EAAAA,QAAQ,EAAE,CAACuK,IAAD,EAAOrW,IAAP,kBAAsBA,IAAtB,EAAA;AAA4BI,IAAAA,QAAQ,EAAE,KAAtC;AAA6Cmb,IAAAA,MAAM,EAAE;AAArD,GAAA,CAHe;AAIzBhP,EAAAA,QAAQ,EAAE,CAAC5R,KAAD,EAAQqF,IAAR,KAAiB;AACzB0J,IAAAA,KAAG,CAAC,+BAAD,EAAkC/O,KAAlC,EAAyC,QAAzC,EAAmDqF,IAAnD,CAAH;;AACA,IAAA,IAAIA,IAAI,KAAK7B,WAAW,CAAC6B,IAAI,CAAC1H,IAAN,EAAYqC,KAAZ,CAAX,IAAiCqD,QAAQ,CAACgC,IAAI,CAAC1H,IAAN,EAAYqC,KAAZ,CAA9C,CAAR,EAA2E;AACzE,MAAA,OAAOqF,IAAP;AACD,IAAA;;AAED,IAAA,IAAI,CAACA,IAAL,EAAW;AACT,MAAA,OAAO;AACLG,QAAAA,IAAI,EAAE,UADD;AAEL7H,QAAAA,IAAI,EAAEqC,KAFD;AAGLmF,QAAAA,IAAI,EAAEwM,SAHD;AAILiP,QAAAA,MAAM,EAAE,KAJH;AAKLnb,QAAAA,QAAQ,EAAE;AALL,OAAP;AAOD,IAAA,CARD,MAQO,IAAIJ,IAAI,IAAI,CAACA,IAAI,CAAC1H,IAAlB,EAAwB;AAC7B,MAAA,MAAM,IAAImV,KAAJ,CAAU,+BAAV,CAAN;AACD,IAAA,CAFM,MAEA;AACL,MAAA,OAAA,QAAA,CAAA,EAAA,EAAYzN,IAAZ,EAAA;AAAkBF,QAAAA,IAAI,EAAEnF,KAAxB;AAA+B4gB,QAAAA,MAAM,EAAE,IAAvC;AAA6Cnb,QAAAA,QAAQ,EAAE;AAAvD,OAAA,CAAA;AACD,IAAA;AACF,EAAA;AAvBwB,CAAP,CAAb;;ACFP,MAAMsJ,KAAG,GAAGC,KAAK,CAAC,8BAAD,CAAjB;AAEA,MAAM+W,WAAW,GAAG/G,YAAY,CAAEvgB,KAAD,IAAW;AAC1C,EAAA,MAAM;AAAEd,IAAAA,IAAF;AAAQwH,IAAAA,IAAR;AAAcpB,IAAAA;AAAd,GAAA,GAA6BtF,KAAnC;AACA,EAAA,MAAM;AAAEuF,IAAAA,MAAF;AAAUC,IAAAA;AAAV,GAAA,GAAoBF,UAA1B;AAEA,EAAA,MAAM4a,UAAU,GACdxZ,IAAI,IAAIA,IAAI,CAAC/G,CAAL,KAAWT,IAAI,CAACS,CAAxB,GACI,EADJ,GAEI6lB,eAAe,CAACjgB,MAAD,EAASC,KAAT,EAAgBtG,IAAhB,EAAsBwH,IAAtB,EAA4B6gB,wBAAwB,CAACroB,IAAD,EAAOwH,IAAP,CAApD,EAAkE,IAAlE,CAHrB;AAKA4J,EAAAA,KAAG,CAAC,aAAD,EAAgB4P,UAAhB,CAAH;AAEA,EAAA,OAAO;AAAEhhB,IAAAA,IAAI,EAAEc,KAAK,CAACd,IAAd;AAAoBwH,IAAAA,IAAI,EAAE1G,KAAK,CAAC0G,IAAhC;AAAsCwZ,IAAAA;AAAtC,GAAP;AACD,CAZ+B,CAAhC;AAcA,MAAMzgB,SAAS,GAAGmgB,iBAAiB,CAAC0H,WAAD,CAAnC;;AChBA,MAAMhX,GAAG,GAAGC,KAAK,CAAC,8BAAD,CAAjB;AAEO,MAAMyC,IAAI,GAAG,OAAO;AACzBjM,EAAAA,IAAI,EAAE,aADmB;AAEzBtH,EAAAA,SAAS,EAAE6nB,SAFc;AAGzB5U,EAAAA,QAAQ,EAAE,CAACuK,IAAD,EAAOrW,IAAP,kBAAsBA,IAAtB,EAAA;AAA4BI,IAAAA,QAAQ,EAAE,KAAtC;AAA6Cmb,IAAAA,MAAM,EAAE;AAArD,GAAA,CAHe;AAIzBhP,EAAAA,QAAQ,EAAE,CAAC5R,KAAD,EAAQqF,IAAR,KAAiB;AACzB0J,IAAAA,GAAG,CAAC,kCAAD,EAAqC/O,KAArC,EAA4C,QAA5C,EAAsDqF,IAAtD,CAAH;;AACA,IAAA,IAAIA,IAAI,KAAK7B,WAAW,CAAC6B,IAAI,CAAC1H,IAAN,EAAYqC,KAAZ,CAAX,IAAiCqD,QAAQ,CAACgC,IAAI,CAAC1H,IAAN,EAAYqC,KAAZ,CAA9C,CAAR,EAA2E;AACzE,MAAA,OAAOqF,IAAP;AACD,IAAA;;AAED,IAAA,IAAIA,IAAI,IAAIA,IAAI,CAAC1H,IAAL,CAAUU,CAAV,GAAc2B,KAAK,CAAC3B,CAApB,GAAwB,CAApC,EAAuC;AACrC,MAAA,OAAOgH,IAAP;AACD,IAAA;;AAED,IAAA,IAAIrF,KAAK,CAAC3B,CAAN,KAAY,CAAhB,EAAmB;AACjB,MAAA,OAAOgH,IAAP;AACD,IAAA;;AAED,IAAA,IAAI,CAACA,IAAL,EAAW;AACT,MAAA,OAAO;AACLG,QAAAA,IAAI,EAAE,aADD;AAEL7H,QAAAA,IAAI,EAAEqC,KAFD;AAGLmF,QAAAA,IAAI,EAAEwM,SAHD;AAILiP,QAAAA,MAAM,EAAE,KAJH;AAKLnb,QAAAA,QAAQ,EAAE;AALL,OAAP;AAOD,IAAA,CARD,MAQO,IAAIJ,IAAI,IAAI,CAACA,IAAI,CAAC1H,IAAlB,EAAwB;AAC7B,MAAA,MAAM,IAAImV,KAAJ,CAAU,+BAAV,CAAN;AACD,IAAA,CAFM,MAEA;AACL,MAAA,OAAA,QAAA,CAAA,EAAA,EAAYzN,IAAZ,EAAA;AAAkBF,QAAAA,IAAI,EAAEnF,KAAxB;AAA+B4gB,QAAAA,MAAM,EAAE,IAAvC;AAA6Cnb,QAAAA,QAAQ,EAAE;AAAvD,OAAA,CAAA;AACD,IAAA;AACF,EAAA;AA/BwB,CAAP,CAAb;;ACMP,MAAMwgB,QAAQ,GAAG,CACf,QADe,EAEf,MAFe,EAGf,OAHe,EAIf,UAJe,EAKf,OALe,EAMf,SANe,EAOf,KAPe,EAQf,SARe,EASf,MATe,EAUf,QAVe,EAWf,UAXe,EAYf,aAZe,CAAjB;;AAgBA,MAAMC,SAAS,GAAG;AAChB1gB,EAAAA,IAAI,EAAE;AADU,CAAlB;AAIA,MAAM2gB,QAAQ,GAAG,CACfC,MAAM,EADS,EAEf7f,MAAI,EAFW,EAGf8f,MAAQ,EAHO,EAIfrmB,MAAK,EAJU,EAKfsmB,MAAO,EALQ,EAMfC,MAAG,EANY,EAOfC,MAAO,EAPQ,EAQfC,MAAI,EARW,EASfjR,MAAM,EATS,EAUfkR,MAAQ,EAVO,EAWfC,IAAW,EAXI,EAYfT,SAZe,CAAjB;;;;;;;;;;;;;;;;;;ACtBA,MAAM;AAAEU,cAAAA;AAAF,CAAA,GAAiBC,UAAvB;;AAEA,MAAMC,YAAY,GAAG,OAAO;AAC1BnpB,EAAAA,IAAI,EAAE;AACJ8I,IAAAA,KAAK,EAAEA,KAAK,CAACoF,IAAN;AADH,GADoB;AAI1Bkb,EAAAA,QAAQ,EAAE;AACRlP,IAAAA,eAAe,EAAEpR,KAAK,CAACoN,UAAN,EADT;AAERmE,IAAAA,MAAM,EAAG,CAAA,UAAA,EAAYvR,KAAK,CAACugB,SAAN,EAAkB,CAAA;AAF/B,GAJgB;AAQ1BC,EAAAA,WAAW,EAAE;AACX,IAAA,QAAA,EAAU;AACRxgB,MAAAA,KAAK,EAAEA,KAAK,CAACya,OAAN;AADC,KADC;AAIXrJ,IAAAA,eAAe,EAAEpR,KAAK,CAACoN,UAAN;AAJN,GARa;AAc1B1I,EAAAA,QAAQ,EAAE;AACR,IAAA,QAAA,EAAU;AACR1E,MAAAA,KAAK,EAAEA,KAAK,CAACya,OAAN;AADC,KADF;AAIRrJ,IAAAA,eAAe,EAAEpR,KAAK,CAAC0E,QAAN;AAJT;AAdgB,CAAP,CAArB;;AAsBO,MAAM+b,UAAU,GAAGtnB,UAAU,CAACknB,YAAD,CAAV,CAA0BroB,KAAD,IAAW;AAC5D,EAAA,MAAM;AAAE0M,IAAAA,QAAF;AAAY7M,IAAAA,OAAZ;AAAqBC,IAAAA,SAArB;AAAgCwoB,IAAAA,QAAhC;AAA0Cje,IAAAA,KAA1C;AAAiD6E,IAAAA,OAAjD;AAA0DwZ,IAAAA;AAA1D,GAAA,GAAuE1oB,KAA7E;AACA,EAAA,MAAM2oB,aAAa,GAAGte,KAAK,CAACue,WAAN,EAAtB;AAEA,EAAA,oBACE,oBAAC,MAAD,EAAA;AACE,IAAA,IAAI,EAAC,OADP;AAEE,IAAA,QAAQ,EAAElc,QAFZ;AAGE,IAAA,SAAS,EAAEiB,UAAE,CAAC9N,OAAO,CAACX,IAAT,EAAeopB,QAAQ,IAAIzoB,OAAO,CAACyoB,QAAnC,EAA6CxoB,SAA7C,CAHf;AAIE,IAAA,OAAO,EAAE;AAAE4M,MAAAA,QAAQ,EAAEiB,UAAE,CAACjB,QAAQ,IAAI7M,OAAO,CAAC6M,QAArB;AAAd,KAJX;AAKE,IAAA,KAAK,EAAErC,KALT;AAME,IAAA,GAAG,EAAEA,KANP;AAOE,IAAA,OAAO,EAAC,UAPV;AAQE,IAAA,OAAO,EAAG0Q,CAAD,IAAO7L,OAAO,cAAM6L,CAAN,EAAA;AAAS8N,MAAAA,WAAW,EAAExe;AAAtB,KAAA,CAAA;AARzB,GAAA,EAUG8d,YAAU,CAACpb,CAAX,CAAc,CAAA,SAAA,EAAW4b,aAAc,EAAvC,EAA0C;AAAEG,IAAAA,GAAG,EAAEJ;AAAP,GAA1C,CAVH,CADF;AAcD,CAlByB,CAAnB;AAoBPD,UAAU,CAAChoB,SAAX,GAAuB;AACrBiM,EAAAA,QAAQ,EAAEhM,SAAS,CAACiM,IADC;AAErB9M,EAAAA,OAAO,EAAEa,SAAS,CAACG,MAFE;AAGrBf,EAAAA,SAAS,EAAEY,SAAS,CAACK,MAHA;AAIrBgoB,EAAAA,iBAAiB,EAAEroB,SAAS,CAACK,MAJR;AAKrBunB,EAAAA,QAAQ,EAAE5nB,SAAS,CAACiM,IALC;AAMrBtC,EAAAA,KAAK,EAAE3J,SAAS,CAACK,MANI;AAOrBmO,EAAAA,OAAO,EAAExO,SAAS,CAACuN;AAPE,CAAvB;AAUO,MAAM+a,SAAN,SAAwBxpB,KAAK,CAACC,SAA9B,CAAwC;AAAA,EAAA,WAAA,CAAA,GAAA,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAA,IAAA,CAAA;;AAAA,IAAA,IAAA,CAe7CuQ,MAf6C,GAenC+K,CAAD,IAAO,IAAA,CAAK/a,KAAL,CAAWqN,QAAX,CAAoB0N,CAAC,CAAC8N,WAAF,IAAiB9N,CAAC,CAACC,MAAF,CAASiO,WAA9C,CAf6B;;AAAA,IAAA,IAAA,CAiB7CC,QAjB6C,GAiBlC,CAACC,SAAD,EAAYC,UAAZ,KAA2B;AACpC,MAAA,MAAM;AAAEC,QAAAA,OAAF;AAAWC,QAAAA;AAAX,OAAA,GAAkC,KAAKtpB,KAA7C;AACA,MAAA,MAAMupB,OAAO,GAAGF,OAAO,CAACF,SAAD,CAAvB;AAEAE,MAAAA,OAAO,CAAChiB,MAAR,CAAe8hB,SAAf,EAA0B,CAA1B,CAAA;AACAE,MAAAA,OAAO,CAAChiB,MAAR,CAAe+hB,UAAf,EAA2B,CAA3B,EAA8BG,OAA9B,CAAA;AAEAD,MAAAA,kBAAkB,CAACD,OAAD,CAAlB;AACD,IAAA,CAzB4C;AAAA,EAAA;;AA2B7C3pB,EAAAA,MAAM,GAAG;AACP,IAAA,MAAM;AAAEG,MAAAA,OAAF;AAAWC,MAAAA,SAAX;AAAsB4M,MAAAA,QAAtB;AAAgC2c,MAAAA,OAAhC;AAAyCG,MAAAA,gBAAzC;AAA2DC,MAAAA,cAA3D;AAA2Ef,MAAAA;AAA3E,KAAA,GAAwF,KAAK1oB,KAAnG;AAEA,IAAA,oBACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,MAAA,SAAS,EAAE2N,UAAE,CAAC7N,SAAD,EAAYD,OAAO,CAAC6pB,cAApB;AAAlB,KAAA,EACG,CAACL,OAAO,IAAI,EAAZ,EAAgBxV,GAAhB,CAAoB,CAAC8V,MAAD,EAASxiB,KAAT,KAAmB;AACtC,MAAA,IAAI,CAACqgB,QAAQ,IAAI,EAAb,EAAiB/b,QAAjB,CAA0Bke,MAA1B,CAAJ,EAAuC;AACrC,QAAA,MAAMC,UAAU,GAAGD,MAAM,KAAKH,gBAA9B;AACA,QAAA,MAAMK,OAAO,gBAAGrqB,KAAK,CAACsqB,SAAN,EAAhB;AAEA,QAAA,oBACE,oBAAC,QAAD,EAAA;AACE,UAAA,GAAG,EAAEH,MADP;AAEE,UAAA,KAAK,EAAExiB,KAFT;AAGE,UAAA,SAAS,EAAEsiB,cAHb;AAIE,UAAA,QAAQ,EAAE,IAAA,CAAKP,QAJjB;AAKE,UAAA,OAAO,EAAErpB,OALX;AAME,UAAA,OAAO,EAAEgqB;AANX,SAAA,eAQE,oBAAC,UAAD,EAAA;AACE,UAAA,SAAS,EAAElc,UAAE,CAAC9N,OAAO,CAACkqB,MAAT,EAAiBH,UAAU,IAAI/pB,OAAO,CAACyoB,QAAvC,CADf;AAEE,UAAA,QAAQ,EAAE5b,QAFZ;AAGE,UAAA,aAAa,EAAE,IAHjB;AAIE,UAAA,OAAO,EAAE,IAAA,CAAKsD,MAJhB;AAKE,UAAA,KAAK,EAAE2Z,MALT;AAME,UAAA,QAAQ,EAAEC,UANZ;AAOE,UAAA,QAAQ,EAAElB;AAPZ,SAAA,CARF,CADF;AAoBD,MAAA;AACF,IAAA,CA1BA,CADH,CADF;AA+BD,EAAA;;AA7D4C;AAAlCM,UACJvoB,YAAY;AACjBZ,EAAAA,OAAO,EAAEa,SAAS,CAACG,MAAV,CAAiBC,UADT;AAEjBhB,EAAAA,SAAS,EAAEY,SAAS,CAACK,MAFJ;AAGjBsoB,EAAAA,OAAO,EAAE3oB,SAAS,CAAC4c,OAAV,CAAkB5c,SAAS,CAACK,MAA5B,CAHQ;AAIjByoB,EAAAA,gBAAgB,EAAE9oB,SAAS,CAACK,MAJX;AAKjB2L,EAAAA,QAAQ,EAAEhM,SAAS,CAACiM,IALH;AAMjB8c,EAAAA,cAAc,EAAE/oB,SAAS,CAACiM,IANT;AAOjBU,EAAAA,QAAQ,EAAE3M,SAAS,CAACuN,IAPH;AAQjBqb,EAAAA,kBAAkB,EAAE5oB,SAAS,CAACuN,IARb;AASjBya,EAAAA,QAAQ,EAAEhoB,SAAS,CAACK;AATH;AADRioB,UAaJ9nB,eAAe;;AAmDxB,MAAM+T,QAAM,GAAIhW,KAAD,KAAY;AACzByqB,EAAAA,cAAc,EAAE;AACdrO,IAAAA,OAAO,EAAE,MADK;AAEd2O,IAAAA,QAAQ,EAAE;AAFI,GADS;AAKzBD,EAAAA,MAAM,EAAE;AACNE,IAAAA,WAAW,EAAEhrB,KAAK,CAACia,OAAN,CAAcC,IAAd,GAAqB,CAD5B;AAEN+Q,IAAAA,YAAY,EAAEjrB,KAAK,CAACia,OAAN,CAAcC,IAAd,GAAqB,CAF7B;AAGNnR,IAAAA,KAAK,EAAEA,KAAK,CAACoF,IAAN;AAHD,GALiB;AAUzB+c,EAAAA,KAAK,EAAE;AACLrc,IAAAA,QAAQ,EAAE,UADL;AAELpK,IAAAA,GAAG,EAAE,CAFA;AAGLD,IAAAA,IAAI,EAAE,CAHD;AAIL2mB,IAAAA,MAAM,EAAE,EAJH;AAKLhc,IAAAA,aAAa,EAAE;AALV,GAVkB;AAiBzBic,EAAAA,OAAO,EAAE;AACPvc,IAAAA,QAAQ,EAAE;AADH,GAjBgB;AAoBzBwc,EAAAA,MAAM,EAAE;AACN5J,IAAAA,OAAO,EAAE;AADH;AApBiB,CAAZ,CAAf;;AAyBA,kBAAe6J,eAAe,CAACppB,UAAU,CAAC8T,QAAD,CAAV,CAAmB+T,SAAnB,CAAD,CAA9B;AAEA,MAAMwB,SAAS,GAAG,MAAlB;AAEO,MAAMC,IAAN,SAAmBjrB,KAAK,CAACC,SAAzB,CAAmC;AAcxCC,EAAAA,MAAM,GAAG;AACP,IAAA,MAAM;AACJG,MAAAA,OADI;AAEJ6qB,MAAAA,QAFI;AAGJC,MAAAA,iBAHI;AAIJC,MAAAA,iBAJI;AAKJC,MAAAA,kBALI;AAMJ3N,MAAAA,UANI;AAOJ2M,MAAAA;AAPI,KAAA,GAQF,KAAK7pB,KART;AAUA,IAAA,oBACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,MAAA,SAAS,EAAEH,OAAO,CAACwqB,OAAxB;AAAiC,MAAA,GAAG,EAAER;AAAtC,KAAA,EACGc,iBAAiB,CAACC,iBAAiB,eAAC,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,MAAA,SAAS,EAAE1N,UAAU,IAAIrd,OAAO,CAACyqB;AAAtC,KAAA,EAA+CI,QAA/C,CAAD,CAAlB,CADpB,EAEGG,kBAAkB,eAAC,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,MAAA,SAAS,EAAEhrB,OAAO,CAACsqB;AAAxB,KAAA,EAAgCO,QAAhC,CAAD,CAFrB,CADF;AAMD,EAAA;;AA/BuC;AAA7BD,KACJhqB,YAAY;AACjBZ,EAAAA,OAAO,EAAEa,SAAS,CAACG,MAAV,CAAiBC,UADT;AAEjBhB,EAAAA,SAAS,EAAEY,SAAS,CAACK,MAFJ;AAGjB2pB,EAAAA,QAAQ,EAAEhqB,SAAS,CAACoqB,SAAV,CAAoB,CAACpqB,SAAS,CAAC4c,OAAV,CAAkB5c,SAAS,CAACga,IAA5B,CAAD,EAAoCha,SAAS,CAACga,IAA9C,CAApB,CAHO;AAIjBiQ,EAAAA,iBAAiB,EAAEjqB,SAAS,CAACuN,IAAV,CAAenN,UAJjB;AAKjB+pB,EAAAA,kBAAkB,EAAEnqB,SAAS,CAACuN,IAAV,CAAenN,UALlB;AAMjB8pB,EAAAA,iBAAiB,EAAElqB,SAAS,CAACuN,IAAV,CAAenN,UANjB;AAOjBoc,EAAAA,UAAU,EAAExc,SAAS,CAACiM,IAPL;AAQjBkd,EAAAA,OAAO,EAAEnpB,SAAS,CAACuX;AARF;AADRwS,KAYJvpB,eAAe;AAsBxB,MAAM6pB,UAAU,GAAG;AACjBC,EAAAA,OAAO,CAAChrB,KAAD,EAAQ;AACb,IAAA,OAAOA,KAAK,CAACirB,SAAb;AACD,EAAA,CAHgB;;AAIjBC,EAAAA,SAAS,CAAClrB,KAAD,EAAQ;AACf,IAAA,OAAO;AACLmH,MAAAA,KAAK,EAAEnH,KAAK,CAACmH;AADR,KAAP;AAGD,EAAA;;AARgB,CAAnB;AAWA,MAAMgkB,UAAU,GAAG;AACjBvJ,EAAAA,KAAK,CAAC5hB,KAAD,EAAQorB,OAAR,EAAiB;AAAA,IAAA,IAAA,gBAAA;;AACpB,IAAA,MAAMjC,SAAS,GAAGiC,OAAO,CAACC,OAAR,GAAkBlkB,KAApC;AACA,IAAA,MAAM;AAAE0iB,MAAAA,OAAF;AAAW1iB,MAAAA,KAAK,EAAEiiB;AAAlB,KAAA,GAAiCppB,KAAvC;;AAEA,IAAA,IAAImpB,SAAS,KAAKC,UAAd,IAA4B,CAACS,OAAO,CAACnK,OAAzC,EAAkD;AAChD,MAAA;AACD,IAAA;;AAED,IAAA,MAAM4L,iBAAiB,uBAAGzB,OAAO,CAACnK,OAAX,KAAA,IAAA,GAAA,MAAA,GAAG,gBAAA,CAAiBxE,qBAAjB,EAA1B;AACA,IAAA,MAAMqQ,YAAY,GAAG,CAACD,iBAAiB,CAAC1nB,KAAlB,GAA0B0nB,iBAAiB,CAAC7nB,IAA7C,IAAqD,CAA1E;AACA,IAAA,MAAM+nB,YAAY,GAAGJ,OAAO,CAACK,eAAR,EAArB;AACA,IAAA,MAAMC,YAAY,GAAGF,YAAY,CAAC7rB,CAAb,GAAiB2rB,iBAAiB,CAAC7nB,IAAxD;;AAEA,IAAA,IAAI0lB,SAAS,GAAGC,UAAZ,IAA0BsC,YAAY,GAAGH,YAA7C,EAA2D;AACzD,MAAA;AACD,IAAA;;AAED,IAAA,IAAIpC,SAAS,GAAGC,UAAZ,IAA0BsC,YAAY,GAAGH,YAA7C,EAA2D;AACzD,MAAA;AACD,IAAA;;AAEDvrB,IAAAA,KAAK,CAACkpB,QAAN,CAAeC,SAAf,EAA0BC,UAA1B,CAAA;AACAgC,IAAAA,OAAO,CAACC,OAAR,EAAA,CAAkBlkB,KAAlB,GAA0BiiB,UAA1B;AACD,EAAA;;AAxBgB,CAAnB;;AA2BA,MAAMuC,aAAa,GAAIC,OAAD,KAAc;AAAEhB,EAAAA,iBAAiB,EAAEgB,OAAO,CAACC,UAAR;AAArB,CAAd,CAAtB;;AAEA,MAAMC,aAAa,GAAG,CAACF,OAAD,EAAUR,OAAV,MAAuB;AAC3CT,EAAAA,iBAAiB,EAAEiB,OAAO,CAACG,UAAR,EADwB;AAE3ClB,EAAAA,kBAAkB,EAAEe,OAAO,CAACI,WAAR,EAFuB;AAG3C9O,EAAAA,UAAU,EAAEkO,OAAO,CAAClO,UAAR;AAH+B,CAAvB,CAAtB;;AAMA,MAAM+O,QAAQ,GAAGC,UAAU,CACzB1B,SADyB,EAEzBW,UAFyB,EAGzBQ,aAHyB,CAAV,CAIfQ,UAAU,CAAC3B,SAAD,EAAYO,UAAZ,EAAwBe,aAAxB,CAAV,CAAiDrB,IAAjD,CAJe,CAAjB;;ACvOO,MAAM2B,QAAN,SAAuB5sB,KAAK,CAACC,SAA7B,CAAuC;AAAA,EAAA,WAAA,CAAA,GAAA,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAA,IAAA,CAAA;;AAAA,IAAA,IAAA,CAiB5C4sB,gBAjB4C,GAiBxB7a,KAAD,IAAW;AAC5B,MAAA,MAAM;AAAE8a,QAAAA;AAAF,OAAA,GAAoB,KAAKtsB,KAA/B;AACAssB,MAAAA,aAAa,CAAC9a,KAAD,CAAb;AACD,IAAA,CApB2C;AAAA,EAAA;;AAsB5C9R,EAAAA,MAAM,GAAG;AACP,IAAA,MAAM;AAAEI,MAAAA,SAAF;AAAaysB,MAAAA,eAAb;AAA8B7f,MAAAA,QAA9B;AAAwC+c,MAAAA,cAAxC;AAAwDpc,MAAAA,QAAxD;AAAkEqb,MAAAA;AAAlE,KAAA,GAA+E,KAAK1oB,KAA1F;AACA,IAAA,IAAI;AAAEwsB,MAAAA;AAAF,KAAA,GAAmB,KAAKxsB,KAA5B;AAEA,IAAA,oBACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,MAAA,SAAS,EAAEE,UAAU,CAACJ,SAAD;AAA1B,KAAA,eACE,oBAACkpB,WAAD,EAAA;AACE,MAAA,QAAQ,EAAEtc,QADZ;AAEE,MAAA,cAAc,EAAE+c,cAFlB;AAGE,MAAA,OAAO,EAAE+C,YAHX;AAIE,MAAA,gBAAgB,EAAED,eAJpB;AAKE,MAAA,QAAQ,EAAElf,QALZ;AAME,MAAA,kBAAkB,EAAGmE,KAAD,IAAW,KAAK6a,gBAAL,CAAsB7a,KAAtB,CANjC;AAOE,MAAA,QAAQ,EAAEkX;AAPZ,KAAA,CADF,CADF;AAaD,EAAA;;AAvC2C;AAAjC0D,SACJ3rB,YAAY;AACjBX,EAAAA,SAAS,EAAEY,SAAS,CAACK,MADJ;AAEjBwrB,EAAAA,eAAe,EAAE7rB,SAAS,CAACK,MAFV;AAGjB2L,EAAAA,QAAQ,EAAEhM,SAAS,CAACiM,IAHH;AAIjB8c,EAAAA,cAAc,EAAE/oB,SAAS,CAACiM,IAJT;AAKjBoE,EAAAA,gBAAgB,EAAErQ,SAAS,CAACiM,IALX;AAMjBU,EAAAA,QAAQ,EAAE3M,SAAS,CAACuN,IANH;AAOjBqe,EAAAA,aAAa,EAAE5rB,SAAS,CAACuN,IAPR;AAQjBue,EAAAA,YAAY,EAAE9rB,SAAS,CAAC4c,OAAV,CAAkB5c,SAAS,CAACK,MAA5B,CARG;AASjB2nB,EAAAA,QAAQ,EAAEhoB,SAAS,CAACK;AATH;AADRqrB,SAaJlrB,eAAe;AACpBsrB,EAAAA,YAAY,EAAE;AADM;;ACXxB,MAAM;AAAErE,EAAAA;AAAF,CAAA,GAAiBC,UAAvB;AAEO,MAAMqE,QAAN,SAAuBjtB,KAAK,CAACC,SAA7B,CAAuC;AAW5CC,EAAAA,MAAM,GAAG;AACP,IAAA,MAAM;AAAEG,MAAAA,OAAF;AAAWC,MAAAA,SAAX;AAAsB4sB,MAAAA,MAAtB;AAA8BC,MAAAA,MAA9B;AAAsCC,MAAAA,OAAtC;AAA+ClE,MAAAA;AAA/C,KAAA,GAA4D,KAAK1oB,KAAvE;AACA,IAAA,oBACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,MAAA,SAAS,EAAEE,UAAU,CAACJ,SAAD;AAA1B,KAAA,eACE,oBAAC,MAAD,EAAA;AAAQ,MAAA,OAAO,EAAE;AAAEZ,QAAAA,IAAI,EAAEW,OAAO,CAACkqB;AAAhB,OAAjB;AAA2C,MAAA,OAAO,EAAE,MAAM2C,MAAM,CAAC,IAAD;AAAhE,KAAA,EACGvE,UAAU,CAACpb,CAAX,CAAa,aAAb,EAA4B;AAAE+b,MAAAA,GAAG,EAAEJ;AAAP,KAA5B,CADH,CADF,eAIE,KAAA,CAAA,aAAA,CAAC,MAAD,EAAA;AAAQ,MAAA,OAAO,EAAE;AAAExpB,QAAAA,IAAI,EAAEW,OAAO,CAACkqB;AAAhB,OAAjB;AAA2C,MAAA,OAAO,EAAE,MAAM4C,MAAM,CAAC,IAAD;AAAhE,KAAA,EACGxE,UAAU,CAACpb,CAAX,CAAa,eAAb,EAA8B;AAAE+b,MAAAA,GAAG,EAAEJ;AAAP,KAA9B,CADH,CAJF,eAOE,KAAA,CAAA,aAAA,CAAC,MAAD,EAAA;AAAQ,MAAA,OAAO,EAAE;AAAExpB,QAAAA,IAAI,EAAEW,OAAO,CAACkqB;AAAhB,OAAjB;AAA2C,MAAA,OAAO,EAAE,MAAM6C,OAAO;AAAjE,KAAA,EACGzE,UAAU,CAACpb,CAAX,CAAa,gBAAb,EAA+B;AAAE+b,MAAAA,GAAG,EAAEJ;AAAP,KAA/B,CADH,CAPF,CADF;AAaD,EAAA;;AA1B2C;AAAjC+D,SACJhsB,YAAY;AACjBZ,EAAAA,OAAO,EAAEa,SAAS,CAACG,MADF;AAEjBf,EAAAA,SAAS,EAAEY,SAAS,CAACK,MAFJ;AAGjB2rB,EAAAA,MAAM,EAAEhsB,SAAS,CAACuN,IAAV,CAAenN,UAHN;AAIjB6rB,EAAAA,MAAM,EAAEjsB,SAAS,CAACuN,IAAV,CAAenN,UAJN;AAKjB8rB,EAAAA,OAAO,EAAElsB,SAAS,CAACuN,IAAV,CAAenN,UALP;AAMjB4nB,EAAAA,QAAQ,EAAEhoB,SAAS,CAACK;AANH;AADR0rB,SASJvrB,eAAe;;AAoBxB,MAAM+T,QAAM,GAAIhW,KAAD,KAAY;AACzB8qB,EAAAA,MAAM,EAAE;AACN/hB,IAAAA,KAAK,EAAEA,KAAK,CAACoF,IAAN,EADD;AAEN8c,IAAAA,YAAY,EAAEjrB,KAAK,CAACia,OAAN,CAAcC,IAAd,GAAqB,CAF7B;AAGN,IAAA,sBAAA,EAAwB;AACtB8Q,MAAAA,WAAW,EAAEhrB,KAAK,CAACia,OAAN,CAAcC,IAAd,GAAqB;AADZ;AAHlB;AADiB,CAAZ,CAAf;;AAUA,iBAAehY,YAAU,CAAC8T,QAAD,CAAV,CAAmBwX,QAAnB,CAAf;;AClCO,MAAMI,sBAAsB,GAAIL,YAAD,IACpC9E,QAAQ,CAAC7T,GAAT,CAAciZ,EAAD,IAAA,QAAA,CAAA,EAAA,EAAcA,EAAd,EAAA;AAAkBC,EAAAA,OAAO,EAAE,CAAC,CAACP,YAAY,CAACjlB,IAAb,CAAmBwF,CAAD,IAAOA,CAAC,KAAK+f,EAAE,CAAC/lB,IAAlC;AAA7B,CAAA,CAAb,KAAyF,EADpF;AAGA,MAAMimB,eAAe,GAAG,CAACxb,KAAD,EAAQI,WAAR,KAC7BA,WAAW,IAAIJ,KAAf,IAAwB,CAACA,KAAK,CAACjK,IAAN,CAAYyL,IAAD,IAAUA,IAAI,CAACjM,IAAL,KAAc6K,WAAW,CAAC7K,IAA/C,CAAA,IAAwD,EAAzD,EAA6DgmB,OADhF;AAGA,MAAME,gBAAgB,GAAIzb,KAAD,IAAWA,KAAK,CAACjK,IAAN,CAAYyL,IAAD,IAAUA,IAAI,CAAC+Z,OAA1B,CAApC;AAEA,MAAMG,sBAAsB,GAAIxc,eAAD,IACpCA,eAAe,CAACrO,MAAhB,CAAwB8qB,EAAD,IAAQ,CAAC,CAAC3F,QAAQ,CAACjgB,IAAT,CAAeyL,IAAD,IAAUA,IAAI,KAAKma,EAAE,CAACpmB,IAApC,CAAjC,CADK;AAGA,MAAMqmB,wBAAwB,GAAG,CAACZ,YAAD,EAAe3lB,KAAf,KACtCA,KAAK,CAACxE,MAAN,CAAc8qB,EAAD,IAAQ,CAAC,CAACX,YAAY,CAACjlB,IAAb,CAAmByL,IAAD,IAAUA,IAAI,KAAKma,EAAE,CAACpmB,IAAxC,CAAvB,CADK;;AAGP,MAAMsmB,qBAAqB,GAAIC,QAAD,IAAc5F,QAAQ,CAACngB,IAAT,CAAeyL,IAAD,IAAUA,IAAI,CAACjM,IAAL,KAAcumB,QAAtC,KAAmD,IAA/F;;AAEA,MAAMC,WAAW,GAAG,CAAC;AAAE1tB,EAAAA,OAAF;AAAW6qB,EAAAA,QAAX;AAAqBnZ,EAAAA;AAArB,CAAD,kBAClB,oBAAC,cAAD,EAAA;AAAgB,EAAA,SAAS,EAAE,CAA3B;AAA8B,EAAA,SAAS,EAAE1R,OAAO,CAAC2tB,cAAjD;AAAiE,EAAA,eAAe,EAAE,IAAlF;AAAwF,EAAA,MAAM,EAAE;AAAhG,CAAA,eACE,oBAAC,qBAAD,EAAA;AACE,EAAA,OAAO,EAAE;AACPtuB,IAAAA,IAAI,EAAEW,OAAO,CAAC4tB,WADP;AAEPC,IAAAA,OAAO,EAAE7tB,OAAO,CAAC8tB;AAFV,GADX;AAKE,EAAA,UAAU,eAAE,KAAA,CAAA,aAAA,CAAC,cAAD,EAAA,IAAA;AALd,CAAA,eAOE,oBAAC,UAAD,EAAA;AAAY,EAAA,OAAO,EAAC;AAApB,CAAA,EAAkCpc,KAAlC,CAPF,CADF,eAUE,oBAAC,qBAAD,EAAA;AAAuB,EAAA,SAAS,EAAE1R,OAAO,CAAC+tB;AAA1C,CAAA,EAAoDlD,QAApD,CAVF,CADF;;AAeA6C,WAAW,CAAC9sB,SAAZ,GAAwB;AACtBZ,EAAAA,OAAO,EAAEa,SAAS,CAACG,MADG;AAEtB6pB,EAAAA,QAAQ,EAAEhqB,SAAS,CAACyF,KAFE;AAGtBoL,EAAAA,KAAK,EAAE7Q,SAAS,CAACK;AAHK,CAAxB;AAMO,MAAM8sB,iBAAN,SAAgCruB,KAAK,CAACC,SAAtC,CAAgD;AAoBrDwS,EAAAA,WAAW,CAACjS,KAAD,EAAQ;AACjB,IAAA,KAAA,CAAMA,KAAN,CAAA;;AADiB,IAAA,IAAA,CAmBnB8tB,iBAnBmB,GAmBC,CAAC9a,IAAD,EAAOxB,KAAP,KAClB,IAAA,CAAKW,QAAL,CAAc;AAAEP,MAAAA,WAAW,EAAEJ,KAAK,CAACjK,IAAN,CAAYwF,CAAD,IAAOA,CAAC,CAAChG,IAAF,KAAWiM,IAA7B,CAAf;AAAmDjC,MAAAA,gBAAgB,EAAEiC,IAAI,KAAK;AAA9E,KAAd,CApBiB;;AAGjB,IAAA,IAAA,CAAKd,KAAL,GAAa;AACXN,MAAAA,WAAW,EAAEyb,qBAAqB,CAACrtB,KAAK,CAAC+tB,WAAP,CADvB;AAEXhd,MAAAA,gBAAgB,EAAE;AAFP,KAAb;AAID,EAAA;;AAEDid,EAAAA,kBAAkB,CAACC,SAAD,EAAY;AAC5B,IAAA,MAAM;AAAEF,MAAAA;AAAF,KAAA,GAAkB,KAAK/tB,KAA7B;;AAEA,IAAA,IAAIiuB,SAAS,CAACF,WAAV,KAA0BA,WAA9B,EAA2C;AACzC,MAAA,MAAMnc,WAAW,GAAGyb,qBAAqB,CAACU,WAAD,CAAzC;AAEA,MAAA,IAAA,CAAK5b,QAAL,CAAc;AAAEP,QAAAA;AAAF,OAAd,CAAA;AACD,IAAA;AACF,EAAA;;AAKDlS,EAAAA,MAAM,GAAG;AACP,IAAA,IAAI;AAAEkS,MAAAA,WAAF;AAAeb,MAAAA;AAAf,KAAA,GAAoC,KAAKmB,KAA7C;AACA,IAAA,MAAM;AACJzB,MAAAA,YADI;AAEJ5Q,MAAAA,OAFI;AAGJC,MAAAA,SAHI;AAIJkR,MAAAA,kBAJI;AAKJL,MAAAA,kBALI;AAMJC,MAAAA,uBANI;AAOJlE,MAAAA,QAPI;AAQJiC,MAAAA,cARI;AASJkC,MAAAA,aATI;AAUJtL,MAAAA,MAVI;AAWJkkB,MAAAA,cAXI;AAYJ/a,MAAAA,MAZI;AAaJ6E,MAAAA,kBAbI;AAcJtC,MAAAA,cAdI;AAeJC,MAAAA,aAfI;AAgBJC,MAAAA,aAhBI;AAiBJmb,MAAAA,aAjBI;AAkBJI,MAAAA,MAlBI;AAmBJC,MAAAA,MAnBI;AAoBJC,MAAAA,OApBI;AAqBJpnB,MAAAA,KArBI;AAsBJL,MAAAA,IAtBI;AAuBJiM,MAAAA,UAvBI;AAwBJC,MAAAA,eAxBI;AAyBJC,MAAAA,SAzBI;AA0BJC,MAAAA,KA1BI;AA2BJiC,MAAAA,gBA3BI;AA4BJkV,MAAAA,QA5BI;AA6BJ7W,MAAAA,oBA7BI;AA8BJJ,MAAAA;AA9BI,KAAA,GA+BF,KAAKzR,KA/BT;AAgCA,IAAA,IAAI;AAAE0Q,MAAAA,eAAF;AAAmB7J,MAAAA,KAAnB;AAA0B2lB,MAAAA;AAA1B,KAAA,GAA2C,IAAA,CAAKxsB,KAApD,CAlCO;;AAqCPwsB,IAAAA,YAAY,GAAG0B,IAAI,CAAC1B,YAAY,IAAI,EAAjB,CAAJ,CAAyBnqB,MAAzB,CAAiC8rB,EAAD,IAAQ,CAAC,CAACC,QAAQ,CAACD,EAAD,CAAlD,CAAA,IAA2D,EAA1E,CArCO;;AAwCPzd,IAAAA,eAAe,GAAGwc,sBAAsB,CAACxc,eAAe,IAAI,EAApB,CAAxC,CAxCO;;AA2CP7J,IAAAA,KAAK,GAAGumB,wBAAwB,CAACZ,YAAD,EAAe3lB,KAAK,IAAI,EAAxB,CAAhC;AAEA,IAAA,MAAM2K,KAAK,GAAGqb,sBAAsB,CAACL,YAAD,CAApC,CA7CO;;AAgDP,IAAA,IAAI,CAAC5a,WAAD,IAAgB,CAACob,eAAe,CAACxb,KAAD,EAAQI,WAAR,CAApC,EAA0D;AACxDA,MAAAA,WAAW,GAAGqb,gBAAgB,CAACzb,KAAD,CAA9B;AACD,IAAA;;AAED,IAAA,MAAM6c,YAAY,gBAChB,KAAA,CAAA,aAAA,CAAC,KAAD,CAAO,QAAP,EAAA,IAAA,eACE,oBAAC,QAAD,EAAA;AACE,MAAA,eAAe,EAAEzc,WAAW,IAAIA,WAAW,CAAC7K,IAD9C;AAEE,MAAA,QAAQ,EAAE,CAAC,CAAC2F,QAFd;AAGE,MAAA,cAAc,EAAE+c,cAHlB;AAIE,MAAA,gBAAgB,EAAE1Y,gBAJpB;AAKE,MAAA,QAAQ,EAAGiC,IAAD,IAAU,IAAA,CAAK8a,iBAAL,CAAuB9a,IAAvB,EAA6BxB,KAA7B,CALtB;AAME,MAAA,YAAY,EAAEgb,YANhB;AAOE,MAAA,aAAa,EAAEF,aAPjB;AAQE,MAAA,QAAQ,EAAE5D;AARZ,KAAA,CADF,EAYG,CAAChc,QAAD,iBAAa,oBAAC+f,UAAD,EAAA;AAAU,MAAA,MAAM,EAAEC,MAAlB;AAA0B,MAAA,MAAM,EAAEC,MAAlC;AAA0C,MAAA,OAAO,EAAEC,OAAnD;AAA4D,MAAA,QAAQ,EAAElE;AAAtE,KAAA,CAZhB,CADF;AAiBA,IAAA,oBACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,MAAA,SAAS,EAAExoB,UAAU,CAACL,OAAO,CAACyuB,iBAAT,EAA4BxuB,SAA5B;AAA1B,KAAA,eACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,MAAA,SAAS,EAAED,OAAO,CAAC0uB;AAAxB,KAAA,EACG5d,kBAAkB,gBACjB,KAAA,CAAA,aAAA,CAAC,WAAD,EAAA;AAAa,MAAA,OAAO,EAAE9Q,OAAtB;AAA+B,MAAA,KAAK,EAAE+Q;AAAtC,KAAA,EACGyd,YADH,CADiB,GAKjBA,YANJ,CADF,eAWE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,MAAA,GAAG,EAAG7hB,CAAD,IAAQ,IAAA,CAAK4F,SAAL,GAAiB5F;AAAnC,KAAA,CAXF,eAaE,oBAAC,KAAD,EAAA;AACE,MAAA,YAAY,EAAEiE,YADhB;AAEE,MAAA,eAAe,EAAEC,eAFnB;AAGE,MAAA,kBAAkB,EAAEM,kBAHtB;AAIE,MAAA,WAAW,EAAEY,WAJf;AAKE,MAAA,cAAc,EAAEjD,cALlB;AAME,MAAA,aAAa,EAAEkC,aANjB;AAOE,MAAA,MAAM,EAAEtL,MAPV;AAQE,MAAA,MAAM,EAAEmJ,MARV;AASE,MAAA,gBAAgB,EAAEqC,gBATpB;AAUE,MAAA,kBAAkB,EAAEwC,kBAVtB;AAWE,MAAA,KAAK,EAAE1M,KAXT;AAYE,MAAA,aAAa,EAAE,CAAC6F,QAAD,GAAYwE,aAAZ,GAA4BgC,SAZ7C;AAaE,MAAA,cAAc,EAAEjC,cAblB;AAcE,MAAA,aAAa,EAAEE,aAdjB;AAeE,MAAA,KAAK,EAAE3L,KAfT;AAgBE,MAAA,IAAI,EAAEL,IAhBR;AAiBE,MAAA,UAAU,EAAEiM,UAjBd;AAkBE,MAAA,eAAe,EAAEC,eAlBnB;AAmBE,MAAA,SAAS,EAAEC,SAnBb;AAoBE,MAAA,KAAK,EAAEC,KApBT;AAqBE,MAAA,gBAAgB,EAAEiC,gBArBpB;AAsBE,MAAA,KAAK,EAAEhC,KAtBT;AAuBE,MAAA,oBAAoB,EAAEK,oBAvBxB;AAwBE,MAAA,aAAa,EAAEJ;AAxBjB,KAAA,CAbF,CADF;AA0CD,EAAA;;AAzJoD;AAA1Coc,kBACJptB,yBACF+P;AACHkc,EAAAA,MAAM,EAAEhsB,SAAS,CAACuN;AAClB0e,EAAAA,MAAM,EAAEjsB,SAAS,CAACuN;AAClB2e,EAAAA,OAAO,EAAElsB,SAAS,CAACuN;AACnBue,EAAAA,YAAY,EAAE9rB,SAAS,CAAC4c,OAAV,CAAkB5c,SAAS,CAACK,MAA5B;AAAqC;AACnD2nB,EAAAA,QAAQ,EAAEhoB,SAAS,CAACK;;AAPX8sB,kBAUJ3sB,eAAe;AACpByP,EAAAA,kBAAkB,EAAE,KADA;AAEpBC,EAAAA,uBAAuB,EAAE,EAFL;AAGpBjC,EAAAA,cAAc,EAAE,KAHI;AAIpBkC,EAAAA,aAAa,EAAE,KAJK;AAKpBO,EAAAA,UAAU,EAAE,IALQ;AAMpBE,EAAAA,SAAS,EAAE,IANS;AAOpBkb,EAAAA,YAAY,EAAE;AAPM;;AAkJxB,MAAMvX,QAAM,GAAIhW,KAAD,KAAY;AACzBqvB,EAAAA,iBAAiB,EAAE;AACjBjT,IAAAA,OAAO,EAAE,MADQ;AAEjBmT,IAAAA,aAAa,EAAE,QAFE;AAGjB/oB,IAAAA,KAAK,EAAE;AAHU,GADM;AAMzB8oB,EAAAA,QAAQ,EAAE;AACRlT,IAAAA,OAAO,EAAE,MADD;AAERoT,IAAAA,cAAc,EAAE,eAFR;AAGR/lB,IAAAA,OAAO,EAAEzJ,KAAK,CAACia,OAAN,CAAcC,IAHf;AAIRnR,IAAAA,KAAK,EAAEA,KAAK,CAACoF,IAAN,EAJC;AAKRgM,IAAAA,eAAe,EAAEpR,KAAK,CAAC0mB,YAAN,EALT;AAMR,IAAA,UAAA,EAAY;AACVnmB,MAAAA,QAAQ,EAAEtJ,KAAK,CAACuJ,UAAN,CAAiBD;AADjB;AANJ,GANe;AAgBzBilB,EAAAA,cAAc,EAAE;AACdpU,IAAAA,eAAe,EAAEpR,KAAK,CAAC0mB,YAAN,EADH;AAEdjpB,IAAAA,KAAK,EAAE;AAFO,GAhBS;AAoBzBgoB,EAAAA,WAAW,EAAE;AACX/kB,IAAAA,OAAO,EAAG,CAAA,EAAA,EAAIzJ,KAAK,CAACia,OAAN,CAAcC,IAAK,CAAA,EAAA,CADtB;AAEXwV,IAAAA,SAAS,EAAE;AAFA,GApBY;AAwBzBhB,EAAAA,cAAc,EAAE;AACdhlB,IAAAA,MAAM,EAAE;AADM,GAxBS;AA2BzBilB,EAAAA,OAAO,EAAE;AACPllB,IAAAA,OAAO,EAAE,CADF;AAEP2F,IAAAA,SAAS,EAAEpP,KAAK,CAACia,OAAN,CAAcC,IAFlB;AAGPkC,IAAAA,OAAO,EAAE,MAHF;AAIPoT,IAAAA,cAAc,EAAE;AAJT;AA3BgB,CAAZ,CAAf;;AAmCA,0BAAettB,UAAU,CAAC8T,QAAD,CAAV,CAAmB4Y,iBAAnB,CAAf;;AChPO,MAAMe,oBAAoB,GAAG,MAAOjP,IAAD,IAAWzL,MAAD,IAAY;AAE9D,EAAA,OAAOyL,IAAI,CAACzL,MAAD,CAAX;AACD,CAHM;;;;ACSP,MAAM2a,eAAe,GAAIC,CAAD,KAAQ;AAC9BjoB,EAAAA,KAAK,EAAEioB,CAAC,CAACjoB,KAAF,CAAQkoB;AADe,CAAR,CAAxB;;AAIA,MAAMC,kBAAkB,GAAIC,QAAD,KAAe;AACxC/d,EAAAA,aAAa,EAAGhK,CAAD,IAAO+nB,QAAQ,CAACza,WAAW,CAACtN,CAAD,CAAZ,CADU;AAExCwlB,EAAAA,MAAM,EAAE,MAAMuC,QAAQ,CAACC,cAAc,CAACC,IAAf,EAAD,CAFkB;AAGxCxC,EAAAA,MAAM,EAAE,MAAMsC,QAAQ,CAACC,cAAc,CAACE,IAAf,EAAD,CAHkB;AAIxCxC,EAAAA,OAAO,EAAE,MAAMqC,QAAQ,CAACza,WAAW,CAAC,EAAD,CAAZ;AAJiB,CAAf,CAA3B;;AAOO,MAAM6a,cAAc,GAAGzD,OAAO,CAACiD,eAAD,EAAkBG,kBAAlB,CAAP,CAA6CnB,mBAA7C,CAAvB;AAEP;AACA;AACA;AACA;;AACA,MAAMja,IAAN,SAAmBpU,KAAK,CAACC,SAAzB,CAAmC;AAMjCwS,EAAAA,WAAW,CAACjS,KAAD,EAAQ;AACjB,IAAA,KAAA,CAAMA,KAAN,CAAA;;AADiB,IAAA,IAAA,CAsBnBsvB,aAtBmB,GAsBH,MAAM;AACpB,MAAA,MAAM;AAAEzoB,QAAAA,KAAF;AAASqK,QAAAA;AAAT,OAAA,GAA2B,KAAKlR,KAAtC;AACA,MAAA,MAAMuvB,UAAU,GAAG,IAAA,CAAKC,KAAL,CAAWC,QAAX,EAAnB;;AAEA,MAAA,IAAI,CAACzqB,OAAO,CAACuqB,UAAU,CAAC1oB,KAAX,CAAiBkoB,OAAlB,EAA2BloB,KAA3B,CAAZ,EAA+C;AAC7CqK,QAAAA,aAAa,CAACqe,UAAU,CAAC1oB,KAAX,CAAiBkoB,OAAlB,CAAb;AACD,MAAA;AACF,IAAA,CA7BkB;;AAGjB,IAAA,MAAMviB,CAAC,GAAGkjB,OAAO,EAAjB;AACA,IAAA,IAAA,CAAKF,KAAL,GAAaG,WAAW,CAACnjB,CAAD,EAAI;AAAE3F,MAAAA,KAAK,EAAE7G,KAAK,CAAC6G;AAAf,KAAJ,EAA4B+oB,eAAe,CAAChB,oBAAD,CAA3C,CAAxB;AAEA,IAAA,IAAA,CAAKY,KAAL,CAAWK,SAAX,CAAqB,KAAKP,aAA1B,CAAA;AACD,EAAA;;AAEDtB,EAAAA,kBAAkB,CAACC,SAAD,EAAY;AAC5B,IAAA,MAAM;AAAEpnB,MAAAA;AAAF,KAAA,GAAY,KAAK7G,KAAvB;AACA,IAAA,MAAMuvB,UAAU,GAAG,IAAA,CAAKC,KAAL,CAAWC,QAAX,EAAnB;;AAEA,IAAA,IAAIzqB,OAAO,CAACuqB,UAAU,CAAC1oB,KAAX,CAAiBkoB,OAAlB,EAA2BloB,KAA3B,CAAX,EAA8C;AAC5C,MAAA;AACD,IAAA;;AAED,IAAA,IAAI,CAAC7B,OAAO,CAACipB,SAAS,CAACpnB,KAAX,EAAkBA,KAAlB,CAAZ,EAAsC;AACpC,MAAA,IAAA,CAAK2oB,KAAL,CAAWP,QAAX,CAAoBza,WAAW,CAAC3N,KAAD,CAA/B,CAAA;AACD,IAAA;AACF,EAAA;;AAWDnH,EAAAA,MAAM,GAAG;AACP;AACA,IAAA,MAAA,WAAA,GAA0C,KAAKM,KAA/C;AAAA,UAAM;AAAiB6G,MAAAA;AAAjB,KAAN,GAAA,WAAA;AAAA,UAAiC2P,IAAjC,GAAA,6BAAA,CAAA,WAAA,EAAA,SAAA,CAAA;;AACA,IAAA,MAAMsZ,cAAc,GAAGjpB,KAAK,IAAIA,KAAK,CAACU,IAAN,CAAYL,CAAD,IAAOA,CAAC,CAACmP,WAApB,CAAhC;;AAEA,IAAA,IAAIyZ,cAAJ,EAAoB;AAClB,MAAA,oBAAO,KAAA,CAAA,aAAA,CAACjC,mBAAD,EAAA,QAAA,CAAA,EAAA,EAAuBrX,IAAvB,EAAA;AAA6B,QAAA,KAAK,EAAE3P,KAApC;AAA2C,QAAA,QAAQ,EAAEipB;AAArD,OAAA,CAAA,CAAP;AACD,IAAA;;AAED,IAAA,oBACE,oBAAC,QAAD,EAAA;AAAU,MAAA,KAAK,EAAE,IAAA,CAAKN;AAAtB,KAAA,eACE,KAAA,CAAA,aAAA,CAAC,cAAD,EAAoBhZ,IAApB,CADF,CADF;AAKD,EAAA;;AAnDgC;;AAA7B5C,KACGnT,YAAY;AACjByQ,EAAAA,aAAa,EAAExQ,SAAS,CAACuN,IADR;AAEjBpH,EAAAA,KAAK,EAAEnG,SAAS,CAACyF;AAFA;;AClBrB,MAAM4pB,UAAU,GAAI/vB,KAAD,IAAW;AAC5B,EAAA,MAAM;AAAEH,IAAAA,OAAF;AAAW6M,IAAAA,QAAX;AAAqBsjB,IAAAA,eAArB;AAAsCpU,IAAAA,UAAtC;AAAkDqU,IAAAA,WAAlD;AAA+DC,IAAAA,SAA/D;AAA0EC,IAAAA,UAA1E;AAAsF9iB,IAAAA;AAAtF,GAAA,GAAmGrN,KAAzG;AACA,EAAA,MAAM;AAAE8J,IAAAA,SAAS,GAAG,EAAd;AAAkB3H,IAAAA,IAAI,GAAG;AAAzB,GAAA,GAAgC6tB,eAAtC;AAEA,EAAA,oBACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAEnwB,OAAO,CAACuwB;AAAxB,GAAA,EACGjuB,IAAI,IAAIA,IAAI,CAACkuB,OAAb,iBACC,oBAAC,qBAAD,EAAA;AACE,IAAA,SAAS,EAAExwB,OAAO,CAACywB,eADrB;AAEE,IAAA,KAAK,EAAEnuB,IAAI,CAACK,KAAL,IAAc,EAFvB;AAGE,IAAA,KAAK,EAAE0tB,SAHT;AAIE,IAAA,YAAY,EAAEC,UAJhB;AAKE,IAAA,OAAO,EAAC,UALV;AAME,IAAA,QAAQ,EAAEzjB,QANZ;AAOE,IAAA,QAAQ,EAAE,CAACqO,CAAD,EAAI7D,CAAJ,KAAU7J,QAAQ,CAAC,MAAD,EAAS6J,CAAT;AAP9B,GAAA,CAFJ,EAYGpN,SAAS,IAAIA,SAAS,CAACumB,OAAvB,iBACC,oBAAC,qBAAD,EAAA;AACE,IAAA,SAAS,EAAExwB,OAAO,CAACywB,eADrB;AAEE,IAAA,KAAK,EAAExmB,SAAS,CAACtH,KAAV,IAAmB,EAF5B;AAGE,IAAA,KAAK,EAAEoZ,UAHT;AAIE,IAAA,YAAY,EAAEqU,WAJhB;AAKE,IAAA,OAAO,EAAC,UALV;AAME,IAAA,QAAQ,EAAEvjB,QANZ;AAOE,IAAA,QAAQ,EAAE,CAACqO,CAAD,EAAI7D,CAAJ,KAAU7J,QAAQ,CAAC,WAAD,EAAc6J,CAAd;AAP9B,GAAA,CAbJ,CADF;AA0BD,CA9BD;;AAgCA6Y,UAAU,CAACtvB,SAAX,GAAuB;AACrBZ,EAAAA,OAAO,EAAEa,SAAS,CAACG,MADE;AAErB6L,EAAAA,QAAQ,EAAEhM,SAAS,CAACiM,IAFC;AAGrBqjB,EAAAA,eAAe,EAAEtvB,SAAS,CAACG,MAHN;AAIrB+a,EAAAA,UAAU,EAAElb,SAAS,CAACC,MAJD;AAKrBsvB,EAAAA,WAAW,EAAEvvB,SAAS,CAACyF,KALF;AAMrB+pB,EAAAA,SAAS,EAAExvB,SAAS,CAACC,MANA;AAOrBwvB,EAAAA,UAAU,EAAEzvB,SAAS,CAACyF,KAPD;AAQrBkH,EAAAA,QAAQ,EAAE3M,SAAS,CAACuN;AARC,CAAvB;;AAWA,MAAMsiB,UAAU,GAAIvwB,KAAD,IAAW;AAC5B,EAAA,MAAM;AAAEH,IAAAA,OAAF;AAAW6M,IAAAA,QAAX;AAAqBsjB,IAAAA,eAArB;AAAsCQ,IAAAA,aAAtC;AAAqDhuB,IAAAA,KAArD;AAA4DiuB,IAAAA,QAA5D;AAAsEC,IAAAA,QAAtE;AAAgFrjB,IAAAA,QAAhF;AAA0FtG,IAAAA;AAA1F,GAAA,GAAmG/G,KAAzG;AACA,EAAA,MAAM;AAAEmK,IAAAA,SAAS,GAAG,EAAd;AAAkBrI,IAAAA,GAAG,GAAG,EAAxB;AAA4BM,IAAAA,GAAG,GAAG;AAAlC,GAAA,GAAyC4tB,eAA/C;AACA,EAAA,MAAMtiB,aAAa,GAAG,CACpB,MADoB,EAEpB,QAFoB,EAGpB,WAHoB,EAIpB,eAJoB;AAAA,GAAtB;AAQA,EAAA,oBACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAE7N,OAAO,CAACuwB;AAAxB,GAAA,EACGI,aAAa,iBACZ,KAAA,CAAA,aAAA,CAACG,YAAD,EAAA;AAAY,IAAA,OAAO,EAAC;AAApB,GAAA,eACE,+BAAI5pB,IAAI,KAAK,QAAT,GAAoB,GAApB,GAA0B,GAA9B,CADF,EAAA,OAAA,CAFJ,EAOGjF,GAAG,IAAIA,GAAG,CAACuuB,OAAX,iBACC,oBAAC,qBAAD,EAAA;AACE,IAAA,SAAS,EAAExwB,OAAO,CAACywB,eADrB;AAEE,IAAA,KAAK,EAAExuB,GAAG,CAACU,KAAJ,IAAa,EAFtB;AAGE,IAAA,KAAK,EAAEkuB,QAHT;AAIE,IAAA,GAAG,EAAE,IAJP;AAKE,IAAA,GAAG,EAAED,QAAQ,GAAG,IALlB;AAME,IAAA,OAAO,EAAC,UANV;AAOE,IAAA,QAAQ,EAAE/jB,QAPZ;AAQE,IAAA,QAAQ,EAAE,CAACqO,CAAD,EAAI7D,CAAJ,KAAU7J,QAAQ,CAAC,KAAD,EAAQ6J,CAAR;AAR9B,GAAA,CARJ,EAmBG9U,GAAG,IAAIA,GAAG,CAACiuB,OAAX,iBACC,oBAAC,qBAAD,EAAA;AACE,IAAA,SAAS,EAAExwB,OAAO,CAACywB,eADrB;AAEE,IAAA,KAAK,EAAEluB,GAAG,CAACI,KAAJ,IAAa,EAFtB;AAGE,IAAA,KAAK,EAAEiuB,QAHT;AAIE,IAAA,GAAG,EAAEC,QAAQ,GAAG,IAJlB;AAKE,IAAA,GAAG,EAAE,KALP;AAME,IAAA,OAAO,EAAC,UANV;AAOE,IAAA,QAAQ,EAAEhkB,QAPZ;AAQE,IAAA,QAAQ,EAAE,CAACqO,CAAD,EAAI7D,CAAJ,KAAU7J,QAAQ,CAAC,KAAD,EAAQ6J,CAAR;AAR9B,GAAA,CApBJ,EA+BG/M,SAAS,IAAIA,SAAS,CAACkmB,OAAvB,iBACC,oBAAC,cAAD,EAAA;AAAgB,IAAA,KAAK,EAAElmB,SAAS,CAAC3H,KAAV,IAAmB,EAA1C;AAA8C,IAAA,SAAS,EAAE3C,OAAO,CAACywB;AAAjE,GAAA,eACE,oBAACM,YAAD,EAAA;AACE,IAAA,SAAS,EAAE/wB,OAAO,CAACsK,SADrB;AAEE,IAAA,QAAQ,EAAGE,KAAD,IAAWgD,QAAQ,CAAC,WAAD,EAAchD,KAAd,CAF/B;AAGE,IAAA,MAAM,EAAE7H,KAAK,IAAI,EAHnB;AAIE,IAAA,eAAe,EAAE,CAJnB;AAKE,IAAA,aAAa,EAAEkL;AALjB,GAAA,CADF,CAhCJ,CADF;AA6CD,CAxDD;;AA0DA6iB,UAAU,CAAC9vB,SAAX,GAAuB;AACrBZ,EAAAA,OAAO,EAAEa,SAAS,CAACG,MADE;AAErB6L,EAAAA,QAAQ,EAAEhM,SAAS,CAACiM,IAFC;AAGrBqjB,EAAAA,eAAe,EAAEtvB,SAAS,CAACG,MAHN;AAIrB2vB,EAAAA,aAAa,EAAE9vB,SAAS,CAACiM,IAJJ;AAKrBnK,EAAAA,KAAK,EAAE9B,SAAS,CAACK,MALI;AAMrB0vB,EAAAA,QAAQ,EAAE/vB,SAAS,CAACC,MANC;AAOrB+vB,EAAAA,QAAQ,EAAEhwB,SAAS,CAACC,MAPC;AAQrBoG,EAAAA,IAAI,EAAErG,SAAS,CAACK,MARK;AASrBsM,EAAAA,QAAQ,EAAE3M,SAAS,CAACuN;AATC,CAAvB;;AAWA,MAAM4iB,SAAS,GAAI7wB,KAAD,IAAW;AAC3B,EAAA,MAAM;AACJH,IAAAA,OADI;AAEJ0F,IAAAA,MAFI;AAGJyqB,IAAAA,eAAe,GAAG,EAHd;AAIJG,IAAAA,UAAU,GAAG,EAJT;AAKJW,IAAAA,WALI;AAMJb,IAAAA,WAAW,GAAG,EANV;AAOJ5iB,IAAAA,QAPI;AAQJ0jB,IAAAA,YARI;AASJvrB,IAAAA,KATI;AAUJL,IAAAA,IAVI;AAWJ6rB,IAAAA,eAXI;AAYJC,IAAAA;AAZI,GAAA,GAaFjxB,KAbJ;AAcA,EAAA,MAAMkxB,SAAS,GAAG;AAAEpvB,IAAAA,GAAG,EAAE,CAAP;AAAUM,IAAAA,GAAG,EAAE;AAAf,GAAlB;AACA,EAAA,MAAM;AACJ+H,IAAAA,SAAS,GAAG,EADR;AAEJgnB,IAAAA,iBAFI;AAGJC,IAAAA,kBAHI;AAIJtnB,IAAAA,SAAS,GAAG,EAJR;AAKJhI,IAAAA,GAAG,GAAG,EALF;AAMJM,IAAAA,GAAG,GAAG,EANF;AAOJivB,IAAAA,mBAPI;AAQJlvB,IAAAA,IAAI,GAAG;AARH,GAAA,GASF6tB,eAAe,IAAI,EATvB;AAUA,EAAA,MAAMsB,eAAe,GAAGxvB,GAAG,CAACuuB,OAAJ,IAAejuB,GAAG,CAACiuB,OAAnB,IAA8BlmB,SAAS,CAACkmB,OAAxC,IAAmDluB,IAAI,CAACkuB,OAAxD,IAAmEvmB,SAAS,CAACumB,OAArG;AACA,EAAA,MAAMkB,gBAAgB,GAAG;AAAEpvB,IAAAA,IAAF;AAAQ2H,IAAAA;AAAR,GAAzB;AACA,EAAA,MAAM0nB,gBAAgB,GAAG;AAAE1vB,IAAAA,GAAF;AAAOM,IAAAA,GAAP;AAAY+H,IAAAA;AAAZ,GAAzB;;AAEA,EAAA,MAAMsnB,aAAa,GAAIX,WAAD,IAAiB;AACrC,IAAA,MAAMY,YAAY,GAAI3qB,IAAD,IAAU;AAC7B,MAAA,MAAM7B,IAAI,GAAG6B,IAAI,KAAK,QAAT,GAAoBxB,MAApB,GAA6BC,KAA1C;AAEA,MAAA,OAAO;AACL1D,QAAAA,GAAG,EAAE,CADA;AAELM,QAAAA,GAAG,EAAE8C,IAAI,CAAC9C,GAAL,GAAW8uB,SAAS,CAACpvB,GAArB,IAA4BoD,IAAI,CAAC9C,GAAL,GAAW8uB,SAAS,CAAC9uB,GAAjD,GAAuD,EAAvD,GAA4D8C,IAAI,CAAC9C,GAFjE;AAGLD,QAAAA,IAAI,EAAE,CAHD;AAIL2H,QAAAA,SAAS,EAAE;AAJN,OAAP;AAMD,IAAA,CATD;;AAWA,IAAA,MAAM6nB,YAAY,GAAA,QAAA,CAAA,EAAA,EACbnsB,KADa,EAEZsrB,WAAW,GAAG;AAAEhnB,MAAAA,SAAS,EAAE;AAAb,KAAH,GAAsB4nB,YAAY,CAAC,OAAD,CAFjC,CAAlB;;AAIA,IAAA,MAAME,aAAa,GAAA,QAAA,CAAA,EAAA,EACdrsB,MADc,EAEburB,WAAW,GAAG;AAAEhnB,MAAAA,SAAS,EAAE;AAAb,KAAH,GAAsB4nB,YAAY,CAAC,QAAD,CAFhC,CAAnB;;AAKArkB,IAAAA,QAAQ,CAAC;AAAEyjB,MAAAA,WAAF;AAAetrB,MAAAA,KAAK,EAAEmsB,YAAtB;AAAoCpsB,MAAAA,MAAM,EAAEqsB;AAA5C,KAAD,CAAR;AACD,EAAA,CAtBD;;AAwBA,EAAA,MAAMC,qBAAqB,GAAIxnB,KAAD,IAAW;AACvCgD,IAAAA,QAAQ,CAAC;AACP4jB,MAAAA,YAAY,EAAE5mB,KADP;AAEP7E,MAAAA,KAAK,eACAD,MADA,EAAA;AAEH4E,QAAAA,SAAS,EAAE3E,KAAK,CAAC2E;AAFd,OAAA,CAFE;AAMP2nB,MAAAA,KAAK,eACA3sB,IADA,EAAA;AAEHO,QAAAA,MAAM,EAAEP,IAAI,CAACM;AAFV,OAAA;AANE,KAAD,CAAR;AAWD,EAAA,CAZD;;AAcA,EAAA,MAAMssB,aAAa,GAAG,CAACtd,GAAD,EAAMpK,KAAN,KAAgB;AACpC,IAAA,MAAMynB,KAAK,gBAAQ3sB,IAAR,EAAA;AAAc,MAAA,CAACsP,GAAD,GAAOpK;AAArB,KAAA,CAAX;;AAEA,IAAA,IAAI4mB,YAAJ,EAAkB;AAChBa,MAAAA,KAAK,CAACpsB,MAAN,GAAe2E,KAAf;AACD,IAAA;;AAEDgD,IAAAA,QAAQ,CAAC;AAAEykB,MAAAA;AAAF,KAAD,CAAR;AACD,EAAA,CARD;;AAUA,EAAA,MAAME,eAAe,GAAG,CAACvd,GAAD,EAAMpK,KAAN,KAAgB;AACtC9E,IAAAA,MAAM,CAACkP,GAAD,CAAN,GAAcpK,KAAd;;AAEA,IAAA,IAAI4mB,YAAY,IAAIxc,GAAG,KAAK,WAA5B,EAAyC;AACvCjP,MAAAA,KAAK,CAACiP,GAAD,CAAL,GAAapK,KAAb;AACD,IAAA;;AAEDgD,IAAAA,QAAQ,CAAC;AAAE9H,MAAAA,MAAF;AAAUC,MAAAA;AAAV,KAAD,CAAR;AACD,EAAA,CARD;;AAUA,EAAA,MAAMysB,cAAc,GAAG,CAACxd,GAAD,EAAMpK,KAAN,KAAgB;AACrC7E,IAAAA,KAAK,CAACiP,GAAD,CAAL,GAAapK,KAAb;AAEAgD,IAAAA,QAAQ,CAAC;AAAE7H,MAAAA;AAAF,KAAD,CAAR;AACD,EAAA,CAJD;;AAMA,EAAA,MAAM0sB,UAAU,gBACd,KAAA,CAAA,aAAA,CAAC,KAAD,CAAO,QAAP,EAAA,IAAA,eACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAEryB,OAAO,CAACsyB;AAAxB,GAAA,eACE,oBAAC,UAAD,EAAA;AACE,IAAA,OAAO,EAAEtyB,OADX;AAEE,IAAA,eAAe,EAAE2xB,gBAFnB;AAGE,IAAA,aAAa,EAAEF,eAHjB;AAIE,IAAA,IAAI,EAAC,QAJP;AAKE,IAAA,QAAQ,EAAE/rB,MAAM,CAACzD,GALnB;AAME,IAAA,QAAQ,EAAEyD,MAAM,CAACnD,GANnB;AAOE,IAAA,KAAK,EAAEmD,MAAM,CAAC4E,SAPhB;AAQE,IAAA,WAAW,EAAE2mB,WARf;AASE,IAAA,QAAQ,EAAEkB;AATZ,GAAA,CADF,eAYE,oBAAC,UAAD,EAAA;AACE,IAAA,OAAO,EAAEnyB,OADX;AAEE,IAAA,eAAe,EAAE2xB,gBAFnB;AAGE,IAAA,aAAa,EAAEF,eAHjB;AAIE,IAAA,IAAI,EAAC,OAJP;AAKE,IAAA,QAAQ,EAAE9rB,KAAK,CAAC1D,GALlB;AAME,IAAA,QAAQ,EAAE0D,KAAK,CAACpD,GANlB;AAOE,IAAA,KAAK,EAAEoD,KAAK,CAAC2E,SAPf;AAQE,IAAA,QAAQ,EAAE8mB,YARZ;AASE,IAAA,WAAW,EAAEH,WATf;AAUE,IAAA,QAAQ,EAAEmB;AAVZ,GAAA,CAZF,CADF,EA0BG,CAACnwB,GAAG,CAACuuB,OAAJ,IAAejuB,GAAG,CAACiuB,OAApB,kBACC,KAAA,CAAA,aAAA,CAACM,YAAD,EAAA;AAAY,IAAA,SAAS,EAAE9wB,OAAO,CAACuN;AAA/B,GAAA,EAAA,gGAAA,CA3BJ,EA+BG,CAACjL,IAAI,CAACkuB,OAAL,IAAgBvmB,SAAS,CAACumB,OAA3B,kBACC,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAExwB,OAAO,CAACsyB;AAAxB,GAAA,eACE,oBAAC,UAAD,EAAA;AACE,IAAA,OAAO,EAAEtyB,OADX;AAEE,IAAA,eAAe,EAAE0xB,gBAFnB;AAGE,IAAA,SAAS,EAAEhsB,MAAM,CAACpD,IAHpB;AAIE,IAAA,UAAU,EAAEoD,MAAM,CAACuE,SAJrB;AAKE,IAAA,UAAU,EAAEqmB,UAAU,CAAC5qB,MAAX,IAAqB,EALnC;AAME,IAAA,WAAW,EAAE0qB,WAAW,CAAC1qB,MAAZ,IAAsB,EANrC;AAOE,IAAA,QAAQ,EAAEysB;AAPZ,GAAA,CADF,eAUE,oBAAC,UAAD,EAAA;AACE,IAAA,OAAO,EAAEnyB,OADX;AAEE,IAAA,QAAQ,EAAEoxB,YAFZ;AAGE,IAAA,eAAe,EAAEM,gBAHnB;AAIE,IAAA,SAAS,EAAE/rB,KAAK,CAACrD,IAJnB;AAKE,IAAA,UAAU,EAAEqD,KAAK,CAACsE,SALpB;AAME,IAAA,UAAU,EAAEqmB,UAAU,CAAC3qB,KAAX,IAAoB,EANlC;AAOE,IAAA,WAAW,EAAEyqB,WAAW,CAACzqB,KAAZ,IAAqB,EAPpC;AAQE,IAAA,QAAQ,EAAEysB;AARZ,GAAA,CAVF,CAhCJ,EAsDGnoB,SAAS,CAACumB,OAAV,iBACC,oBAACM,YAAD,EAAA;AAAY,IAAA,SAAS,EAAE9wB,OAAO,CAACuN;AAA/B,GAAA,EAAA,uDAAA,CAvDJ,CADF;AA6DA,EAAA,MAAMglB,eAAe,GAAGhwB,GAAG,CAACiuB,OAAJ,gBACtB,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAExwB,OAAO,CAACuwB;AAAxB,GAAA,eACE,oBAAC,qBAAD,EAAA;AACE,IAAA,SAAS,EAAEvwB,OAAO,CAACwyB,cADrB;AAEE,IAAA,KAAK,EAAC,8BAFR;AAGE,IAAA,KAAK,EAAE9sB,MAAM,CAACnD,GAHhB;AAIE,IAAA,GAAG,EAAE,CAAC0uB,WAAD,IAAgBI,SAAS,CAACpvB,GAJjC;AAKE,IAAA,GAAG,EAAE,CAACgvB,WAAD,IAAgBI,SAAS,CAAC9uB,GALjC;AAME,IAAA,OAAO,EAAC,UANV;AAOE,IAAA,QAAQ,EAAE,CAAC2Y,CAAD,EAAI7D,CAAJ,KAAU8a,eAAe,CAAC,KAAD,EAAQ9a,CAAR;AAPrC,GAAA,CADF,eAUE,oBAAC,qBAAD,EAAA;AACE,IAAA,SAAS,EAAErX,OAAO,CAACwyB,cADrB;AAEE,IAAA,KAAK,EAAC,gCAFR;AAGE,IAAA,KAAK,EAAE7sB,KAAK,CAACpD,GAHf;AAIE,IAAA,GAAG,EAAE,CAAC0uB,WAAD,IAAgBI,SAAS,CAACpvB,GAJjC;AAKE,IAAA,GAAG,EAAE,CAACgvB,WAAD,IAAgBI,SAAS,CAAC9uB,GALjC;AAME,IAAA,OAAO,EAAC,UANV;AAOE,IAAA,QAAQ,EAAE6uB,YAPZ;AAQE,IAAA,QAAQ,EAAE,CAAClW,CAAD,EAAI7D,CAAJ,KAAU+a,cAAc,CAAC,KAAD,EAAQ/a,CAAR;AARpC,GAAA,CAVF,CADsB,GAsBpB,IAtBJ;AAwBA,EAAA,oBACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAErX,OAAO,CAACwqB;AAAxB,GAAA,eACE,oBAACiI,gBAAD,EAAA;AAAgB,IAAA,QAAQ,EAAEvB;AAA1B,GAAA,eACE,oBAACwB,uBAAD,EAAA;AAAuB,IAAA,UAAU,eAAE,KAAA,CAAA,aAAA,CAAC,cAAD,EAAA,IAAA;AAAnC,GAAA,eACE,oBAAC5B,YAAD,EAAA;AAAY,IAAA,OAAO,EAAC;AAApB,GAAA,EAAA,sBAAA,CADF,CADF,eAIE,KAAA,CAAA,aAAA,CAAC6B,uBAAD,EAAA,IAAA,eACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAE3yB,OAAO,CAAC6tB;AAAxB,GAAA,EACG0D,kBAAkB,iBACjB,KAAA,CAAA,aAAA,CAAC,MAAD,EAAA;AAAQ,IAAA,KAAK,EAAC,0BAAd;AAAyC,IAAA,MAAM,EAAEK,aAAjD;AAAgE,IAAA,OAAO,EAAEX;AAAzE,GAAA,CAFJ,EAIGO,mBAAmB,iBAClB,KAAA,CAAA,aAAA,CAAC,MAAD,EAAA;AACE,IAAA,KAAK,EAAC,wCADR;AAEE,IAAA,MAAM,EAAEQ,qBAFV;AAGE,IAAA,OAAO,EAAEZ;AAHX,GAAA,CALJ,EAWGH,WAAW,GAAGoB,UAAH,GAAgBE,eAX9B,EAYGjB,iBAAiB,iBAChB,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAEtxB,OAAO,CAAC4yB;AAAxB,GAAA,eACE,8CACE,KAAA,CAAA,aAAA,CAAC9B,YAAD,EAAA,IAAA,EAAA,gBAAA,CADF,eAEE,oBAACA,YAAD,EAAA;AAAY,IAAA,SAAS,EAAE9wB,OAAO,CAAC6M;AAA/B,GAAA,EAAA,MAAA,EACOskB,eAAe,CAAClvB,GADvB,EAAA,QAAA,EACkCkvB,eAAe,CAAC5uB,GADlD,CAFF,CADF,eAOE,KAAA,CAAA,aAAA,CAAC,qBAAD,EAAA;AACE,IAAA,SAAS,EAAEvC,OAAO,CAAC6yB,SADrB;AAEE,IAAA,KAAK,EAAC,OAFR;AAGE,IAAA,KAAK,EAAEvtB,IAAI,CAACM,KAHd;AAIE,IAAA,GAAG,EAAEurB,eAAe,CAAClvB,GAJvB;AAKE,IAAA,GAAG,EAAEkvB,eAAe,CAAC5uB,GALvB;AAME,IAAA,IAAI,EAAE4uB,eAAe,CAAC7uB,IANxB;AAOE,IAAA,OAAO,EAAC,UAPV;AAQE,IAAA,QAAQ,EAAE,CAAC4Y,CAAD,EAAI7D,CAAJ,KAAU6a,aAAa,CAAC,OAAD,EAAU7a,CAAV;AARnC,GAAA,CAPF,eAiBE,oBAAC,qBAAD,EAAA;AACE,IAAA,SAAS,EAAErX,OAAO,CAAC6yB,SADrB;AAEE,IAAA,KAAK,EAAC,QAFR;AAGE,IAAA,KAAK,EAAEvtB,IAAI,CAACO,MAHd;AAIE,IAAA,GAAG,EAAEsrB,eAAe,CAAClvB,GAJvB;AAKE,IAAA,GAAG,EAAEkvB,eAAe,CAAC5uB,GALvB;AAME,IAAA,IAAI,EAAE4uB,eAAe,CAAC7uB,IANxB;AAOE,IAAA,OAAO,EAAC,UAPV;AAQE,IAAA,QAAQ,EAAE8uB,YARZ;AASE,IAAA,QAAQ,EAAE,CAAClW,CAAD,EAAI7D,CAAJ,KAAU6a,aAAa,CAAC,QAAD,EAAW7a,CAAX;AATnC,GAAA,CAjBF,CAbJ,CADF,CAJF,CADF,CADF;AAuDD,CA1OD;;AA4OA2Z,SAAS,CAACpwB,SAAV,GAAsB;AACpBZ,EAAAA,OAAO,EAAEa,SAAS,CAACG,MADC;AAEpB0E,EAAAA,MAAM,EAAE7E,SAAS,CAACG,MAFE;AAGpBmvB,EAAAA,eAAe,EAAEtvB,SAAS,CAACG,MAHP;AAIpBsvB,EAAAA,UAAU,EAAEzvB,SAAS,CAACG,MAJF;AAKpBiwB,EAAAA,WAAW,EAAEpwB,SAAS,CAACiM,IALH;AAMpBsjB,EAAAA,WAAW,EAAEvvB,SAAS,CAACG,MANH;AAOpBwM,EAAAA,QAAQ,EAAE3M,SAAS,CAACuN,IAPA;AAQpB8iB,EAAAA,YAAY,EAAErwB,SAAS,CAACuN,IARJ;AASpBzI,EAAAA,KAAK,EAAE9E,SAAS,CAACG,MATG;AAUpBsE,EAAAA,IAAI,EAAEzE,SAAS,CAACG,MAVI;AAWpBmwB,EAAAA,eAAe,EAAEtwB,SAAS,CAACG,MAXP;AAYpBowB,EAAAA,YAAY,EAAEvwB,SAAS,CAACiM;AAZJ,CAAtB;;AAeA,MAAMsI,QAAM,GAAIhW,KAAD,KAAY;AACzBorB,EAAAA,OAAO,EAAE;AACP5kB,IAAAA,KAAK,EAAE;AADA,GADgB;AAIzBioB,EAAAA,OAAO,EAAE;AACPrS,IAAAA,OAAO,EAAE,MADF;AAEPmT,IAAAA,aAAa,EAAE,QAFR;AAGP/oB,IAAAA,KAAK,EAAE;AAHA,GAJgB;AASzB2qB,EAAAA,UAAU,EAAE;AACV/U,IAAAA,OAAO,EAAE,MADC;AAEVmT,IAAAA,aAAa,EAAE,QAFL;AAGVlT,IAAAA,UAAU,EAAE;AAHF,GATa;AAczB6W,EAAAA,OAAO,EAAE;AACP9W,IAAAA,OAAO,EAAE,MADF;AAEPoT,IAAAA,cAAc,EAAE,cAFT;AAGPnT,IAAAA,UAAU,EAAE;AAHL,GAdgB;AAmBzBoX,EAAAA,SAAS,EAAE;AACTjtB,IAAAA,KAAK,EAAE,OADE;AAETkD,IAAAA,MAAM,EAAG,CAAA,EAAE1J,KAAK,CAACia,OAAN,CAAcC,IAAK,CAAA,GAAA,EAAKla,KAAK,CAACia,OAAN,CAAcC,IAAd,GAAqB,CAAE,CAAA,EAAA;AAFjD,GAnBc;AAuBzBmX,EAAAA,eAAe,EAAE;AACf7qB,IAAAA,KAAK,EAAE,OADQ;AAEfkD,IAAAA,MAAM,EAAG,CAAA,EAAE1J,KAAK,CAACia,OAAN,CAAcC,IAAK,CAAA,GAAA,EAAKla,KAAK,CAACia,OAAN,CAAcC,IAAd,GAAqB,CAAE,CAAA,EAAA;AAF3C,GAvBQ;AA2BzBkZ,EAAAA,cAAc,EAAE;AACd5sB,IAAAA,KAAK,EAAE,OADO;AAEdkD,IAAAA,MAAM,EAAG,CAAA,EAAE1J,KAAK,CAACia,OAAN,CAAcC,IAAK,CAAA,GAAA,EAAKla,KAAK,CAACia,OAAN,CAAcC,IAAd,GAAqB,CAAE,CAAA,EAAA;AAF5C,GA3BS;AA+BzB/L,EAAAA,IAAI,EAAE;AACJulB,IAAAA,SAAS,EAAE,QADP;AAEJhqB,IAAAA,MAAM,EAAG,CAAA,EAAE1J,KAAK,CAACia,OAAN,CAAcC,IAAK,CAAA,IAAA;AAF1B,GA/BmB;AAmCzBsZ,EAAAA,UAAU,EAAE;AACVpX,IAAAA,OAAO,EAAE,MADC;AAEVoT,IAAAA,cAAc,EAAE,eAFN;AAGVnT,IAAAA,UAAU,EAAE;AAHF,GAnCa;AAwCzB5O,EAAAA,QAAQ,EAAE;AACR1E,IAAAA,KAAK,EAAEA,KAAK,CAAC0E,QAAN;AADC,GAxCe;AA2CzBvC,EAAAA,SAAS,EAAE;AACTyoB,IAAAA,UAAU,EAAE3zB,KAAK,CAACia,OAAN,CAAcC,IAAd,GAAqB;AADxB;AA3Cc,CAAZ,CAAf;;AAgDA,gBAAehY,UAAU,CAAC8T,QAAD,CAAV,CAAmB4b,SAAnB,CAAf;;ACjaA,MAAM5b,MAAM,GAAIhW,KAAD,KAAY;AACzB4zB,EAAAA,SAAS,EAAE;AACTzZ,IAAAA,eAAe,EAAEpR,KAAK,CAACC,QAAN,CAAeoR,KADvB;AAET3Q,IAAAA,OAAO,EAAE,MAFA;AAGTjD,IAAAA,KAAK,EAAE,OAHE;AAITqtB,IAAAA,SAAS,EAAE;AAJF,GADc;AAOzBC,EAAAA,GAAG,EAAE;AACH1X,IAAAA,OAAO,EAAE,MADN;AAEHC,IAAAA,UAAU,EAAE,QAFT;AAGH5S,IAAAA,OAAO,EAAE;AAHN,GAPoB;AAYzB6I,EAAAA,KAAK,EAAE;AACLhJ,IAAAA,QAAQ,EAAEtJ,KAAK,CAACuJ,UAAN,CAAiBwqB,EAAjB,CAAoBzqB,QADzB;AAELsT,IAAAA,UAAU,EAAE,MAFP;AAGLrC,IAAAA,UAAU,EAAE,KAHP;AAIL0Q,IAAAA,YAAY,EAAE;AAJT,GAZkB;AAkBzB9c,EAAAA,IAAI,EAAE;AACJxE,IAAAA,SAAS,EAAE,OADP;AAEJqhB,IAAAA,WAAW,EAAE,MAFT;AAGJxkB,IAAAA,KAAK,EAAE,OAHH;AAIJ8C,IAAAA,QAAQ,EAAE;AAJN;AAlBmB,CAAZ,CAAf;;AA0BA,MAAM0qB,SAAS,GAAG,CAAC;AAAEnzB,EAAAA,SAAF;AAAaD,EAAAA,OAAb;AAAsBqzB,EAAAA;AAAtB,CAAD,KAA8C;AAC9D,EAAchzB,UAAU,CAACL,OAAO,CAACszB,WAAT,EAAsBrzB,SAAtB;AAExB,EAAA,oBACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAED,OAAO,CAACgzB;AAAxB,GAAA,eACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAEhzB,OAAO,CAAC0R;AAAxB,GAAA,EAAA,KAAA,CADF,EAEG2hB,gBAAgB,iBACf,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAErzB,OAAO,CAACkzB;AAAxB,GAAA,eACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAElzB,OAAO,CAACuN;AAAxB,GAAA,EAAA,0BAAA,CADF,eAEE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAC,IAAX;AAAgB,IAAA,MAAM,EAAC,IAAvB;AAA4B,IAAA,OAAO,EAAC,WAApC;AAAgD,IAAA,IAAI,EAAC,MAArD;AAA4D,IAAA,KAAK,EAAC;AAAlE,GAAA,eACE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AAAM,IAAA,CAAC,EAAC,KAAR;AAAc,IAAA,CAAC,EAAC,KAAhB;AAAsB,IAAA,KAAK,EAAC,IAA5B;AAAiC,IAAA,MAAM,EAAC,IAAxC;AAA6C,IAAA,EAAE,EAAC,KAAhD;AAAsD,IAAA,IAAI,EAAC,OAA3D;AAAmE,IAAA,MAAM,EAAC;AAA1E,GAAA,CADF,eAEE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AACE,IAAA,CAAC,EAAC,qkCADJ;AAEE,IAAA,IAAI,EAAC;AAFP,GAAA,CAFF,eAME,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AACE,IAAA,CAAC,EAAC,8jBADJ;AAEE,IAAA,IAAI,EAAC;AAFP,GAAA,CANF,CAFF,CAHJ,eAkBE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAEvN,OAAO,CAACkzB;AAAxB,GAAA,eACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAElzB,OAAO,CAACuN;AAAxB,GAAA,EAAA,sBAAA,CADF,eAEE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAC,IAAX;AAAgB,IAAA,MAAM,EAAC,IAAvB;AAA4B,IAAA,OAAO,EAAC,WAApC;AAAgD,IAAA,IAAI,EAAC,MAArD;AAA4D,IAAA,KAAK,EAAC;AAAlE,GAAA,eACE,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA;AAAQ,IAAA,EAAE,EAAC,KAAX;AAAiB,IAAA,EAAE,EAAC,KAApB;AAA0B,IAAA,CAAC,EAAC,KAA5B;AAAkC,IAAA,IAAI,EAAC;AAAvC,GAAA,CADF,eAEE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AACE,IAAA,CAAC,EAAC,8hCADJ;AAEE,IAAA,IAAI,EAAC;AAFP,GAAA,CAFF,eAME,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AAAM,IAAA,CAAC,EAAC,YAAR;AAAqB,IAAA,MAAM,EAAC,SAA5B;AAAsC,IAAA,eAAe,EAAC;AAAtD,GAAA,CANF,CAFF,CAlBF,EA6BG8lB,gBAAgB,iBACf,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAErzB,OAAO,CAACkzB;AAAxB,GAAA,eACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAElzB,OAAO,CAACuN;AAAxB,GAAA,EAAA,4BAAA,CADF,eAEE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAC,IAAX;AAAgB,IAAA,MAAM,EAAC,IAAvB;AAA4B,IAAA,OAAO,EAAC,WAApC;AAAgD,IAAA,IAAI,EAAC,MAArD;AAA4D,IAAA,KAAK,EAAC;AAAlE,GAAA,eACE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AAAM,IAAA,CAAC,EAAC,KAAR;AAAc,IAAA,CAAC,EAAC,KAAhB;AAAsB,IAAA,KAAK,EAAC,IAA5B;AAAiC,IAAA,MAAM,EAAC,IAAxC;AAA6C,IAAA,EAAE,EAAC,KAAhD;AAAsD,IAAA,IAAI,EAAC;AAA3D,GAAA,CADF,eAEE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AAAM,IAAA,CAAC,EAAC,KAAR;AAAc,IAAA,CAAC,EAAC,KAAhB;AAAsB,IAAA,KAAK,EAAC,IAA5B;AAAiC,IAAA,MAAM,EAAC,IAAxC;AAA6C,IAAA,EAAE,EAAC,KAAhD;AAAsD,IAAA,MAAM,EAAC;AAA7D,GAAA,CAFF,eAGE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AACE,IAAA,CAAC,EAAC,qtGADJ;AAEE,IAAA,IAAI,EAAC;AAFP,GAAA,CAHF,CAFF,CA9BJ,eA0CE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAEvN,OAAO,CAACkzB;AAAxB,GAAA,eACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAElzB,OAAO,CAACuN;AAAxB,GAAA,EAAA,qBAAA,CADF,eAEE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAC,IAAX;AAAgB,IAAA,MAAM,EAAC,IAAvB;AAA4B,IAAA,OAAO,EAAC,WAApC;AAAgD,IAAA,IAAI,EAAC,MAArD;AAA4D,IAAA,KAAK,EAAC;AAAlE,GAAA,eACE,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA;AAAQ,IAAA,EAAE,EAAC,GAAX;AAAe,IAAA,EAAE,EAAC,GAAlB;AAAsB,IAAA,CAAC,EAAC,GAAxB;AAA4B,IAAA,IAAI,EAAC;AAAjC,GAAA,CADF,eAEE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AACE,IAAA,CAAC,EAAC,mjBADJ;AAEE,IAAA,IAAI,EAAC;AAFP,GAAA,CAFF,eAME,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AAAM,IAAA,CAAC,EAAC,YAAR;AAAqB,IAAA,MAAM,EAAC,SAA5B;AAAsC,IAAA,WAAW,EAAC;AAAlD,GAAA,CANF,CAFF,CA1CF,EAqDG8lB,gBAAgB,iBACf,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAErzB,OAAO,CAACkzB;AAAxB,GAAA,eACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAElzB,OAAO,CAACuN;AAAxB,GAAA,EAAA,2BAAA,CADF,eAEE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAC,IAAX;AAAgB,IAAA,MAAM,EAAC,IAAvB;AAA4B,IAAA,OAAO,EAAC,WAApC;AAAgD,IAAA,IAAI,EAAC,MAArD;AAA4D,IAAA,KAAK,EAAC;AAAlE,GAAA,eACE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AAAM,IAAA,CAAC,EAAC,KAAR;AAAc,IAAA,CAAC,EAAC,KAAhB;AAAsB,IAAA,KAAK,EAAC,IAA5B;AAAiC,IAAA,MAAM,EAAC,IAAxC;AAA6C,IAAA,EAAE,EAAC,KAAhD;AAAsD,IAAA,IAAI,EAAC;AAA3D,GAAA,CADF,eAEE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AAAM,IAAA,CAAC,EAAC,KAAR;AAAc,IAAA,CAAC,EAAC,KAAhB;AAAsB,IAAA,KAAK,EAAC,IAA5B;AAAiC,IAAA,MAAM,EAAC,IAAxC;AAA6C,IAAA,EAAE,EAAC,KAAhD;AAAsD,IAAA,MAAM,EAAC;AAA7D,GAAA,CAFF,eAGE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AACE,IAAA,CAAC,EAAC,+iBADJ;AAEE,IAAA,IAAI,EAAC;AAFP,GAAA,CAHF,eAOE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AACE,IAAA,CAAC,EAAC,ymGADJ;AAEE,IAAA,IAAI,EAAC;AAFP,GAAA,CAPF,CAFF,CAtDJ,eAsEE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAEvN,OAAO,CAACkzB;AAAxB,GAAA,eACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAElzB,OAAO,CAACuN;AAAxB,GAAA,EAAA,mBAAA,CADF,eAEE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAC,IAAX;AAAgB,IAAA,MAAM,EAAC,IAAvB;AAA4B,IAAA,OAAO,EAAC,WAApC;AAAgD,IAAA,IAAI,EAAC,MAArD;AAA4D,IAAA,KAAK,EAAC;AAAlE,GAAA,eACE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AAAM,IAAA,CAAC,EAAC,YAAR;AAAqB,IAAA,MAAM,EAAC,SAA5B;AAAsC,IAAA,WAAW,EAAC;AAAlD,GAAA,CADF,eAEE,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA;AAAQ,IAAA,EAAE,EAAC,GAAX;AAAe,IAAA,EAAE,EAAC,GAAlB;AAAsB,IAAA,CAAC,EAAC,GAAxB;AAA4B,IAAA,IAAI,EAAC;AAAjC,GAAA,CAFF,eAGE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AACE,IAAA,CAAC,EAAC,2VADJ;AAEE,IAAA,IAAI,EAAC;AAFP,GAAA,CAHF,CAFF,CAtEF,EAiFG8lB,gBAAgB,iBACf,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAErzB,OAAO,CAACkzB;AAAxB,GAAA,eACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAElzB,OAAO,CAACuN;AAAxB,GAAA,EAAA,yBAAA,CADF,eAEE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAC,IAAX;AAAgB,IAAA,MAAM,EAAC,IAAvB;AAA4B,IAAA,OAAO,EAAC,WAApC;AAAgD,IAAA,IAAI,EAAC,MAArD;AAA4D,IAAA,KAAK,EAAC;AAAlE,GAAA,eACE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AAAM,IAAA,CAAC,EAAC,KAAR;AAAc,IAAA,CAAC,EAAC,KAAhB;AAAsB,IAAA,KAAK,EAAC,IAA5B;AAAiC,IAAA,MAAM,EAAC,IAAxC;AAA6C,IAAA,EAAE,EAAC,KAAhD;AAAsD,IAAA,IAAI,EAAC;AAA3D,GAAA,CADF,eAEE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AAAM,IAAA,CAAC,EAAC,KAAR;AAAc,IAAA,CAAC,EAAC,KAAhB;AAAsB,IAAA,KAAK,EAAC,IAA5B;AAAiC,IAAA,MAAM,EAAC,IAAxC;AAA6C,IAAA,EAAE,EAAC,KAAhD;AAAsD,IAAA,MAAM,EAAC;AAA7D,GAAA,CAFF,eAGE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AACE,IAAA,CAAC,EAAC,+UADJ;AAEE,IAAA,IAAI,EAAC;AAFP,GAAA,CAHF,eAOE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AACE,IAAA,CAAC,EAAC,ymGADJ;AAEE,IAAA,IAAI,EAAC;AAFP,GAAA,CAPF,CAFF,CAlFJ,CADF;AAqGD,CAxGD;;AA0GA6lB,SAAS,CAACxyB,SAAV,GAAsB;AACpBX,EAAAA,SAAS,EAAEY,SAAS,CAACK,MADD;AAEpBlB,EAAAA,OAAO,EAAEa,SAAS,CAACG,MAAV,CAAiBC,UAFN;AAGpBoyB,EAAAA,gBAAgB,EAAExyB,SAAS,CAACiM;AAHR,CAAtB;AAMA,gBAAexL,UAAU,CAAC8T,MAAD,CAAV,CAAmBge,SAAnB,CAAf;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/axis/arrow.jsx","../src/utils.js","../src/axis/axes.jsx","../src/grid.jsx","../src/labels.jsx","../src/bg.jsx","../src/graph.jsx","../src/container/marks.js","../../../node_modules/redux-undo/lib/actions.js","../../../node_modules/redux-undo/lib/helpers.js","../../../node_modules/redux-undo/lib/debug.js","../../../node_modules/redux-undo/lib/reducer.js","../../../node_modules/redux-undo/lib/index.js","../src/container/reducer.js","../src/container/actions.js","../src/tools/shared/styles.js","../src/coordinates-label.jsx","../src/tools/shared/icons/MissingSVG.jsx","../src/tools/shared/icons/CorrectSVG.jsx","../src/tools/shared/icons/IncorrectSVG.jsx","../src/tools/shared/point/base-point.jsx","../src/tools/shared/point/arrow-point.jsx","../src/tools/shared/arrow-head.jsx","../src/tools/shared/point/arrow.jsx","../src/tools/shared/point/index.jsx","../src/tools/shared/types.js","../src/use-debounce.js","../src/label-svg-icon.jsx","../src/mark-label.jsx","../src/tools/point/component.jsx","../src/tools/point/index.js","../src/tools/circle/bg-circle.jsx","../src/tools/shared/line/line-path.jsx","../src/tools/shared/line/index.jsx","../src/tools/shared/line/with-root-edge.jsx","../src/tools/circle/component.jsx","../src/tools/circle/index.js","../src/tools/polygon/line.jsx","../src/tools/polygon/polygon.jsx","../src/tools/polygon/component.jsx","../src/tools/polygon/index.js","../src/tools/sine/component.jsx","../src/tools/sine/index.js","../src/tools/parabola/component.jsx","../src/tools/parabola/index.js","../src/tools/line/component.jsx","../src/tools/line/index.js","../src/tools/segment/component.jsx","../src/tools/segment/index.js","../src/tools/ray/component.jsx","../src/tools/ray/index.js","../src/tools/vector/component.jsx","../src/tools/vector/index.js","../src/tools/absolute/component.jsx","../src/tools/absolute/index.js","../src/tools/exponential/component.jsx","../src/tools/exponential/index.js","../src/tools/index.js","../src/toggle-bar.jsx","../src/tool-menu.jsx","../src/undo-redo.jsx","../../../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../../node_modules/@babel/runtime/helpers/inheritsLoose.js","../../../node_modules/recompose/setStatic.js","../../../node_modules/recompose/setDisplayName.js","../../../node_modules/recompose/getDisplayName.js","../../../node_modules/recompose/wrapDisplayName.js","../../../node_modules/recompose/shouldUpdate.js","../../../node_modules/fbjs/lib/shallowEqual.js","../../../node_modules/recompose/shallowEqual.js","../../../node_modules/recompose/pure.js","../../../node_modules/@material-ui/icons/utils/createSvgIcon.js","../../../node_modules/@material-ui/icons/ExpandMore.js","../src/graph-with-controls.jsx","../src/container/middleware.js","../src/container/index.jsx","../src/grid-setup.jsx","../src/key-legend.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types } from '@pie-lib/plot';\n\nconst style = (theme) => ({\n root: {\n fill: `var(--arrow-color, ${theme.palette.common.black})`,\n },\n});\n\nexport class Arrow extends React.Component {\n render() {\n const { x, y, classes, className, scale } = this.props;\n const names = classNames(classes.root, className);\n let direction = this.props.direction || 'left';\n\n const xv = scale.x(x);\n const yv = scale.y(y);\n\n let transform = '';\n\n const getTransform = (x, y, rotate) => `translate(${x}, ${y}) rotate(${rotate})`;\n\n if (direction === 'left') {\n transform = getTransform(xv - 15, yv, 0);\n }\n\n if (direction === 'right') {\n transform = getTransform(xv + 15, yv, 180);\n }\n\n if (direction === 'up') {\n transform = getTransform(xv, yv - 15, 90);\n }\n\n if (direction === 'down') {\n transform = getTransform(xv, yv + 15, 270);\n }\n\n return <path d=\"m 0,0 8,-5 0,10 -8,-5\" transform={transform} className={names} />;\n }\n}\n\nArrow.propTypes = {\n y: PropTypes.number,\n x: PropTypes.number,\n direction: PropTypes.oneOf(['left', 'right', 'up', 'down']),\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n scale: types.ScaleType.isRequired,\n};\n\nArrow.defaultProps = {\n y: 0,\n x: 0,\n direction: 'left',\n};\n\nexport default withStyles(style)(Arrow);\n","import head from 'lodash/head';\nimport tail from 'lodash/tail';\nimport { utils } from '@pie-lib/plot';\nimport invariant from 'invariant';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport cloneDeep from 'lodash/cloneDeep';\n\nexport const tickCount = utils.tickCount;\nexport const bounds = utils.bounds;\nexport const point = utils.point;\n\n//TODO: This can be removed?\nexport const getAngleDeg = () => 0;\n//TODO: This can be removed?\nexport const arrowDimensions = () => 0;\n\nexport const getTickValues = (prop) => {\n const tickValues = [];\n let tickVal = 0;\n\n while (tickVal >= prop.min && tickValues.indexOf(tickVal) < 0) {\n tickValues.push(tickVal);\n tickVal = Math.round((tickVal - prop.step) * 10000) / 10000;\n }\n\n tickVal = Math.round(prop.step * 10000) / 10000;\n\n while (tickVal <= prop.max && tickValues.indexOf(tickVal) < 0) {\n tickValues.push(tickVal);\n tickVal = Math.round((tickVal + prop.step) * 10000) / 10000;\n }\n\n // return only ticks that are inside the min-max interval\n if (tickValues) {\n return tickValues.filter((tV) => tV >= prop.min && tV <= prop.max);\n }\n\n return [];\n};\n\nexport const countWords = (label) => {\n if (label == null || isEmpty(label)) {\n return 1;\n }\n\n const words = label.split(' ');\n return words.length;\n};\n\n// findLongestWord is also used in plot\nexport const findLongestWord = (label) => {\n let longestWord = (label || '')\n .replace(/<[^>]+>/g, '')\n .split(' ')\n .sort((a, b) => b.length - a.length);\n\n return longestWord[0].length;\n};\n\n// amountToIncreaseWidth is also used in plot\nexport const amountToIncreaseWidth = (longestWord) => {\n if (!longestWord) {\n return 0;\n }\n\n return longestWord * 10;\n};\n\nexport const polygonToArea = (points) => {\n const h = head(points);\n const area = {\n left: h.x,\n top: h.y,\n bottom: h.y,\n right: h.x,\n };\n return tail(points).reduce((a, p) => {\n a.left = Math.min(a.left, p.x);\n a.top = Math.max(a.top, p.y);\n a.bottom = Math.min(a.bottom, p.y);\n a.right = Math.max(a.right, p.x);\n return a;\n }, area);\n};\n\nexport const lineToArea = (from, to) => pointsToArea(from, to);\n\nexport const pointsToArea = (a, b) => {\n invariant(!!a && !!b, 'a or b is undefined');\n const left = Math.min(a.x, b.x);\n const top = Math.max(a.y, b.y);\n const bottom = Math.min(a.y, b.y);\n const right = Math.max(a.x, b.x);\n return { left, top, bottom, right };\n};\n\nexport const isDomainRangeEqual = (graphProps, nextGraphProps) => {\n return isEqual(graphProps.domain, nextGraphProps.domain) && isEqual(graphProps.range, nextGraphProps.range);\n};\n\nexport const getRightestPoints = (points) => {\n const sortedPoints = cloneDeep(points);\n sortedPoints.sort((a, b) => b.x - a.x);\n\n return { a: sortedPoints[0], b: sortedPoints[1] };\n};\n\nexport const getMiddleOfTwoPoints = (a, b) => ({\n x: (a.x + b.x) / 2,\n y: (a.y + b.y) / 2,\n});\n\nexport const roundNumber = (number) => parseFloat(number.toFixed(4));\n\nexport const sameAxes = (p1, p2) =>\n p1 && p2 && (roundNumber(p1.x) === roundNumber(p2.x) || roundNumber(p1.y) === roundNumber(p2.y));\n\nexport const equalPoints = (p1, p2) =>\n p1 &&\n p2 &&\n isEqual(\n {\n x: roundNumber(p1.x),\n y: roundNumber(p1.y),\n },\n {\n x: roundNumber(p2.x),\n y: roundNumber(p2.y),\n },\n );\n\nconst getDistanceBetweenTicks = (axis, size) => {\n const { min, max, step } = axis;\n const nbOfTicks = (max - min) / step;\n\n return size / nbOfTicks;\n};\n\nexport const thinnerShapesNeeded = (graphProps) => {\n const {\n domain,\n range,\n size: { width, height },\n } = graphProps;\n\n // 14 is the default width of a point\n return getDistanceBetweenTicks(domain, width) < 14 || getDistanceBetweenTicks(range, height) < 14;\n};\n\nexport const getAdjustedGraphLimits = (graphProps) => {\n const {\n domain,\n range,\n size: { width, height },\n } = graphProps;\n const domainTicksDistance = getDistanceBetweenTicks(domain, width);\n const rangeTicksDistance = getDistanceBetweenTicks(range, height);\n\n // 15 is the distance required for the arrow to extend the graph\n const domainPadding = domain.step / (domainTicksDistance / 15);\n const rangePadding = range.step / (rangeTicksDistance / 15);\n\n return {\n domain: {\n min: domain.min - domainPadding,\n max: domain.max + domainPadding,\n },\n range: {\n min: range.min - rangePadding,\n max: range.max + rangePadding,\n },\n };\n};\n\nexport const getDistanceBetweenTwoPoints = (a, b) => Math.sqrt((b.x - a.x) * (b.x - a.x) + (b.y - a.y) * (b.y - a.y));\n\nconst sortPoints = (array) => (array || []).sort((a, b) => a.x - b.x || a.y - b.y);\n\n// check colliniarity of 3 points (source: https://www.geeksforgeeks.org/program-check-three-points-collinear/)\nconst checkCollinearity = (a, b, c) => (a.x - b.x) * (c.y - b.y) === (c.x - b.x) * (a.y - b.y);\n\n// 2 lines are overlapping if all 4 points are collinear\nconst isSameLine = (markA, markB) =>\n checkCollinearity(markA.from, markB.from, markB.to) && checkCollinearity(markA.to, markB.from, markB.to);\n\nconst isSameCircle = (markA, markB) =>\n equalPoints(markA.root, markB.root) &&\n getDistanceBetweenTwoPoints(markB.root, markB.edge) === getDistanceBetweenTwoPoints(markA.root, markA.edge);\n\nexport const isDuplicatedMark = (mark, marks, oldMark) => {\n const { type, building } = mark;\n\n if (building) {\n return false;\n }\n\n const filteredMarks = (marks || []).filter((m) => m.type === type && !m.building);\n const index = filteredMarks.findIndex((m) => isEqual(m, oldMark));\n\n if (index !== -1) {\n filteredMarks.splice(index, 1);\n }\n\n const duplicated = filteredMarks.find((m) => {\n if (type === 'circle' || type === 'parabola' || type === 'sine' || type === 'absolute' || type === 'exponential') {\n const { root, edge } = mark;\n\n return (equalPoints(root, m.root) && equalPoints(edge, m.edge)) || (type === 'circle' && isSameCircle(m, mark));\n } else if (type === 'line' || type === 'ray' || type === 'segment' || type === 'vector') {\n const { from, to } = mark;\n\n return (\n (equalPoints(from, m.from) && equalPoints(to, m.to)) ||\n (equalPoints(from, m.to) && equalPoints(to, m.from)) ||\n (type === 'line' && isSameLine(m, mark))\n );\n } else if (type === 'polygon') {\n return isEqual(sortPoints(cloneDeep(mark.points)), sortPoints(cloneDeep(m.points)));\n } else if (type === 'point') {\n return equalPoints(m, mark);\n }\n });\n\n return !!duplicated;\n};\n","import React from 'react';\nimport { Axis } from '@vx/axis';\nimport { types } from '@pie-lib/plot';\nimport PropTypes from 'prop-types';\nimport Arrow from './arrow';\nimport { withStyles } from '@material-ui/core';\nimport { countWords, findLongestWord, amountToIncreaseWidth, getTickValues } from '../utils';\nimport { color, Readable } from '@pie-lib/render-ui';\n\nexport const AxisPropTypes = {\n includeArrows: PropTypes.object,\n graphProps: PropTypes.object,\n};\n\nconst AxisDefaultProps = {\n includeArrows: {\n left: true,\n right: true,\n up: true,\n down: true,\n },\n};\n\nconst axisStyles = (theme) => ({\n line: {\n stroke: color.defaults.PRIMARY,\n strokeWidth: 3,\n },\n arrow: {\n fill: color.defaults.PRIMARY,\n },\n tick: {\n fill: color.defaults.PRIMARY,\n '& > line': {\n stroke: color.defaults.PRIMARY,\n },\n },\n labelFontSize: {\n fontSize: theme.typography.fontSize,\n },\n axisLabelHolder: {\n padding: 0,\n margin: 0,\n textAlign: 'center',\n '* > *': {\n margin: 0,\n padding: 0,\n },\n fontSize: theme.typography.fontSize,\n },\n});\n\nconst tickLabelStyles = {\n fontFamily: 'Roboto',\n fontSize: '14px',\n cursor: 'inherit',\n};\n\nexport const sharedValues = (\n firstNegativeX,\n firstNegativeY,\n distanceFromOriginToFirstNegativeX,\n distanceFromOriginToFirstNegativeY,\n deltaAllowance,\n dy,\n) => {\n let result = [];\n\n if (\n firstNegativeX === firstNegativeY &&\n distanceFromOriginToFirstNegativeX - deltaAllowance < distanceFromOriginToFirstNegativeY &&\n distanceFromOriginToFirstNegativeY < distanceFromOriginToFirstNegativeX + deltaAllowance &&\n distanceFromOriginToFirstNegativeX - deltaAllowance < dy &&\n dy < distanceFromOriginToFirstNegativeX + deltaAllowance\n ) {\n result.push(firstNegativeX);\n }\n\n return result;\n};\n\nexport const firstNegativeValue = (interval) => (interval || []).find((element) => element < 0);\n\nexport class RawXAxis extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n classes: PropTypes.object,\n graphProps: types.GraphPropsType.isRequired,\n };\n static defaultProps = AxisDefaultProps;\n\n render() {\n const {\n includeArrows,\n classes,\n graphProps,\n columnTicksValues,\n skipValues,\n distanceFromOriginToFirstNegativeY,\n dy,\n } = this.props;\n const { scale, domain, size, range } = graphProps || {};\n\n // Having 0 as a number in columnTicksValues does not make 0 to show up\n // so we use this trick, by defining it as a string:\n const tickValues =\n (domain.labelStep || range.labelStep) && domain.min <= 0 ? ['0', ...columnTicksValues] : columnTicksValues;\n // However, the '0' has to be displayed only if other tick labels (y-axis or x-axis) are displayed\n\n const labelProps = (label) => {\n const y = skipValues && skipValues[0] === label ? distanceFromOriginToFirstNegativeY + 4 : dy;\n\n return {\n ...tickLabelStyles,\n textAnchor: 'middle',\n y: y,\n dx: label === '0' ? -10 : 0,\n dy: label === '0' ? -7 : 0,\n };\n };\n\n const necessaryRows = countWords(domain.axisLabel);\n const longestWord = findLongestWord(domain.axisLabel);\n const necessaryWidth = amountToIncreaseWidth(longestWord) + 2;\n\n return (\n <React.Fragment>\n <Axis\n axisLineClassName={classes.line}\n scale={scale.x}\n top={scale.y(0)}\n left={0}\n label={domain.label}\n rangePadding={8}\n tickClassName={classes.tick}\n tickFormat={(value) => value}\n tickLabelProps={labelProps}\n tickValues={tickValues}\n />\n {includeArrows && includeArrows.left && (\n <Arrow direction=\"left\" x={domain.min} y={0} className={classes.arrow} scale={scale} />\n )}\n {includeArrows && includeArrows.right && (\n <Arrow direction=\"right\" x={domain.max} y={0} className={classes.arrow} scale={scale} />\n )}\n {domain.axisLabel && (\n <foreignObject x={size.width + 17} y={scale.y(0) - 9} width={necessaryWidth} height={20 * necessaryRows}>\n <div dangerouslySetInnerHTML={{ __html: domain.axisLabel }} className={classes.labelFontSize} />\n </foreignObject>\n )}\n </React.Fragment>\n );\n }\n}\n\nconst XAxis = withStyles(axisStyles)(RawXAxis);\n\nexport class RawYAxis extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n graphProps: types.GraphPropsType.isRequired,\n };\n static defaultProps = AxisDefaultProps;\n\n render() {\n const { classes, includeArrows, graphProps, skipValues, rowTickValues } = this.props;\n const { scale, range, size } = graphProps || {};\n\n const necessaryWidth = range.axisLabel ? amountToIncreaseWidth(range.axisLabel.length) : 0;\n\n const customTickFormat = (value) => (skipValues && skipValues.indexOf(value) >= 0 ? '' : value);\n\n return (\n <React.Fragment>\n <Axis\n axisLineClassName={classes.line}\n orientation={'left'}\n scale={scale.y}\n top={0}\n height={size.height}\n left={scale.x(0)}\n label={range.label}\n labelProps={{ 'data-pie-readable': false }}\n rangePadding={8}\n tickLength={10}\n tickClassName={classes.tick}\n tickFormat={customTickFormat}\n tickLabelProps={(value) => {\n let digits = value.toLocaleString().replace(/[.-]/g, '').length || 1;\n\n return {\n ...tickLabelStyles,\n dy: 4,\n dx: -10 - digits * 9,\n 'data-pie-readable': false,\n };\n }}\n hideZero={true}\n tickTextAnchor={'bottom'}\n tickValues={rowTickValues}\n />\n\n {includeArrows && includeArrows.down && (\n <Arrow direction=\"down\" x={0} y={range.min} className={classes.arrow} scale={scale} />\n )}\n {includeArrows && includeArrows.up && (\n <Arrow direction=\"up\" x={0} y={range.max} className={classes.arrow} scale={scale} />\n )}\n {range.axisLabel && (\n <foreignObject x={scale.x(0) - necessaryWidth / 2} y={-33} width={necessaryWidth} height=\"20\">\n <Readable false>\n <div dangerouslySetInnerHTML={{ __html: range.axisLabel }} className={classes.axisLabelHolder} />\n </Readable>\n </foreignObject>\n )}\n </React.Fragment>\n );\n }\n}\n\nconst YAxis = withStyles(axisStyles)(RawYAxis);\n\nexport default class Axes extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n classes: PropTypes.object,\n graphProps: types.GraphPropsType.isRequired,\n };\n static defaultProps = AxisDefaultProps;\n\n xValues = () => {\n const { graphProps } = this.props;\n const { scale, domain } = graphProps || {};\n\n if (!domain || !scale) {\n return;\n }\n\n const ticks = getTickValues({ ...domain, step: domain.labelStep });\n const negative = firstNegativeValue(ticks);\n\n return {\n columnTicksValues: ticks,\n firstNegativeX: negative,\n distanceFromOriginToFirstNegativeX: Math.abs(scale.y(0) - scale.y(negative)),\n };\n };\n\n yValues = () => {\n const { graphProps } = this.props;\n const { scale, range } = graphProps || {};\n\n if (!range || !scale) {\n return;\n }\n\n const ticks = getTickValues({ ...range, step: range.labelStep });\n const negative = firstNegativeValue(ticks);\n\n return {\n rowTickValues: ticks,\n firstNegativeY: negative,\n distanceFromOriginToFirstNegativeY: Math.abs(scale.x(0) - scale.x(negative)),\n };\n };\n\n render() {\n const { graphProps } = this.props;\n const { domain, range } = graphProps || {};\n const { columnTicksValues, firstNegativeX, distanceFromOriginToFirstNegativeX } = this.xValues();\n const { rowTickValues, firstNegativeY, distanceFromOriginToFirstNegativeY } = this.yValues();\n const deltaAllowance = 6;\n const dy = 25;\n\n const skipValues = sharedValues(\n firstNegativeX,\n firstNegativeY,\n distanceFromOriginToFirstNegativeX,\n distanceFromOriginToFirstNegativeY,\n deltaAllowance,\n dy,\n );\n\n // each axis has to be displayed only if the domain & range include it\n return (\n <React.Fragment>\n {range.min <= 0 ? (\n <XAxis\n {...this.props}\n skipValues={skipValues}\n columnTicksValues={columnTicksValues}\n distanceFromOriginToFirstNegativeY={distanceFromOriginToFirstNegativeY}\n dy={dy}\n />\n ) : null}\n {domain.min <= 0 ? (\n <YAxis\n {...this.props}\n skipValues={skipValues}\n rowTickValues={rowTickValues}\n distanceFromOriginToFirstNegativeX={distanceFromOriginToFirstNegativeX}\n />\n ) : null}\n </React.Fragment>\n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as vx from '@vx/grid';\nimport { types } from '@pie-lib/plot';\nimport { withStyles } from '@material-ui/core/styles';\nimport { getTickValues } from './utils';\n\nexport class Grid extends React.Component {\n static propTypes = {\n disabled: PropTypes.bool,\n disabledAdditionalGrid: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n getAdditionalGridProps = (rowTickValues, columnTickValues) => {\n const {\n graphProps: {\n scale,\n size: { width, height },\n domain,\n range,\n },\n } = this.props;\n const rowTickLabelValues = getTickValues({\n ...range,\n step: range.labelStep,\n }).filter((value) => rowTickValues.includes(value));\n const columnTickLabelValues = getTickValues({\n ...domain,\n step: domain.labelStep,\n }).filter((value) => columnTickValues.includes(value));\n\n const minValueLength =\n (rowTickLabelValues.length &&\n Math.min(...rowTickLabelValues)\n .toString()\n .replace(/[.-]/g, '').length) ||\n 1;\n const maxValueLength =\n (rowTickLabelValues.length &&\n Math.max(...rowTickLabelValues)\n .toString()\n .replace(/[.-]/g, '').length) ||\n 1;\n\n const rowLabelLength = Math.max(minValueLength, maxValueLength) * 9 + 22;\n const horizontalDistanceToZero = scale.x(0);\n const verticalDistanceToZero = scale.y(0);\n const columnLabelLength = 28;\n const rowStrokeDasharray = `${horizontalDistanceToZero - rowLabelLength} ${rowLabelLength} ${width}`;\n const columnStrokeDasharray = `${verticalDistanceToZero} ${columnLabelLength} ${height}`;\n\n const displayAdditionalGrid =\n domain.labelStep > 0 &&\n range.labelStep > 0 &&\n rowTickLabelValues &&\n columnTickLabelValues &&\n rowTickLabelValues.length > 1 &&\n columnTickLabelValues.length > 1 &&\n (rowTickLabelValues.length !== rowTickValues.length || columnTickLabelValues.length !== columnTickValues.length);\n\n const filteredColumnValues = columnTickLabelValues.filter(\n (value) => value >= 0 || horizontalDistanceToZero - scale.x(value) > rowLabelLength,\n );\n const filteredRowValues = rowTickLabelValues.filter(\n (value) => value >= 0 || scale.y(value) - verticalDistanceToZero > columnLabelLength,\n );\n\n return {\n rowTickLabelValues: filteredRowValues,\n columnTickLabelValues: filteredColumnValues,\n rowStrokeDasharray,\n columnStrokeDasharray,\n displayAdditionalGrid,\n };\n };\n\n render() {\n const { graphProps } = this.props;\n const {\n scale,\n size: { height, width },\n domain,\n range,\n } = graphProps;\n const rowTickValues = getTickValues(range);\n const columnTickValues = getTickValues(domain);\n const {\n rowTickLabelValues,\n columnTickLabelValues,\n rowStrokeDasharray,\n columnStrokeDasharray,\n displayAdditionalGrid,\n } = this.getAdditionalGridProps(rowTickValues, columnTickValues);\n\n const additionalGridStroke =\n domain.labelStep * 2 === domain.step || range.labelStep * 2 === range.step ? '#9FA8DA' : '#7985CB';\n\n return (\n <>\n <vx.Grid\n innerRef={(r) => (this.grid = r)}\n xScale={scale.x}\n yScale={scale.y}\n width={width}\n height={height}\n stroke=\"#E1E6EC\"\n rowTickValues={rowTickValues}\n columnTickValues={columnTickValues}\n />\n {displayAdditionalGrid && (\n <>\n <vx.GridRows\n scale={scale.y}\n width={width}\n tickValues={rowTickLabelValues}\n stroke={additionalGridStroke}\n strokeDasharray={rowStrokeDasharray}\n />\n <vx.GridColumns\n scale={scale.x}\n height={height}\n tickValues={columnTickLabelValues}\n stroke={additionalGridStroke}\n strokeDasharray={columnStrokeDasharray}\n />\n </>\n )}\n </>\n );\n }\n}\n\nexport default withStyles(() => ({}))(Grid);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types } from '@pie-lib/plot';\nimport { color, Readable } from '@pie-lib/render-ui';\nimport EditableHtml from '@pie-lib/editable-html';\nimport cn from 'classnames';\n\nconst rotations = {\n left: -90,\n top: 0,\n bottom: 0,\n right: 90,\n};\n\nexport const getTransform = (side, width, height) => {\n const t = (x, y, rotate) => `translate(${x}, ${y}), rotate(${rotate})`;\n\n if (side === 'left') {\n return t(-20, height / 2, rotations[side]);\n }\n if (side === 'right') {\n return t(width + 30, height / 2, rotations[side]);\n }\n if (side === 'top') {\n return t(width / 2, -20, rotations[side]);\n }\n if (side === 'bottom') {\n return t(width / 2, height + 30, rotations[side]);\n }\n};\n\nconst getY = (side, height) => {\n switch (side) {\n case 'left':\n return -height;\n case 'top':\n return -height;\n case 'right':\n return -height - 10;\n default:\n return -height + 10;\n }\n};\n\nclass RawLabel extends React.Component {\n static propTypes = {\n text: PropTypes.string,\n side: PropTypes.string,\n classes: PropTypes.object,\n disabledLabel: PropTypes.bool,\n placeholder: PropTypes.string,\n graphProps: types.GraphPropsType.isRequired,\n onChange: PropTypes.func,\n };\n\n static defaultProps = {\n onChange: () => {},\n };\n\n render() {\n const { disabledLabel, placeholder, text, side, graphProps, classes, onChange, mathMlOptions = {} } = this.props;\n const { size, domain, range } = graphProps;\n const totalHeight = (size.height || 500) + (range.padding || 0) * 2;\n const totalWidth = (size.width || 500) + (domain.padding || 0) * 2;\n\n const transform = getTransform(side, totalWidth, totalHeight);\n const width = side === 'left' || side === 'right' ? totalHeight : totalWidth;\n const height = 36;\n const y = getY(side, height);\n const finalHeight = side === 'bottom' ? height + 22 : height + 18;\n\n const activePlugins = [\n 'bold',\n 'italic',\n 'underline',\n 'strikethrough',\n 'math',\n // 'languageCharacters'\n ];\n\n return (\n <foreignObject\n x={-(width / 2)}\n y={y}\n width={width}\n height={finalHeight}\n transform={transform}\n textAnchor=\"middle\"\n >\n <Readable false>\n <EditableHtml\n className={cn(\n {\n [classes.bottomLabel]: side === 'bottom',\n [classes.disabledAxisLabel]: disabledLabel,\n },\n classes.axisLabel,\n )}\n markup={text || ''}\n onChange={onChange}\n placeholder={!disabledLabel && placeholder}\n toolbarOpts={{\n position: side === 'bottom' ? 'top' : 'bottom',\n noPadding: true,\n noBorder: true,\n }}\n activePlugins={activePlugins}\n mathMlOptions={mathMlOptions}\n />\n </Readable>\n </foreignObject>\n );\n }\n}\n\nconst Label = withStyles((theme) => ({\n label: {\n fill: color.defaults.SECONDARY,\n },\n axisLabel: {\n fontSize: theme.typography.fontSize - 2,\n textAlign: 'center',\n padding: '0 4px',\n },\n disabledAxisLabel: {\n pointerEvents: 'none',\n },\n bottomLabel: {\n marginTop: '44px',\n },\n}))(RawLabel);\n\nexport const LabelType = {\n left: PropTypes.string,\n top: PropTypes.string,\n bottom: PropTypes.string,\n right: PropTypes.string,\n};\n\nexport class Labels extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n disabledLabels: PropTypes.bool,\n placeholders: PropTypes.object,\n value: PropTypes.shape(LabelType),\n graphProps: PropTypes.object,\n onChange: PropTypes.object,\n };\n\n static defaultProps = {};\n\n onChangeLabel = (newValue, side) => {\n const { value, onChange } = this.props;\n const labels = {\n ...value,\n [side]: newValue,\n };\n\n onChange(labels);\n };\n\n render() {\n const { disabledLabels, placeholders = {}, value = {}, graphProps, mathMlOptions = {} } = this.props;\n\n return (\n <React.Fragment>\n <Label\n key=\"left\"\n side=\"left\"\n text={value.left}\n disabledLabel={disabledLabels}\n placeholder={placeholders.left}\n graphProps={graphProps}\n onChange={(value) => this.onChangeLabel(value, 'left')}\n mathMlOptions={mathMlOptions}\n />\n <Label\n key=\"top\"\n side=\"top\"\n text={value.top}\n disabledLabel={disabledLabels}\n placeholder={placeholders.top}\n graphProps={graphProps}\n onChange={(value) => this.onChangeLabel(value, 'top')}\n mathMlOptions={mathMlOptions}\n />\n <Label\n key=\"bottom\"\n side=\"bottom\"\n text={value.bottom}\n disabledLabel={disabledLabels}\n placeholder={placeholders.bottom}\n graphProps={graphProps}\n onChange={(value) => this.onChangeLabel(value, 'bottom')}\n mathMlOptions={mathMlOptions}\n />\n <Label\n key=\"right\"\n side=\"right\"\n text={value.right}\n disabledLabel={disabledLabels}\n placeholder={placeholders.right}\n graphProps={graphProps}\n onChange={(value) => this.onChangeLabel(value, 'right')}\n mathMlOptions={mathMlOptions}\n />\n </React.Fragment>\n );\n }\n}\n\nexport default Labels;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { select, mouse } from 'd3-selection';\nimport { types, utils } from '@pie-lib/plot';\nimport { getTickValues, thinnerShapesNeeded } from './utils';\n\nexport default class Bg extends React.Component {\n static propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n onClick: PropTypes.func.isRequired,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n static defaultProps = {};\n\n componentDidMount() {\n const rect = select(this.rect);\n\n rect.on('click', this.onRectClick.bind(this, rect));\n }\n\n shouldComponentUpdate(nextProps) {\n return (\n !utils.isDomainRangeEqual(this.props.graphProps, nextProps.graphProps) ||\n this.props.width !== nextProps.width ||\n this.props.height !== nextProps.height\n );\n }\n\n getRectPadding = () => {\n const { graphProps } = this.props;\n\n return thinnerShapesNeeded(graphProps) ? 6 : 10;\n };\n\n /**\n * Note: we use d3 click + mouse to give us domain values directly.\n * Saves us having to calculate them ourselves from a MouseEvent.\n */\n onRectClick = (rect) => {\n const { onClick, graphProps } = this.props;\n const { scale } = graphProps;\n\n const padding = this.getRectPadding();\n const coords = mouse(rect._groups[0][0]);\n\n // decrease the padding from coordinates to indicate the correct point clicked\n const x = scale.x.invert(coords[0] - padding);\n const y = scale.y.invert(coords[1] - padding);\n\n const rowTicks = getTickValues(graphProps.range);\n const columnTicks = getTickValues(graphProps.domain);\n\n const closest = (ticks, value) => {\n return (\n ticks.length &&\n ticks.reduce((prev, curr) => {\n const currentDistance = Math.abs(curr - value);\n const previousDistance = Math.abs(prev - value);\n\n return currentDistance <= previousDistance ? curr : prev;\n })\n );\n };\n\n let snapped = {};\n\n if (columnTicks.indexOf(x) >= 0 && rowTicks.indexOf(y) >= 0) {\n snapped.x = x;\n snapped.y = y;\n } else {\n snapped.x = closest(columnTicks, x);\n snapped.y = closest(rowTicks, y);\n }\n\n onClick(snapped);\n };\n\n render() {\n const { width, height } = this.props;\n const padding = this.getRectPadding();\n\n // expand the size of clickable area so a small area outside the edges of the grid lines to be clickable\n return (\n <rect\n ref={(rect) => (this.rect = rect)}\n transform={`translate(-${padding}, -${padding})`}\n fill=\"red\"\n fillOpacity=\"0.0\"\n width={width + padding * 2}\n height={height + padding * 2}\n />\n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash/isEqual';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { Root, types, createGraphProps } from '@pie-lib/plot';\nimport debug from 'debug';\n\nimport { Axes, AxisPropTypes } from './axis';\nimport Grid from './grid';\nimport { LabelType } from './labels';\nimport Bg from './bg';\nimport { isDuplicatedMark } from './utils';\n\nconst log = debug('pie-lib:graphing:graph');\n\nexport const graphPropTypes = {\n axesSettings: PropTypes.shape(AxisPropTypes),\n backgroundMarks: PropTypes.array,\n className: PropTypes.string,\n collapsibleToolbar: PropTypes.bool,\n collapsibleToolbarTitle: PropTypes.string,\n disabledLabels: PropTypes.bool,\n disabledTitle: PropTypes.bool,\n domain: types.DomainType,\n labels: PropTypes.shape(LabelType),\n labelModeEnabled: PropTypes.bool,\n coordinatesOnHover: PropTypes.bool,\n marks: PropTypes.array,\n onChangeLabels: PropTypes.func,\n onChangeMarks: PropTypes.func,\n onChangeTitle: PropTypes.func,\n range: types.DomainType,\n size: PropTypes.shape({\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n }),\n showLabels: PropTypes.bool,\n showPixelGuides: PropTypes.bool,\n showTitle: PropTypes.bool,\n title: PropTypes.string,\n tools: PropTypes.array,\n limitLabeling: PropTypes.bool,\n};\n\nconst getMaskSize = (size) => ({\n x: -23,\n y: -23,\n width: size.width + 46,\n height: size.height + 46,\n});\n\nexport const removeBuildingToolIfCurrentToolDiffers = ({ marks, currentTool, onChangeMarks, removeIncompleteTool }) => {\n const buildingMark = marks.filter((m) => m.building)[0];\n let newMarks = cloneDeep(marks);\n\n if (buildingMark && currentTool && buildingMark.type !== currentTool.type) {\n const index = newMarks.findIndex((m) => isEqual(m, buildingMark));\n\n if (index >= 0) {\n newMarks.splice(index, 1);\n }\n }\n if (removeIncompleteTool && !isEqual(newMarks, marks)) {\n onChangeMarks(newMarks);\n }\n return newMarks;\n};\n\nexport class Graph extends React.Component {\n constructor(props) {\n super(props);\n this.maskUid = this.generateMaskId();\n }\n\n static propTypes = {\n ...graphPropTypes,\n currentTool: PropTypes.object,\n };\n\n static defaultProps = {\n onChangeMarks: () => {},\n disabledLabels: false,\n disabledTitle: false,\n };\n\n state = {};\n\n generateMaskId() {\n return 'graph-' + (Math.random() * 10000).toFixed();\n }\n\n componentDidMount = () => this.setState({ labelNode: this.labelNode });\n\n changeMark = (oldMark, newMark) => {\n const { onChangeMarks, marks } = this.props;\n let newMarks = cloneDeep(marks);\n\n const index = newMarks.findIndex((m) => isEqual(m, oldMark));\n\n if (index >= 0 && !isDuplicatedMark(newMark, marks, oldMark)) {\n newMarks.splice(index, 1, newMark);\n\n onChangeMarks(newMarks);\n }\n };\n\n completeMark = (markData) => {\n const { currentTool, marks } = this.props;\n const buildingMark = marks.filter((m) => m.building)[0];\n\n if (!buildingMark || !currentTool) return;\n\n const updatedMark = currentTool.complete(buildingMark, markData);\n\n this.updateMarks(buildingMark, updatedMark);\n };\n\n updateMarks = (existing, update, addIfMissing = false) => {\n const { onChangeMarks, marks } = this.props;\n let newMarks = cloneDeep(marks);\n\n if (!update || (!update.building && isDuplicatedMark(update, marks))) {\n return;\n }\n\n const index = newMarks.findIndex((m) => isEqual(m, existing));\n\n if (index >= 0) {\n newMarks.splice(index, 1, update);\n\n onChangeMarks(newMarks);\n } else if (addIfMissing) {\n onChangeMarks([...newMarks, update]);\n }\n };\n\n getComponent = (mark) => {\n if (!mark) return null;\n\n const tool = (this.props.tools || []).find((t) => t.type === mark.type);\n\n return (tool && tool.Component) || null;\n };\n\n onBgClick = (point) => {\n const { x, y } = point || {};\n const { labelModeEnabled, currentTool, marks } = this.props;\n\n if (labelModeEnabled || !currentTool || [null, undefined].includes(x) || [null, undefined].includes(y)) {\n return;\n }\n\n log('[onBgClick] x,y: ', x, y);\n\n const buildingMark = marks.filter((m) => m.building)[0];\n let updatedMark;\n\n // if the building mark has a different type, we just replace it\n if (buildingMark && currentTool && buildingMark.type === currentTool.type) {\n updatedMark = currentTool.addPoint({ x, y }, { ...buildingMark });\n } else {\n updatedMark = currentTool.addPoint({ x, y }, undefined);\n }\n\n this.updateMarks(buildingMark, updatedMark, true);\n };\n\n render() {\n const {\n axesSettings,\n currentTool,\n coordinatesOnHover,\n size,\n disabledLabels,\n disabledTitle,\n domain,\n backgroundMarks,\n range,\n title,\n labels,\n labelModeEnabled,\n labelsPlaceholders,\n limitLabeling,\n showLabels,\n showPixelGuides,\n showTitle,\n titlePlaceholder,\n onChangeLabels,\n onChangeTitle,\n mathMlOptions = {},\n onChangeMarks,\n removeIncompleteTool,\n } = this.props;\n let { marks } = this.props;\n\n const graphProps = createGraphProps(domain, range, size, () => this.rootNode);\n\n const maskSize = getMaskSize(size);\n const common = { graphProps, labelModeEnabled, limitLabeling };\n\n marks = removeBuildingToolIfCurrentToolDiffers({\n marks: marks || [],\n currentTool,\n onChangeMarks,\n removeIncompleteTool,\n });\n\n return (\n <Root\n rootRef={(r) => (this.rootNode = r)}\n disabledTitle={disabledTitle}\n disabledLabels={disabledLabels}\n labels={labels}\n labelsPlaceholders={labelsPlaceholders || {}}\n showPixelGuides={showPixelGuides}\n showLabels={showLabels}\n showTitle={showTitle}\n title={title}\n titlePlaceholder={titlePlaceholder}\n onChangeTitle={onChangeTitle}\n onChangeLabels={onChangeLabels}\n mathMlOptions={mathMlOptions}\n {...common}\n >\n <g\n transform={\n domain && domain.padding && domain.range ? `translate(${domain.padding}, ${range.padding})` : undefined\n }\n >\n <Grid {...common} />\n <Axes {...axesSettings} {...common} />\n <Bg {...size} onClick={this.onBgClick} {...common} />\n <mask id={`${this.maskUid}`}>\n <rect {...maskSize} fill=\"white\" /> {/* TODO hardcoded color */}\n </mask>\n\n <g id=\"marks\" mask={`url('#${this.maskUid}')`}>\n {(backgroundMarks || []).map((m, index) => {\n const Component = this.getComponent(m);\n const markType = m.type;\n\n return (\n <Component\n key={`${markType}-${index}-bg`}\n mark={{ ...m, disabled: true, isBackground: true }}\n labelNode={this.state.labelNode}\n onClick={this.onBgClick}\n {...common}\n />\n );\n })}\n\n {marks.map((m, index) => {\n const Component = this.getComponent(m);\n const markType = m.type;\n\n return (\n <Component\n key={`${markType}-${index}`}\n mark={m}\n coordinatesOnHover={coordinatesOnHover}\n onChange={this.changeMark}\n onComplete={this.completeMark}\n onClick={this.onBgClick}\n onDragStart={this.startDrag}\n onDragStop={this.stopDrag}\n labelNode={this.state.labelNode}\n isToolActive={currentTool && markType === currentTool.type}\n {...common}\n />\n );\n })}\n <foreignObject\n ref={(labelNode) => (this.labelNode = labelNode)}\n x=\"0\"\n y=\"0\"\n {...size}\n style={{ pointerEvents: 'none', fontSize: '14px' }}\n />\n </g>\n </g>\n </Root>\n );\n }\n}\n\nexport default Graph;\n","const marks = (state = [], action) => {\n switch (action.type) {\n case 'CHANGE_MARKS':\n if (Array.isArray(action.marks)) {\n return action.marks;\n } else {\n throw new Error('marks must be an array');\n }\n default:\n return state;\n }\n};\n\nexport default marks;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar ActionTypes = exports.ActionTypes = {\n UNDO: '@@redux-undo/UNDO',\n REDO: '@@redux-undo/REDO',\n JUMP_TO_FUTURE: '@@redux-undo/JUMP_TO_FUTURE',\n JUMP_TO_PAST: '@@redux-undo/JUMP_TO_PAST',\n JUMP: '@@redux-undo/JUMP',\n CLEAR_HISTORY: '@@redux-undo/CLEAR_HISTORY'\n};\n\nvar ActionCreators = exports.ActionCreators = {\n undo: function undo() {\n return { type: ActionTypes.UNDO };\n },\n redo: function redo() {\n return { type: ActionTypes.REDO };\n },\n jumpToFuture: function jumpToFuture(index) {\n return { type: ActionTypes.JUMP_TO_FUTURE, index: index };\n },\n jumpToPast: function jumpToPast(index) {\n return { type: ActionTypes.JUMP_TO_PAST, index: index };\n },\n jump: function jump(index) {\n return { type: ActionTypes.JUMP, index: index };\n },\n clearHistory: function clearHistory() {\n return { type: ActionTypes.CLEAR_HISTORY };\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.parseActions = parseActions;\nexports.isHistory = isHistory;\nexports.distinctState = distinctState;\nexports.includeAction = includeAction;\nexports.excludeAction = excludeAction;\nexports.combineFilters = combineFilters;\nexports.groupByActionTypes = groupByActionTypes;\nexports.newHistory = newHistory;\n// parseActions helper: takes a string (or array)\n// and makes it an array if it isn't yet\nfunction parseActions(rawActions) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n if (Array.isArray(rawActions)) {\n return rawActions;\n } else if (typeof rawActions === 'string') {\n return [rawActions];\n }\n return defaultValue;\n}\n\n// isHistory helper: check for a valid history object\nfunction isHistory(history) {\n return typeof history.present !== 'undefined' && typeof history.future !== 'undefined' && typeof history.past !== 'undefined' && Array.isArray(history.future) && Array.isArray(history.past);\n}\n\n// distinctState helper: deprecated, does nothing in latest beta\n/* istanbul ignore next */\nfunction distinctState() {\n console.warn('distinctState is deprecated in beta4 and newer. ' + 'The distinctState behavior is now default, which means only ' + 'actions resulting in a new state are recorded. ' + 'See https://github.com/omnidan/redux-undo#filtering-actions ' + 'for more details.');\n return function () {\n return true;\n };\n}\n\n// includeAction helper: whitelist actions to be added to the history\nfunction includeAction(rawActions) {\n var actions = parseActions(rawActions);\n return function (action) {\n return actions.indexOf(action.type) >= 0;\n };\n}\n\n// excludeAction helper: blacklist actions from being added to the history\nfunction excludeAction(rawActions) {\n var actions = parseActions(rawActions);\n return function (action) {\n return actions.indexOf(action.type) < 0;\n };\n}\n\n// combineFilters helper: combine multiple filters to one\nfunction combineFilters() {\n for (var _len = arguments.length, filters = Array(_len), _key = 0; _key < _len; _key++) {\n filters[_key] = arguments[_key];\n }\n\n return filters.reduce(function (prev, curr) {\n return function (action, currentState, previousHistory) {\n return prev(action, currentState, previousHistory) && curr(action, currentState, previousHistory);\n };\n }, function () {\n return true;\n });\n}\n\nfunction groupByActionTypes(rawActions) {\n var actions = parseActions(rawActions);\n return function (action) {\n return actions.indexOf(action.type) >= 0 ? action.type : null;\n };\n}\n\nfunction newHistory(past, present, future) {\n var group = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n return {\n past: past,\n present: present,\n future: future,\n group: group,\n _latestUnfiltered: present,\n index: past.length,\n limit: past.length + future.length + 1\n };\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\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\nvar __DEBUG__ = void 0;\nvar displayBuffer = void 0;\n\nvar colors = {\n prevState: '#9E9E9E',\n action: '#03A9F4',\n nextState: '#4CAF50'\n\n /* istanbul ignore next: debug messaging is not tested */\n};function initBuffer() {\n displayBuffer = {\n header: [],\n prev: [],\n action: [],\n next: [],\n msgs: []\n };\n}\n\n/* istanbul ignore next: debug messaging is not tested */\nfunction printBuffer() {\n var _displayBuffer = displayBuffer,\n header = _displayBuffer.header,\n prev = _displayBuffer.prev,\n next = _displayBuffer.next,\n action = _displayBuffer.action,\n msgs = _displayBuffer.msgs;\n\n if (console.group) {\n var _console, _console2, _console3, _console4, _console5;\n\n (_console = console).groupCollapsed.apply(_console, _toConsumableArray(header));\n (_console2 = console).log.apply(_console2, _toConsumableArray(prev));\n (_console3 = console).log.apply(_console3, _toConsumableArray(action));\n (_console4 = console).log.apply(_console4, _toConsumableArray(next));\n (_console5 = console).log.apply(_console5, _toConsumableArray(msgs));\n console.groupEnd();\n } else {\n var _console6, _console7, _console8, _console9, _console10;\n\n (_console6 = console).log.apply(_console6, _toConsumableArray(header));\n (_console7 = console).log.apply(_console7, _toConsumableArray(prev));\n (_console8 = console).log.apply(_console8, _toConsumableArray(action));\n (_console9 = console).log.apply(_console9, _toConsumableArray(next));\n (_console10 = console).log.apply(_console10, _toConsumableArray(msgs));\n }\n}\n\n/* istanbul ignore next: debug messaging is not tested */\nfunction colorFormat(text, color, obj) {\n return ['%c' + text, 'color: ' + color + '; font-weight: bold', obj];\n}\n\n/* istanbul ignore next: debug messaging is not tested */\nfunction start(action, state) {\n initBuffer();\n if (__DEBUG__) {\n if (console.group) {\n displayBuffer.header = ['%credux-undo', 'font-style: italic', 'action', action.type];\n displayBuffer.action = colorFormat('action', colors.action, action);\n displayBuffer.prev = colorFormat('prev history', colors.prevState, state);\n } else {\n displayBuffer.header = ['redux-undo action', action.type];\n displayBuffer.action = ['action', action];\n displayBuffer.prev = ['prev history', state];\n }\n }\n}\n\n/* istanbul ignore next: debug messaging is not tested */\nfunction end(nextState) {\n if (__DEBUG__) {\n if (console.group) {\n displayBuffer.next = colorFormat('next history', colors.nextState, nextState);\n } else {\n displayBuffer.next = ['next history', nextState];\n }\n printBuffer();\n }\n}\n\n/* istanbul ignore next: debug messaging is not tested */\nfunction log() {\n if (__DEBUG__) {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n displayBuffer.msgs = displayBuffer.msgs.concat([].concat(args, ['\\n']));\n }\n}\n\n/* istanbul ignore next: debug messaging is not tested */\nfunction set(debug) {\n __DEBUG__ = debug;\n}\n\nexports.set = set;\nexports.start = start;\nexports.end = end;\nexports.log = log;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.default = undoable;\n\nvar _debug = require('./debug');\n\nvar debug = _interopRequireWildcard(_debug);\n\nvar _actions = require('./actions');\n\nvar _helpers = require('./helpers');\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\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// createHistory\nfunction createHistory(state, ignoreInitialState) {\n // ignoreInitialState essentially prevents the user from undoing to the\n // beginning, in the case that the undoable reducer handles initialization\n // in a way that can't be redone simply\n var history = (0, _helpers.newHistory)([], state, []);\n if (ignoreInitialState) {\n history._latestUnfiltered = null;\n }\n return history;\n}\n\n// lengthWithoutFuture: get length of history\nfunction lengthWithoutFuture(history) {\n return history.past.length + 1;\n}\n\n// insert: insert `state` into history, which means adding the current state\n// into `past`, setting the new `state` as `present` and erasing\n// the `future`.\nfunction insert(history, state, limit, group) {\n debug.log('inserting', state);\n debug.log('new free: ', limit - lengthWithoutFuture(history));\n\n var past = history.past,\n _latestUnfiltered = history._latestUnfiltered;\n\n var historyOverflow = limit && lengthWithoutFuture(history) >= limit;\n\n var pastSliced = past.slice(historyOverflow ? 1 : 0);\n var newPast = _latestUnfiltered != null ? [].concat(_toConsumableArray(pastSliced), [_latestUnfiltered]) : pastSliced;\n\n return (0, _helpers.newHistory)(newPast, state, [], group);\n}\n\n// jumpToFuture: jump to requested index in future history\nfunction jumpToFuture(history, index) {\n if (index < 0 || index >= history.future.length) return history;\n\n var past = history.past,\n future = history.future,\n _latestUnfiltered = history._latestUnfiltered;\n\n\n var newPast = [].concat(_toConsumableArray(past), [_latestUnfiltered], _toConsumableArray(future.slice(0, index)));\n var newPresent = future[index];\n var newFuture = future.slice(index + 1);\n\n return (0, _helpers.newHistory)(newPast, newPresent, newFuture);\n}\n\n// jumpToPast: jump to requested index in past history\nfunction jumpToPast(history, index) {\n if (index < 0 || index >= history.past.length) return history;\n\n var past = history.past,\n future = history.future,\n _latestUnfiltered = history._latestUnfiltered;\n\n\n var newPast = past.slice(0, index);\n var newFuture = [].concat(_toConsumableArray(past.slice(index + 1)), [_latestUnfiltered], _toConsumableArray(future));\n var newPresent = past[index];\n\n return (0, _helpers.newHistory)(newPast, newPresent, newFuture);\n}\n\n// jump: jump n steps in the past or forward\nfunction jump(history, n) {\n if (n > 0) return jumpToFuture(history, n - 1);\n if (n < 0) return jumpToPast(history, history.past.length + n);\n return history;\n}\n\n// helper to dynamically match in the reducer's switch-case\nfunction actionTypeAmongClearHistoryType(actionType, clearHistoryType) {\n return clearHistoryType.indexOf(actionType) > -1 ? actionType : !actionType;\n}\n\n// redux-undo higher order reducer\nfunction undoable(reducer) {\n var rawConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n debug.set(rawConfig.debug);\n\n var config = {\n initTypes: (0, _helpers.parseActions)(rawConfig.initTypes, ['@@redux-undo/INIT']),\n limit: rawConfig.limit,\n filter: rawConfig.filter || function () {\n return true;\n },\n groupBy: rawConfig.groupBy || function () {\n return null;\n },\n undoType: rawConfig.undoType || _actions.ActionTypes.UNDO,\n redoType: rawConfig.redoType || _actions.ActionTypes.REDO,\n jumpToPastType: rawConfig.jumpToPastType || _actions.ActionTypes.JUMP_TO_PAST,\n jumpToFutureType: rawConfig.jumpToFutureType || _actions.ActionTypes.JUMP_TO_FUTURE,\n jumpType: rawConfig.jumpType || _actions.ActionTypes.JUMP,\n clearHistoryType: Array.isArray(rawConfig.clearHistoryType) ? rawConfig.clearHistoryType : [rawConfig.clearHistoryType || _actions.ActionTypes.CLEAR_HISTORY],\n neverSkipReducer: rawConfig.neverSkipReducer || false,\n ignoreInitialState: rawConfig.ignoreInitialState || false,\n syncFilter: rawConfig.syncFilter || false\n };\n\n var initialState = config.history;\n return function () {\n for (var _len = arguments.length, slices = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n slices[_key - 2] = arguments[_key];\n }\n\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n debug.start(action, state);\n\n var history = state;\n if (!initialState) {\n debug.log('history is uninitialized');\n\n if (state === undefined) {\n var clearHistoryAction = { type: _actions.ActionTypes.CLEAR_HISTORY };\n var start = reducer.apply(undefined, [state, clearHistoryAction].concat(slices));\n\n history = createHistory(start, config.ignoreInitialState);\n\n debug.log('do not set initialState on probe actions');\n } else if ((0, _helpers.isHistory)(state)) {\n history = initialState = config.ignoreInitialState ? state : (0, _helpers.newHistory)(state.past, state.present, state.future);\n debug.log('initialHistory initialized: initialState is a history', initialState);\n } else {\n history = initialState = createHistory(state, config.ignoreInitialState);\n debug.log('initialHistory initialized: initialState is not a history', initialState);\n }\n }\n\n var skipReducer = function skipReducer(res) {\n return config.neverSkipReducer ? _extends({}, res, {\n present: reducer.apply(undefined, [res.present, action].concat(slices))\n }) : res;\n };\n\n var res = void 0;\n switch (action.type) {\n case undefined:\n return history;\n\n case config.undoType:\n res = jump(history, -1);\n debug.log('perform undo');\n debug.end(res);\n return skipReducer(res);\n\n case config.redoType:\n res = jump(history, 1);\n debug.log('perform redo');\n debug.end(res);\n return skipReducer(res);\n\n case config.jumpToPastType:\n res = jumpToPast(history, action.index);\n debug.log('perform jumpToPast to ' + action.index);\n debug.end(res);\n return skipReducer(res);\n\n case config.jumpToFutureType:\n res = jumpToFuture(history, action.index);\n debug.log('perform jumpToFuture to ' + action.index);\n debug.end(res);\n return skipReducer(res);\n\n case config.jumpType:\n res = jump(history, action.index);\n debug.log('perform jump to ' + action.index);\n debug.end(res);\n return skipReducer(res);\n\n case actionTypeAmongClearHistoryType(action.type, config.clearHistoryType):\n res = createHistory(history.present);\n debug.log('perform clearHistory');\n debug.end(res);\n return skipReducer(res);\n\n default:\n res = reducer.apply(undefined, [history.present, action].concat(slices));\n\n if (config.initTypes.some(function (actionType) {\n return actionType === action.type;\n })) {\n debug.log('reset history due to init action');\n debug.end(initialState);\n return initialState;\n }\n\n if (history._latestUnfiltered === res) {\n // Don't handle this action. Do not call debug.end here,\n // because this action should not produce side effects to the console\n return history;\n }\n\n var filtered = typeof config.filter === 'function' && !config.filter(action, res, history);\n var group = config.groupBy(action, res, history);\n\n if (filtered) {\n // if filtering an action, merely update the present\n var filteredState = (0, _helpers.newHistory)(history.past, res, history.future, history.group);\n if (!config.syncFilter) {\n filteredState._latestUnfiltered = history._latestUnfiltered;\n }\n debug.log('filter ignored action, not storing it in past');\n debug.end(filteredState);\n return filteredState;\n } else if (group != null && group === history.group) {\n var groupedState = (0, _helpers.newHistory)(history.past, res, history.future, history.group);\n debug.log('groupBy grouped the action with the previous action');\n debug.end(groupedState);\n return groupedState;\n } else {\n // If the action wasn't filtered, insert normally\n history = insert(history, res, config.limit, group);\n\n debug.log('inserted new state into history');\n debug.end(history);\n return history;\n }\n }\n };\n}\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _actions = require('./actions');\n\nObject.defineProperty(exports, 'ActionTypes', {\n enumerable: true,\n get: function get() {\n return _actions.ActionTypes;\n }\n});\nObject.defineProperty(exports, 'ActionCreators', {\n enumerable: true,\n get: function get() {\n return _actions.ActionCreators;\n }\n});\n\nvar _helpers = require('./helpers');\n\nObject.defineProperty(exports, 'parseActions', {\n enumerable: true,\n get: function get() {\n return _helpers.parseActions;\n }\n});\nObject.defineProperty(exports, 'isHistory', {\n enumerable: true,\n get: function get() {\n return _helpers.isHistory;\n }\n});\nObject.defineProperty(exports, 'distinctState', {\n enumerable: true,\n get: function get() {\n return _helpers.distinctState;\n }\n});\nObject.defineProperty(exports, 'includeAction', {\n enumerable: true,\n get: function get() {\n return _helpers.includeAction;\n }\n});\nObject.defineProperty(exports, 'excludeAction', {\n enumerable: true,\n get: function get() {\n return _helpers.excludeAction;\n }\n});\nObject.defineProperty(exports, 'combineFilters', {\n enumerable: true,\n get: function get() {\n return _helpers.combineFilters;\n }\n});\nObject.defineProperty(exports, 'groupByActionTypes', {\n enumerable: true,\n get: function get() {\n return _helpers.groupByActionTypes;\n }\n});\nObject.defineProperty(exports, 'newHistory', {\n enumerable: true,\n get: function get() {\n return _helpers.newHistory;\n }\n});\n\nvar _reducer = require('./reducer');\n\nObject.defineProperty(exports, 'default', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_reducer).default;\n }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","import { combineReducers } from 'redux';\nimport marks from './marks';\nimport undoable from 'redux-undo';\n\nexport default () => combineReducers({ marks: undoable(marks, { debug: false }) });\n","export const addMark = () => ({\n type: 'ADD_MARK',\n});\n\nexport const changeMarks = (marks) => ({\n type: 'CHANGE_MARKS',\n marks,\n});\n","import { color } from '@pie-lib/render-ui';\n\nexport const disabled = (key = 'fill') => ({\n [key]: color.disabled(),\n pointerEvents: 'none',\n});\n\nexport const disabledSecondary = (key = 'fill') => ({\n [key]: color.disabledSecondary(),\n pointerEvents: 'none',\n});\n\nexport const correct = (key = 'fill') => ({\n [key]: color.correctWithIcon(),\n pointerEvents: 'none',\n});\nexport const incorrect = (key = 'fill') => ({\n [key]: color.incorrectWithIcon(),\n pointerEvents: 'none',\n});\n\nexport const missing = (key = 'fill') => ({\n [key]: color.missingWithIcon(),\n pointerEvents: 'none',\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport InputBase from '@material-ui/core/InputBase';\nimport { roundNumber } from './utils';\n\nconst styles = (theme) => ({\n input: {\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.fontSize,\n borderRadius: '8px',\n background: theme.palette.common.white,\n color: color.defaults.PRIMARY_DARK,\n },\n inputLabel: {\n padding: 0,\n },\n});\n\nexport const getLabelPosition = (graphProps, x, y, labelLength) => {\n const { scale, domain, range } = graphProps;\n // treat corner cases for maximum and minimum\n const topShift = y === range.min ? 16 : y === range.max ? 0 : 8;\n const leftShift = 10;\n const rightEdge = scale.x(x) + labelLength + leftShift;\n\n if (rightEdge >= scale.x(domain.max)) {\n return {\n left: scale.x(x) - leftShift - labelLength,\n top: scale.y(y) - topShift,\n };\n }\n\n return {\n left: scale.x(x) + leftShift,\n top: scale.y(y) - topShift,\n };\n};\n\nexport const CoordinatesLabel = ({ x, y, graphProps, classes }) => {\n const label = `(${roundNumber(x)}, ${roundNumber(y)})`;\n const labelLength = (label.length || 0) * 6;\n const labelPosition = getLabelPosition(graphProps, x, y, labelLength);\n\n const style = {\n position: 'absolute',\n pointerEvents: 'auto',\n width: labelLength,\n padding: 0,\n ...labelPosition,\n };\n\n return (\n <InputBase\n style={style}\n classes={{ input: classes.inputLabel }}\n className={classes.input}\n value={label}\n inputProps={{ ariaLabel: 'naked' }}\n />\n );\n};\n\nCoordinatesLabel.propTypes = {\n graphProps: types.GraphPropsType,\n classes: PropTypes.object,\n x: PropTypes.number,\n y: PropTypes.number,\n};\n\nexport default withStyles(styles)(CoordinatesLabel);\n","import React from 'react';\n\nconst MissingSVG = ({ scale, x, y }) => (\n <svg\n width=\"9\"\n height=\"10\"\n viewBox=\"0 0 9 10\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n x={scale.x(x) - 4.5}\n y={scale.y(y) - 5}\n style={{ pointerEvents: 'none' }}\n >\n <path\n d=\"M0.125 3.76562V1.34375C0.125 1.08984 0.320312 0.875 0.59375 0.875H3.01562C3.13281 0.875 3.25 0.992188 3.25 1.10938V1.89062C3.25 2.02734 3.13281 2.125 3.01562 2.125H1.375V3.76562C1.375 3.90234 1.25781 4 1.14062 4H0.359375C0.222656 4 0.125 3.90234 0.125 3.76562ZM5.75 1.10938C5.75 0.992188 5.84766 0.875 5.98438 0.875H8.40625C8.66016 0.875 8.875 1.08984 8.875 1.34375V3.76562C8.875 3.90234 8.75781 4 8.64062 4H7.85938C7.72266 4 7.625 3.90234 7.625 3.76562V2.125H5.98438C5.84766 2.125 5.75 2.02734 5.75 1.89062V1.10938ZM8.64062 6.5C8.75781 6.5 8.875 6.61719 8.875 6.73438V9.15625C8.875 9.42969 8.66016 9.625 8.40625 9.625H5.98438C5.84766 9.625 5.75 9.52734 5.75 9.39062V8.60938C5.75 8.49219 5.84766 8.375 5.98438 8.375H7.625V6.73438C7.625 6.61719 7.72266 6.5 7.85938 6.5H8.64062ZM3.25 9.39062C3.25 9.52734 3.13281 9.625 3.01562 9.625H0.59375C0.320312 9.625 0.125 9.42969 0.125 9.15625V6.73438C0.125 6.61719 0.222656 6.5 0.359375 6.5H1.14062C1.25781 6.5 1.375 6.61719 1.375 6.73438V8.375H3.01562C3.13281 8.375 3.25 8.49219 3.25 8.60938V9.39062Z\"\n fill=\"white\"\n />\n </svg>\n);\n\nexport default MissingSVG;\n","import React from 'react';\n\nconst CorrectSVG = ({ scale, x, y }) => (\n <svg\n width=\"11\"\n height=\"13\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n stroke=\"#ffffff\"\n x={scale.x(x) - 5}\n y={scale.y(y) - 6}\n style={{ pointerEvents: 'none' }}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M10.1953 2.46875C10.3125 2.35156 10.5 2.35156 10.5938 2.46875L11.2734 3.125C11.3672 3.24219 11.3672 3.42969 11.2734 3.52344L4.24219 10.5547C4.125 10.6719 3.96094 10.6719 3.84375 10.5547L0.703125 7.4375C0.609375 7.32031 0.609375 7.13281 0.703125 7.03906L1.38281 6.35938C1.47656 6.26562 1.66406 6.26562 1.78125 6.35938L4.03125 8.63281L10.1953 2.46875Z\"\n fill=\"white\"\n />\n </svg>\n);\n\nexport default CorrectSVG;\n","import React from 'react';\n\nconst IncorrectSVG = ({ scale, x, y }) => (\n <svg\n width=\"14px\"\n height=\"14px\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"#ffffff\"\n strokeWidth=\"2\"\n x={scale.x(x) - 7}\n y={scale.y(y) - 7}\n style={{ pointerEvents: 'none' }}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M17.705 7.705l-1.41-1.41L12 10.59 7.705 6.295l-1.41 1.41L10.59 12l-4.295 4.295 1.41 1.41L12 13.41l4.295 4.295 1.41-1.41L13.41 12l4.295-4.295z\"></path>\n </svg>\n);\n\nexport default IncorrectSVG;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { types } from '@pie-lib/plot';\nimport CoordinatesLabel from '../../../coordinates-label';\nimport ReactDOM from 'react-dom';\nimport { thinnerShapesNeeded } from '../../../utils';\nimport MissingSVG from '../icons/MissingSVG';\nimport CorrectSVG from '../icons/CorrectSVG';\nimport IncorrectSVG from '../icons/IncorrectSVG';\n\nexport class RawBp extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n coordinatesOnHover: PropTypes.bool,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n labelNode: PropTypes.object,\n x: PropTypes.number,\n y: PropTypes.number,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = { showCoordinates: false };\n }\n\n render() {\n const {\n classes,\n className,\n coordinatesOnHover,\n x,\n y,\n disabled,\n correctness,\n graphProps,\n labelNode,\n // we need to remove style from props\n // eslint-disable-next-line no-unused-vars,react/prop-types\n style,\n onClick,\n // Refactored RawBp component by isolating onTouchStart and onTouchEnd handlers to the outer circle, resolving erratic touch event behavior.\n // Remaining props are now applied only to the inner circle for improved event handling consistency.\n onTouchStart,\n onTouchEnd,\n ...rest\n } = this.props;\n const { showCoordinates } = this.state;\n const { scale } = graphProps;\n const r = thinnerShapesNeeded(graphProps) ? 5 : 7;\n let SvgComponent;\n switch (correctness) {\n case 'missing':\n SvgComponent = MissingSVG;\n break;\n case 'correct':\n SvgComponent = CorrectSVG;\n break;\n case 'incorrect':\n SvgComponent = IncorrectSVG;\n break;\n default:\n SvgComponent = null;\n break;\n }\n\n return (\n <>\n <circle\n style={{ fill: 'transparent', cursor: 'pointer', pointerEvents: 'all' }}\n r={r * 3}\n cx={scale.x(x)}\n cy={scale.y(y)}\n onMouseEnter={() => this.setState({ showCoordinates: true })}\n onMouseLeave={() => this.setState({ showCoordinates: false })}\n onTouchStart={onTouchStart}\n onTouchEnd={onTouchEnd}\n onClick={onClick}\n />\n <g\n className={classNames(classes.point, disabled && classes.disabledSecondary, classes[correctness], className)}\n onMouseEnter={() => this.setState({ showCoordinates: true })}\n onMouseLeave={() => this.setState({ showCoordinates: false })}\n >\n <circle {...rest} r={r} cx={scale.x(x)} cy={scale.y(y)} />\n {SvgComponent && <SvgComponent scale={scale} x={x} y={y} />}\n {labelNode &&\n coordinatesOnHover &&\n showCoordinates &&\n ReactDOM.createPortal(<CoordinatesLabel graphProps={graphProps} x={x} y={y} />, labelNode)}\n </g>\n </>\n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { types } from '@pie-lib/plot';\nimport isEqual from 'lodash/isEqual';\nimport { getAngleDeg, arrowDimensions } from '../../../utils';\n\nexport class RawArrow extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n x: PropTypes.number,\n y: PropTypes.number,\n from: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n }).isRequired,\n to: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n }),\n graphProps: types.GraphPropsType.isRequired,\n };\n\n static defaultProps = {\n from: {},\n to: {},\n };\n\n render() {\n const { classes, className, x, y, disabled, correctness, graphProps, from, to, ...rest } = this.props;\n // x & y are the initial coordinates for the arrow\n // from & to are used only to calculate the angle that the arrow should be rotated with\n\n const { scale } = graphProps;\n const angle = getAngleDeg(from.x, from.y, to.x, to.y);\n\n let points = '';\n\n if (isEqual(from, to)) {\n points = '0,0 0,0 0,0';\n } else {\n points = `0,0 ${arrowDimensions.vector},${arrowDimensions.vector * 2} \n -${arrowDimensions.vector},${arrowDimensions.vector * 2}`;\n }\n\n return (\n <g\n className={classNames(classes.point, disabled && classes.disabledSecondary, classes[correctness], className)}\n {...rest}\n >\n <polygon\n points={points}\n transform={`\n translate(${scale.x(x)}, ${scale.y(y)})\n rotate(${angle} 0 0)`}\n />\n </g>\n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nexport const ArrowHead = ({ size, transform, points }) => (\n <polygon points={points || `0,0 ${size},${size / 2} 0,${size}`} transform={transform} />\n);\nArrowHead.propTypes = {\n points: PropTypes.string,\n size: PropTypes.number,\n transform: PropTypes.string,\n};\nArrowHead.defaultProps = {\n points: '',\n size: 10,\n transform: '',\n};\nexport const genUid = () => {\n const v = (Math.random() * 1000).toFixed(0);\n return `arrow-${v}`;\n};\nexport const ArrowMarker = ({ id, size, className }) => {\n return (\n <marker\n id={id}\n viewBox={`0 0 ${size} ${size}`}\n refX={size / 2}\n refY={size / 2}\n markerWidth={size}\n markerHeight={size}\n orient=\"auto-start-reverse\"\n className={className}\n >\n <ArrowHead size={size} />\n </marker>\n );\n};\nArrowMarker.propTypes = {\n id: PropTypes.string,\n size: PropTypes.number,\n className: PropTypes.string,\n};\nArrowMarker.defaultProps = {\n size: 5,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { types } from '@pie-lib/plot';\nimport { ArrowHead } from '../arrow-head';\nimport { thinnerShapesNeeded } from '../../../utils';\n\nexport default class Arrow extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n angle: PropTypes.number.isRequired,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n render() {\n const { classes, angle, className, x, y, disabled, correctness, graphProps, ...rest } = this.props;\n\n const size = thinnerShapesNeeded(graphProps) ? 12 : 14;\n const { scale } = graphProps;\n\n const scaledX = scale.x(x);\n const scaledY = scale.y(y);\n\n const transform = `rotate(${-angle}, ${scaledX},${scaledY})`;\n const points = `${scaledX},${scaledY}\n ${scaledX - size},${scaledY - size / 2}\n ${scaledX - size}, ${scaledY + size / 2}`;\n\n return (\n <g\n className={classNames(classes.point, disabled && classes.disabledSecondary, classes[correctness], className)}\n {...rest}\n >\n <ArrowHead size={size} transform={transform} points={points} />\n </g>\n );\n }\n}\n","import { withStyles } from '@material-ui/core/styles/index';\nimport { gridDraggable } from '@pie-lib/plot';\nimport * as utils from '../../../utils';\nimport { disabled, correct, incorrect, missing, disabledSecondary } from '../styles';\nimport { RawBp } from './base-point';\nimport { RawArrow } from './arrow-point';\nimport { color } from '@pie-lib/render-ui';\nimport BaseArrow from './arrow';\n\nconst opts = {\n bounds: (props, { domain, range }) => {\n const { x, y } = props;\n const area = { left: x, top: y, bottom: y, right: x };\n\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n const { x, y } = props;\n\n return { x, y };\n },\n fromDelta: (props, delta) => {\n return utils.point(props).add(utils.point(delta));\n },\n};\n\nconst styles = () => {\n return {\n point: {\n '& circle, & polygon': {\n cursor: 'pointer',\n fill: color.defaults.BLACK,\n },\n },\n disabled: {\n '& circle, & polygon': {\n ...disabled(),\n },\n },\n disabledSecondary: {\n '& circle, & polygon': {\n ...disabledSecondary(),\n },\n },\n correct: {\n '& circle, & polygon': {\n ...correct(),\n },\n },\n incorrect: {\n '& circle, & polygon': {\n ...incorrect(),\n },\n },\n missing: {\n '& circle, & polygon': {\n ...missing(),\n },\n },\n };\n};\n\nexport const BasePoint = withStyles(styles)(gridDraggable(opts)(RawBp));\nexport const ArrowPoint = withStyles(styles)(gridDraggable(opts)(RawArrow));\nexport const Arrow = withStyles(styles)(gridDraggable(opts)(BaseArrow));\n","import PropTypes from 'prop-types';\n\nexport const ToolPropTypeFields = {\n mark: PropTypes.any,\n onChange: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n};\n\nexport const ToolPropType = PropTypes.shape(ToolPropTypeFields);\n","import { useState, useEffect } from 'react';\n\nexport const useDebounce = (value, delay) => {\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n return () => clearTimeout(handler);\n }, [value]);\n return debouncedValue;\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst SvgIcon = ({ type }) => {\n const icons = {\n correct: (\n <svg width=\"8\" height=\"6\" viewBox=\"0 0 8 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M6.79688 0.306152C6.875 0.228027 7 0.228027 7.0625 0.306152L7.51562 0.743652C7.57812 0.821777 7.57812 0.946777 7.51562 1.00928L2.82812 5.69678C2.75 5.7749 2.64062 5.7749 2.5625 5.69678L0.46875 3.61865C0.40625 3.54053 0.40625 3.41553 0.46875 3.35303L0.921875 2.8999C0.984375 2.8374 1.10938 2.8374 1.1875 2.8999L2.6875 4.41553L6.79688 0.306152Z\"\n fill=\"#0B7D38\"\n />\n </svg>\n ),\n incorrect: (\n <svg width=\"7\" height=\"7\" viewBox=\"0 0 7 7\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M4.23438 3.21045L5.92188 4.89795C6.01562 4.9917 6.01562 5.16357 5.92188 5.25732L5.53125 5.64795C5.4375 5.7417 5.26562 5.7417 5.17188 5.64795L3.5 3.96045L1.8125 5.64795C1.71875 5.7417 1.54688 5.7417 1.45312 5.64795L1.0625 5.25732C0.96875 5.16357 0.96875 4.9917 1.0625 4.89795L2.75 3.21045L1.0625 1.53857C0.96875 1.44482 0.96875 1.27295 1.0625 1.1792L1.45312 0.788574C1.54688 0.694824 1.71875 0.694824 1.8125 0.788574L3.5 2.47607L5.17188 0.788574C5.26562 0.694824 5.4375 0.694824 5.53125 0.788574L5.92188 1.1792C6.01562 1.27295 6.01562 1.44482 5.92188 1.53857L4.23438 3.21045Z\"\n fill=\"#BF0D00\"\n />\n </svg>\n ),\n empty: (\n <svg width=\"11\" height=\"12\" viewBox=\"0 0 11 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M0.25 4.13965V1.2334C0.25 0.928711 0.484375 0.670898 0.8125 0.670898H3.71875C3.85938 0.670898 4 0.811523 4 0.952148V1.51465C4 1.67871 3.85938 1.7959 3.71875 1.7959H1.375V4.13965C1.375 4.30371 1.23438 4.4209 1.09375 4.4209H0.53125C0.367188 4.4209 0.25 4.30371 0.25 4.13965ZM7 0.952148C7 0.811523 7.11719 0.670898 7.28125 0.670898H10.1875C10.4922 0.670898 10.75 0.928711 10.75 1.2334V4.13965C10.75 4.30371 10.6094 4.4209 10.4688 4.4209H9.90625C9.74219 4.4209 9.625 4.30371 9.625 4.13965V1.7959H7.28125C7.11719 1.7959 7 1.67871 7 1.51465V0.952148ZM10.4688 7.4209C10.6094 7.4209 10.75 7.56152 10.75 7.70215V10.6084C10.75 10.9365 10.4922 11.1709 10.1875 11.1709H7.28125C7.11719 11.1709 7 11.0537 7 10.8896V10.3271C7 10.1865 7.11719 10.0459 7.28125 10.0459H9.625V7.70215C9.625 7.56152 9.74219 7.4209 9.90625 7.4209H10.4688ZM4 10.8896C4 11.0537 3.85938 11.1709 3.71875 11.1709H0.8125C0.484375 11.1709 0.25 10.9365 0.25 10.6084V7.70215C0.25 7.56152 0.367188 7.4209 0.53125 7.4209H1.09375C1.23438 7.4209 1.375 7.56152 1.375 7.70215V10.0459H3.71875C3.85938 10.0459 4 10.1865 4 10.3271V10.8896Z\"\n fill=\"#BF0D00\"\n />\n </svg>\n ),\n };\n\n return icons[type] || null;\n};\n\nSvgIcon.propTypes = {\n type: PropTypes.string.isRequired,\n};\n\nexport default SvgIcon;\n","import React, { useState, useCallback, useEffect } from 'react';\nimport cn from 'classnames';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport AutosizeInput from 'react-input-autosize';\nimport { useDebounce } from './use-debounce';\nimport { types } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport SvgIcon from './label-svg-icon';\n\nconst inputStyles = (theme) => ({\n float: 'right',\n padding: theme.spacing.unit * 0.5,\n borderRadius: '4px',\n fontSize: '10px',\n backgroundColor: color.defaults.WHITE,\n});\n\nconst styles = (theme) => ({\n inputStudent: {\n ...inputStyles(theme),\n padding: '0',\n border: 'none',\n color: 'inherit',\n fontWeight: 'bold',\n },\n input: {\n float: 'right',\n padding: theme.spacing.unit * 0.5,\n fontFamily: theme.typography.fontFamily,\n fontSize: '10px',\n border: `solid 1px ${color.defaults.SECONDARY}`,\n borderRadius: '3px',\n color: color.defaults.PRIMARY_DARK,\n backgroundColor: color.defaults.WHITE,\n },\n disabled: {\n border: `solid 1px ${color.defaults.PRIMARY_DARK}`,\n backgroundColor: color.defaults.WHITE,\n '-webkit-opacity': '1',\n },\n disabledMark: {\n border: `solid 1px ${color.disabled()}`,\n color: color.disabled(),\n '-webkit-text-fill-color': color.disabled(),\n },\n inputCorrect: {\n ...inputStyles(theme),\n color: color.defaults.CORRECT_WITH_ICON,\n border: `solid 1px ${color.defaults.CORRECT_WITH_ICON}`,\n },\n inputIncorrect: {\n ...inputStyles(theme),\n color: color.defaults.INCORRECT_WITH_ICON,\n border: `solid 1px ${color.defaults.INCORRECT_WITH_ICON}`,\n },\n inputMissing: {\n ...inputStyles(theme),\n color: color.defaults.MISSING_WITH_ICON,\n border: `solid 1px ${color.defaults.MISSING_WITH_ICON}`,\n fontWeight: 'bold',\n },\n incorrect: {\n ...inputStyles(theme),\n color: color.defaults.INCORRECT_WITH_ICON,\n fontWeight: 'bold',\n padding: '0',\n },\n});\n\nexport const position = (graphProps, mark, rect = { width: 0, height: 0 }) => {\n const { scale, domain, range } = graphProps;\n const shift = 5;\n\n const rightEdge = scale.x(mark.x) + rect.width + shift;\n const bottomEdge = scale.y(mark.y) + rect.height + shift;\n\n const h = rightEdge >= scale.x(domain.max) ? 'left' : 'right';\n const v = bottomEdge >= scale.y(range.min) ? 'top' : 'bottom';\n\n return `${v}-${h}`;\n};\n\nexport const coordinates = (graphProps, mark, rect = { width: 0, height: 0 }, position) => {\n const { scale } = graphProps;\n const shift = 5;\n\n switch (position) {\n case 'bottom-right':\n return { left: scale.x(mark.x) + shift, top: scale.y(mark.y) + shift };\n case 'bottom-left':\n return { left: scale.x(mark.x) - shift - rect.width, top: scale.y(mark.y) + shift };\n case 'top-left':\n return { left: scale.x(mark.x) - shift - rect.width, top: scale.y(mark.y) - shift - rect.height };\n case 'top-right':\n return { left: scale.x(mark.x) + shift, top: scale.y(mark.y) - shift - rect.height };\n default:\n return {};\n }\n};\n\nconst LabelInput = ({ _ref, externalInputRef, label, disabled, inputClassName, onChange }) => (\n <AutosizeInput\n inputRef={(r) => {\n _ref(r);\n externalInputRef(r);\n }}\n disabled={disabled}\n inputClassName={inputClassName}\n value={label}\n onChange={onChange}\n />\n);\n\nexport const MarkLabel = (props) => {\n const [input, setInput] = useState(null);\n const _ref = useCallback((node) => setInput(node));\n\n const { mark, graphProps, classes, disabled, inputRef: externalInputRef, theme } = props;\n\n const [label, setLabel] = useState(mark.label);\n const { correctness, correctnesslabel, correctlabel } = mark;\n const onChange = (e) => setLabel(e.target.value);\n\n const debouncedLabel = useDebounce(label, 200);\n\n // useState only sets the value once, to synch props to state need useEffect\n useEffect(() => {\n setLabel(mark.label);\n }, [mark.label]);\n\n // pick up the change to debouncedLabel and save it\n useEffect(() => {\n if (typeof debouncedLabel === 'string' && debouncedLabel !== mark.label) {\n props.onChange(debouncedLabel);\n }\n }, [debouncedLabel]);\n\n const rect = input ? input.getBoundingClientRect() : { width: 0, height: 0 };\n const pos = position(graphProps, mark, rect);\n const leftTop = coordinates(graphProps, mark, rect, pos);\n\n const style = {\n position: 'fixed',\n pointerEvents: 'auto',\n display: 'flex',\n alignItems: 'center',\n gap: '3px',\n ...leftTop,\n };\n\n const secondLabelStyle = {\n ...style,\n top: leftTop.top + 25,\n };\n\n const disabledInput = disabled || mark.disabled;\n\n const renderInput = (inputClass, labelValue) => (\n <LabelInput\n _ref={_ref}\n externalInputRef={externalInputRef}\n label={labelValue}\n disabled={disabledInput}\n inputClassName={cn(inputClass)}\n onChange={onChange}\n />\n );\n\n if (correctness === 'correct' && correctnesslabel === 'correct' && correctlabel) {\n return (\n <div className={classes.inputCorrect} style={style}>\n <SvgIcon type=\"correct\" />\n {renderInput(classes.inputStudent, correctlabel)}\n </div>\n );\n }\n\n // avoid rendering empty label when a correct point without label was provided\n if (correctness === 'correct' && correctnesslabel === 'correct' && !correctlabel) {\n return null;\n }\n\n if (correctness === 'correct' && correctnesslabel === 'incorrect') {\n return (\n <>\n <div className={classes.inputIncorrect} style={style}>\n <SvgIcon type=\"incorrect\" />\n {label === '' ? (\n <SvgIcon type=\"empty\" style={{ marginLeft: '3px' }} />\n ) : (\n renderInput(classes.inputStudent, label)\n )}\n </div>\n <div className={classes.inputMissing} style={secondLabelStyle}>\n {renderInput(classes.inputStudent, correctlabel)}\n </div>\n </>\n );\n }\n\n if (correctness === 'missing') {\n return (\n <div className={classes.inputMissing} style={style}>\n {renderInput(classes.inputStudent, label)}\n </div>\n );\n }\n\n if (correctness === 'incorrect') {\n return (\n <div className={classes.incorrect} style={style}>\n {renderInput(classes.inputStudent, label)}\n </div>\n );\n }\n\n return (\n <div style={style}>\n {renderInput(\n cn(classes.input, {\n [classes.disabled]: disabled,\n [classes.disabledMark]: mark.disabled,\n }),\n label,\n )}\n </div>\n );\n};\n\nMarkLabel.propTypes = {\n disabled: PropTypes.bool,\n onChange: PropTypes.func,\n graphProps: types.GraphPropsType,\n classes: PropTypes.object,\n inputRef: PropTypes.func,\n mark: PropTypes.object,\n theme: PropTypes.object,\n};\n\nexport default withStyles(styles, { withTheme: true })(MarkLabel);\n","import React from 'react';\nimport { BasePoint } from '../shared/point';\nimport { ToolPropTypeFields } from '../shared/types';\nimport { types } from '@pie-lib/plot';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../mark-label';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\n\nexport class Point extends React.Component {\n static propTypes = {\n graphProps: types.GraphPropsType.isRequired,\n ...ToolPropTypeFields,\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n move = (p) => {\n const mark = { ...this.state.mark, ...p };\n this.setState({ mark });\n };\n\n startDrag = () => {\n const update = { ...this.props.mark };\n\n if (update.label === '') {\n delete update.label;\n }\n this.setState({ mark: update });\n };\n\n stopDrag = () => {\n const { onChange } = this.props;\n const mark = { ...this.state.mark };\n this.setState({ mark: undefined }, () => {\n if (!isEqual(this.props.mark, mark)) {\n onChange(this.props.mark, mark);\n }\n });\n };\n\n labelChange = (label) => {\n const { onChange } = this.props;\n const update = { ...this.props.mark, label };\n\n if (!label || isEmpty(label)) {\n delete update.label;\n }\n\n this.setState({ mark: update }, () => {\n onChange(this.props.mark, update);\n });\n };\n\n clickPoint = () => {\n const { labelModeEnabled, onChange, onClick, mark } = this.props;\n\n if (!labelModeEnabled) {\n onClick(mark);\n return;\n }\n\n if (mark.disabled) {\n return;\n }\n\n onChange(mark, { label: '', ...mark });\n\n if (this.input) {\n this.input.focus();\n }\n };\n\n render() {\n const { coordinatesOnHover, graphProps, labelNode, labelModeEnabled } = this.props;\n const mark = this.state.mark ? this.state.mark : this.props.mark;\n\n return (\n <React.Fragment>\n <BasePoint\n {...mark}\n coordinatesOnHover={coordinatesOnHover}\n graphProps={graphProps}\n labelNode={labelNode}\n onDrag={this.move}\n onDragStart={this.startDrag}\n onDragStop={this.stopDrag}\n onClick={this.clickPoint}\n onTouchStart={(e) => {\n e.stopPropagation();\n this.clickPoint();\n }}\n onTouchEnd={(e) => {\n e.stopPropagation();\n this.clickPoint();\n }}\n />\n {labelNode &&\n mark.hasOwnProperty('label') &&\n ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input = r)}\n disabled={!labelModeEnabled}\n mark={mark}\n graphProps={graphProps}\n onChange={this.labelChange}\n />,\n labelNode,\n )}\n </React.Fragment>\n );\n }\n}\n\nexport default Point;\n","import Point from './component';\n\nexport const tool = () => ({\n label: 'Point',\n type: 'point',\n Component: Point,\n addPoint: (point) => ({\n type: 'point',\n ...point,\n }),\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { types, gridDraggable } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport * as utils from '../../utils';\nimport { disabled, disabledSecondary, correct, incorrect, missing } from '../shared/styles';\n\n/**\n * A low level circle component\n *\n * TODO: This and base point have a lot of similarities - merge commonality\n *\n */\nclass RawCircle extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n radius: PropTypes.number,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n render() {\n const { classes, disabled, className, correctness, x, y, radius, graphProps, ...rest } = this.props;\n const { scale } = graphProps;\n const rx = Math.abs(scale.x(x + radius) - scale.x(x));\n const ry = Math.abs(scale.y(y + radius) - scale.y(y));\n\n return (\n <ellipse\n className={classNames(classes.bgCircle, disabled && classes.disabledSecondary, classes[correctness], className)}\n cx={scale.x(x)}\n cy={scale.y(y)}\n rx={rx}\n ry={ry}\n {...rest}\n />\n );\n }\n}\n\nconst applyStyle = (fn) => ({\n ...fn('stroke'),\n '&:hover': {\n strokeWidth: 3,\n ...fn('stroke'),\n },\n});\n\nconst styles = () => ({\n bgCircle: {\n fill: 'transparent',\n stroke: color.defaults.BLACK,\n strokeWidth: 3,\n transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',\n '&:hover': {\n strokeWidth: 6,\n stroke: color.defaults.PRIMARY_DARK,\n },\n },\n disabled: applyStyle(disabled),\n disabledSecondary: applyStyle(disabledSecondary),\n correct: applyStyle(correct),\n incorrect: applyStyle(incorrect),\n missing: applyStyle(missing),\n});\n\nexport const BgCircle = withStyles(styles)(RawCircle);\n\nexport default gridDraggable({\n bounds: (props, { domain, range }) => {\n const { x, y } = props;\n const area = { left: x, top: y, bottom: y, right: x };\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n const { x, y } = props;\n return { x, y };\n },\n fromDelta: (props, delta) => {\n const newPoint = utils.point(props).add(utils.point(delta));\n return newPoint;\n },\n})(BgCircle);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types } from '@pie-lib/plot';\nimport classNames from 'classnames';\nimport { disabled, correct, incorrect, missing, disabledSecondary } from '../styles';\nimport * as vx from '@vx/shape';\nimport { color } from '@pie-lib/render-ui';\n\nexport class RawLinePath extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object,\n data: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.number)),\n graphProps: types.GraphPropsType.isRequired,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n from: types.PointType,\n to: types.PointType,\n isDragging: PropTypes.bool,\n };\n\n static defaultProps = {\n from: {},\n to: {},\n };\n\n render() {\n /* eslint-disable no-unused-vars */\n const { data, classes, className, disabled, correctness, from, to, graphProps, isDragging, ...rest } = this.props;\n /* eslint-enable */\n\n return (\n <React.Fragment>\n <vx.LinePath\n data={data}\n className={classNames(\n classes.drawLine,\n disabled && classes.disabledSecondary,\n classes[correctness],\n className,\n )}\n {...rest}\n />\n <vx.LinePath\n data={data}\n className={classNames(\n classes.line,\n isDragging && classes.dragging,\n disabled && classes.disabledSecondary,\n classes[correctness],\n className,\n )}\n {...rest}\n />\n </React.Fragment>\n );\n }\n}\n\nconst dragging = () => ({\n strokeWidth: 4,\n stroke: color.defaults.BLACK,\n});\n\nexport const LinePath = withStyles((theme) => ({\n drawLine: {\n fill: 'none',\n strokeWidth: 2,\n stroke: color.black(),\n },\n line: {\n strokeWidth: 3,\n fill: 'none',\n transition: 'stroke-width 200ms ease-in, stroke 200ms ease-in',\n stroke: 'transparent',\n '&:hover': dragging(theme),\n },\n dragging: dragging(theme),\n disabled: {\n ...disabled('stroke'),\n strokeWidth: 2,\n },\n disabledSecondary: {\n ...disabledSecondary('stroke'),\n strokeWidth: 2,\n },\n correct: {\n ...correct('stroke'),\n },\n incorrect: {\n ...incorrect('stroke'),\n },\n missing: {\n ...missing('stroke'),\n strokeWidth: 1,\n strokeDasharray: '4 3',\n },\n}))(RawLinePath);\n","import React from 'react';\nimport isEqual from 'lodash/isEqual';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { BasePoint } from '../point';\nimport { types, utils, gridDraggable, trig } from '@pie-lib/plot';\nimport PropTypes from 'prop-types';\nimport { disabled, disabledSecondary, correct, incorrect, missing } from '../styles';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../../mark-label';\nimport isEmpty from 'lodash/isEmpty';\nimport { color } from '@pie-lib/render-ui';\nimport { getMiddleOfTwoPoints, equalPoints, sameAxes } from '../../../utils';\n\nexport const lineTool = (type, Component) => () => ({\n type,\n Component,\n addPoint: (point, mark) => {\n if (mark && equalPoints(mark.root, point)) {\n return mark;\n }\n\n if (!mark) {\n return {\n type,\n building: true,\n from: point,\n };\n }\n\n if (equalPoints(point, mark.from)) {\n return { ...mark };\n }\n\n return { ...mark, building: false, to: point };\n },\n});\n\nexport const lineToolComponent = (Component) => {\n return class LineToolComponent extends React.Component {\n static propTypes = {\n ...types.ToolPropTypeFields,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n startDrag = () => this.setState({ mark: { ...this.props.mark } });\n\n stopDrag = () => {\n const { onChange, mark } = this.props;\n const update = { ...this.state.mark };\n\n this.setState({ mark: undefined }, () => {\n const { type } = update;\n let shouldNotChange =\n type &&\n (type === 'parabola' || type === 'sine' || type === 'absolute' || type === 'exponential') &&\n sameAxes(update.from, update.to);\n if (!shouldNotChange && type && type === 'exponential' && update.from && update.to) {\n shouldNotChange = update.from.y === 0 || update.to.y === 0 || update.from.y * update.to.y < 0;\n }\n if (!isEqual(mark, update) && !shouldNotChange) {\n onChange(mark, update);\n }\n });\n };\n\n changeMark = ({ from, to, middle }) => {\n let mark = { ...this.state.mark, from, to };\n\n if (middle) {\n mark = { ...mark, middle };\n }\n\n this.setState({ mark });\n };\n\n changeMarkProps = ({ from, to, middle }) => {\n const { onChange, mark } = this.props;\n let update = { ...mark, ...this.state.mark };\n\n if (from) {\n update = { ...update, from };\n }\n\n if (to) {\n update = { ...update, to };\n }\n\n if (middle) {\n update = { ...update, middle };\n }\n\n if (!isEqual(mark, update)) {\n onChange(mark, update);\n }\n };\n\n render() {\n const { graphProps, onClick, labelNode, labelModeEnabled, coordinatesOnHover, limitLabeling } = this.props;\n const mark = this.state.mark ? this.state.mark : this.props.mark;\n\n const from = cloneDeep(mark.from);\n const to = cloneDeep(mark.to);\n const middle = cloneDeep(mark.middle);\n\n // SET DISABLED\n // if it's a background mark, we need to force disable it\n if (from && mark.isBackground) {\n from.disabled = true;\n }\n\n if (to && mark.isBackground) {\n to.disabled = true;\n }\n\n if (middle && mark.isBackground) {\n middle.disabled = true;\n }\n\n return (\n <Component\n disabled={mark.disabled}\n coordinatesOnHover={coordinatesOnHover}\n correctness={mark.correctness}\n from={from}\n to={to}\n middle={middle}\n graphProps={graphProps}\n onChange={this.changeMark}\n changeMarkProps={this.changeMarkProps}\n onClick={onClick}\n onDragStart={this.startDrag}\n onDragStop={this.stopDrag}\n labelNode={labelNode}\n labelModeEnabled={labelModeEnabled}\n limitLabeling={limitLabeling}\n />\n );\n }\n };\n};\n\nconst dragOpts = () => ({\n bounds: (props, { domain, range }) => {\n const area = utils.lineToArea(props.from, props.to);\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n const { from } = props;\n return from;\n },\n fromDelta: (props, delta) => {\n const { from, to } = props;\n return {\n from: utils.point(from).add(utils.point(delta)),\n to: utils.point(to).add(utils.point(delta)),\n };\n },\n});\n\nexport const lineBase = (Comp, opts) => {\n const DraggableComp = gridDraggable(dragOpts())(Comp);\n\n const FromPoint = opts && opts.from ? opts.from : BasePoint;\n const ToPoint = opts && opts.to ? opts.to : BasePoint;\n\n class LineBase extends React.Component {\n static propTypes = {\n coordinatesOnHover: PropTypes.bool,\n graphProps: types.GraphPropsType,\n from: types.PointType,\n to: types.PointType,\n middle: types.PointType,\n onChange: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n onClick: PropTypes.func,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n labelNode: PropTypes.object,\n labelModeEnabled: PropTypes.bool,\n changeMarkProps: PropTypes.func,\n };\n\n onChangePoint = (point) => {\n const { middle, onChange } = this.props;\n const { from, to } = point;\n\n // because point.from.label and point.to.label can be different\n if (!equalPoints(from, to)) {\n if (middle) {\n point.middle = { ...middle, ...getMiddleOfTwoPoints(from, to) };\n }\n\n onChange(point);\n }\n };\n\n dragComp = ({ from: draggedFrom, to: draggedTo }) => {\n const { from, to, onChange, middle } = this.props;\n\n if (from.label) {\n draggedFrom.label = from.label;\n }\n\n if (to.label) {\n draggedTo.label = to.label;\n }\n\n const updated = { from: draggedFrom, to: draggedTo };\n\n if (middle) {\n updated.middle = { ...middle, ...getMiddleOfTwoPoints(draggedFrom, draggedTo) };\n }\n\n onChange(updated);\n };\n\n dragFrom = (draggedFrom) => {\n const { from, to } = this.props;\n\n if (from.label) {\n draggedFrom.label = from.label;\n }\n\n if (!equalPoints(draggedFrom, to)) {\n this.onChangePoint({ from: draggedFrom, to: to });\n }\n };\n\n dragTo = (draggedTo) => {\n const { from, to } = this.props;\n\n if (to.label) {\n draggedTo.label = to.label;\n }\n\n if (!equalPoints(from, draggedTo)) {\n this.onChangePoint({ from: from, to: draggedTo });\n }\n };\n\n labelChange = (point, type) => {\n const { changeMarkProps } = this.props;\n const update = { ...point };\n\n if (!point.label || isEmpty(point.label)) {\n delete update.label;\n }\n\n changeMarkProps({ [type]: update });\n };\n\n clickPoint = (point, type, data) => {\n const { changeMarkProps, disabled, from, to, labelModeEnabled, limitLabeling, onClick } = this.props;\n\n if (!labelModeEnabled) {\n onClick(point || data);\n return;\n }\n\n if (disabled) {\n return;\n }\n\n // limit labeling the points of the line\n if (limitLabeling) {\n return;\n }\n\n if (type === 'middle' && !point && from && to) {\n point = { ...point, ...getMiddleOfTwoPoints(from, to) };\n }\n\n changeMarkProps({ from, to, [type]: { label: '', ...point } });\n\n if (this.input[type]) {\n this.input[type].focus();\n }\n };\n\n // IMPORTANT, do not remove\n input = {};\n\n render() {\n const {\n coordinatesOnHover,\n graphProps,\n onDragStart,\n onDragStop,\n from,\n to,\n middle,\n disabled,\n correctness,\n onClick,\n labelNode,\n labelModeEnabled,\n } = this.props;\n const common = { graphProps, onDragStart, onDragStop, disabled, correctness, onClick };\n const angle = to ? trig.toDegrees(trig.angle(from, to)) : 0;\n\n let fromLabelNode = null;\n let toLabelNode = null;\n let lineLabelNode = null;\n\n if (labelNode) {\n if (from && from.hasOwnProperty('label')) {\n fromLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.from = r)}\n disabled={!labelModeEnabled}\n mark={from}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...from, label }, 'from')}\n />,\n labelNode,\n );\n }\n\n if (to && to.hasOwnProperty('label')) {\n toLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.to = r)}\n disabled={!labelModeEnabled}\n mark={to}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...to, label }, 'to')}\n />,\n labelNode,\n );\n }\n\n if (middle && middle.hasOwnProperty('label')) {\n lineLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.middle = r)}\n disabled={!labelModeEnabled}\n mark={middle}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...middle, label }, 'middle')}\n />,\n labelNode,\n );\n }\n }\n\n return (\n <g>\n {to && (\n <DraggableComp\n from={from}\n to={to}\n middle={middle}\n onDrag={this.dragComp}\n {...common}\n onClick={(data) => this.clickPoint(middle, 'middle', data)}\n />\n )}\n {lineLabelNode}\n\n <FromPoint\n x={from.x}\n y={from.y}\n labelNode={labelNode}\n coordinatesOnHover={coordinatesOnHover}\n onDrag={this.dragFrom}\n {...common}\n onClick={(data) => this.clickPoint(from, 'from', data)}\n />\n {fromLabelNode}\n\n {to && (\n <ToPoint\n x={to.x}\n y={to.y}\n angle={angle} //angle + 45}\n labelNode={labelNode}\n coordinatesOnHover={coordinatesOnHover}\n onDrag={this.dragTo}\n {...common}\n onClick={(data) => this.clickPoint(to, 'to', data)}\n />\n )}\n {toLabelNode}\n </g>\n );\n }\n }\n\n return LineBase;\n};\n\nexport const styles = {\n line: () => ({\n fill: 'transparent',\n stroke: color.defaults.BLACK,\n strokeWidth: 3,\n transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',\n '&:hover': {\n strokeWidth: 6,\n stroke: color.defaults.PRIMARY_DARK,\n },\n }),\n arrow: () => ({\n fill: color.defaults.BLACK,\n }),\n disabledArrow: () => ({\n ...disabledSecondary(),\n }),\n disabledSecondary: () => ({\n ...disabledSecondary('stroke'),\n strokeWidth: 2,\n }),\n disabled: () => ({\n ...disabled('stroke'),\n strokeWidth: 2,\n }),\n correct: (theme, key) => ({\n ...correct(key),\n }),\n incorrect: (theme, key) => ({\n ...incorrect(key),\n }),\n missing: (theme, key) => ({\n ...missing(key),\n strokeWidth: 1,\n strokeDasharray: '4 3',\n }),\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport { LinePath } from './line-path';\nimport { curveMonotoneX } from '@vx/curve';\nimport { lineBase, lineToolComponent } from './index';\n\nconst toRootEdge = (m) => {\n const out = { ...m };\n out.root = { ...m.from };\n out.edge = m.to ? { ...m.to } : undefined;\n delete out.from;\n delete out.to;\n return out;\n};\n\nconst toFromTo = (m) => {\n const out = { ...m };\n out.from = { ...m.root };\n out.to = m.edge ? { ...m.edge } : undefined;\n delete out.root;\n delete out.edge;\n return out;\n};\n\nexport const rootEdgeToFromToWrapper = (BaseComp) => {\n const Wrapper = (props) => {\n const m = toFromTo(props.mark);\n\n const onChange = (current, next) => {\n props.onChange(toRootEdge(current), toRootEdge(next));\n };\n\n return <BaseComp {...props} mark={m} onChange={onChange} />;\n };\n\n Wrapper.propTypes = {\n onChange: PropTypes.func,\n mark: PropTypes.object,\n };\n\n return Wrapper;\n};\n\nexport const rootEdgeComponent = (RootEdgeComp) => {\n const BaseComponent = lineToolComponent(RootEdgeComp);\n return rootEdgeToFromToWrapper(BaseComponent);\n};\n\nconst withPointsGenerationLinePath = (getPoints) => {\n const LinePathComponent = (props) => {\n const { graphProps, from, to, onClick, onDragStart, onDragStop, onChange, disabled, correctness, ...rest } = props;\n\n const { dataPoints, enableCurve = true } = getPoints({\n graphProps: props.graphProps,\n root: from,\n edge: to,\n });\n\n const raw = dataPoints.map((d) => [graphProps.scale.x(d.x), graphProps.scale.y(d.y)]);\n\n const common = {\n onClick,\n graphProps,\n onDragStart,\n onDragStop,\n onChange,\n disabled,\n correctness,\n };\n\n if (!enableCurve) {\n return <LinePath data={raw} from={from} to={to} {...common} {...rest} />;\n } else {\n return <LinePath data={raw} from={from} to={to} curve={curveMonotoneX} {...common} {...rest} />;\n }\n };\n\n LinePathComponent.propTypes = {\n graphProps: types.GraphPropsType.isRequired,\n from: types.PointType.isRequired,\n to: types.PointType,\n onClick: PropTypes.func,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n onChange: PropTypes.func,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n };\n\n return LinePathComponent;\n};\n\nexport const withRootEdge = (getPoints) => {\n const LinePathComp = withPointsGenerationLinePath(getPoints);\n return lineBase(LinePathComp);\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { BasePoint } from '../shared/point';\nimport BgCircle from './bg-circle';\nimport { getMiddleOfTwoPoints, point, equalPoints } from '../../utils';\nimport classNames from 'classnames';\nimport { types } from '@pie-lib/plot';\nimport { rootEdgeComponent } from '../shared/line/with-root-edge';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../mark-label';\nimport isEmpty from 'lodash/isEmpty';\nimport { color } from '@pie-lib/render-ui';\n\nconst opacityPulsate = (opacity) => ({\n '0%': { opacity: '0.0' },\n '50%': { opacity },\n '100%': { opacity: '0.0' },\n});\n\nconst getRadius = (from, outer) => {\n const c = point(from);\n return c.dist(point(outer));\n};\n\nexport class RawBaseCircle extends React.Component {\n static propTypes = {\n building: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n coordinatesOnHover: PropTypes.bool,\n correctness: PropTypes.string,\n from: types.PointType,\n disabled: PropTypes.bool,\n to: types.PointType,\n middle: types.PointType,\n onChange: PropTypes.func.isRequired,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n graphProps: types.GraphPropsType.isRequired,\n onClick: PropTypes.func,\n labelNode: PropTypes.object,\n labelModeEnabled: PropTypes.bool,\n changeMarkProps: PropTypes.func,\n limitLabeling: PropTypes.bool,\n };\n\n static defaultProps = {\n onClick: () => ({}),\n };\n\n onChangePoint = (point) => {\n const { middle, onChange } = this.props;\n const { from, to } = point;\n\n // because point.from.label and point.to.label can be different\n if (!equalPoints(from, to)) {\n if (middle) {\n point.middle = { ...middle, ...getMiddleOfTwoPoints(from, to) };\n }\n\n onChange(point);\n }\n };\n\n dragFrom = (draggedFrom) => {\n const { from, to } = this.props;\n\n if (from.label) {\n draggedFrom.label = from.label;\n }\n\n if (!equalPoints(draggedFrom, to)) {\n this.onChangePoint({ from: draggedFrom, to });\n }\n };\n\n dragTo = (draggedTo) => {\n const { from, to } = this.props;\n\n if (to.label) {\n draggedTo.label = to.label;\n }\n\n if (!equalPoints(from, draggedTo)) {\n this.onChangePoint({ from, to: draggedTo });\n }\n };\n\n dragCircle = (draggedFrom) => {\n const { from, to, onChange, middle } = this.props;\n const diff = point(from).sub(point(draggedFrom));\n const draggedTo = point(to).sub(diff);\n\n if (from.label) {\n draggedFrom.label = from.label;\n }\n\n if (to.label) {\n draggedTo.label = to.label;\n }\n\n const updated = { from: draggedFrom, to: draggedTo };\n\n if (middle) {\n updated.middle = { ...middle, ...getMiddleOfTwoPoints(draggedFrom, draggedTo) };\n }\n\n this.setState(\n {\n draggedroot: undefined,\n draggedOuter: undefined,\n isCircleDrag: false,\n },\n () => {\n onChange(updated);\n },\n );\n };\n\n labelChange = (point, type) => {\n const { changeMarkProps } = this.props;\n const update = { ...point };\n\n if (!point.label || isEmpty(point.label)) {\n delete update.label;\n }\n\n changeMarkProps({ [type]: update });\n };\n\n clickPoint = (point, type, data) => {\n const { changeMarkProps, disabled, from, to, labelModeEnabled, limitLabeling, onClick } = this.props;\n if (!labelModeEnabled) {\n onClick(point || data);\n return;\n }\n\n if (disabled) {\n return;\n }\n\n // limit labeling the points of the circle\n if (limitLabeling) {\n return;\n }\n\n if (type === 'middle' && !point && from && to) {\n point = { ...point, ...getMiddleOfTwoPoints(from, to) };\n }\n\n changeMarkProps({ from, to, [type]: { label: '', ...point } });\n\n if (this.input[type]) {\n this.input[type].focus();\n }\n };\n\n // IMPORTANT, do not remove\n input = {};\n\n render() {\n let {\n from,\n to,\n middle,\n disabled,\n classes,\n coordinatesOnHover,\n building,\n onDragStart,\n onDragStop,\n onClick,\n correctness,\n graphProps,\n labelNode,\n labelModeEnabled,\n } = this.props;\n const common = { onDragStart, onDragStop, graphProps, onClick };\n\n to = to || from;\n\n const radius = getRadius(from, to);\n\n let fromLabelNode = null;\n let toLabelNode = null;\n let circleLabelNode = null;\n\n if (labelNode) {\n if (from && from.hasOwnProperty('label')) {\n fromLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.from = r)}\n disabled={!labelModeEnabled}\n mark={from}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...from, label }, 'from')}\n />,\n labelNode,\n );\n }\n\n if (to && to.hasOwnProperty('label')) {\n toLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.to = r)}\n disabled={!labelModeEnabled}\n mark={to}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...to, label }, 'to')}\n />,\n labelNode,\n );\n }\n\n if (middle && middle.hasOwnProperty('label')) {\n circleLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input.middle = r)}\n disabled={!labelModeEnabled}\n mark={middle}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...middle, label }, 'middle')}\n />,\n labelNode,\n );\n }\n }\n\n return (\n <g>\n <BgCircle\n disabled={building || disabled}\n correctness={correctness}\n className={classNames(building && classes.bgCircleBuilding)}\n x={from.x}\n y={from.y}\n radius={radius}\n onDrag={this.dragCircle}\n {...common}\n onClick={(data) => this.clickPoint(middle, 'middle', data)}\n />\n {circleLabelNode}\n\n <BasePoint\n disabled={building || disabled}\n coordinatesOnHover={coordinatesOnHover}\n correctness={correctness}\n labelNode={labelNode}\n x={to.x}\n y={to.y}\n onDrag={this.dragTo}\n {...common}\n onClick={(data) => this.clickPoint(to, 'to', data)}\n />\n {toLabelNode}\n\n <BasePoint\n disabled={building || disabled}\n coordinatesOnHover={coordinatesOnHover}\n correctness={correctness}\n labelNode={labelNode}\n x={from.x}\n y={from.y}\n className={classes.from}\n onDrag={this.dragFrom}\n {...common}\n onClick={(data) => this.clickPoint(from, 'from', data)}\n />\n {fromLabelNode}\n </g>\n );\n }\n}\n\nexport const BaseCircle = withStyles(() => ({\n outerLine: {\n fill: 'rgb(0,0,0,0)', // TODO hardcoded color\n stroke: color.defaults.BLACK,\n strokeWidth: 4,\n '&:hover': {\n strokeWidth: 6,\n stroke: color.defaults.PRIMARY_DARK,\n },\n },\n root: {},\n bgCircleBuilding: {\n stroke: color.defaults.BLACK,\n animation: 'opacityPulse 2s ease-out',\n animationIterationCount: 'infinite',\n opacity: 1,\n },\n '@keyframes opacityPulse': opacityPulsate('0.3'),\n}))(RawBaseCircle);\n\nconst Component = rootEdgeComponent(BaseCircle);\nexport default Component;\n","import Circle from './component';\nimport { equalPoints } from '../../utils';\n\nexport const tool = () => ({\n type: 'circle',\n Component: Circle,\n hover: (point, mark) => {\n return { ...mark, edge: point };\n },\n addPoint: (point, mark) => {\n if (mark && equalPoints(mark.root, point)) {\n return mark;\n }\n\n if (!mark) {\n return {\n type: 'circle',\n root: point,\n building: true,\n };\n } else {\n return { ...mark, edge: point, building: false };\n }\n },\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types, gridDraggable } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport * as utils from '../../utils';\nimport classNames from 'classnames';\nimport { correct, disabled, disabledSecondary, incorrect, missing } from '../shared/styles';\n\nclass RawLine extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object,\n from: types.PointType,\n to: types.PointType,\n graphProps: types.GraphPropsType.isRequired,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n };\n\n static defaultProps = {\n from: {},\n to: {},\n };\n\n render() {\n const { graphProps, classes, from, to, className, disabled, correctness, ...rest } = this.props;\n const { scale } = graphProps;\n return (\n <line\n x1={scale.x(from.x)}\n y1={scale.y(from.y)}\n x2={scale.x(to.x)}\n y2={scale.y(to.y)}\n className={classNames(classes.line, disabled && classes.disabledSecondary, className, classes[correctness])}\n {...rest}\n />\n );\n }\n}\n\nexport const Line = withStyles(() => ({\n line: {\n strokeWidth: 3,\n transition: 'stroke-width 200ms ease-in, stroke 200ms ease-in',\n stroke: 'transparent',\n '&:hover': {\n strokeWidth: 4,\n stroke: color.defaults.BLACK,\n },\n },\n disabled: {\n ...disabled('stroke'),\n strokeWidth: 2,\n },\n disabledSecondary: {\n ...disabledSecondary('stroke'),\n strokeWidth: 2,\n },\n correct: correct('stroke'),\n incorrect: incorrect('stroke'),\n missing: {\n ...missing('stroke'),\n strokeWidth: 1,\n strokeDasharray: '4 3',\n },\n}))(RawLine);\n\nexport default gridDraggable({\n bounds: (props, { domain, range }) => {\n const { from, to } = props;\n const area = utils.lineToArea(from, to);\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n const { from } = props;\n return from;\n },\n fromDelta: (props, delta) => {\n const { from, to } = props;\n return {\n from: utils.point(from).add(utils.point(delta)),\n to: utils.point(to).add(utils.point(delta)),\n };\n },\n})(Line);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { gridDraggable, types } from '@pie-lib/plot';\nimport * as utils from '../../utils';\nimport classNames from 'classnames';\nimport { color } from '@pie-lib/render-ui';\nimport { fade } from '@material-ui/core/styles/colorManipulator';\nimport { correct, disabled, incorrect, missing } from '../shared/styles';\n\nexport const getPointString = (points, scale) => {\n return (points || [])\n .map((p) => {\n const scaledPoint = {\n x: scale.x(p.x),\n y: scale.y(p.y),\n };\n return `${scaledPoint.x},${scaledPoint.y}`;\n })\n .join(' ');\n};\n\nexport class RawPolygon extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n points: PropTypes.arrayOf(types.PointType),\n graphProps: types.GraphPropsType.isRequired,\n closed: PropTypes.bool.isRequired,\n correctness: PropTypes.string,\n };\n\n static defaultProps = {\n points: [],\n };\n\n render() {\n const { points, classes, className, disabled, correctness, graphProps, closed, ...rest } = this.props;\n const { scale } = graphProps;\n\n const pointString = getPointString(points, scale);\n const Tag = closed ? 'polygon' : 'polyline';\n return (\n <Tag\n points={pointString}\n className={classNames(\n closed && classes.closed,\n !closed && classes.open,\n disabled && classes.disabled,\n classes[correctness],\n className,\n )}\n {...rest}\n />\n );\n }\n}\n\nexport const Polygon = withStyles((theme) => ({\n closed: {\n fill: fade(theme.palette.primary.light, 0.2), // TODO hardcoded color\n strokeWidth: 2,\n stroke: color.defaults.BLACK,\n },\n open: {\n fill: fade(theme.palette.primary.light, 0.0), // TODO hardcoded color\n strokeWidth: 2,\n stroke: color.defaults.BLACK,\n pointerEvents: 'none',\n },\n disabled: {\n ...disabled('stroke'),\n },\n correct: {\n ...correct('stroke'),\n },\n incorrect: {\n ...incorrect('stroke'),\n },\n missing: {\n ...missing('stroke'),\n stroke: 'inherit',\n },\n}))(RawPolygon);\n\nexport default gridDraggable({\n bounds: (props, { domain, range }) => {\n const { points } = props;\n const area = utils.polygonToArea(points);\n return utils.bounds(area, domain, range);\n },\n anchorPoint: (props) => {\n const { points } = props;\n return points[0];\n },\n fromDelta: (props, delta) => {\n const { points } = props;\n\n return points.map((p) => utils.point(p).add(utils.point(delta)));\n },\n})(Polygon);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { ToolPropTypeFields } from '../shared/types';\nimport { BasePoint } from '../shared/point';\nimport chunk from 'lodash/chunk';\nimport initial from 'lodash/initial';\nimport debug from 'debug';\nimport Line from './line';\nimport DraggablePolygon, { Polygon } from './polygon';\nimport { types } from '@pie-lib/plot';\nimport invariant from 'invariant';\nimport ReactDOM from 'react-dom';\nimport MarkLabel from '../../mark-label';\nimport isEmpty from 'lodash/isEmpty';\nimport { getMiddleOfTwoPoints, getRightestPoints, equalPoints } from '../../utils';\n\nconst log = debug('pie-lib:graphing:polygon');\n\nexport const buildLines = (points, closed) => {\n const expanded = points.reduce((acc, p, index) => {\n acc.push({ ...p, index });\n\n const isLast = index === points.length - 1;\n const next = isLast ? 0 : index + 1;\n\n acc.push({ ...points[next], index: next });\n\n return acc;\n }, []);\n\n const all = chunk(expanded, 2).map(([from, to]) => {\n return { from, to };\n });\n\n return closed ? all : initial(all);\n};\n\nexport const swap = (arr, ...rest) => {\n const pairs = chunk(rest, 2);\n\n return pairs.reduce(\n (acc, pr) => {\n if (pr.length === 2) {\n let [e, replacement] = pr;\n\n invariant(Number.isFinite(e.index), 'Index must be defined');\n\n const index = e.index;\n // const i = acc.findIndex(pt => pt.x === e.x && pt.y === e.y);\n\n if (index >= 0) {\n acc.splice(index, 1, replacement);\n\n return acc;\n } else {\n return acc;\n }\n } else {\n return acc;\n }\n },\n [...arr],\n );\n};\n\nexport class RawBaseComponent extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n points: PropTypes.arrayOf(types.PointType),\n closed: PropTypes.bool,\n coordinatesOnHover: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n onClosePolygon: PropTypes.func.isRequired,\n onDragStart: PropTypes.func,\n onDragStop: PropTypes.func,\n onClick: PropTypes.func,\n graphProps: types.GraphPropsType.isRequired,\n isToolActive: PropTypes.bool,\n middle: PropTypes.object,\n labelNode: PropTypes.object,\n labelModeEnabled: PropTypes.bool,\n limitLabeling: PropTypes.bool,\n onChangeLabelProps: PropTypes.func,\n onChangeProps: PropTypes.func,\n };\n\n static defaultProps = {\n points: [],\n };\n\n dragPoint = (index, from, to) => {\n log('[dragPoint] from, to:', from, to);\n const { onChange, points } = this.props;\n const update = [...points];\n const overlapPoint = !!(points || []).find((p) => equalPoints(p, to));\n\n if (equalPoints(from, to) || overlapPoint) {\n return;\n }\n\n if (points[index].label) {\n to.label = points[index].label;\n }\n\n update.splice(index, 1, to);\n onChange(update);\n };\n\n dragLine = (existing, next) => {\n log('[dragLine]: ', existing, next);\n const { onChange } = this.props;\n\n if (existing.from.label) {\n next.from.label = existing.from.label;\n }\n\n if (existing.to.label) {\n next.to.label = existing.to.label;\n }\n\n const points = swap(this.props.points, existing.from, next.from, existing.to, next.to);\n onChange(points);\n };\n\n dragPoly = (existing, next) => {\n log('[dragPoly] ', existing, next);\n const { onChange } = this.props;\n\n next.forEach((point, index) => {\n if (existing[index].label) {\n next[index].label = existing[index].label;\n }\n });\n\n onChange(next);\n };\n\n close = () => {\n const { points, onClosePolygon } = this.props;\n log('[close] ...');\n\n if (points.length >= 3) {\n onClosePolygon();\n } else {\n log('[close] - nope');\n }\n };\n\n labelChange = (point, index) => {\n const { points, onChangeProps } = this.props;\n const updatedPoint = { ...point };\n\n if (!point.label || isEmpty(point.label)) {\n delete updatedPoint.label;\n }\n\n const update = [...points];\n\n update.splice(index, 1, updatedPoint);\n onChangeProps(update);\n };\n\n clickPoint = (point, index, data) => {\n const {\n closed,\n disabled,\n onClick,\n isToolActive,\n labelModeEnabled,\n limitLabeling,\n onChangeProps,\n onChangeLabelProps,\n points,\n } = this.props;\n\n if (labelModeEnabled) {\n // limit labeling the points of the polygon\n if (disabled || limitLabeling) {\n return;\n }\n\n if (points && index === points.length) {\n const { a, b } = getRightestPoints(points);\n const middle = { label: '', ...point, ...getMiddleOfTwoPoints(a, b) };\n\n onChangeLabelProps(middle);\n } else {\n const update = [...points];\n\n update.splice(index, 1, { label: '', ...point });\n onChangeProps(update);\n }\n\n if (this.input[index]) {\n this.input[index].focus();\n }\n\n return;\n }\n\n if (isToolActive && !closed && index === 0) {\n this.close();\n return;\n }\n\n onClick(point || data);\n };\n\n // IMPORTANT, do not remove\n input = {};\n\n render() {\n const {\n closed,\n coordinatesOnHover,\n correctness,\n disabled,\n graphProps,\n onChangeLabelProps,\n onDragStart,\n onDragStop,\n points,\n middle,\n labelNode,\n labelModeEnabled,\n } = this.props;\n const lines = buildLines(points, closed);\n const common = { onDragStart, onDragStop, graphProps, disabled, correctness };\n const polygonLabelIndex = (points && points.length) || 0;\n let polygonLabelNode = null;\n\n if (labelNode && middle && middle.hasOwnProperty('label')) {\n polygonLabelNode = ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input[polygonLabelIndex] = r)}\n disabled={!labelModeEnabled}\n mark={middle}\n graphProps={graphProps}\n onChange={(label) => onChangeLabelProps({ ...middle, label })}\n />,\n labelNode,\n );\n }\n\n return (\n <g>\n {closed ? (\n <React.Fragment>\n <DraggablePolygon\n points={points}\n onDrag={this.dragPoly.bind(this, points)}\n closed={closed}\n {...common}\n onClick={this.clickPoint.bind(this, middle, polygonLabelIndex)}\n />\n {polygonLabelNode}\n </React.Fragment>\n ) : (\n <Polygon points={points} graphProps={graphProps} closed={closed} />\n )}\n {(lines || []).map((l, index) => (\n <Line\n key={`line-${index}`}\n from={l.from}\n to={l.to}\n onDrag={this.dragLine.bind(this, l)}\n {...common}\n onClick={this.clickPoint.bind(this, middle, polygonLabelIndex)}\n />\n ))}\n\n {(points || []).map((p, index) => {\n return [\n <BasePoint\n key={`point-${index}`}\n coordinatesOnHover={coordinatesOnHover}\n labelNode={labelNode}\n x={p.x}\n y={p.y}\n onDrag={this.dragPoint.bind(this, index, p)}\n {...common}\n onClick={this.clickPoint.bind(this, p, index)}\n />,\n labelNode && p.hasOwnProperty('label')\n ? ReactDOM.createPortal(\n <MarkLabel\n inputRef={(r) => (this.input[index] = r)}\n disabled={!labelModeEnabled}\n mark={p}\n graphProps={graphProps}\n onChange={(label) => this.labelChange({ ...p, label }, index)}\n />,\n labelNode,\n )\n : null,\n ];\n })}\n </g>\n );\n }\n}\n\nexport const BaseComponent = withStyles(() => ({}))(RawBaseComponent);\n\nexport default class Component extends React.Component {\n static propTypes = {\n ...ToolPropTypeFields,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n change = (points) => {\n const {\n mark: { middle },\n } = this.props;\n const mark = { ...this.state.mark, points };\n\n if (middle) {\n const { a, b } = getRightestPoints(points);\n\n mark.middle = { ...middle, ...getMiddleOfTwoPoints(a, b) };\n }\n\n this.setState({ mark });\n };\n\n changeProps = (points) => {\n const mark = { ...this.props.mark, points };\n\n this.props.onChange(this.props.mark, mark);\n };\n\n changeLabelProps = (point) => {\n const { mark, onChange } = this.props;\n const middle = { ...mark.middle, ...point };\n\n onChange(mark, { ...mark, middle });\n };\n\n closePolygon = () => {\n log('[closePolygon] ...');\n const { onComplete, mark } = this.props;\n const update = { ...mark, closed: true };\n\n onComplete(mark, update);\n };\n\n dragStart = () => this.setState({ mark: this.props.mark });\n\n dragStop = () => {\n const { onChange } = this.props;\n const m = { ...this.state.mark };\n\n this.setState({ mark: undefined }, () => {\n onChange(this.props.mark, m);\n });\n };\n\n render() {\n const {\n coordinatesOnHover,\n mark,\n graphProps,\n onClick,\n isToolActive,\n labelNode,\n labelModeEnabled,\n limitLabeling,\n } = this.props;\n const { mark: stateMark } = this.state;\n\n return (\n <BaseComponent\n {...(stateMark || mark)}\n coordinatesOnHover={coordinatesOnHover}\n onChange={this.change}\n onChangeLabelProps={this.changeLabelProps}\n onChangeProps={this.changeProps}\n onClosePolygon={this.closePolygon}\n onDragStart={this.dragStart}\n onDragStop={this.dragStop}\n onClick={onClick}\n graphProps={graphProps}\n isToolActive={isToolActive}\n labelNode={labelNode}\n labelModeEnabled={labelModeEnabled}\n limitLabeling={limitLabeling}\n />\n );\n }\n}\n","import Polygon from './component';\nimport { equalPoints } from '../../utils';\n\nexport const addPointToArray = (point, arr) => {\n arr = arr || [];\n\n if (arr.length === 0) {\n return { points: [point], closed: false };\n } else if (arr.length === 1) {\n if (equalPoints(point, arr[0])) {\n return { points: arr, closed: false };\n } else {\n return { points: [...arr, point], closed: false };\n }\n } else if (arr.length >= 2) {\n const closed = equalPoints(point, arr[0]);\n\n if (closed) {\n return { points: arr, closed };\n } else {\n const hasPoint = !!arr.find((p) => equalPoints(p, point));\n\n if (hasPoint) {\n return { points: arr, closed: false };\n } else {\n return { points: [...arr, point], closed: false };\n }\n }\n }\n};\n\nexport const tool = () => ({\n type: 'polygon',\n Component: Polygon,\n complete: (data, mark) => {\n return { ...mark, building: false, closed: true };\n },\n addPoint: (point, mark) => {\n if (!mark) {\n return {\n type: 'polygon',\n points: [point],\n closed: false,\n building: true,\n };\n } else {\n const { closed, points } = addPointToArray(point, mark.points);\n\n return { ...mark, closed, points, building: !closed };\n }\n },\n});\n","import debug from 'debug';\nimport { sinY, buildDataPoints, getAmplitudeAndFreq, FREQ_DIVIDER } from '@pie-lib/graphing-utils';\nimport { withRootEdge, rootEdgeComponent } from '../shared/line/with-root-edge';\n\nconst log = debug('pie-lib:graphing:sine');\n\nconst Sine = withRootEdge((props) => {\n const { root, edge, graphProps } = props;\n const { domain, range } = graphProps;\n\n const { amplitude, freq } = getAmplitudeAndFreq(root, edge);\n const interval = freq / FREQ_DIVIDER;\n\n log('[getPoints] amplitude:', amplitude, 'freq:', freq);\n\n const dataPoints =\n edge && edge.x === root.x\n ? []\n : buildDataPoints(\n { ...domain, step: interval },\n range,\n root,\n edge,\n sinY(amplitude, freq, { phase: root.x, vertical: root.y }),\n );\n\n return { root: props.root, edge: props.edge, dataPoints };\n});\n\nconst Component = rootEdgeComponent(Sine);\n\nexport default Component;\n","import Sine from './component';\nimport debug from 'debug';\nimport { equalPoints, sameAxes } from '../../utils';\n\nconst log = debug('pie-lib:graphing:sine');\n\nexport const tool = () => ({\n type: 'sine',\n Component: Sine,\n complete: (data, mark) => {\n return { ...mark, building: false, closed: true };\n },\n addPoint: (point, mark) => {\n log('add point to sine model: ', point, 'mark: ', mark);\n if (mark && (equalPoints(mark.root, point) || sameAxes(mark.root, point))) {\n return mark;\n }\n\n if (!mark) {\n return {\n type: 'sine',\n root: point,\n edge: undefined,\n closed: false,\n building: true,\n };\n } else if (mark && !mark.root) {\n throw new Error('no root - should never happen');\n } else {\n return { ...mark, edge: point, closed: true, building: false };\n }\n },\n});\n","import debug from 'debug';\nimport { buildDataPoints, parabolaFromTwoPoints } from '@pie-lib/graphing-utils';\nimport { withRootEdge, rootEdgeComponent } from '../shared/line/with-root-edge';\n\nconst log = debug('pie-lib:graphing:parabola');\n\nconst Parabola = withRootEdge((props) => {\n const { root, edge, graphProps } = props;\n const { domain, range } = graphProps;\n\n const dataPoints =\n edge && edge.x === root.x\n ? []\n : buildDataPoints(domain, range, root, edge, parabolaFromTwoPoints(root, edge), true);\n\n log('dataPoints:', dataPoints);\n\n return { root: props.root, edge: props.edge, dataPoints };\n});\n\nconst Component = rootEdgeComponent(Parabola);\n\nexport default Component;\n","import Parabola from './component';\nimport debug from 'debug';\nimport { equalPoints, sameAxes } from '../../utils';\n\nconst log = debug('pie-lib:graphing:parabola');\n\nexport const tool = () => ({\n type: 'parabola',\n Component: Parabola,\n complete: (data, mark) => ({ ...mark, building: false, closed: true }),\n addPoint: (point, mark) => {\n log('add point to parabola model: ', point, 'mark: ', mark);\n if (mark && (equalPoints(mark.root, point) || sameAxes(mark.root, point))) {\n return mark;\n }\n\n if (!mark) {\n return {\n type: 'parabola',\n root: point,\n edge: undefined,\n closed: false,\n building: true,\n };\n } else if (mark && !mark.root) {\n throw new Error('no root - should never happen');\n } else {\n return { ...mark, edge: point, closed: true, building: false };\n }\n },\n});\n","import { lineToolComponent, lineBase, styles } from '../shared/line';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { trig, types } from '@pie-lib/plot';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { ArrowMarker, genUid } from '../shared/arrow-head';\nimport { thinnerShapesNeeded, getAdjustedGraphLimits } from '../../utils';\n\nconst lineStyles = (theme) => ({\n line: styles.line(theme),\n enabledArrow: styles.arrow(theme),\n disabledArrow: styles.disabledArrow(theme),\n disabled: styles.disabled(theme),\n disabledSecondary: styles.disabledSecondary(theme),\n correct: styles.correct(theme, 'stroke'),\n correctArrow: styles.correct(theme),\n incorrect: styles.incorrect(theme, 'stroke'),\n incorrectArrow: styles.incorrect(theme),\n missing: styles.missing(theme, 'stroke'),\n missingArrow: styles.missing(theme),\n});\n\nexport const ArrowedLine = (props) => {\n const markerId = genUid();\n const { className, classes, correctness, disabled, graphProps, from, to, ...rest } = props;\n const { scale } = graphProps;\n const { domain, range } = getAdjustedGraphLimits(graphProps);\n const [eFrom, eTo] = trig.edges(domain, range)(from, to);\n const suffix = correctness || (disabled && 'disabled') || 'enabled';\n\n return (\n <g>\n <defs>\n <ArrowMarker\n size={thinnerShapesNeeded(graphProps) ? 4 : 5}\n id={`${props.markerId || markerId}-${suffix}`}\n className={classNames(classes[`${suffix}Arrow`])}\n />\n </defs>\n <line\n x1={scale.x(eFrom.x)}\n y1={scale.y(eFrom.y)}\n x2={scale.x(eTo.x)}\n y2={scale.y(eTo.y)}\n className={classNames(classes.line, disabled && classes.disabledSecondary, classes[correctness], className)}\n markerEnd={`url(#${props.markerId || markerId}-${suffix})`}\n markerStart={`url(#${props.markerId || markerId}-${suffix})`}\n {...rest}\n />\n </g>\n );\n};\n\nArrowedLine.propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n graphProps: types.GraphPropsType,\n from: types.PointType,\n to: types.PointType,\n markerId: PropTypes.string,\n};\n\nconst StyledArrowedLine = withStyles(lineStyles)(ArrowedLine);\n\nconst Line = lineBase(StyledArrowedLine);\nconst Component = lineToolComponent(Line);\n\nexport default Component;\n","import Line from './component';\nimport { lineTool } from '../shared/line';\n\nexport const tool = lineTool('line', Line);\n","import { lineToolComponent, lineBase, styles } from '../shared/line';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { types } from '@pie-lib/plot';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\n\nconst lineStyles = (theme) => ({\n line: styles.line(theme),\n disabled: styles.disabled(theme),\n disabledSecondary: styles.disabledSecondary(theme),\n correct: styles.correct(theme, 'stroke'),\n incorrect: styles.incorrect(theme, 'stroke'),\n missing: styles.missing(theme, 'stroke'),\n});\nexport const Line = (props) => {\n const { className, classes, correctness, disabled, graphProps, from, to, ...rest } = props;\n const { scale } = graphProps;\n\n return (\n <line\n stroke=\"green\"\n strokeWidth=\"6\"\n x1={scale.x(from.x)}\n y1={scale.y(from.y)}\n x2={scale.x(to.x)}\n y2={scale.y(to.y)}\n className={classNames(classes.line, disabled && classes.disabledSecondary, classes[correctness], className)}\n {...rest}\n />\n );\n};\n\nLine.propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object,\n correctness: PropTypes.string,\n disabled: PropTypes.bool,\n graphProps: PropTypes.any,\n from: types.PointType,\n to: types.PointType,\n};\n\nconst StyledLine = withStyles(lineStyles)(Line);\nconst Segment = lineBase(StyledLine);\nconst Component = lineToolComponent(Segment);\n\nexport default Component;\n","import Segment from './component';\nimport { lineTool } from '../shared/line';\n\nexport const tool = lineTool('segment', Segment);\n","import { lineToolComponent, lineBase, styles } from '../shared/line';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { ArrowMarker, genUid } from '../shared/arrow-head';\nimport { trig, types } from '@pie-lib/plot';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { thinnerShapesNeeded, getAdjustedGraphLimits } from '../../utils';\n\nconst rayStyles = (theme) => ({\n line: styles.line(theme),\n enabledArrow: styles.arrow(theme),\n disabledArrow: styles.disabledArrow(theme),\n disabled: styles.disabled(theme),\n disabledSecondary: styles.disabledSecondary(theme),\n correct: styles.correct(theme, 'stroke'),\n correctArrow: styles.correct(theme),\n incorrect: styles.incorrect(theme, 'stroke'),\n incorrectArrow: styles.incorrect(theme),\n missing: styles.missing(theme, 'stroke'),\n missingArrow: styles.missing(theme),\n});\n\nexport const RayLine = (props) => {\n const markerId = genUid();\n const { graphProps, from, to, classes, disabled, correctness, className, ...rest } = props;\n const { scale } = graphProps;\n const { domain, range } = getAdjustedGraphLimits(graphProps);\n const [aToB] = trig.edges(domain, range)(from, to);\n const suffix = correctness || (disabled && 'disabled') || 'enabled';\n\n return (\n <g>\n <defs>\n <ArrowMarker\n size={thinnerShapesNeeded(graphProps) ? 4 : 5}\n id={`${props.markerId || markerId}-${suffix}`}\n className={classNames(classes[`${suffix}Arrow`])}\n />\n </defs>\n <line\n x1={scale.x(from.x)}\n y1={scale.y(from.y)}\n x2={scale.x(aToB.x)}\n y2={scale.y(aToB.y)}\n {...rest}\n className={classNames(classes.line, disabled && classes.disabledSecondary, classes[correctness], className)}\n markerEnd={`url(#${props.markerId || markerId}-${suffix})`}\n />\n </g>\n );\n};\n\nRayLine.propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n graphProps: PropTypes.any,\n from: types.PointType,\n to: types.PointType,\n markerId: PropTypes.string,\n};\n\nconst StyledRay = withStyles(rayStyles)(RayLine);\n\nconst Ray = lineBase(StyledRay);\nconst Component = lineToolComponent(Ray);\n\nexport default Component;\n","import Ray from './component';\nimport { lineTool } from '../shared/line';\n\nexport const tool = lineTool('ray', Ray);\n","import { lineToolComponent, lineBase, styles } from '../shared/line';\nimport { Arrow } from '../shared/point';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { getDistanceBetweenTwoPoints } from '../../utils';\n\nconst lineStyles = (theme) => ({\n line: styles.line(theme),\n disabled: styles.disabled(theme),\n disabledSecondary: styles.disabledSecondary(theme),\n correct: styles.correct(theme, 'stroke'),\n incorrect: styles.incorrect(theme, 'stroke'),\n missing: styles.missing(theme, 'stroke'),\n});\n\nexport const Line = (props) => {\n const {\n className,\n classes,\n disabled,\n correctness,\n graphProps: { scale },\n from,\n to,\n ...rest\n } = props;\n const startPoint = { x: scale.x(from.x), y: scale.y(from.y) };\n const endPoint = { x: scale.x(to.x), y: scale.y(to.y) };\n const length = getDistanceBetweenTwoPoints(startPoint, endPoint);\n\n return (\n <line\n className={classNames(classes.line, disabled && classes.disabledSecondary, classes[correctness], className)}\n x1={startPoint.x}\n y1={startPoint.y}\n x2={endPoint.x}\n y2={endPoint.y}\n strokeDasharray={length - 7}\n {...rest}\n />\n );\n};\n\nLine.propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object,\n disabled: PropTypes.bool,\n correctness: PropTypes.string,\n graphProps: PropTypes.any,\n from: types.PointType,\n to: types.PointType,\n};\n\nconst StyledLine = withStyles(lineStyles)(Line);\nconst Vector = lineBase(StyledLine, { to: Arrow });\nconst Component = lineToolComponent(Vector);\n\nexport default Component;\n","import Vector from './component';\nimport { lineTool } from '../shared/line';\n\nexport const tool = lineTool('vector', Vector);\n","import debug from 'debug';\nimport { buildDataPoints, absoluteFromTwoPoints } from '@pie-lib/graphing-utils';\nimport { withRootEdge, rootEdgeComponent } from '../shared/line/with-root-edge';\n\nconst log = debug('pie-lib:graphing:absolute');\n\nconst Absolute = withRootEdge((props) => {\n const { root, edge, graphProps } = props;\n const { domain, range } = graphProps;\n\n const dataPoints =\n edge && edge.x === root.x\n ? []\n : buildDataPoints(domain, range, root, edge, absoluteFromTwoPoints(root, edge), true);\n\n log('dataPoints:', dataPoints);\n\n return { root: props.root, edge: props.edge, dataPoints, enableCurve: false };\n});\n\nconst Component = rootEdgeComponent(Absolute);\n\nexport default Component;\n","import Absolute from './component';\nimport debug from 'debug';\nimport { equalPoints, sameAxes } from '../../utils';\n\nconst log = debug('pie-lib:graphing:absolute');\n\nexport const tool = () => ({\n type: 'absolute',\n Component: Absolute,\n complete: (data, mark) => ({ ...mark, building: false, closed: true }),\n addPoint: (point, mark) => {\n log('add point to absolute model: ', point, 'mark: ', mark);\n if (mark && (equalPoints(mark.root, point) || sameAxes(mark.root, point))) {\n return mark;\n }\n\n if (!mark) {\n return {\n type: 'absolute',\n root: point,\n edge: undefined,\n closed: false,\n building: true,\n };\n } else if (mark && !mark.root) {\n throw new Error('no root - should never happen');\n } else {\n return { ...mark, edge: point, closed: true, building: false };\n }\n },\n});\n","import debug from 'debug';\nimport { buildDataPoints, exponentialFromTwoPoints } from '@pie-lib/graphing-utils';\nimport { withRootEdge, rootEdgeComponent } from '../shared/line/with-root-edge';\n\nconst log = debug('pie-lib:graphing:exponential');\n\nconst Exponential = withRootEdge((props) => {\n const { root, edge, graphProps } = props;\n const { domain, range } = graphProps;\n\n const dataPoints =\n edge && edge.x === root.x\n ? []\n : buildDataPoints(domain, range, root, edge, exponentialFromTwoPoints(root, edge), true);\n\n log('dataPoints:', dataPoints);\n\n return { root: props.root, edge: props.edge, dataPoints };\n});\n\nconst Component = rootEdgeComponent(Exponential);\n\nexport default Component;\n","import Exponential from './component';\nimport debug from 'debug';\nimport { equalPoints, sameAxes } from '../../utils';\n\nconst log = debug('pie-lib:graphing:exponential');\n\nexport const tool = () => ({\n type: 'exponential',\n Component: Exponential,\n complete: (data, mark) => ({ ...mark, building: false, closed: true }),\n addPoint: (point, mark) => {\n log('add point to exponential model: ', point, 'mark: ', mark);\n if (mark && (equalPoints(mark.root, point) || sameAxes(mark.root, point))) {\n return mark;\n }\n\n if (mark && mark.root.y * point.y < 0) {\n return mark;\n }\n\n if (point.y === 0) {\n return mark;\n }\n\n if (!mark) {\n return {\n type: 'exponential',\n root: point,\n edge: undefined,\n closed: false,\n building: true,\n };\n } else if (mark && !mark.root) {\n throw new Error('no root - should never happen');\n } else {\n return { ...mark, edge: point, closed: true, building: false };\n }\n },\n});\n","import { tool as point } from './point';\nimport { tool as circle } from './circle';\nimport { tool as polygon } from './polygon';\nimport { tool as sine } from './sine';\nimport { tool as parabola } from './parabola';\nimport { tool as line } from './line';\nimport { tool as segment } from './segment';\nimport { tool as ray } from './ray';\nimport { tool as vector } from './vector';\nimport { tool as absolute } from './absolute';\nimport { tool as exponential } from './exponential';\n\nconst allTools = [\n 'circle',\n 'line',\n 'label',\n 'parabola',\n 'point',\n 'polygon',\n 'ray',\n 'segment',\n 'sine',\n 'vector',\n 'absolute',\n 'exponential',\n];\n\n// need this because now we should treat label as other tools PD-3736\nconst labelTool = {\n type: 'label',\n};\n\nconst toolsArr = [\n circle(),\n line(),\n parabola(),\n point(),\n polygon(),\n ray(),\n segment(),\n sine(),\n vector(),\n absolute(),\n exponential(),\n labelTool,\n];\n\nexport { allTools, toolsArr, circle, line, point, parabola, polygon, ray, sine, vector, absolute, exponential };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport cn from 'classnames';\nimport Button from '@material-ui/core/Button';\nimport { color } from '@pie-lib/render-ui';\nimport { allTools } from './tools';\nimport { withDragContext, DragSource, DropTarget } from '@pie-lib/drag';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\n\nconst buttonStyles = () => ({\n root: {\n color: color.text(),\n },\n selected: {\n backgroundColor: color.background(),\n border: `1px solid ${color.secondary()}`,\n },\n notSelected: {\n '& span': {\n color: color.primary(),\n },\n backgroundColor: color.background(),\n },\n disabled: {\n '& span': {\n color: color.primary(),\n },\n backgroundColor: color.disabled(),\n },\n});\n\nexport const MiniButton = withStyles(buttonStyles)((props) => {\n const { disabled, classes, className, selected, value, onClick, language } = props;\n const translatorKey = value.toLowerCase();\n\n return (\n <Button\n size=\"small\"\n disabled={disabled}\n className={cn(classes.root, selected && classes.selected, className)}\n classes={{ disabled: cn(disabled && classes.disabled) }}\n value={value}\n key={value}\n variant=\"outlined\"\n onClick={(e) => onClick({ ...e, buttonValue: value })}\n >\n {translator.t(`graphing.${translatorKey}`, { lng: language })}\n </Button>\n );\n});\n\nMiniButton.propTypes = {\n disabled: PropTypes.bool,\n classes: PropTypes.object,\n className: PropTypes.string,\n disabledClassName: PropTypes.string,\n selected: PropTypes.bool,\n value: PropTypes.string,\n onClick: PropTypes.func,\n};\n\nexport class ToggleBar extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n options: PropTypes.arrayOf(PropTypes.string),\n selectedToolType: PropTypes.string,\n disabled: PropTypes.bool,\n draggableTools: PropTypes.bool,\n onChange: PropTypes.func,\n onChangeToolsOrder: PropTypes.func,\n language: PropTypes.string,\n };\n\n static defaultProps = {};\n\n select = (e) => this.props.onChange(e.buttonValue || e.target.textContent);\n\n moveTool = (dragIndex, hoverIndex) => {\n const { options, onChangeToolsOrder } = this.props;\n const dragged = options[dragIndex];\n\n options.splice(dragIndex, 1);\n options.splice(hoverIndex, 0, dragged);\n\n onChangeToolsOrder(options);\n };\n\n render() {\n const { classes, className, disabled, options, selectedToolType, draggableTools, language } = this.props;\n\n return (\n <div className={cn(className, classes.toolsContainer)}>\n {(options || []).map((option, index) => {\n if ((allTools || []).includes(option)) {\n const isSelected = option === selectedToolType;\n const toolRef = React.createRef();\n\n return (\n <DragTool\n key={option}\n index={index}\n draggable={draggableTools}\n moveTool={this.moveTool}\n classes={classes}\n toolRef={toolRef}\n >\n <MiniButton\n className={cn(classes.button, isSelected && classes.selected)}\n disabled={disabled}\n disableRipple={true}\n onClick={this.select}\n value={option}\n selected={isSelected}\n language={language}\n />\n </DragTool>\n );\n }\n })}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n toolsContainer: {\n display: 'flex',\n flexWrap: 'wrap',\n },\n button: {\n marginRight: theme.spacing.unit / 2,\n marginBottom: theme.spacing.unit / 2,\n color: color.text(),\n },\n under: {\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex: -1,\n pointerEvents: 'none',\n },\n wrapper: {\n position: 'relative',\n },\n hidden: {\n opacity: 0,\n },\n});\n\nexport default withDragContext(withStyles(styles)(ToggleBar));\n\nconst DRAG_TYPE = 'tool';\n\nexport class Item extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n connectDragSource: PropTypes.func.isRequired,\n connectDragPreview: PropTypes.func.isRequired,\n connectDropTarget: PropTypes.func.isRequired,\n isDragging: PropTypes.bool,\n toolRef: PropTypes.any,\n };\n\n static defaultProps = {};\n\n render() {\n const {\n classes,\n children,\n connectDragSource,\n connectDropTarget,\n connectDragPreview,\n isDragging,\n toolRef,\n } = this.props;\n\n return (\n <div className={classes.wrapper} ref={toolRef}>\n {connectDragSource(connectDropTarget(<div className={isDragging && classes.hidden}>{children}</div>))}\n {connectDragPreview(<div className={classes.under}>{children}</div>)}\n </div>\n );\n }\n}\n\nconst itemSource = {\n canDrag(props) {\n return props.draggable;\n },\n beginDrag(props) {\n return {\n index: props.index,\n };\n },\n};\n\nconst itemTarget = {\n hover(props, monitor) {\n const dragIndex = monitor.getItem().index;\n const { toolRef, index: hoverIndex } = props;\n\n if (dragIndex === hoverIndex || !toolRef.current) {\n return;\n }\n\n const hoverBoundingRect = toolRef.current?.getBoundingClientRect();\n const hoverMiddleX = (hoverBoundingRect.right - hoverBoundingRect.left) / 2;\n const clientOffset = monitor.getClientOffset();\n const hoverClientX = clientOffset.x - hoverBoundingRect.left;\n\n if (dragIndex < hoverIndex && hoverClientX < hoverMiddleX) {\n return;\n }\n\n if (dragIndex > hoverIndex && hoverClientX > hoverMiddleX) {\n return;\n }\n\n props.moveTool(dragIndex, hoverIndex);\n monitor.getItem().index = hoverIndex;\n },\n};\n\nconst collectTarget = (connect) => ({ connectDropTarget: connect.dropTarget() });\n\nconst collectSource = (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n connectDragPreview: connect.dragPreview(),\n isDragging: monitor.isDragging(),\n});\n\nconst DragTool = DropTarget(\n DRAG_TYPE,\n itemTarget,\n collectTarget,\n)(DragSource(DRAG_TYPE, itemSource, collectSource)(Item));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport ToggleBar, { MiniButton } from './toggle-bar';\n\nexport class ToolMenu extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n currentToolType: PropTypes.string,\n disabled: PropTypes.bool,\n draggableTools: PropTypes.bool,\n labelModeEnabled: PropTypes.bool,\n onChange: PropTypes.func,\n onChangeTools: PropTypes.func,\n toolbarTools: PropTypes.arrayOf(PropTypes.string),\n language: PropTypes.string,\n };\n\n static defaultProps = {\n toolbarTools: [],\n };\n\n updateToolsOrder = (tools) => {\n const { onChangeTools } = this.props;\n onChangeTools(tools);\n };\n\n render() {\n const { className, currentToolType, disabled, draggableTools, onChange, language } = this.props;\n let { toolbarTools } = this.props;\n\n return (\n <div className={classNames(className)}>\n <ToggleBar\n disabled={disabled}\n draggableTools={draggableTools}\n options={toolbarTools}\n selectedToolType={currentToolType}\n onChange={onChange}\n onChangeToolsOrder={(tools) => this.updateToolsOrder(tools)}\n language={language}\n />\n </div>\n );\n }\n}\n\nexport default ToolMenu;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Button from '@material-ui/core/Button';\nimport { withStyles } from '@material-ui/core';\nimport { color } from '@pie-lib/render-ui';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\n\nexport class UndoRedo extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n onUndo: PropTypes.func.isRequired,\n onRedo: PropTypes.func.isRequired,\n onReset: PropTypes.func.isRequired,\n language: PropTypes.string,\n };\n static defaultProps = {};\n\n render() {\n const { classes, className, onUndo, onRedo, onReset, language } = this.props;\n return (\n <div className={classNames(className)}>\n <Button classes={{ root: classes.button }} onClick={() => onUndo(true)}>\n {translator.t('common:undo', { lng: language })}\n </Button>\n <Button classes={{ root: classes.button }} onClick={() => onRedo(true)}>\n {translator.t('graphing.redo', { lng: language })}\n </Button>\n <Button classes={{ root: classes.button }} onClick={() => onReset()}>\n {translator.t('graphing.reset', { lng: language })}\n </Button>\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n button: {\n color: color.text(),\n marginBottom: theme.spacing.unit / 2,\n '&:not(:last-of-type)': {\n marginRight: theme.spacing.unit / 2,\n },\n },\n});\n\nexport default withStyles(styles)(UndoRedo);\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar setStatic = function setStatic(key, value) {\n return function (BaseComponent) {\n /* eslint-disable no-param-reassign */\n BaseComponent[key] = value;\n /* eslint-enable no-param-reassign */\n\n return BaseComponent;\n };\n};\n\nvar _default = setStatic;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _setStatic = _interopRequireDefault(require(\"./setStatic\"));\n\nvar setDisplayName = function setDisplayName(displayName) {\n return (0, _setStatic.default)('displayName', displayName);\n};\n\nvar _default = setDisplayName;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar getDisplayName = function getDisplayName(Component) {\n if (typeof Component === 'string') {\n return Component;\n }\n\n if (!Component) {\n return undefined;\n }\n\n return Component.displayName || Component.name || 'Component';\n};\n\nvar _default = getDisplayName;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _getDisplayName = _interopRequireDefault(require(\"./getDisplayName\"));\n\nvar wrapDisplayName = function wrapDisplayName(BaseComponent, hocName) {\n return hocName + \"(\" + (0, _getDisplayName.default)(BaseComponent) + \")\";\n};\n\nvar _default = wrapDisplayName;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _react = require(\"react\");\n\nvar _setDisplayName = _interopRequireDefault(require(\"./setDisplayName\"));\n\nvar _wrapDisplayName = _interopRequireDefault(require(\"./wrapDisplayName\"));\n\nvar shouldUpdate = function shouldUpdate(test) {\n return function (BaseComponent) {\n var factory = (0, _react.createFactory)(BaseComponent);\n\n var ShouldUpdate =\n /*#__PURE__*/\n function (_Component) {\n (0, _inheritsLoose2.default)(ShouldUpdate, _Component);\n\n function ShouldUpdate() {\n return _Component.apply(this, arguments) || this;\n }\n\n var _proto = ShouldUpdate.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return test(this.props, nextProps);\n };\n\n _proto.render = function render() {\n return factory(this.props);\n };\n\n return ShouldUpdate;\n }(_react.Component);\n\n if (process.env.NODE_ENV !== 'production') {\n return (0, _setDisplayName.default)((0, _wrapDisplayName.default)(BaseComponent, 'shouldUpdate'))(ShouldUpdate);\n }\n\n return ShouldUpdate;\n };\n};\n\nvar _default = shouldUpdate;\nexports.default = _default;","/**\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 * @typechecks\n * \n */\n\n/*eslint-disable no-self-compare */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n // Added the nonzero y check to make Flow happy, but it is redundant\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqual;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _shallowEqual = _interopRequireDefault(require(\"fbjs/lib/shallowEqual\"));\n\nvar _default = _shallowEqual.default;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _shouldUpdate = _interopRequireDefault(require(\"./shouldUpdate\"));\n\nvar _shallowEqual = _interopRequireDefault(require(\"./shallowEqual\"));\n\nvar _setDisplayName = _interopRequireDefault(require(\"./setDisplayName\"));\n\nvar _wrapDisplayName = _interopRequireDefault(require(\"./wrapDisplayName\"));\n\nvar pure = function pure(BaseComponent) {\n var hoc = (0, _shouldUpdate.default)(function (props, nextProps) {\n return !(0, _shallowEqual.default)(props, nextProps);\n });\n\n if (process.env.NODE_ENV !== 'production') {\n return (0, _setDisplayName.default)((0, _wrapDisplayName.default)(BaseComponent, 'pure'))(hoc(BaseComponent));\n }\n\n return hoc(BaseComponent);\n};\n\nvar _default = pure;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _pure = _interopRequireDefault(require(\"recompose/pure\"));\n\nvar _SvgIcon = _interopRequireDefault(require(\"@material-ui/core/SvgIcon\"));\n\nfunction createSvgIcon(path, displayName) {\n var Icon = function Icon(props) {\n return _react.default.createElement(_SvgIcon.default, props, path);\n };\n\n Icon.displayName = \"\".concat(displayName, \"Icon\");\n Icon = (0, _pure.default)(Icon);\n Icon.muiName = 'SvgIcon';\n return Icon;\n}\n\n;\nvar _default = createSvgIcon;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n d: \"M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z\"\n}), _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n})), 'ExpandMore');\n\nexports.default = _default;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport uniq from 'lodash/uniq';\nimport isString from 'lodash/isString';\nimport { color } from '@pie-lib/render-ui';\n\nimport ToolMenu from './tool-menu';\nimport Graph, { graphPropTypes } from './graph';\nimport UndoRedo from './undo-redo';\nimport { allTools, toolsArr } from './tools';\nimport { ExpansionPanel, ExpansionPanelDetails, ExpansionPanelSummary, Typography } from '@material-ui/core';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\n\nexport const setToolbarAvailability = (toolbarTools) =>\n toolsArr.map((tA) => ({ ...tA, toolbar: !!toolbarTools.find((t) => t === tA.type) })) || [];\n\nexport const toolIsAvailable = (tools, currentTool) =>\n currentTool && tools && (tools.find((tool) => tool.type === currentTool.type) || {}).toolbar;\n\nexport const getAvailableTool = (tools) => tools.find((tool) => tool.toolbar);\n\nexport const filterByValidToolTypes = (backgroundMarks) =>\n backgroundMarks.filter((bM) => !!allTools.find((tool) => tool === bM.type));\n\nexport const filterByVisibleToolTypes = (toolbarTools, marks) =>\n marks.filter((bM) => !!toolbarTools.find((tool) => tool === bM.type));\n\nconst getDefaultCurrentTool = (toolType) => toolsArr.find((tool) => tool.type === toolType) || null;\n\nconst Collapsible = ({ classes, children, title }) => (\n <ExpansionPanel elevation={0} className={classes.expansionPanel} disabledGutters={true} square={true}>\n <ExpansionPanelSummary\n classes={{\n root: classes.summaryRoot,\n content: classes.summaryContent,\n }}\n expandIcon={<ExpandMoreIcon />}\n >\n <Typography variant=\"subheading\">{title}</Typography>\n </ExpansionPanelSummary>\n <ExpansionPanelDetails className={classes.details}>{children}</ExpansionPanelDetails>\n </ExpansionPanel>\n);\n\nCollapsible.propTypes = {\n classes: PropTypes.object,\n children: PropTypes.array,\n title: PropTypes.string,\n};\n\nexport class GraphWithControls extends React.Component {\n static propTypes = {\n ...graphPropTypes,\n onUndo: PropTypes.func,\n onRedo: PropTypes.func,\n onReset: PropTypes.func,\n toolbarTools: PropTypes.arrayOf(PropTypes.string), // array of tool types that have to be displayed in the toolbar, same shape as 'allTools'\n language: PropTypes.string,\n };\n\n static defaultProps = {\n collapsibleToolbar: false,\n collapsibleToolbarTitle: '',\n disabledLabels: false,\n disabledTitle: false,\n showLabels: true,\n showTitle: true,\n toolbarTools: [],\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n currentTool: getDefaultCurrentTool(props.defaultTool),\n labelModeEnabled: false,\n };\n }\n\n componentDidUpdate(prevProps) {\n const { defaultTool } = this.props;\n\n if (prevProps.defaultTool !== defaultTool) {\n const currentTool = getDefaultCurrentTool(defaultTool);\n\n this.setState({ currentTool });\n }\n }\n\n changeCurrentTool = (tool, tools) =>\n this.setState({ currentTool: tools.find((t) => t.type === tool), labelModeEnabled: tool === 'label' });\n\n render() {\n let { currentTool, labelModeEnabled } = this.state;\n const {\n axesSettings,\n classes,\n className,\n coordinatesOnHover,\n collapsibleToolbar,\n collapsibleToolbarTitle,\n disabled,\n disabledLabels,\n disabledTitle,\n domain,\n draggableTools,\n labels,\n labelsPlaceholders,\n onChangeLabels,\n onChangeMarks,\n onChangeTitle,\n onChangeTools,\n onUndo,\n onRedo,\n onReset,\n range,\n size,\n showLabels,\n showPixelGuides,\n showTitle,\n title,\n titlePlaceholder,\n language,\n removeIncompleteTool,\n limitLabeling,\n } = this.props;\n let { backgroundMarks, marks, toolbarTools } = this.props;\n\n // make sure only valid tool types are kept (string) and without duplicates\n toolbarTools = uniq(toolbarTools || []).filter((tT) => !!isString(tT)) || [];\n\n // keep only the backgroundMarks that have valid types\n backgroundMarks = filterByValidToolTypes(backgroundMarks || []);\n\n // keep only the marks that have types which appear in toolbar\n marks = filterByVisibleToolTypes(toolbarTools, marks || []);\n\n const tools = setToolbarAvailability(toolbarTools);\n\n // set current tool if there's no current tool or if the existing one is no longer available\n if (!currentTool || !toolIsAvailable(tools, currentTool)) {\n currentTool = getAvailableTool(tools);\n }\n\n const graphActions = (\n <React.Fragment>\n <ToolMenu\n currentToolType={currentTool && currentTool.type}\n disabled={!!disabled}\n draggableTools={draggableTools}\n labelModeEnabled={labelModeEnabled}\n onChange={(tool) => this.changeCurrentTool(tool, tools)}\n toolbarTools={toolbarTools}\n onChangeTools={onChangeTools}\n language={language}\n />\n\n {!disabled && <UndoRedo onUndo={onUndo} onRedo={onRedo} onReset={onReset} language={language} />}\n </React.Fragment>\n );\n\n return (\n <div className={classNames(classes.graphWithControls, className)}>\n <div className={classes.controls}>\n {collapsibleToolbar ? (\n <Collapsible classes={classes} title={collapsibleToolbarTitle}>\n {graphActions}\n </Collapsible>\n ) : (\n graphActions\n )}\n </div>\n\n <div ref={(r) => (this.labelNode = r)} />\n\n <Graph\n axesSettings={axesSettings}\n backgroundMarks={backgroundMarks}\n coordinatesOnHover={coordinatesOnHover}\n currentTool={currentTool}\n disabledLabels={disabledLabels}\n disabledTitle={disabledTitle}\n domain={domain}\n labels={labels}\n labelModeEnabled={labelModeEnabled}\n labelsPlaceholders={labelsPlaceholders}\n marks={marks}\n onChangeMarks={!disabled ? onChangeMarks : undefined}\n onChangeLabels={onChangeLabels}\n onChangeTitle={onChangeTitle}\n range={range}\n size={size}\n showLabels={showLabels}\n showPixelGuides={showPixelGuides}\n showTitle={showTitle}\n title={title}\n titlePlaceholder={titlePlaceholder}\n tools={tools}\n removeIncompleteTool={removeIncompleteTool}\n limitLabeling={limitLabeling}\n />\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n graphWithControls: {\n display: 'flex',\n flexDirection: 'column',\n width: 'min-content',\n },\n controls: {\n display: 'flex',\n justifyContent: 'space-between',\n padding: theme.spacing.unit,\n color: color.text(),\n backgroundColor: color.primaryLight(),\n '& button': {\n fontSize: theme.typography.fontSize,\n },\n },\n expansionPanel: {\n backgroundColor: color.primaryLight(),\n width: '100%',\n },\n summaryRoot: {\n padding: `0 ${theme.spacing.unit}px`,\n minHeight: '32px !important',\n },\n summaryContent: {\n margin: '4px 0 !important',\n },\n details: {\n padding: 0,\n marginTop: theme.spacing.unit,\n display: 'flex',\n justifyContent: 'space-between',\n },\n});\n\nexport default withStyles(styles)(GraphWithControls);\n","let lastAction = null;\nexport const getLastAction = () => lastAction;\n\nexport const lastActionMiddleware = () => (next) => (action) => {\n lastAction = action;\n return next(action);\n};\n","import { connect } from 'react-redux';\nimport React from 'react';\nimport { Provider } from 'react-redux';\nimport { applyMiddleware, createStore } from 'redux';\nimport reducer from './reducer';\nimport { changeMarks } from './actions';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash/isEqual';\nimport { ActionCreators } from 'redux-undo';\nimport GraphWithControls from '../graph-with-controls';\nimport { lastActionMiddleware } from './middleware';\n\nconst mapStateToProps = (s) => ({\n marks: s.marks.present,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n onChangeMarks: (m) => dispatch(changeMarks(m)),\n onUndo: () => dispatch(ActionCreators.undo()),\n onRedo: () => dispatch(ActionCreators.redo()),\n onReset: () => dispatch(changeMarks([])),\n});\n\nexport const GraphContainer = connect(mapStateToProps, mapDispatchToProps)(GraphWithControls);\n\n/**\n * The graph component entry point with undo/redo\n * Redux is an implementation detail, hide it in the react component.\n */\nclass Root extends React.Component {\n static propTypes = {\n onChangeMarks: PropTypes.func,\n marks: PropTypes.array,\n };\n\n constructor(props) {\n super(props);\n\n const r = reducer();\n this.store = createStore(r, { marks: props.marks }, applyMiddleware(lastActionMiddleware));\n\n this.store.subscribe(this.onStoreChange);\n }\n\n componentDidUpdate(prevProps) {\n const { marks } = this.props;\n const storeState = this.store.getState();\n\n if (isEqual(storeState.marks.present, marks)) {\n return;\n }\n\n if (!isEqual(prevProps.marks, marks)) {\n this.store.dispatch(changeMarks(marks));\n }\n }\n\n onStoreChange = () => {\n const { marks, onChangeMarks } = this.props;\n const storeState = this.store.getState();\n\n if (!isEqual(storeState.marks.present, marks)) {\n onChangeMarks(storeState.marks.present);\n }\n };\n\n render() {\n // eslint-disable-next-line no-unused-vars\n const { onChangeMarks, marks, ...rest } = this.props;\n const correctnessSet = marks && marks.find((m) => m.correctness);\n\n if (correctnessSet) {\n return <GraphWithControls {...rest} marks={marks} disabled={correctnessSet} />;\n }\n\n return (\n <Provider store={this.store}>\n <GraphContainer {...rest} />\n </Provider>\n );\n }\n}\n\nexport default Root;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { color, InputContainer } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary';\nimport Typography from '@material-ui/core/Typography';\nimport ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails';\nimport ExpansionPanel from '@material-ui/core/ExpansionPanel';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport { NumberTextFieldCustom, Toggle } from '@pie-lib/config-ui';\nimport EditableHTML from '@pie-lib/editable-html';\n\nconst GridConfig = (props) => {\n const { classes, disabled, displayedFields, labelValue, labelValues, gridValue, gridValues, onChange } = props;\n const { labelStep = {}, step = {} } = displayedFields;\n\n return (\n <div className={classes.columnView}>\n {step && step.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={step.label || ''}\n value={gridValue}\n customValues={gridValues}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('step', v)}\n />\n )}\n {labelStep && labelStep.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={labelStep.label || ''}\n value={labelValue}\n customValues={labelValues}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('labelStep', v)}\n />\n )}\n </div>\n );\n};\n\nGridConfig.propTypes = {\n classes: PropTypes.object,\n disabled: PropTypes.bool,\n displayedFields: PropTypes.object,\n labelValue: PropTypes.number,\n labelValues: PropTypes.array,\n gridValue: PropTypes.number,\n gridValues: PropTypes.array,\n onChange: PropTypes.func,\n};\n\nconst AxisConfig = (props) => {\n const { classes, disabled, displayedFields, displayHeader, label, maxValue, minValue, onChange, type } = props;\n const { axisLabel = {}, min = {}, max = {} } = displayedFields;\n const activePlugins = [\n 'bold',\n 'italic',\n 'underline',\n 'strikethrough',\n // 'languageCharacters'\n ];\n\n return (\n <div className={classes.columnView}>\n {displayHeader && (\n <Typography variant=\"subtitle2\">\n <i>{type === 'domain' ? 'x' : 'y'}</i>\n -axis\n </Typography>\n )}\n {min && min.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={min.label || ''}\n value={minValue}\n min={-10000}\n max={maxValue - 0.05}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('min', v)}\n />\n )}\n {max && max.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={max.label || ''}\n value={maxValue}\n min={minValue + 0.05}\n max={10000}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('max', v)}\n />\n )}\n {axisLabel && axisLabel.enabled && (\n <InputContainer label={axisLabel.label || ''} className={classes.mediumTextField}>\n <EditableHTML\n className={classes.axisLabel}\n onChange={(value) => onChange('axisLabel', value)}\n markup={label || ''}\n charactersLimit={5}\n activePlugins={activePlugins}\n />\n </InputContainer>\n )}\n </div>\n );\n};\n\nAxisConfig.propTypes = {\n classes: PropTypes.object,\n disabled: PropTypes.bool,\n displayedFields: PropTypes.object,\n displayHeader: PropTypes.bool,\n label: PropTypes.string,\n maxValue: PropTypes.number,\n minValue: PropTypes.number,\n type: PropTypes.string,\n onChange: PropTypes.func,\n};\nconst GridSetup = (props) => {\n const {\n classes,\n domain,\n displayedFields = {},\n gridValues = {},\n includeAxes,\n labelValues = {},\n onChange,\n onChangeView,\n range,\n size,\n sizeConstraints,\n standardGrid,\n } = props;\n const gridProps = { min: 2, max: 41 };\n const {\n axisLabel = {},\n dimensionsEnabled,\n includeAxesEnabled,\n labelStep = {},\n min = {},\n max = {},\n standardGridEnabled,\n step = {},\n } = displayedFields || {};\n const displayAxisType = min.enabled || max.enabled || axisLabel.enabled || step.enabled || labelStep.enabled;\n const gridConfigFields = { step, labelStep };\n const axisConfigFields = { min, max, axisLabel };\n\n const onIncludeAxes = (includeAxes) => {\n const noAxesConfig = (type) => {\n const axis = type === 'domain' ? domain : range;\n\n return {\n min: 1,\n max: axis.max < gridProps.min || axis.max > gridProps.max ? 16 : axis.max,\n step: 1,\n labelStep: 0,\n };\n };\n\n const updatedRange = {\n ...range,\n ...(includeAxes ? { labelStep: 1 } : noAxesConfig('range')),\n };\n const updatedDomain = {\n ...domain,\n ...(includeAxes ? { labelStep: 1 } : noAxesConfig('domain')),\n };\n\n onChange({ includeAxes, range: updatedRange, domain: updatedDomain });\n };\n\n const onStandardGridChanged = (value) => {\n onChange({\n standardGrid: value,\n range: {\n ...domain,\n axisLabel: range.axisLabel,\n },\n graph: {\n ...size,\n height: size.width,\n },\n });\n };\n\n const onSizeChanged = (key, value) => {\n const graph = { ...size, [key]: value };\n\n if (standardGrid) {\n graph.height = value;\n }\n\n onChange({ graph });\n };\n\n const onDomainChanged = (key, value) => {\n domain[key] = value;\n\n if (standardGrid && key !== 'axisLabel') {\n range[key] = value;\n }\n\n onChange({ domain, range });\n };\n\n const onRangeChanged = (key, value) => {\n range[key] = value;\n\n onChange({ range });\n };\n\n const axesConfig = (\n <React.Fragment>\n <div className={classes.rowView}>\n <AxisConfig\n classes={classes}\n displayedFields={axisConfigFields}\n displayHeader={displayAxisType}\n type=\"domain\"\n minValue={domain.min}\n maxValue={domain.max}\n label={domain.axisLabel}\n includeAxes={includeAxes}\n onChange={onDomainChanged}\n />\n <AxisConfig\n classes={classes}\n displayedFields={axisConfigFields}\n displayHeader={displayAxisType}\n type=\"range\"\n minValue={range.min}\n maxValue={range.max}\n label={range.axisLabel}\n disabled={standardGrid}\n includeAxes={includeAxes}\n onChange={onRangeChanged}\n />\n </div>\n {(min.enabled || max.enabled) && (\n <Typography className={classes.text}>\n If you want the axis to be visible, use a zero or negative Min Value, and a positive Max Value\n </Typography>\n )}\n {(step.enabled || labelStep.enabled) && (\n <div className={classes.rowView}>\n <GridConfig\n classes={classes}\n displayedFields={gridConfigFields}\n gridValue={domain.step}\n labelValue={domain.labelStep}\n gridValues={gridValues.domain || []}\n labelValues={labelValues.domain || []}\n onChange={onDomainChanged}\n />\n <GridConfig\n classes={classes}\n disabled={standardGrid}\n displayedFields={gridConfigFields}\n gridValue={range.step}\n labelValue={range.labelStep}\n gridValues={gridValues.range || []}\n labelValues={labelValues.range || []}\n onChange={onRangeChanged}\n />\n </div>\n )}\n {labelStep.enabled && (\n <Typography className={classes.text}>For unnumbered gridlines, enter a label interval of 0</Typography>\n )}\n </React.Fragment>\n );\n\n const gridlinesConfig = max.enabled ? (\n <div className={classes.columnView}>\n <NumberTextFieldCustom\n className={classes.largeTextField}\n label=\"Number of Vertical Gridlines\"\n value={domain.max}\n min={!includeAxes && gridProps.min}\n max={!includeAxes && gridProps.max}\n variant=\"outlined\"\n onChange={(e, v) => onDomainChanged('max', v)}\n />\n <NumberTextFieldCustom\n className={classes.largeTextField}\n label=\"Number of Horizontal Gridlines\"\n value={range.max}\n min={!includeAxes && gridProps.min}\n max={!includeAxes && gridProps.max}\n variant=\"outlined\"\n disabled={standardGrid}\n onChange={(e, v) => onRangeChanged('max', v)}\n />\n </div>\n ) : null;\n\n return (\n <div className={classes.wrapper}>\n <ExpansionPanel onChange={onChangeView}>\n <ExpansionPanelSummary expandIcon={<ExpandMoreIcon />}>\n <Typography variant=\"subtitle1\">Customize Grid Setup</Typography>\n </ExpansionPanelSummary>\n <ExpansionPanelDetails>\n <div className={classes.content}>\n {includeAxesEnabled && (\n <Toggle label=\"Include axes and labels?\" toggle={onIncludeAxes} checked={includeAxes} />\n )}\n {standardGridEnabled && (\n <Toggle\n label=\"Constrain to standard coordinate grid?\"\n toggle={onStandardGridChanged}\n checked={standardGrid}\n />\n )}\n {includeAxes ? axesConfig : gridlinesConfig}\n {dimensionsEnabled && (\n <div className={classes.dimensions}>\n <div>\n <Typography>Dimensions(px)</Typography>\n <Typography className={classes.disabled}>\n Min {sizeConstraints.min}, Max {sizeConstraints.max}\n </Typography>\n </div>\n <NumberTextFieldCustom\n className={classes.textField}\n label=\"Width\"\n value={size.width}\n min={sizeConstraints.min}\n max={sizeConstraints.max}\n step={sizeConstraints.step}\n variant=\"outlined\"\n onChange={(e, v) => onSizeChanged('width', v)}\n />\n <NumberTextFieldCustom\n className={classes.textField}\n label=\"Height\"\n value={size.height}\n min={sizeConstraints.min}\n max={sizeConstraints.max}\n step={sizeConstraints.step}\n variant=\"outlined\"\n disabled={standardGrid}\n onChange={(e, v) => onSizeChanged('height', v)}\n />\n </div>\n )}\n </div>\n </ExpansionPanelDetails>\n </ExpansionPanel>\n </div>\n );\n};\n\nGridSetup.propTypes = {\n classes: PropTypes.object,\n domain: PropTypes.object,\n displayedFields: PropTypes.object,\n gridValues: PropTypes.object,\n includeAxes: PropTypes.bool,\n labelValues: PropTypes.object,\n onChange: PropTypes.func,\n onChangeView: PropTypes.func,\n range: PropTypes.object,\n size: PropTypes.object,\n sizeConstraints: PropTypes.object,\n standardGrid: PropTypes.bool,\n};\n\nconst styles = (theme) => ({\n wrapper: {\n width: '450px',\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n },\n columnView: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n },\n rowView: {\n display: 'flex',\n justifyContent: 'space-around',\n alignItems: 'center',\n },\n textField: {\n width: '130px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,\n },\n mediumTextField: {\n width: '160px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,\n },\n largeTextField: {\n width: '230px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,\n },\n text: {\n fontStyle: 'italic',\n margin: `${theme.spacing.unit}px 0`,\n },\n dimensions: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n disabled: {\n color: color.disabled(),\n },\n axisLabel: {\n paddingTop: theme.spacing.unit * 2,\n },\n});\n\nexport default withStyles(styles)(GridSetup);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { color } from '@pie-lib/render-ui';\n\nconst styles = (theme) => ({\n container: {\n backgroundColor: color.defaults.WHITE,\n padding: '20px',\n width: '355px',\n boxShadow: '0px 1px 5px 0px #9297A6',\n },\n row: {\n display: 'flex',\n alignItems: 'center',\n padding: '10px',\n },\n title: {\n fontSize: theme.typography.h6.fontSize,\n marginLeft: '30px',\n fontWeight: '700',\n marginBottom: '10px',\n },\n text: {\n textAlign: 'right',\n marginRight: '10px',\n width: '175px',\n fontSize: '15px',\n },\n});\n\nconst KeyLegend = ({ className, classes, isLabelAvailable }) => {\n const names = classNames(classes.formControl, className);\n\n return (\n <div className={classes.container}>\n <div className={classes.title}>Key</div>\n {isLabelAvailable && (\n <div className={classes.row}>\n <div className={classes.text}> Missing Required Label </div>\n <svg width=\"34\" height=\"16\" viewBox=\"0 0 34 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"0.5\" y=\"0.5\" width=\"33\" height=\"15\" rx=\"3.5\" fill=\"white\" stroke=\"#BF0D00\" />\n <path\n d=\"M17.25 6.13965V3.2334C17.25 2.92871 17.4844 2.6709 17.8125 2.6709H20.7188C20.8594 2.6709 21 2.81152 21 2.95215V3.51465C21 3.67871 20.8594 3.7959 20.7188 3.7959H18.375V6.13965C18.375 6.30371 18.2344 6.4209 18.0938 6.4209H17.5312C17.3672 6.4209 17.25 6.30371 17.25 6.13965ZM24 2.95215C24 2.81152 24.1172 2.6709 24.2812 2.6709H27.1875C27.4922 2.6709 27.75 2.92871 27.75 3.2334V6.13965C27.75 6.30371 27.6094 6.4209 27.4688 6.4209H26.9062C26.7422 6.4209 26.625 6.30371 26.625 6.13965V3.7959H24.2812C24.1172 3.7959 24 3.67871 24 3.51465V2.95215ZM27.4688 9.4209C27.6094 9.4209 27.75 9.56152 27.75 9.70215V12.6084C27.75 12.9365 27.4922 13.1709 27.1875 13.1709H24.2812C24.1172 13.1709 24 13.0537 24 12.8896V12.3271C24 12.1865 24.1172 12.0459 24.2812 12.0459H26.625V9.70215C26.625 9.56152 26.7422 9.4209 26.9062 9.4209H27.4688ZM21 12.8896C21 13.0537 20.8594 13.1709 20.7188 13.1709H17.8125C17.4844 13.1709 17.25 12.9365 17.25 12.6084V9.70215C17.25 9.56152 17.3672 9.4209 17.5312 9.4209H18.0938C18.2344 9.4209 18.375 9.56152 18.375 9.70215V12.0459H20.7188C20.8594 12.0459 21 12.1865 21 12.3271V12.8896Z\"\n fill=\"#BF0D00\"\n />\n <path\n d=\"M9.23438 8.21045L10.9219 9.89795C11.0156 9.9917 11.0156 10.1636 10.9219 10.2573L10.5312 10.6479C10.4375 10.7417 10.2656 10.7417 10.1719 10.6479L8.5 8.96045L6.8125 10.6479C6.71875 10.7417 6.54688 10.7417 6.45312 10.6479L6.0625 10.2573C5.96875 10.1636 5.96875 9.9917 6.0625 9.89795L7.75 8.21045L6.0625 6.53857C5.96875 6.44482 5.96875 6.27295 6.0625 6.1792L6.45312 5.78857C6.54688 5.69482 6.71875 5.69482 6.8125 5.78857L8.5 7.47607L10.1719 5.78857C10.2656 5.69482 10.4375 5.69482 10.5312 5.78857L10.9219 6.1792C11.0156 6.27295 11.0156 6.44482 10.9219 6.53857L9.23438 8.21045Z\"\n fill=\"#BF0D00\"\n />\n </svg>\n </div>\n )}\n <div className={classes.row}>\n <div className={classes.text}> Answer Key Correct </div>\n <svg width=\"75\" height=\"15\" viewBox=\"0 0 75 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"7.5\" cy=\"7.5\" r=\"7.5\" fill=\"#6A78A1\" />\n <path\n d=\"M3.125 5.76562V3.34375C3.125 3.08984 3.32031 2.875 3.59375 2.875H6.01562C6.13281 2.875 6.25 2.99219 6.25 3.10938V3.89062C6.25 4.02734 6.13281 4.125 6.01562 4.125H4.375V5.76562C4.375 5.90234 4.25781 6 4.14062 6H3.35938C3.22266 6 3.125 5.90234 3.125 5.76562ZM8.75 3.10938C8.75 2.99219 8.84766 2.875 8.98438 2.875H11.4062C11.6602 2.875 11.875 3.08984 11.875 3.34375V5.76562C11.875 5.90234 11.7578 6 11.6406 6H10.8594C10.7227 6 10.625 5.90234 10.625 5.76562V4.125H8.98438C8.84766 4.125 8.75 4.02734 8.75 3.89062V3.10938ZM11.6406 8.5C11.7578 8.5 11.875 8.61719 11.875 8.73438V11.1562C11.875 11.4297 11.6602 11.625 11.4062 11.625H8.98438C8.84766 11.625 8.75 11.5273 8.75 11.3906V10.6094C8.75 10.4922 8.84766 10.375 8.98438 10.375H10.625V8.73438C10.625 8.61719 10.7227 8.5 10.8594 8.5H11.6406ZM6.25 11.3906C6.25 11.5273 6.13281 11.625 6.01562 11.625H3.59375C3.32031 11.625 3.125 11.4297 3.125 11.1562V8.73438C3.125 8.61719 3.22266 8.5 3.35938 8.5H4.14062C4.25781 8.5 4.375 8.61719 4.375 8.73438V10.375H6.01562C6.13281 10.375 6.25 10.4922 6.25 10.6094V11.3906Z\"\n fill=\"white\"\n />\n <path d=\"M75 7L15 7\" stroke=\"#6A78A1\" strokeDasharray=\"4 2\" />\n </svg>\n </div>\n {isLabelAvailable && (\n <div className={classes.row}>\n <div className={classes.text}> Answer Key Correct Label </div>\n <svg width=\"30\" height=\"16\" viewBox=\"0 0 30 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"0.5\" y=\"0.5\" width=\"29\" height=\"15\" rx=\"3.5\" fill=\"white\" />\n <rect x=\"0.5\" y=\"0.5\" width=\"29\" height=\"15\" rx=\"3.5\" stroke=\"#6A78A1\" />\n <path\n d=\"M4.37793 10.2061H6.58984V11.5H2.91309V4.44434H4.37793V10.2061ZM11.6387 10.1377C11.6387 10.6715 11.6794 11.0801 11.7607 11.3633V11.5H10.4473L10.335 10.9531C10.1559 11.168 9.92155 11.3291 9.63184 11.4365C9.34212 11.5439 9.03939 11.5977 8.72363 11.5977C8.55762 11.5977 8.40137 11.583 8.25488 11.5537C8.1084 11.5244 7.9668 11.4756 7.83008 11.4072C7.69661 11.3356 7.58105 11.2477 7.4834 11.1436C7.38574 11.0394 7.30762 10.9076 7.24902 10.748C7.19043 10.5853 7.16113 10.403 7.16113 10.2012C7.16113 9.99935 7.19206 9.81868 7.25391 9.65918C7.31576 9.49642 7.39714 9.3597 7.49805 9.24902C7.59896 9.13835 7.73079 9.03906 7.89355 8.95117C8.05632 8.86328 8.22233 8.79167 8.3916 8.73633C8.56087 8.68099 8.75944 8.62891 8.9873 8.58008L9.8125 8.39453C9.98828 8.35221 10.112 8.30013 10.1836 8.23828C10.2585 8.17318 10.2959 8.08854 10.2959 7.98438C10.2959 7.75977 10.2129 7.59863 10.0469 7.50098C9.88411 7.40332 9.68555 7.35449 9.45117 7.35449C8.875 7.35449 8.54785 7.61003 8.46973 8.12109L7.22461 7.89648C7.32878 7.37891 7.57129 6.99805 7.95215 6.75391C8.33301 6.50651 8.85872 6.38281 9.5293 6.38281C10.9355 6.38281 11.6387 6.98665 11.6387 8.19434V10.1377ZM9.16309 10.6455C9.5179 10.6455 9.80762 10.5251 10.0322 10.2842C10.2568 10.04 10.3691 9.68034 10.3691 9.20508L9.17773 9.54199C8.95964 9.59408 8.79199 9.66243 8.6748 9.74707C8.56087 9.83171 8.50391 9.95215 8.50391 10.1084C8.50391 10.2809 8.56576 10.4144 8.68945 10.5088C8.81315 10.5999 8.97103 10.6455 9.16309 10.6455ZM15.96 6.38281C16.2887 6.38281 16.5996 6.44303 16.8926 6.56348C17.1855 6.68392 17.4411 6.85482 17.6592 7.07617C17.8805 7.29427 18.0547 7.56934 18.1816 7.90137C18.3086 8.2334 18.3721 8.59961 18.3721 9C18.3721 9.40039 18.3086 9.7666 18.1816 10.0986C18.0547 10.4307 17.8805 10.7074 17.6592 10.9287C17.4411 11.1468 17.1855 11.3161 16.8926 11.4365C16.5996 11.557 16.2887 11.6172 15.96 11.6172C15.6084 11.6172 15.291 11.5505 15.0078 11.417C14.7279 11.2803 14.5179 11.0898 14.3779 10.8457L14.3438 11.5H13.0107V4H14.417V7.09082C14.5602 6.86621 14.7686 6.69206 15.042 6.56836C15.3187 6.44466 15.6247 6.38281 15.96 6.38281ZM15.6328 10.4502C16.0169 10.4502 16.3343 10.3184 16.585 10.0547C16.8389 9.79102 16.9658 9.43945 16.9658 9C16.9658 8.55729 16.8389 8.2041 16.585 7.94043C16.3343 7.67676 16.0169 7.54492 15.6328 7.54492C15.2552 7.54492 14.9395 7.68001 14.6855 7.9502C14.4316 8.21712 14.3047 8.56706 14.3047 9C14.3047 9.43294 14.43 9.78288 14.6807 10.0498C14.9346 10.3167 15.252 10.4502 15.6328 10.4502ZM24.1582 8.91699L24.1436 9.25391H20.4229C20.4521 9.6543 20.5856 9.96029 20.8232 10.1719C21.0609 10.3835 21.3555 10.4893 21.707 10.4893C21.9609 10.4893 22.1807 10.4323 22.3662 10.3184C22.555 10.2012 22.6966 10.0319 22.791 9.81055L24.0801 10.001C23.9141 10.5055 23.6211 10.8978 23.2012 11.1777C22.7812 11.4577 22.2865 11.5977 21.7168 11.5977C20.8965 11.5977 20.2438 11.3682 19.7588 10.9092C19.277 10.4469 19.0361 9.80729 19.0361 8.99023C19.0361 8.17969 19.2786 7.54167 19.7637 7.07617C20.2487 6.60742 20.8851 6.37305 21.6729 6.37305C22.4215 6.37305 23.0221 6.58626 23.4746 7.0127C23.9271 7.43913 24.1549 8.07389 24.1582 8.91699ZM21.6826 7.36914C20.999 7.36914 20.5921 7.69141 20.4619 8.33594H22.7666C22.7308 8.02344 22.6152 7.78418 22.4199 7.61816C22.2246 7.45215 21.9788 7.36914 21.6826 7.36914ZM25.2275 11.5V4H26.6484V11.5H25.2275Z\"\n fill=\"#6A78A1\"\n />\n </svg>\n </div>\n )}\n <div className={classes.row}>\n <div className={classes.text}> Student Incorrect </div>\n <svg width=\"77\" height=\"16\" viewBox=\"0 0 77 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"8\" cy=\"8\" r=\"8\" fill=\"#BF0D00\" />\n <path\n d=\"M9.04688 8.5L11.3906 10.8672C11.6953 11.1484 11.6953 11.6172 11.3906 11.8984L10.875 12.4141C10.5938 12.7188 10.125 12.7188 9.84375 12.4141L7.5 10.0703L5.13281 12.4141C4.85156 12.7188 4.38281 12.7188 4.10156 12.4141L3.58594 11.8984C3.28125 11.6172 3.28125 11.1484 3.58594 10.8672L5.92969 8.5L3.58594 6.15625C3.28125 5.875 3.28125 5.40625 3.58594 5.125L4.10156 4.60938C4.38281 4.30469 4.85156 4.30469 5.13281 4.60938L7.5 6.95312L9.84375 4.60938C10.125 4.30469 10.5938 4.30469 10.875 4.60938L11.3906 5.125C11.6953 5.40625 11.6953 5.875 11.3906 6.15625L9.04688 8.5Z\"\n fill=\"white\"\n />\n <path d=\"M77 8L15 8\" stroke=\"#BF0D00\" strokeWidth=\"3\" />\n </svg>\n </div>\n {isLabelAvailable && (\n <div className={classes.row}>\n <div className={classes.text}> Incorrect Student Label </div>\n <svg width=\"42\" height=\"16\" viewBox=\"0 0 42 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"0.5\" y=\"0.5\" width=\"41\" height=\"15\" rx=\"3.5\" fill=\"white\" />\n <rect x=\"0.5\" y=\"0.5\" width=\"41\" height=\"15\" rx=\"3.5\" stroke=\"#BF0D00\" />\n <path\n d=\"M7.23438 8.5L8.92188 10.1875C9.01562 10.2812 9.01562 10.4531 8.92188 10.5469L8.53125 10.9375C8.4375 11.0312 8.26562 11.0312 8.17188 10.9375L6.5 9.25L4.8125 10.9375C4.71875 11.0312 4.54688 11.0312 4.45312 10.9375L4.0625 10.5469C3.96875 10.4531 3.96875 10.2812 4.0625 10.1875L5.75 8.5L4.0625 6.82812C3.96875 6.73438 3.96875 6.5625 4.0625 6.46875L4.45312 6.07812C4.54688 5.98438 4.71875 5.98438 4.8125 6.07812L6.5 7.76562L8.17188 6.07812C8.26562 5.98438 8.4375 5.98438 8.53125 6.07812L8.92188 6.46875C9.01562 6.5625 9.01562 6.73438 8.92188 6.82812L7.23438 8.5Z\"\n fill=\"#BF0D00\"\n />\n <path\n d=\"M14.9531 10.7041H17.3408V11.5H14.0791V4.625H14.9531V10.7041ZM19.5869 11.5928C19.1605 11.5928 18.8089 11.4837 18.5322 11.2656C18.2588 11.0443 18.1221 10.7155 18.1221 10.2793C18.1221 10.0384 18.166 9.83008 18.2539 9.6543C18.3418 9.47526 18.472 9.32878 18.6445 9.21484C18.8171 9.10091 19.0042 9.01139 19.2061 8.94629C19.4111 8.87793 19.6553 8.81934 19.9385 8.77051L20.7148 8.64355C20.998 8.59147 21.1396 8.44336 21.1396 8.19922C21.1396 7.8737 21.0387 7.63607 20.8369 7.48633C20.6383 7.33333 20.3861 7.25684 20.0801 7.25684C19.7806 7.25684 19.5299 7.33008 19.3281 7.47656C19.1263 7.62305 19.0075 7.84766 18.9717 8.15039L18.21 7.98926C18.2816 7.53353 18.4818 7.19173 18.8105 6.96387C19.1393 6.73275 19.5755 6.61719 20.1191 6.61719C20.373 6.61719 20.6042 6.64648 20.8125 6.70508C21.0241 6.76042 21.2178 6.84993 21.3936 6.97363C21.5726 7.09408 21.7109 7.2666 21.8086 7.49121C21.9095 7.71257 21.96 7.97461 21.96 8.27734V10.2598C21.96 10.5072 21.9958 10.6748 22.0674 10.7627C22.1423 10.8473 22.2692 10.8896 22.4482 10.8896H22.5264V11.5H22.1064C21.5889 11.5 21.2861 11.2835 21.1982 10.8506H21.1592C20.7946 11.3454 20.2705 11.5928 19.5869 11.5928ZM19.7822 10.9092C20.2087 10.9092 20.5521 10.7546 20.8125 10.4453C21.0729 10.1361 21.2031 9.71289 21.2031 9.17578L19.9336 9.41992C19.5983 9.47526 19.3493 9.56478 19.1865 9.68848C19.027 9.80892 18.9473 9.98307 18.9473 10.2109C18.9473 10.4486 19.0238 10.6243 19.1768 10.7383C19.333 10.8522 19.5348 10.9092 19.7822 10.9092ZM26.2666 6.60742C26.8916 6.60742 27.4206 6.83854 27.8535 7.30078C28.2865 7.76302 28.5029 8.36361 28.5029 9.10254C28.5029 9.84473 28.2881 10.4469 27.8584 10.9092C27.4287 11.3714 26.8981 11.6025 26.2666 11.6025C25.889 11.6025 25.5472 11.5098 25.2412 11.3242C24.9385 11.1387 24.7106 10.8864 24.5576 10.5674L24.5381 11.5H23.7227V4H24.5625L24.5674 7.61816C24.7236 7.30566 24.9515 7.0599 25.251 6.88086C25.5537 6.69857 25.8923 6.60742 26.2666 6.60742ZM26.0811 10.8701C26.527 10.8701 26.9014 10.7074 27.2041 10.3818C27.5068 10.0531 27.6582 9.62663 27.6582 9.10254C27.6582 8.57845 27.5068 8.15365 27.2041 7.82812C26.9014 7.49935 26.527 7.33496 26.0811 7.33496C25.6416 7.33496 25.2705 7.50423 24.9678 7.84277C24.665 8.18132 24.5137 8.60124 24.5137 9.10254C24.5137 9.6071 24.6634 10.0286 24.9629 10.3672C25.2656 10.7025 25.6383 10.8701 26.0811 10.8701ZM34.0352 9.00488L34.0254 9.23438H30.2754C30.2884 9.76823 30.4414 10.1784 30.7344 10.4648C31.0273 10.748 31.3919 10.8896 31.8281 10.8896C32.1211 10.8896 32.3864 10.8132 32.624 10.6602C32.8617 10.5072 33.0439 10.2956 33.1709 10.0254L33.9326 10.1865C33.7601 10.6227 33.4867 10.9661 33.1123 11.2168C32.738 11.4674 32.3132 11.5928 31.8379 11.5928C31.125 11.5928 30.5488 11.3698 30.1094 10.9238C29.6699 10.4779 29.4502 9.86914 29.4502 9.09766C29.4502 8.32943 29.6699 7.72233 30.1094 7.27637C30.5521 6.8304 31.1201 6.60742 31.8135 6.60742C32.484 6.60742 33.0212 6.8125 33.4248 7.22266C33.8317 7.63281 34.0352 8.22689 34.0352 9.00488ZM31.8135 7.25684C31.4163 7.25684 31.0827 7.37077 30.8125 7.59863C30.5456 7.82324 30.3779 8.15202 30.3096 8.58496H33.1855C33.153 8.15202 33.013 7.82324 32.7656 7.59863C32.5182 7.37077 32.2008 7.25684 31.8135 7.25684ZM35.3633 11.5V4H36.2178V11.5H35.3633Z\"\n fill=\"#BF0D00\"\n />\n </svg>\n </div>\n )}\n <div className={classes.row}>\n <div className={classes.text}> Student Correct </div>\n <svg width=\"76\" height=\"16\" viewBox=\"0 0 76 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M76 8L14 8\" stroke=\"#0B7D38\" strokeWidth=\"3\" />\n <circle cx=\"8\" cy=\"8\" r=\"8\" fill=\"#0B7D38\" />\n <path\n d=\"M12.1953 4.46875C12.3125 4.35156 12.5 4.35156 12.5938 4.46875L13.2734 5.125C13.3672 5.24219 13.3672 5.42969 13.2734 5.52344L6.24219 12.5547C6.125 12.6719 5.96094 12.6719 5.84375 12.5547L2.70312 9.4375C2.60938 9.32031 2.60938 9.13281 2.70312 9.03906L3.38281 8.35938C3.47656 8.26562 3.66406 8.26562 3.78125 8.35938L6.03125 10.6328L12.1953 4.46875Z\"\n fill=\"white\"\n />\n </svg>\n </div>\n {isLabelAvailable && (\n <div className={classes.row}>\n <div className={classes.text}> Student Correct Label </div>\n <svg width=\"43\" height=\"16\" viewBox=\"0 0 43 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"0.5\" y=\"0.5\" width=\"42\" height=\"15\" rx=\"3.5\" fill=\"white\" />\n <rect x=\"0.5\" y=\"0.5\" width=\"42\" height=\"15\" rx=\"3.5\" stroke=\"#0B7D38\" />\n <path\n d=\"M11.7969 5.3125C11.875 5.23438 12 5.23438 12.0625 5.3125L12.5156 5.75C12.5781 5.82812 12.5781 5.95312 12.5156 6.01562L7.82812 10.7031C7.75 10.7812 7.64062 10.7812 7.5625 10.7031L5.46875 8.625C5.40625 8.54688 5.40625 8.42188 5.46875 8.35938L5.92188 7.90625C5.98438 7.84375 6.10938 7.84375 6.1875 7.90625L7.6875 9.42188L11.7969 5.3125Z\"\n fill=\"#0B7D38\"\n />\n <path\n d=\"M15.9531 10.7041H18.3408V11.5H15.0791V4.625H15.9531V10.7041ZM20.5869 11.5928C20.1605 11.5928 19.8089 11.4837 19.5322 11.2656C19.2588 11.0443 19.1221 10.7155 19.1221 10.2793C19.1221 10.0384 19.166 9.83008 19.2539 9.6543C19.3418 9.47526 19.472 9.32878 19.6445 9.21484C19.8171 9.10091 20.0042 9.01139 20.2061 8.94629C20.4111 8.87793 20.6553 8.81934 20.9385 8.77051L21.7148 8.64355C21.998 8.59147 22.1396 8.44336 22.1396 8.19922C22.1396 7.8737 22.0387 7.63607 21.8369 7.48633C21.6383 7.33333 21.3861 7.25684 21.0801 7.25684C20.7806 7.25684 20.5299 7.33008 20.3281 7.47656C20.1263 7.62305 20.0075 7.84766 19.9717 8.15039L19.21 7.98926C19.2816 7.53353 19.4818 7.19173 19.8105 6.96387C20.1393 6.73275 20.5755 6.61719 21.1191 6.61719C21.373 6.61719 21.6042 6.64648 21.8125 6.70508C22.0241 6.76042 22.2178 6.84993 22.3936 6.97363C22.5726 7.09408 22.7109 7.2666 22.8086 7.49121C22.9095 7.71257 22.96 7.97461 22.96 8.27734V10.2598C22.96 10.5072 22.9958 10.6748 23.0674 10.7627C23.1423 10.8473 23.2692 10.8896 23.4482 10.8896H23.5264V11.5H23.1064C22.5889 11.5 22.2861 11.2835 22.1982 10.8506H22.1592C21.7946 11.3454 21.2705 11.5928 20.5869 11.5928ZM20.7822 10.9092C21.2087 10.9092 21.5521 10.7546 21.8125 10.4453C22.0729 10.1361 22.2031 9.71289 22.2031 9.17578L20.9336 9.41992C20.5983 9.47526 20.3493 9.56478 20.1865 9.68848C20.027 9.80892 19.9473 9.98307 19.9473 10.2109C19.9473 10.4486 20.0238 10.6243 20.1768 10.7383C20.333 10.8522 20.5348 10.9092 20.7822 10.9092ZM27.2666 6.60742C27.8916 6.60742 28.4206 6.83854 28.8535 7.30078C29.2865 7.76302 29.5029 8.36361 29.5029 9.10254C29.5029 9.84473 29.2881 10.4469 28.8584 10.9092C28.4287 11.3714 27.8981 11.6025 27.2666 11.6025C26.889 11.6025 26.5472 11.5098 26.2412 11.3242C25.9385 11.1387 25.7106 10.8864 25.5576 10.5674L25.5381 11.5H24.7227V4H25.5625L25.5674 7.61816C25.7236 7.30566 25.9515 7.0599 26.251 6.88086C26.5537 6.69857 26.8923 6.60742 27.2666 6.60742ZM27.0811 10.8701C27.527 10.8701 27.9014 10.7074 28.2041 10.3818C28.5068 10.0531 28.6582 9.62663 28.6582 9.10254C28.6582 8.57845 28.5068 8.15365 28.2041 7.82812C27.9014 7.49935 27.527 7.33496 27.0811 7.33496C26.6416 7.33496 26.2705 7.50423 25.9678 7.84277C25.665 8.18132 25.5137 8.60124 25.5137 9.10254C25.5137 9.6071 25.6634 10.0286 25.9629 10.3672C26.2656 10.7025 26.6383 10.8701 27.0811 10.8701ZM35.0352 9.00488L35.0254 9.23438H31.2754C31.2884 9.76823 31.4414 10.1784 31.7344 10.4648C32.0273 10.748 32.3919 10.8896 32.8281 10.8896C33.1211 10.8896 33.3864 10.8132 33.624 10.6602C33.8617 10.5072 34.0439 10.2956 34.1709 10.0254L34.9326 10.1865C34.7601 10.6227 34.4867 10.9661 34.1123 11.2168C33.738 11.4674 33.3132 11.5928 32.8379 11.5928C32.125 11.5928 31.5488 11.3698 31.1094 10.9238C30.6699 10.4779 30.4502 9.86914 30.4502 9.09766C30.4502 8.32943 30.6699 7.72233 31.1094 7.27637C31.5521 6.8304 32.1201 6.60742 32.8135 6.60742C33.484 6.60742 34.0212 6.8125 34.4248 7.22266C34.8317 7.63281 35.0352 8.22689 35.0352 9.00488ZM32.8135 7.25684C32.4163 7.25684 32.0827 7.37077 31.8125 7.59863C31.5456 7.82324 31.3779 8.15202 31.3096 8.58496H34.1855C34.153 8.15202 34.013 7.82324 33.7656 7.59863C33.5182 7.37077 33.2008 7.25684 32.8135 7.25684ZM36.3633 11.5V4H37.2178V11.5H36.3633Z\"\n fill=\"#0B7D38\"\n />\n </svg>\n </div>\n )}\n </div>\n );\n};\n\nKeyLegend.propTypes = {\n className: PropTypes.string,\n classes: PropTypes.object.isRequired,\n isLabelAvailable: PropTypes.bool,\n};\n\nexport default withStyles(styles)(KeyLegend);\n"],"names":["style","theme","root","fill","palette","common","black","Arrow","React","Component","render","x","y","classes","className","scale","props","names","classNames","direction","xv","yv","transform","getTransform","rotate","propTypes","PropTypes","number","oneOf","object","isRequired","string","types","ScaleType","defaultProps","withStyles","utils","tickCount","bounds","point","getAngleDeg","arrowDimensions","getTickValues","prop","tickValues","tickVal","min","indexOf","push","Math","round","step","max","filter","tV","countWords","label","isEmpty","words","split","length","findLongestWord","longestWord","replace","sort","a","b","amountToIncreaseWidth","polygonToArea","points","h","head","area","left","top","bottom","right","tail","reduce","p","lineToArea","from","to","pointsToArea","invariant","getRightestPoints","sortedPoints","cloneDeep","getMiddleOfTwoPoints","roundNumber","parseFloat","toFixed","sameAxes","p1","p2","equalPoints","isEqual","getDistanceBetweenTicks","axis","size","nbOfTicks","thinnerShapesNeeded","graphProps","domain","range","width","height","getAdjustedGraphLimits","domainTicksDistance","rangeTicksDistance","domainPadding","rangePadding","getDistanceBetweenTwoPoints","sqrt","sortPoints","array","checkCollinearity","c","isSameLine","markA","markB","isSameCircle","edge","isDuplicatedMark","mark","marks","oldMark","type","building","filteredMarks","m","index","findIndex","splice","duplicated","find","AxisPropTypes","includeArrows","AxisDefaultProps","up","down","axisStyles","line","stroke","color","defaults","PRIMARY","strokeWidth","arrow","tick","labelFontSize","fontSize","typography","axisLabelHolder","padding","margin","textAlign","tickLabelStyles","fontFamily","cursor","sharedValues","firstNegativeX","firstNegativeY","distanceFromOriginToFirstNegativeX","distanceFromOriginToFirstNegativeY","deltaAllowance","dy","result","firstNegativeValue","interval","element","RawXAxis","columnTicksValues","skipValues","labelStep","labelProps","textAnchor","dx","necessaryRows","axisLabel","necessaryWidth","value","__html","GraphPropsType","XAxis","RawYAxis","rowTickValues","customTickFormat","digits","toLocaleString","YAxis","Axes","xValues","ticks","negative","abs","yValues","Grid","getAdditionalGridProps","columnTickValues","rowTickLabelValues","includes","columnTickLabelValues","minValueLength","toString","maxValueLength","rowLabelLength","horizontalDistanceToZero","verticalDistanceToZero","columnLabelLength","rowStrokeDasharray","columnStrokeDasharray","displayAdditionalGrid","filteredColumnValues","filteredRowValues","additionalGridStroke","r","grid","disabled","bool","disabledAdditionalGrid","rotations","side","t","getY","RawLabel","disabledLabel","placeholder","text","onChange","mathMlOptions","totalHeight","totalWidth","finalHeight","activePlugins","cn","bottomLabel","disabledAxisLabel","position","noPadding","noBorder","func","Label","SECONDARY","pointerEvents","marginTop","LabelType","Labels","onChangeLabel","newValue","labels","disabledLabels","placeholders","shape","Bg","getRectPadding","onRectClick","rect","onClick","coords","mouse","_groups","invert","rowTicks","columnTicks","closest","prev","curr","currentDistance","previousDistance","snapped","componentDidMount","select","on","bind","shouldComponentUpdate","nextProps","isDomainRangeEqual","log","debug","graphPropTypes","axesSettings","backgroundMarks","collapsibleToolbar","collapsibleToolbarTitle","disabledTitle","DomainType","labelModeEnabled","coordinatesOnHover","onChangeLabels","onChangeMarks","onChangeTitle","showLabels","showPixelGuides","showTitle","title","tools","limitLabeling","getMaskSize","removeBuildingToolIfCurrentToolDiffers","currentTool","removeIncompleteTool","buildingMark","newMarks","Graph","constructor","state","setState","labelNode","changeMark","newMark","completeMark","markData","updatedMark","complete","updateMarks","existing","update","addIfMissing","getComponent","tool","onBgClick","undefined","addPoint","maskUid","generateMaskId","random","labelsPlaceholders","titlePlaceholder","createGraphProps","rootNode","maskSize","Root","map","markType","isBackground","startDrag","stopDrag","action","Array","isArray","Error","require$$0","require$$1","require$$2","combineReducers","undoable","changeMarks","key","disabledSecondary","correct","correctWithIcon","incorrect","incorrectWithIcon","missing","missingWithIcon","styles","input","borderRadius","background","white","PRIMARY_DARK","inputLabel","getLabelPosition","labelLength","topShift","leftShift","rightEdge","CoordinatesLabel","labelPosition","ariaLabel","MissingSVG","CorrectSVG","IncorrectSVG","RawBp","showCoordinates","correctness","onTouchStart","onTouchEnd","rest","_excluded","SvgComponent","ReactDOM","createPortal","RawArrow","angle","vector","ArrowHead","genUid","v","ArrowMarker","id","scaledX","scaledY","opts","anchorPoint","fromDelta","delta","add","BLACK","BasePoint","gridDraggable","BaseArrow","ToolPropTypeFields","any","onDragStart","onDragStop","useDebounce","delay","debouncedValue","setDebouncedValue","useState","useEffect","handler","setTimeout","clearTimeout","SvgIcon","icons","empty","inputStyles","float","spacing","unit","backgroundColor","WHITE","inputStudent","border","fontWeight","disabledMark","inputCorrect","CORRECT_WITH_ICON","inputIncorrect","INCORRECT_WITH_ICON","inputMissing","MISSING_WITH_ICON","shift","bottomEdge","coordinates","LabelInput","_ref","externalInputRef","inputClassName","MarkLabel","setInput","useCallback","node","inputRef","setLabel","correctnesslabel","correctlabel","e","target","debouncedLabel","getBoundingClientRect","pos","leftTop","display","alignItems","gap","secondLabelStyle","disabledInput","renderInput","inputClass","labelValue","marginLeft","withTheme","Point","move","labelChange","clickPoint","focus","stopPropagation","hasOwnProperty","RawCircle","radius","rx","ry","bgCircle","applyStyle","fn","transition","BgCircle","newPoint","RawLinePath","data","isDragging","vx","drawLine","dragging","arrayOf","PointType","LinePath","strokeDasharray","lineTool","lineToolComponent","LineToolComponent","shouldNotChange","middle","changeMarkProps","dragOpts","lineBase","Comp","DraggableComp","FromPoint","ToPoint","LineBase","onChangePoint","dragComp","draggedFrom","draggedTo","updated","dragFrom","dragTo","trig","toDegrees","fromLabelNode","toLabelNode","lineLabelNode","disabledArrow","toRootEdge","out","toFromTo","rootEdgeToFromToWrapper","BaseComp","Wrapper","current","next","rootEdgeComponent","RootEdgeComp","BaseComponent","withPointsGenerationLinePath","getPoints","LinePathComponent","dataPoints","enableCurve","raw","d","curveMonotoneX","withRootEdge","LinePathComp","opacityPulsate","opacity","getRadius","outer","dist","RawBaseCircle","dragCircle","diff","sub","draggedroot","draggedOuter","isCircleDrag","circleLabelNode","bgCircleBuilding","BaseCircle","outerLine","animation","animationIterationCount","Circle","hover","RawLine","Line","getPointString","scaledPoint","join","RawPolygon","closed","pointString","Tag","open","Polygon","fade","primary","light","buildLines","expanded","acc","isLast","all","chunk","initial","swap","arr","pairs","pr","replacement","Number","isFinite","RawBaseComponent","dragPoint","overlapPoint","dragLine","dragPoly","forEach","close","onClosePolygon","onChangeProps","updatedPoint","isToolActive","onChangeLabelProps","lines","polygonLabelIndex","polygonLabelNode","l","change","changeProps","changeLabelProps","closePolygon","onComplete","dragStart","dragStop","stateMark","addPointToArray","hasPoint","Sine","amplitude","freq","getAmplitudeAndFreq","FREQ_DIVIDER","buildDataPoints","sinY","phase","vertical","Parabola","parabolaFromTwoPoints","lineStyles","enabledArrow","correctArrow","incorrectArrow","missingArrow","ArrowedLine","markerId","eFrom","eTo","edges","suffix","StyledArrowedLine","StyledLine","Segment","rayStyles","RayLine","aToB","StyledRay","Ray","startPoint","endPoint","Vector","Absolute","absoluteFromTwoPoints","Exponential","exponentialFromTwoPoints","allTools","labelTool","toolsArr","circle","parabola","polygon","ray","segment","sine","absolute","exponential","translator","Translator","buttonStyles","selected","secondary","notSelected","MiniButton","language","translatorKey","toLowerCase","buttonValue","lng","disabledClassName","ToggleBar","textContent","moveTool","dragIndex","hoverIndex","options","onChangeToolsOrder","dragged","selectedToolType","draggableTools","toolsContainer","option","isSelected","toolRef","createRef","button","flexWrap","marginRight","marginBottom","under","zIndex","wrapper","hidden","withDragContext","DRAG_TYPE","Item","children","connectDragSource","connectDropTarget","connectDragPreview","oneOfType","itemSource","canDrag","draggable","beginDrag","itemTarget","monitor","getItem","hoverBoundingRect","hoverMiddleX","clientOffset","getClientOffset","hoverClientX","collectTarget","connect","dropTarget","collectSource","dragSource","dragPreview","DragTool","DropTarget","DragSource","ToolMenu","updateToolsOrder","onChangeTools","currentToolType","toolbarTools","UndoRedo","onUndo","onRedo","onReset","setStatic_1","setStatic","setDisplayName_1","setDisplayName","getDisplayName_1","getDisplayName","wrapDisplayName_1","wrapDisplayName","shouldUpdate_1","require$$3","require$$4","shouldUpdate","pure_1","pure","createSvgIcon_1","createSvgIcon","setToolbarAvailability","tA","toolbar","toolIsAvailable","getAvailableTool","filterByValidToolTypes","bM","filterByVisibleToolTypes","getDefaultCurrentTool","toolType","Collapsible","expansionPanel","summaryRoot","content","summaryContent","details","GraphWithControls","changeCurrentTool","defaultTool","componentDidUpdate","prevProps","uniq","tT","isString","graphActions","graphWithControls","controls","flexDirection","justifyContent","primaryLight","minHeight","lastActionMiddleware","mapStateToProps","s","present","mapDispatchToProps","dispatch","ActionCreators","undo","redo","GraphContainer","onStoreChange","storeState","store","getState","reducer","createStore","applyMiddleware","subscribe","correctnessSet","GridConfig","displayedFields","labelValues","gridValue","gridValues","columnView","enabled","mediumTextField","AxisConfig","displayHeader","maxValue","minValue","Typography","EditableHTML","GridSetup","includeAxes","onChangeView","sizeConstraints","standardGrid","gridProps","dimensionsEnabled","includeAxesEnabled","standardGridEnabled","displayAxisType","gridConfigFields","axisConfigFields","onIncludeAxes","noAxesConfig","updatedRange","updatedDomain","onStandardGridChanged","graph","onSizeChanged","onDomainChanged","onRangeChanged","axesConfig","rowView","gridlinesConfig","largeTextField","ExpansionPanel","ExpansionPanelSummary","ExpansionPanelDetails","dimensions","textField","fontStyle","paddingTop","container","boxShadow","row","h6","KeyLegend","isLabelAvailable","formControl"],"mappings":"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","x_google_ignoreList":[8,9,10,11,12,61,62,63,64,65,66,67,68,69,70,71,72,73]}
|