├── .gitignore
├── index.js
├── src
├── index.js
├── __tests__
│ └── ScrollActivator.test.js
└── ScrollActivator.js
├── .babelrc
├── .editorconfig
├── examples
├── index.js
├── index.html
└── src
│ ├── Container.js
│ └── StickyElement.js
├── index.html
├── webpack.config.js
├── LICENSE
├── .circleci
└── config.yml
├── package.json
├── README.md
└── public
└── js
├── index.js
└── index.map
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | dist/
3 | .cache/
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | import { ScrollActivator } from './src/index'
2 | export { ScrollActivator }
3 |
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | import ScrollActivator from "./ScrollActivator"
2 | export { ScrollActivator }
3 |
--------------------------------------------------------------------------------
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | "env",
4 | "react"
5 | ],
6 | "plugins": [
7 | "transform-class-properties"
8 | ]
9 | }
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 | # General settings for whole project
3 | [*]
4 | indent_style = space
5 | end_of_line = lf
6 | indent_size = 2
7 | charset = utf-8
8 | trim_trailing_whitespace = true
9 | # Format specific overrides
10 | [*.md]
11 | max_line_length = 0
12 | trim_trailing_whitespace = false
--------------------------------------------------------------------------------
/examples/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { render } from 'react-dom'
3 |
4 | import Container from './src/Container'
5 |
6 | if (module.hot) {
7 | module.hot.accept()
8 | }
9 |
10 | const DemoApp = () =>
11 |
12 | render(, document.getElementById('demo-app'))
13 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Parcel React Example
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/examples/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Parcel React Example
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/webpack.config.js:
--------------------------------------------------------------------------------
1 | const path = require('path')
2 |
3 | module.exports = {
4 | entry: './src/index.js',
5 | output: {
6 | filename: 'react-scroll-activator.js',
7 | library: 'reactScrollActivator',
8 | libraryTarget: 'umd',
9 | path: path.resolve(__dirname, 'dist')
10 | },
11 | module: {
12 | rules: [
13 | {
14 | test: /\.js$/,
15 | exclude: /node_modules/,
16 | use: {
17 | loader: 'babel-loader'
18 | }
19 | }
20 | ]
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/examples/src/Container.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import { ScrollActivator } from '../../src/index'
4 | import StickyElement from './StickyElement'
5 |
6 | const styleObj = {
7 | height: '500px',
8 | overflowY: 'auto',
9 | backgroundColor: 'blue'
10 | }
11 |
12 | class Container extends React.Component {
13 | handleScrollCallback = e => {
14 | this.containerSelector = document.querySelector('.any-class-name')
15 | return (
16 | e.target.scrollTop >
17 | this.containerSelector.getBoundingClientRect().top + 20
18 | )
19 | }
20 |
21 | render () {
22 | return (
23 |
24 |
28 | {activatedState => }
29 |
30 |
31 | )
32 | }
33 | }
34 |
35 | export default Container
36 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 Mae Capozzi
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/.circleci/config.yml:
--------------------------------------------------------------------------------
1 | # Javascript Node CircleCI 2.0 configuration file
2 | #
3 | # Check https://circleci.com/docs/2.0/language-javascript/ for more details
4 | #
5 | machine:
6 | node:
7 | version: 8.0.0
8 |
9 | version: 2
10 | jobs:
11 | build:
12 | docker:
13 | # specify the version you desire here
14 | - image: circleci/node:8.0.0
15 |
16 | # Specify service dependencies here if necessary
17 | # CircleCI maintains a library of pre-built images
18 | # documented at https://circleci.com/docs/2.0/circleci-images/
19 | # - image: circleci/mongo:3.4.4
20 |
21 | working_directory: ~/repo
22 |
23 | steps:
24 | - checkout
25 |
26 | # Download and cache dependencies
27 | - restore_cache:
28 | keys:
29 | - v1-dependencies-{{ checksum "package.json" }}
30 | # fallback to using the latest cache if no exact match is found
31 | - v1-dependencies-
32 |
33 | - run: npm install
34 |
35 | - save_cache:
36 | paths:
37 | - node_modules
38 | key: v1-dependencies-{{ checksum "package.json" }}
39 |
40 | # run tests!
41 | - run: npm test
42 |
43 |
44 |
--------------------------------------------------------------------------------
/examples/src/StickyElement.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 |
4 | const header = {
5 | backgroundColor: 'red',
6 | height: '100px',
7 | width: '95%'
8 | }
9 |
10 | const fixedHeader = {
11 | backgroundColor: 'red',
12 | height: '100px',
13 | position: 'fixed',
14 | width: '95%'
15 | }
16 |
17 | const StickyElement = ({ isSticky }) => {
18 | if (isSticky === 'isActivated') {
19 | return (
20 |
21 |
22 |
27 | I'm Sticky
28 |
29 |
30 |
31 | )
32 | } else {
33 | return (
34 |
35 |
36 |
42 | I'm Not Sticky
43 |
44 |
45 |
46 | )
47 | }
48 | }
49 |
50 | StickyElement.propTypes = {
51 | isSticky: PropTypes.string
52 | }
53 |
54 | export default StickyElement
55 |
--------------------------------------------------------------------------------
/src/__tests__/ScrollActivator.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { configure } from 'enzyme'
3 | import Adapter from 'enzyme-adapter-react-16'
4 |
5 | configure({ adapter: new Adapter() })
6 |
7 | import { mount } from 'enzyme'
8 | import { ScrollActivator } from '../index'
9 |
10 | describe('ScrollActivator', () => {
11 | const renderFunction = jest.fn().mockReturnValue(null)
12 | let scrollActivatorWithRenderFunction = mount(
13 | {renderFunction}
14 | )
15 |
16 | it('has the correct exports', () => {
17 | expect(ScrollActivator).toBeDefined()
18 | })
19 |
20 | it('calls the render prop function', () => {
21 | const wrapper = scrollActivatorWithRenderFunction
22 | expect(renderFunction.mock.calls.length).toBe(1)
23 | expect(wrapper.state('activatedState')).toBe('isNotActivated')
24 | })
25 |
26 | it('passes isNotActivated to the render prop function when no scroll event has been fired', () => {
27 | const activatedState = 'isNotActivated'
28 | const wrapper = scrollActivatorWithRenderFunction
29 | expect(renderFunction).toHaveBeenCalledWith(activatedState)
30 | })
31 |
32 | // TODO: 3/21/18 - Write a test that mocks a scroll event inside of a modal in enzyme.
33 | // Currently, this doesn't appear to be straightforward, and may not be possible.
34 | xit('passes isActivated to the render prop function when a scroll event has been fired', () => {})
35 | })
36 |
--------------------------------------------------------------------------------
/src/ScrollActivator.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import ReactDOM from 'react-dom'
4 |
5 | class ScrollActivator extends React.Component {
6 | static propTypes = {
7 | onScroll: PropTypes.func,
8 | children: PropTypes.func.isRequired,
9 | containerSelector: PropTypes.node
10 | }
11 |
12 | state = { activatedState: 'isNotActivated' }
13 |
14 | componentDidMount () {
15 | this.props.containerSelector
16 | ? this.setContainerSelector()
17 | : this.setContainerSelectorToWindow()
18 |
19 | this.containerSelector &&
20 | this.containerSelector.addEventListener('scroll', this.handleScroll)
21 | }
22 |
23 | componentWillUnmount () {
24 | this.containerSelector &&
25 | this.containerSelector.removeEventListener('scroll', this.handleScroll)
26 | }
27 |
28 | setContainerSelector = () => {
29 | this.containerSelector = document.querySelector(
30 | this.props.containerSelector
31 | )
32 | }
33 |
34 | setContainerSelectorToWindow = () => {
35 | this.containerSelector = window
36 | }
37 |
38 | handleScroll = e => {
39 | let activatedState = this.props.onScroll(e)
40 | ? 'isActivated'
41 | : 'isNotActivated'
42 | if (this.state.activatedState !== activatedState) {
43 | this.setState({ activatedState })
44 | }
45 | }
46 |
47 | render () {
48 | return this.props.children(this.state.activatedState)
49 | }
50 | }
51 |
52 | export default ScrollActivator
53 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-scroll-activator",
3 | "version": "2.0.0",
4 | "description": "A React component that watches for a scroll event",
5 | "main": "dist/react-scroll-activator.js",
6 | "scripts": {
7 | "compile": "babel src --lose --out-dir lib",
8 | "build": "webpack --mode production",
9 | "start": "webpack-dev-server --mode development --open --hot",
10 | "test": "jest",
11 | "format": "prettier-standard '*.js'",
12 | "precommit": "lint-staged"
13 | },
14 | "repository": {
15 | "type": "git",
16 | "url": "git+https://github.com/maecapozzi/react-scroll-activator.git"
17 | },
18 | "keywords": [
19 | "React"
20 | ],
21 | "author": "Mae Capozzi",
22 | "license": "MIT",
23 | "bugs": {
24 | "url": "https://github.com/maecapozzi/react-scroll-activator/issues"
25 | },
26 | "homepage": "https://github.com/maecapozzi/react-scroll-activator#readme",
27 | "devDependencies": {
28 | "babel-cli": "^6.26.0",
29 | "babel-core": "^6.26.0",
30 | "babel-loader": "^7.1.4",
31 | "babel-plugin-transform-class-properties": "^6.24.1",
32 | "babel-plugin-transform-inline-environment-variables": "^0.3.0",
33 | "babel-preset-env": "^1.6.1",
34 | "babel-preset-es2015": "^6.24.1",
35 | "babel-preset-react": "^6.24.1",
36 | "babel-preset-stage-0": "^6.24.1",
37 | "cross-env": "^5.1.4",
38 | "enzyme": "^3.3.0",
39 | "enzyme-adapter-react-16": "^1.1.1",
40 | "husky": "^0.14.3",
41 | "jest": "^22.4.3",
42 | "lint-staged": "^7.0.0",
43 | "prettier-standard": "^8.0.0",
44 | "webpack": "^4.16.5",
45 | "webpack-cli": "^3.1.0"
46 | },
47 | "lint-staged": {
48 | "*.js": [
49 | "prettier-standard",
50 | "git add"
51 | ]
52 | },
53 | "dependencies": {
54 | "prop-types": "^15.6.1",
55 | "react": "^16.2.0",
56 | "react-dom": "^16.2.0",
57 | "stack-utils": "^1.0.1"
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # react-scroll-activator
2 | `react-scroll-activator` watches for a scroll event inside of a container or on the window. When certain user-defined rules are met, it passes an `activatedState` prop to a render prop component, triggering whatever behavior the developer chooses on the child.
3 |
4 | [](https://opensource.org/licenses/MIT)
5 | [](https://circleci.com/gh/maecapozzi/react-scroll-activator/tree/master)
6 |
7 | ### The Problem
8 | You want an element to "stick" to the top of the window when a user scrolls in a page. Or maybe you want to hide an element as a user scrolls. Basically, you want to trigger the behavior of a component as a user scrolls.
9 |
10 | ### The Solution
11 | `react-scroll-activator` is a straightforward React component that watches for a scroll event inside any container or on the window. If a user scrolls, (and a series of conditions are met), the `ScrollActivator` component sends an `activatedState` prop to a render prop component, triggering the render prop component's behavior.
12 |
13 |
14 |
15 | ### Table of Contents
16 |
17 | - [Installation](#installation)
18 | - [Usage](#usage)
19 | - [FAQ](#faq)
20 | - [Inspiration](#inspiration)
21 | - [Alternatives](#alternatives)
22 | - [Contributors](#contributors)
23 | - [License](#license)
24 |
25 |
26 |
27 | ### Installation
28 |
29 | `npm install react-scroll-activator`
30 | ### Usage
31 |
32 | • [Basic](https://jsfiddle.net/maecapozzi/2ys8nnz1/17/)
33 |
34 | You can either use the `ScrollActivator` component on the window, or on any container that scrolls.
35 |
36 | #### On the window
37 | ```jsx
38 | class StickyElement extends React.Component {
39 | shouldComponentBeSticky = () => {
40 | return window.scrollY > 120
41 | }
42 |
43 | isSticky = activatedState => {
44 | if (activatedState === 'isActivated') {
45 | return { position: 'fixed' }
46 | } else {
47 | return { position: 'relative' }
48 | }
49 | }
50 |
51 | render () {
52 | return (
53 |
54 | {activatedState => (
55 |
56 |
Hi
57 |
58 | )}
59 |
60 | }
61 | )
62 | }
63 |
64 | ```
65 |
66 | ### In a modal
67 |
68 | Let's say the modal's classname is `.any-class-name`:
69 |
70 | ```jsx
71 | class StickyElement extends React.Component {
72 | handleScrollCallback = (e, topOffset) => {
73 | this.containerSelector = document.querySelector('.any-class-name')
74 | return (
75 | e.target.scrollTop >
76 | this.containerSelector.getBoundingClientRect().top + topOffset
77 | )
78 | }
79 |
80 | render () {
81 | return (
82 |
83 |
87 | {activatedState => }
88 |
89 |
90 | )
91 | }
92 | }
93 |
94 | ```
95 | In this example, `ScrollActivator` is wrapped around a `StickyElement` which is the component that will stick to the top of the container as the user scrolls. The `ScrollActivator` will pass `activatedState` to the child component, which the child component can then use to activate certain behavior. In the case of this example, the `StickyElement` will stick to the top of the component.
96 |
97 | To actually make sure you are setting rules, add a `handleScrollCallback` function that resembles the one below to the class in which you are invoking `ScrollActivator`. You'll pass this to the `ScrollActivator` component `onScroll`.
98 |
99 | ### FAQ
100 | ### Inspiration
101 | I built this because I needed to make a banner stick to the top of a container, but I didn't have access to the window.
102 | ### Alternatives
103 | * [react-sticky](https://github.com/captivationsoftware/react-sticky)
104 | * [react-stickynode](https://github.com/yahoo/react-stickynode)
105 | ### Contributors
106 | * Mae Capozzi
107 | ### License
108 | MIT
109 |
--------------------------------------------------------------------------------
/public/js/index.js:
--------------------------------------------------------------------------------
1 | require = (function (r, e, n) {
2 | function t (n, o) {
3 | function i (r) {
4 | return t(i.resolve(r))
5 | }
6 | function f (e) {
7 | return r[n][1][e] || e
8 | }
9 | if (!e[n]) {
10 | if (!r[n]) {
11 | var c = typeof require === 'function' && require
12 | if (!o && c) return c(n, !0)
13 | if (u) return u(n, !0)
14 | var l = new Error("Cannot find module '" + n + "'")
15 | throw ((l.code = 'MODULE_NOT_FOUND'), l)
16 | }
17 | i.resolve = f
18 | var s = (e[n] = new t.Module(n))
19 | r[n][0].call(s.exports, i, s, s.exports)
20 | }
21 | return e[n].exports
22 | }
23 | function o (r) {
24 | ;(this.id = r), (this.bundle = t), (this.exports = {})
25 | }
26 | var u = typeof require === 'function' && require
27 | ;(t.isParcelRequire = !0),
28 | (t.Module = o),
29 | (t.modules = r),
30 | (t.cache = e),
31 | (t.parent = u)
32 | for (var i = 0; i < n.length; i++) t(n[i])
33 | return t
34 | })(
35 | {
36 | 9: [
37 | function (require, module, exports) {
38 | 'use strict'
39 | var r = Object.getOwnPropertySymbols,
40 | t = Object.prototype.hasOwnProperty,
41 | e = Object.prototype.propertyIsEnumerable
42 | function n (r) {
43 | if (r === null || void 0 === r) {
44 | throw new TypeError(
45 | 'Object.assign cannot be called with null or undefined'
46 | )
47 | }
48 | return Object(r)
49 | }
50 | function o () {
51 | try {
52 | if (!Object.assign) return !1
53 | var r = new String('abc')
54 | if (((r[5] = 'de'), Object.getOwnPropertyNames(r)[0] === '5')) { return !1 }
55 | for (var t = {}, e = 0; e < 10; e++) { t['_' + String.fromCharCode(e)] = e }
56 | if (
57 | Object.getOwnPropertyNames(t)
58 | .map(function (r) {
59 | return t[r]
60 | })
61 | .join('') !==
62 | '0123456789'
63 | ) { return !1 }
64 | var n = {}
65 | return (
66 | 'abcdefghijklmnopqrst'.split('').forEach(function (r) {
67 | n[r] = r
68 | }),
69 | Object.keys(Object.assign({}, n)).join('') ===
70 | 'abcdefghijklmnopqrst'
71 | )
72 | } catch (r) {
73 | return !1
74 | }
75 | }
76 | module.exports = o()
77 | ? Object.assign
78 | : function (o, c) {
79 | for (var a, i, s = n(o), f = 1; f < arguments.length; f++) {
80 | for (var u in (a = Object(arguments[f]))) { t.call(a, u) && (s[u] = a[u]) }
81 | if (r) {
82 | i = r(a)
83 | for (var b = 0; b < i.length; b++) { e.call(a, i[b]) && (s[i[b]] = a[i[b]]) }
84 | }
85 | }
86 | return s
87 | }
88 | },
89 | {}
90 | ],
91 | 12: [
92 | function (require, module, exports) {
93 | 'use strict'
94 | var e = {}
95 | module.exports = e
96 | },
97 | {}
98 | ],
99 | 11: [
100 | function (require, module, exports) {
101 | 'use strict'
102 | function t (t) {
103 | return function () {
104 | return t
105 | }
106 | }
107 | var n = function () {}
108 | ;(n.thatReturns = t),
109 | (n.thatReturnsFalse = t(!1)),
110 | (n.thatReturnsTrue = t(!0)),
111 | (n.thatReturnsNull = t(null)),
112 | (n.thatReturnsThis = function () {
113 | return this
114 | }),
115 | (n.thatReturnsArgument = function (t) {
116 | return t
117 | }),
118 | (module.exports = n)
119 | },
120 | {}
121 | ],
122 | 5: [
123 | function (require, module, exports) {
124 | 'use strict'
125 | var e = require('object-assign'),
126 | t = require('fbjs/lib/emptyObject'),
127 | r = require('fbjs/lib/emptyFunction'),
128 | n = typeof Symbol === 'function' && Symbol.for,
129 | o = n ? Symbol.for('react.element') : 60103,
130 | u = n ? Symbol.for('react.call') : 60104,
131 | l = n ? Symbol.for('react.return') : 60105,
132 | i = n ? Symbol.for('react.portal') : 60106,
133 | c = n ? Symbol.for('react.fragment') : 60107,
134 | f = typeof Symbol === 'function' && Symbol.iterator
135 | function a (e) {
136 | for (
137 | var t = arguments.length - 1,
138 | r =
139 | 'Minified React error #' +
140 | e +
141 | '; visit http://facebook.github.io/react/docs/error-decoder.html?invariant=' +
142 | e,
143 | n = 0;
144 | n < t;
145 | n++
146 | ) { r += '&args[]=' + encodeURIComponent(arguments[n + 1]) }
147 | throw (((t = Error(
148 | r +
149 | ' for the full message or use the non-minified dev environment for full errors and additional helpful warnings.'
150 | )).name =
151 | 'Invariant Violation'),
152 | (t.framesToPop = 1),
153 | t)
154 | }
155 | var p = {
156 | isMounted: function () {
157 | return !1
158 | },
159 | enqueueForceUpdate: function () {},
160 | enqueueReplaceState: function () {},
161 | enqueueSetState: function () {}
162 | }
163 | function s (e, r, n) {
164 | ;(this.props = e),
165 | (this.context = r),
166 | (this.refs = t),
167 | (this.updater = n || p)
168 | }
169 | function y (e, r, n) {
170 | ;(this.props = e),
171 | (this.context = r),
172 | (this.refs = t),
173 | (this.updater = n || p)
174 | }
175 | function d () {}
176 | ;(s.prototype.isReactComponent = {}),
177 | (s.prototype.setState = function (e, t) {
178 | typeof e !== 'object' &&
179 | typeof e !== 'function' &&
180 | e != null &&
181 | a('85'),
182 | this.updater.enqueueSetState(this, e, t, 'setState')
183 | }),
184 | (s.prototype.forceUpdate = function (e) {
185 | this.updater.enqueueForceUpdate(this, e, 'forceUpdate')
186 | }),
187 | (d.prototype = s.prototype)
188 | var h = (y.prototype = new d())
189 | function v (e, r, n) {
190 | ;(this.props = e),
191 | (this.context = r),
192 | (this.refs = t),
193 | (this.updater = n || p)
194 | }
195 | ;(h.constructor = y), e(h, s.prototype), (h.isPureReactComponent = !0)
196 | var m = (v.prototype = new d())
197 | ;(m.constructor = v),
198 | e(m, s.prototype),
199 | (m.unstable_isAsyncReactComponent = !0),
200 | (m.render = function () {
201 | return this.props.children
202 | })
203 | var b = { current: null },
204 | k = Object.prototype.hasOwnProperty,
205 | _ = { key: !0, ref: !0, __self: !0, __source: !0 }
206 | function g (e, t, r) {
207 | var n,
208 | u = {},
209 | l = null,
210 | i = null
211 | if (t != null) {
212 | for (n in (void 0 !== t.ref && (i = t.ref),
213 | void 0 !== t.key && (l = '' + t.key),
214 | t)) { k.call(t, n) && !_.hasOwnProperty(n) && (u[n] = t[n]) }
215 | }
216 | var c = arguments.length - 2
217 | if (c === 1) u.children = r
218 | else if (c > 1) {
219 | for (var f = Array(c), a = 0; a < c; a++) f[a] = arguments[a + 2]
220 | u.children = f
221 | }
222 | if (e && e.defaultProps) { for (n in (c = e.defaultProps)) void 0 === u[n] && (u[n] = c[n]) }
223 | return {
224 | $$typeof: o,
225 | type: e,
226 | key: l,
227 | ref: i,
228 | props: u,
229 | _owner: b.current
230 | }
231 | }
232 | function S (e) {
233 | return typeof e === 'object' && e !== null && e.$$typeof === o
234 | }
235 | function j (e) {
236 | var t = { '=': '=0', ':': '=2' }
237 | return (
238 | '$' +
239 | ('' + e).replace(/[=:]/g, function (e) {
240 | return t[e]
241 | })
242 | )
243 | }
244 | var w = /\/+/g,
245 | x = []
246 | function P (e, t, r, n) {
247 | if (x.length) {
248 | var o = x.pop()
249 | return (
250 | (o.result = e),
251 | (o.keyPrefix = t),
252 | (o.func = r),
253 | (o.context = n),
254 | (o.count = 0),
255 | o
256 | )
257 | }
258 | return { result: e, keyPrefix: t, func: r, context: n, count: 0 }
259 | }
260 | function R (e) {
261 | ;(e.result = null),
262 | (e.keyPrefix = null),
263 | (e.func = null),
264 | (e.context = null),
265 | (e.count = 0),
266 | x.length < 10 && x.push(e)
267 | }
268 | function O (e, t, r, n) {
269 | var c = typeof e
270 | ;(c !== 'undefined' && c !== 'boolean') || (e = null)
271 | var p = !1
272 | if (e === null) p = !0
273 | else {
274 | switch (c) {
275 | case 'string':
276 | case 'number':
277 | p = !0
278 | break
279 | case 'object':
280 | switch (e.$$typeof) {
281 | case o:
282 | case u:
283 | case l:
284 | case i:
285 | p = !0
286 | }
287 | }
288 | }
289 | if (p) return r(n, e, t === '' ? '.' + $(e, 0) : t), 1
290 | if (((p = 0), (t = t === '' ? '.' : t + ':'), Array.isArray(e))) {
291 | for (var s = 0; s < e.length; s++) {
292 | var y = t + $((c = e[s]), s)
293 | p += O(c, y, r, n)
294 | }
295 | } else if (
296 | (e === null || void 0 === e
297 | ? (y = null)
298 | : (y =
299 | typeof (y = (f && e[f]) || e['@@iterator']) === 'function'
300 | ? y
301 | : null),
302 | typeof y === 'function')
303 | ) {
304 | for (e = y.call(e), s = 0; !(c = e.next()).done;) { p += O((c = c.value), (y = t + $(c, s++)), r, n) }
305 | } else {
306 | c === 'object' &&
307 | a(
308 | '31',
309 | (r = '' + e) === '[object Object]'
310 | ? 'object with keys {' + Object.keys(e).join(', ') + '}'
311 | : r,
312 | ''
313 | )
314 | }
315 | return p
316 | }
317 | function $ (e, t) {
318 | return typeof e === 'object' && e !== null && e.key != null
319 | ? j(e.key)
320 | : t.toString(36)
321 | }
322 | function A (e, t) {
323 | e.func.call(e.context, t, e.count++)
324 | }
325 | function E (e, t, n) {
326 | var u = e.result,
327 | l = e.keyPrefix
328 | ;(e = e.func.call(e.context, t, e.count++)),
329 | Array.isArray(e)
330 | ? C(e, u, n, r.thatReturnsArgument)
331 | : e != null &&
332 | (S(e) &&
333 | ((t =
334 | l +
335 | (!e.key || (t && t.key === e.key)
336 | ? ''
337 | : ('' + e.key).replace(w, '$&/') + '/') +
338 | n),
339 | (e = {
340 | $$typeof: o,
341 | type: e.type,
342 | key: t,
343 | ref: e.ref,
344 | props: e.props,
345 | _owner: e._owner
346 | })),
347 | u.push(e))
348 | }
349 | function C (e, t, r, n, o) {
350 | var u = ''
351 | r != null && (u = ('' + r).replace(w, '$&/') + '/'),
352 | (t = P(t, u, n, o)),
353 | e == null || O(e, '', E, t),
354 | R(t)
355 | }
356 | var q = {
357 | Children: {
358 | map: function (e, t, r) {
359 | if (e == null) return e
360 | var n = []
361 | return C(e, n, null, t, r), n
362 | },
363 | forEach: function (e, t, r) {
364 | if (e == null) return e
365 | ;(t = P(null, null, t, r)), e == null || O(e, '', A, t), R(t)
366 | },
367 | count: function (e) {
368 | return e == null ? 0 : O(e, '', r.thatReturnsNull, null)
369 | },
370 | toArray: function (e) {
371 | var t = []
372 | return C(e, t, null, r.thatReturnsArgument), t
373 | },
374 | only: function (e) {
375 | return S(e) || a('143'), e
376 | }
377 | },
378 | Component: s,
379 | PureComponent: y,
380 | unstable_AsyncComponent: v,
381 | Fragment: c,
382 | createElement: g,
383 | cloneElement: function (t, r, n) {
384 | var u = e({}, t.props),
385 | l = t.key,
386 | i = t.ref,
387 | c = t._owner
388 | if (r != null) {
389 | if (
390 | (void 0 !== r.ref && ((i = r.ref), (c = b.current)),
391 | void 0 !== r.key && (l = '' + r.key),
392 | t.type && t.type.defaultProps)
393 | ) { var f = t.type.defaultProps }
394 | for (a in r) {
395 | k.call(r, a) &&
396 | !_.hasOwnProperty(a) &&
397 | (u[a] = void 0 === r[a] && void 0 !== f ? f[a] : r[a])
398 | }
399 | }
400 | var a = arguments.length - 2
401 | if (a === 1) u.children = n
402 | else if (a > 1) {
403 | f = Array(a)
404 | for (var p = 0; p < a; p++) f[p] = arguments[p + 2]
405 | u.children = f
406 | }
407 | return {
408 | $$typeof: o,
409 | type: t.type,
410 | key: l,
411 | ref: i,
412 | props: u,
413 | _owner: c
414 | }
415 | },
416 | createFactory: function (e) {
417 | var t = g.bind(null, e)
418 | return (t.type = e), t
419 | },
420 | isValidElement: S,
421 | version: '16.2.0',
422 | __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: {
423 | ReactCurrentOwner: b,
424 | assign: e
425 | }
426 | },
427 | U = Object.freeze({ default: q }),
428 | F = (U && q) || U
429 | module.exports = F.default ? F.default : F
430 | },
431 | {
432 | 'object-assign': 9,
433 | 'fbjs/lib/emptyObject': 12,
434 | 'fbjs/lib/emptyFunction': 11
435 | }
436 | ],
437 | 13: [
438 | function (require, module, exports) {
439 | 'use strict'
440 | var e = function (e) {}
441 | function n (n, r, i, o, t, a, f, s) {
442 | if ((e(r), !n)) {
443 | var u
444 | if (void 0 === r) {
445 | u = new Error(
446 | 'Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.'
447 | )
448 | } else {
449 | var d = [i, o, t, a, f, s],
450 | l = 0
451 | ;(u = new Error(
452 | r.replace(/%s/g, function () {
453 | return d[l++]
454 | })
455 | )).name =
456 | 'Invariant Violation'
457 | }
458 | throw ((u.framesToPop = 1), u)
459 | }
460 | }
461 | module.exports = n
462 | },
463 | {}
464 | ],
465 | 14: [
466 | function (require, module, exports) {
467 | 'use strict'
468 | var e,
469 | r = require('./emptyFunction'),
470 | t = r
471 | module.exports = t
472 | },
473 | { './emptyFunction': 11 }
474 | ],
475 | 15: [
476 | function (require, module, exports) {
477 | 'use strict'
478 | var _ = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'
479 | module.exports = _
480 | },
481 | {}
482 | ],
483 | 10: [
484 | function (require, module, exports) {
485 | 'use strict'
486 | var t, e, o, r
487 | function s (t, e, o, r, s) {}
488 | module.exports = s
489 | },
490 | {
491 | 'fbjs/lib/invariant': 13,
492 | 'fbjs/lib/warning': 14,
493 | './lib/ReactPropTypesSecret': 15
494 | }
495 | ],
496 | 7: [
497 | function (require, module, exports) {
498 | 'use strict'
499 | },
500 | {
501 | 'object-assign': 9,
502 | 'fbjs/lib/emptyObject': 12,
503 | 'fbjs/lib/invariant': 13,
504 | 'fbjs/lib/warning': 14,
505 | 'fbjs/lib/emptyFunction': 11,
506 | 'prop-types/checkPropTypes': 10
507 | }
508 | ],
509 | 3: [
510 | function (require, module, exports) {
511 | 'use strict'
512 | module.exports = require('./cjs/react.production.min.js')
513 | },
514 | { './cjs/react.production.min.js': 5, './cjs/react.development.js': 7 }
515 | ],
516 | 1: [
517 | function (require, module, exports) {
518 | 'use strict'
519 | Object.defineProperty(exports, '__esModule', { value: !0 })
520 | var e = require('react'),
521 | t = r(e)
522 | function r (e) {
523 | return e && e.__esModule ? e : { default: e }
524 | }
525 | var u = function () {
526 | return t.default.createElement('h1', null, 'Hi')
527 | }
528 | exports.default = u
529 | },
530 | { react: 3 }
531 | ]
532 | },
533 | {},
534 | [1]
535 | )
536 |
--------------------------------------------------------------------------------
/public/js/index.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["../node_modules/object-assign/index.js","../node_modules/fbjs/lib/emptyObject.js","../node_modules/fbjs/lib/emptyFunction.js","../node_modules/react/cjs/react.production.min.js","../node_modules/fbjs/lib/invariant.js","../node_modules/fbjs/lib/warning.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/react/cjs/react.development.js","../node_modules/react/index.js","index.js"],"names":["emptyObject","Object","freeze","module","exports","validateFormat","format","undefined","Error","invariant","condition","a","b","c","d","e","f","error","args","argIndex","replace","name","framesToPop","emptyFunction","require","warning","printWarning","_len","arguments","length","Array","_key","message","console","x","indexOf","_len2","_key2","apply","concat","ReactPropTypesSecret","loggedTypeFailures","checkPropTypes","typeSpecs","values","location","componentName","getStack","typeSpecName","hasOwnProperty","ex","stack","_assign","ReactVersion","hasSymbol","Symbol","REACT_ELEMENT_TYPE","REACT_CALL_TYPE","REACT_RETURN_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","MAYBE_ITERATOR_SYMBOL","iterator","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","maybeIterator","lowPriorityWarning","warn","lowPriorityWarning$1","didWarnStateUpdateForUnmountedComponent","warnNoop","publicInstance","callerName","constructor","displayName","warningKey","ReactNoopUpdateQueue","isMounted","enqueueForceUpdate","callback","enqueueReplaceState","completeState","enqueueSetState","partialState","Component","props","context","updater","refs","prototype","isReactComponent","setState","forceUpdate","deprecatedAPIs","replaceState","defineDeprecationWarning","methodName","info","defineProperty","get","fnName","PureComponent","ComponentDummy","pureComponentPrototype","isPureReactComponent","AsyncComponent","asyncComponentPrototype","unstable_isAsyncReactComponent","render","children","ReactCurrentOwner","current","RESERVED_PROPS","key","ref","__self","__source","specialPropKeyWarningShown","specialPropRefWarningShown","hasValidRef","config","call","getter","getOwnPropertyDescriptor","isReactWarning","hasValidKey","defineKeyPropWarningGetter","warnAboutAccessingKey","configurable","defineRefPropWarningGetter","warnAboutAccessingRef","ReactElement","type","self","source","owner","element","$$typeof","_owner","_store","enumerable","writable","value","createElement","propName","childrenLength","childArray","i","defaultProps","cloneAndReplaceKey","oldElement","newKey","newElement","_self","_source","cloneElement","isValidElement","object","ReactDebugCurrentFrame","getCurrentStack","getStackAddendum","impl","SEPARATOR","SUBSEPARATOR","escape","escapeRegex","escaperLookup","escapedString","match","didWarnAboutMaps","userProvidedKeyEscapeRegex","escapeUserProvidedKey","text","POOL_SIZE","traverseContextPool","getPooledTraverseContext","mapResult","keyPrefix","mapFunction","mapContext","traverseContext","pop","result","func","count","releaseTraverseContext","push","traverseAllChildrenImpl","nameSoFar","invokeCallback","getComponentKey","child","nextName","subtreeCount","nextNamePrefix","isArray","iteratorFn","entries","step","ii","next","done","addendum","childrenString","keys","join","traverseAllChildren","component","index","toString","forEachSingleChild","bookKeeping","forEachChildren","forEachFunc","forEachContext","mapSingleChildIntoContext","childKey","mappedChild","mapIntoWithKeyPrefixInternal","thatReturnsArgument","array","prefix","escapedPrefix","mapChildren","countChildren","thatReturnsNull","toArray","onlyChild","describeComponentFrame","ownerName","fileName","lineNumber","getComponentName","fiber","currentlyValidatingElement","propTypesMisspellWarningShown","getDisplayName","VALID_FRAGMENT_PROPS","Map","getDeclarationErrorAddendum","getSourceInfoErrorAddendum","elementProps","ownerHasKeyUseWarning","getCurrentComponentErrorInfo","parentType","parentName","validateExplicitKey","validated","currentComponentErrorInfo","childOwner","validateChildKeys","node","validatePropTypes","componentClass","propTypes","PropTypes","getDefaultProps","isReactClassApproved","validateFragmentProps","fragment","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","_step","has","err","createElementWithValidation","validType","sourceInfo","createFactoryWithValidation","validatedFactory","bind","cloneElementWithValidation","React","Children","map","forEach","only","unstable_AsyncComponent","Fragment","createFactory","version","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","assign","ReactComponentTreeHook","React$2","default","React$3","react","App"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1FA;;;;;;;;AAQA;;AAEA,IAAIA,cAAc,EAAlB;;AAEA,IAAI,kBAAyB,YAA7B,EAA2C;AACzCC,SAAOC,MAAP,CAAcF,WAAd;AACD;;AAEDG,OAAOC,OAAP,GAAiBJ,WAAjB;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;;;;;;;;AAQA;;AAEA;;;;;;;;;;;AAWA,IAAIK,iBAAiB,SAASA,cAAT,CAAwBC,MAAxB,EAAgC,CAAE,CAAvD;;AAEA,IAAI,kBAAyB,YAA7B,EAA2C;AACzCD,mBAAiB,SAASA,cAAT,CAAwBC,MAAxB,EAAgC;AAC/C,QAAIA,WAAWC,SAAf,EAA0B;AACxB,YAAM,IAAIC,KAAJ,CAAU,8CAAV,CAAN;AACD;AACF,GAJD;AAKD;;AAED,SAASC,SAAT,CAAmBC,SAAnB,EAA8BJ,MAA9B,EAAsCK,CAAtC,EAAyCC,CAAzC,EAA4CC,CAA5C,EAA+CC,CAA/C,EAAkDC,CAAlD,EAAqDC,CAArD,EAAwD;AACtDX,iBAAeC,MAAf;;AAEA,MAAI,CAACI,SAAL,EAAgB;AACd,QAAIO,KAAJ;AACA,QAAIX,WAAWC,SAAf,EAA0B;AACxBU,cAAQ,IAAIT,KAAJ,CAAU,uEAAuE,6DAAjF,CAAR;AACD,KAFD,MAEO;AACL,UAAIU,OAAO,CAACP,CAAD,EAAIC,CAAJ,EAAOC,CAAP,EAAUC,CAAV,EAAaC,CAAb,EAAgBC,CAAhB,CAAX;AACA,UAAIG,WAAW,CAAf;AACAF,cAAQ,IAAIT,KAAJ,CAAUF,OAAOc,OAAP,CAAe,KAAf,EAAsB,YAAY;AAClD,eAAOF,KAAKC,UAAL,CAAP;AACD,OAFiB,CAAV,CAAR;AAGAF,YAAMI,IAAN,GAAa,qBAAb;AACD;;AAEDJ,UAAMK,WAAN,GAAoB,CAApB,CAbc,CAaS;AACvB,UAAML,KAAN;AACD;AACF;;AAEDd,OAAOC,OAAP,GAAiBK,SAAjB;;ACpDA;;;;;;;;AAQA;;AAEA,IAAIc,gBAAgBC,QAAQ,iBAAR,CAApB;;AAEA;;;;;;;AAOA,IAAIC,UAAUF,aAAd;;AAEA,IAAI,kBAAyB,YAA7B,EAA2C;AACzC,MAAIG,eAAe,SAASA,YAAT,CAAsBpB,MAAtB,EAA8B;AAC/C,SAAK,IAAIqB,OAAOC,UAAUC,MAArB,EAA6BX,OAAOY,MAAMH,OAAO,CAAP,GAAWA,OAAO,CAAlB,GAAsB,CAA5B,CAApC,EAAoEI,OAAO,CAAhF,EAAmFA,OAAOJ,IAA1F,EAAgGI,MAAhG,EAAwG;AACtGb,WAAKa,OAAO,CAAZ,IAAiBH,UAAUG,IAAV,CAAjB;AACD;;AAED,QAAIZ,WAAW,CAAf;AACA,QAAIa,UAAU,cAAc1B,OAAOc,OAAP,CAAe,KAAf,EAAsB,YAAY;AAC5D,aAAOF,KAAKC,UAAL,CAAP;AACD,KAF2B,CAA5B;AAGA,QAAI,OAAOc,OAAP,KAAmB,WAAvB,EAAoC;AAClCA,cAAQhB,KAAR,CAAce,OAAd;AACD;AACD,QAAI;AACF;AACA;AACA;AACA,YAAM,IAAIxB,KAAJ,CAAUwB,OAAV,CAAN;AACD,KALD,CAKE,OAAOE,CAAP,EAAU,CAAE;AACf,GAlBD;;AAoBAT,YAAU,SAASA,OAAT,CAAiBf,SAAjB,EAA4BJ,MAA5B,EAAoC;AAC5C,QAAIA,WAAWC,SAAf,EAA0B;AACxB,YAAM,IAAIC,KAAJ,CAAU,8DAA8D,kBAAxE,CAAN;AACD;;AAED,QAAIF,OAAO6B,OAAP,CAAe,6BAAf,MAAkD,CAAtD,EAAyD;AACvD,aADuD,CAC/C;AACT;;AAED,QAAI,CAACzB,SAAL,EAAgB;AACd,WAAK,IAAI0B,QAAQR,UAAUC,MAAtB,EAA8BX,OAAOY,MAAMM,QAAQ,CAAR,GAAYA,QAAQ,CAApB,GAAwB,CAA9B,CAArC,EAAuEC,QAAQ,CAApF,EAAuFA,QAAQD,KAA/F,EAAsGC,OAAtG,EAA+G;AAC7GnB,aAAKmB,QAAQ,CAAb,IAAkBT,UAAUS,KAAV,CAAlB;AACD;;AAEDX,mBAAaY,KAAb,CAAmB/B,SAAnB,EAA8B,CAACD,MAAD,EAASiC,MAAT,CAAgBrB,IAAhB,CAA9B;AACD;AACF,GAhBD;AAiBD;;AAEDf,OAAOC,OAAP,GAAiBqB,OAAjB;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;;;;;;;AAOA;;AAEA,IAAI,kBAAyB,YAA7B,EAA2C;AACzC,MAAIhB,YAAYe,QAAQ,oBAAR,CAAhB;AACA,MAAIC,UAAUD,QAAQ,kBAAR,CAAd;AACA,MAAIgB,uBAAuBhB,QAAQ,4BAAR,CAA3B;AACA,MAAIiB,qBAAqB,EAAzB;AACD;;AAED;;;;;;;;;;;AAWA,SAASC,cAAT,CAAwBC,SAAxB,EAAmCC,MAAnC,EAA2CC,QAA3C,EAAqDC,aAArD,EAAoEC,QAApE,EAA8E;AAC5E,MAAI,kBAAyB,YAA7B,EAA2C;AACzC,SAAK,IAAIC,YAAT,IAAyBL,SAAzB,EAAoC;AAClC,UAAIA,UAAUM,cAAV,CAAyBD,YAAzB,CAAJ,EAA4C;AAC1C,YAAI/B,KAAJ;AACA;AACA;AACA;AACA,YAAI;AACF;AACA;AACAR,oBAAU,OAAOkC,UAAUK,YAAV,CAAP,KAAmC,UAA7C,EAAyD,sEAAsE,8CAA/H,EAA+KF,iBAAiB,aAAhM,EAA+MD,QAA/M,EAAyNG,YAAzN,EAAuO,OAAOL,UAAUK,YAAV,CAA9O;AACA/B,kBAAQ0B,UAAUK,YAAV,EAAwBJ,MAAxB,EAAgCI,YAAhC,EAA8CF,aAA9C,EAA6DD,QAA7D,EAAuE,IAAvE,EAA6EL,oBAA7E,CAAR;AACD,SALD,CAKE,OAAOU,EAAP,EAAW;AACXjC,kBAAQiC,EAAR;AACD;AACDzB,gBAAQ,CAACR,KAAD,IAAUA,iBAAiBT,KAAnC,EAA0C,oEAAoE,+DAApE,GAAsI,iEAAtI,GAA0M,gEAA1M,GAA6Q,iCAAvT,EAA0VsC,iBAAiB,aAA3W,EAA0XD,QAA1X,EAAoYG,YAApY,EAAkZ,OAAO/B,KAAzZ;AACA,YAAIA,iBAAiBT,KAAjB,IAA0B,EAAES,MAAMe,OAAN,IAAiBS,kBAAnB,CAA9B,EAAsE;AACpE;AACA;AACAA,6BAAmBxB,MAAMe,OAAzB,IAAoC,IAApC;;AAEA,cAAImB,QAAQJ,WAAWA,UAAX,GAAwB,EAApC;;AAEAtB,kBAAQ,KAAR,EAAe,sBAAf,EAAuCoB,QAAvC,EAAiD5B,MAAMe,OAAvD,EAAgEmB,SAAS,IAAT,GAAgBA,KAAhB,GAAwB,EAAxF;AACD;AACF;AACF;AACF;AACF;;AAEDhD,OAAOC,OAAP,GAAiBsC,cAAjB;;AC1DA;;;;;;;;;AASA;;AAIA,IAAI,kBAAyB,YAA7B,EAA2C;AACzC,GAAC,YAAW;AACd;;AAEA,QAAIU,UAAU5B,QAAQ,eAAR,CAAd;AACA,QAAIxB,cAAcwB,QAAQ,sBAAR,CAAlB;AACA,QAAIf,YAAYe,QAAQ,oBAAR,CAAhB;AACA,QAAIC,UAAUD,QAAQ,kBAAR,CAAd;AACA,QAAID,gBAAgBC,QAAQ,wBAAR,CAApB;AACA,QAAIkB,iBAAiBlB,QAAQ,2BAAR,CAArB;;AAEA;;AAEA,QAAI6B,eAAe,QAAnB;;AAEA;AACA;AACA,QAAIC,YAAY,OAAOC,MAAP,KAAkB,UAAlB,IAAgCA,OAAO,KAAP,CAAhD;;AAEA,QAAIC,qBAAqBF,YAAYC,OAAO,KAAP,EAAc,eAAd,CAAZ,GAA6C,MAAtE;AACA,QAAIE,kBAAkBH,YAAYC,OAAO,KAAP,EAAc,YAAd,CAAZ,GAA0C,MAAhE;AACA,QAAIG,oBAAoBJ,YAAYC,OAAO,KAAP,EAAc,cAAd,CAAZ,GAA4C,MAApE;AACA,QAAII,oBAAoBL,YAAYC,OAAO,KAAP,EAAc,cAAd,CAAZ,GAA4C,MAApE;AACA,QAAIK,sBAAsBN,YAAYC,OAAO,KAAP,EAAc,gBAAd,CAAZ,GAA8C,MAAxE;;AAEA,QAAIM,wBAAwB,OAAON,MAAP,KAAkB,UAAlB,IAAgCA,OAAOO,QAAnE;AACA,QAAIC,uBAAuB,YAA3B;;AAEA,aAASC,aAAT,CAAuBC,aAAvB,EAAsC;AACpC,UAAIA,kBAAkB,IAAlB,IAA0B,OAAOA,aAAP,KAAyB,WAAvD,EAAoE;AAClE,eAAO,IAAP;AACD;AACD,UAAIC,gBAAgBL,yBAAyBI,cAAcJ,qBAAd,CAAzB,IAAiEI,cAAcF,oBAAd,CAArF;AACA,UAAI,OAAOG,aAAP,KAAyB,UAA7B,EAAyC;AACvC,eAAOA,aAAP;AACD;AACD,aAAO,IAAP;AACD;;AAED;;;;;;;AAOA;;;;;;;;;;;;;;AAcA,QAAIC,qBAAqB,YAAY,CAAE,CAAvC;;AAEA;AACE,UAAIzC,eAAe,UAAUpB,MAAV,EAAkB;AACnC,aAAK,IAAIqB,OAAOC,UAAUC,MAArB,EAA6BX,OAAOY,MAAMH,OAAO,CAAP,GAAWA,OAAO,CAAlB,GAAsB,CAA5B,CAApC,EAAoEI,OAAO,CAAhF,EAAmFA,OAAOJ,IAA1F,EAAgGI,MAAhG,EAAwG;AACtGb,eAAKa,OAAO,CAAZ,IAAiBH,UAAUG,IAAV,CAAjB;AACD;;AAED,YAAIZ,WAAW,CAAf;AACA,YAAIa,UAAU,cAAc1B,OAAOc,OAAP,CAAe,KAAf,EAAsB,YAAY;AAC5D,iBAAOF,KAAKC,UAAL,CAAP;AACD,SAF2B,CAA5B;AAGA,YAAI,OAAOc,OAAP,KAAmB,WAAvB,EAAoC;AAClCA,kBAAQmC,IAAR,CAAapC,OAAb;AACD;AACD,YAAI;AACF;AACA;AACA;AACA,gBAAM,IAAIxB,KAAJ,CAAUwB,OAAV,CAAN;AACD,SALD,CAKE,OAAOE,CAAP,EAAU,CAAE;AACf,OAlBD;;AAoBAiC,2BAAqB,UAAUzD,SAAV,EAAqBJ,MAArB,EAA6B;AAChD,YAAIA,WAAWC,SAAf,EAA0B;AACxB,gBAAM,IAAIC,KAAJ,CAAU,8DAA8D,kBAAxE,CAAN;AACD;AACD,YAAI,CAACE,SAAL,EAAgB;AACd,eAAK,IAAI0B,QAAQR,UAAUC,MAAtB,EAA8BX,OAAOY,MAAMM,QAAQ,CAAR,GAAYA,QAAQ,CAApB,GAAwB,CAA9B,CAArC,EAAuEC,QAAQ,CAApF,EAAuFA,QAAQD,KAA/F,EAAsGC,OAAtG,EAA+G;AAC7GnB,iBAAKmB,QAAQ,CAAb,IAAkBT,UAAUS,KAAV,CAAlB;AACD;;AAEDX,uBAAaY,KAAb,CAAmB/B,SAAnB,EAA8B,CAACD,MAAD,EAASiC,MAAT,CAAgBrB,IAAhB,CAA9B;AACD;AACF,OAXD;AAYD;;AAED,QAAImD,uBAAuBF,kBAA3B;;AAEA,QAAIG,0CAA0C,EAA9C;;AAEA,aAASC,QAAT,CAAkBC,cAAlB,EAAkCC,UAAlC,EAA8C;AAC5C;AACE,YAAIC,cAAcF,eAAeE,WAAjC;AACA,YAAI5B,gBAAgB4B,gBAAgBA,YAAYC,WAAZ,IAA2BD,YAAYrD,IAAvD,KAAgE,YAApF;AACA,YAAIuD,aAAa9B,gBAAgB,GAAhB,GAAsB2B,UAAvC;AACA,YAAIH,wCAAwCM,UAAxC,CAAJ,EAAyD;AACvD;AACD;AACDnD,gBAAQ,KAAR,EAAe,+DAA+D,gEAA/D,GAAkI,iEAAjJ,EAAoNgD,UAApN,EAAgOA,UAAhO,EAA4O3B,aAA5O;AACAwB,gDAAwCM,UAAxC,IAAsD,IAAtD;AACD;AACF;;AAED;;;AAGA,QAAIC,uBAAuB;AACzB;;;;;;;AAOAC,iBAAW,UAAUN,cAAV,EAA0B;AACnC,eAAO,KAAP;AACD,OAVwB;;AAYzB;;;;;;;;;;;;;;;AAeAO,0BAAoB,UAAUP,cAAV,EAA0BQ,QAA1B,EAAoCP,UAApC,EAAgD;AAClEF,iBAASC,cAAT,EAAyB,aAAzB;AACD,OA7BwB;;AA+BzB;;;;;;;;;;;;;AAaAS,2BAAqB,UAAUT,cAAV,EAA0BU,aAA1B,EAAyCF,QAAzC,EAAmDP,UAAnD,EAA+D;AAClFF,iBAASC,cAAT,EAAyB,cAAzB;AACD,OA9CwB;;AAgDzB;;;;;;;;;;;;AAYAW,uBAAiB,UAAUX,cAAV,EAA0BY,YAA1B,EAAwCJ,QAAxC,EAAkDP,UAAlD,EAA8D;AAC7EF,iBAASC,cAAT,EAAyB,UAAzB;AACD;AA9DwB,KAA3B;;AAiEA;;;AAGA,aAASa,SAAT,CAAmBC,KAAnB,EAA0BC,OAA1B,EAAmCC,OAAnC,EAA4C;AAC1C,WAAKF,KAAL,GAAaA,KAAb;AACA,WAAKC,OAAL,GAAeA,OAAf;AACA,WAAKE,IAAL,GAAYzF,WAAZ;AACA;AACA;AACA,WAAKwF,OAAL,GAAeA,WAAWX,oBAA1B;AACD;;AAEDQ,cAAUK,SAAV,CAAoBC,gBAApB,GAAuC,EAAvC;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBAN,cAAUK,SAAV,CAAoBE,QAApB,GAA+B,UAAUR,YAAV,EAAwBJ,QAAxB,EAAkC;AAC/D,QAAE,OAAOI,YAAP,KAAwB,QAAxB,IAAoC,OAAOA,YAAP,KAAwB,UAA5D,IAA0EA,gBAAgB,IAA5F,IAAoG3E,UAAU,KAAV,EAAiB,uHAAjB,CAApG,GAAgP,KAAK,CAArP;AACA,WAAK+E,OAAL,CAAaL,eAAb,CAA6B,IAA7B,EAAmCC,YAAnC,EAAiDJ,QAAjD,EAA2D,UAA3D;AACD,KAHD;;AAKA;;;;;;;;;;;;;;AAcAK,cAAUK,SAAV,CAAoBG,WAApB,GAAkC,UAAUb,QAAV,EAAoB;AACpD,WAAKQ,OAAL,CAAaT,kBAAb,CAAgC,IAAhC,EAAsCC,QAAtC,EAAgD,aAAhD;AACD,KAFD;;AAIA;;;;;AAKA;AACE,UAAIc,iBAAiB;AACnBhB,mBAAW,CAAC,WAAD,EAAc,0EAA0E,+CAAxF,CADQ;AAEnBiB,sBAAc,CAAC,cAAD,EAAiB,qDAAqD,iDAAtE;AAFK,OAArB;AAIA,UAAIC,2BAA2B,UAAUC,UAAV,EAAsBC,IAAtB,EAA4B;AACzDjG,eAAOkG,cAAP,CAAsBd,UAAUK,SAAhC,EAA2CO,UAA3C,EAAuD;AACrDG,eAAK,YAAY;AACf/B,iCAAqB,KAArB,EAA4B,6DAA5B,EAA2F6B,KAAK,CAAL,CAA3F,EAAoGA,KAAK,CAAL,CAApG;AACA,mBAAO3F,SAAP;AACD;AAJoD,SAAvD;AAMD,OAPD;AAQA,WAAK,IAAI8F,MAAT,IAAmBP,cAAnB,EAAmC;AACjC,YAAIA,eAAe7C,cAAf,CAA8BoD,MAA9B,CAAJ,EAA2C;AACzCL,mCAAyBK,MAAzB,EAAiCP,eAAeO,MAAf,CAAjC;AACD;AACF;AACF;;AAED;;;AAGA,aAASC,aAAT,CAAuBhB,KAAvB,EAA8BC,OAA9B,EAAuCC,OAAvC,EAAgD;AAC9C;AACA,WAAKF,KAAL,GAAaA,KAAb;AACA,WAAKC,OAAL,GAAeA,OAAf;AACA,WAAKE,IAAL,GAAYzF,WAAZ;AACA;AACA;AACA,WAAKwF,OAAL,GAAeA,WAAWX,oBAA1B;AACD;;AAED,aAAS0B,cAAT,GAA0B,CAAE;AAC5BA,mBAAeb,SAAf,GAA2BL,UAAUK,SAArC;AACA,QAAIc,yBAAyBF,cAAcZ,SAAd,GAA0B,IAAIa,cAAJ,EAAvD;AACAC,2BAAuB9B,WAAvB,GAAqC4B,aAArC;AACA;AACAlD,YAAQoD,sBAAR,EAAgCnB,UAAUK,SAA1C;AACAc,2BAAuBC,oBAAvB,GAA8C,IAA9C;;AAEA,aAASC,cAAT,CAAwBpB,KAAxB,EAA+BC,OAA/B,EAAwCC,OAAxC,EAAiD;AAC/C;AACA,WAAKF,KAAL,GAAaA,KAAb;AACA,WAAKC,OAAL,GAAeA,OAAf;AACA,WAAKE,IAAL,GAAYzF,WAAZ;AACA;AACA;AACA,WAAKwF,OAAL,GAAeA,WAAWX,oBAA1B;AACD;;AAED,QAAI8B,0BAA0BD,eAAehB,SAAf,GAA2B,IAAIa,cAAJ,EAAzD;AACAI,4BAAwBjC,WAAxB,GAAsCgC,cAAtC;AACA;AACAtD,YAAQuD,uBAAR,EAAiCtB,UAAUK,SAA3C;AACAiB,4BAAwBC,8BAAxB,GAAyD,IAAzD;AACAD,4BAAwBE,MAAxB,GAAiC,YAAY;AAC3C,aAAO,KAAKvB,KAAL,CAAWwB,QAAlB;AACD,KAFD;;AAIA;;;;;;AAMA,QAAIC,oBAAoB;AACtB;;;;AAIAC,eAAS;AALa,KAAxB;;AAQA,QAAI/D,iBAAiBhD,OAAOyF,SAAP,CAAiBzC,cAAtC;;AAEA,QAAIgE,iBAAiB;AACnBC,WAAK,IADc;AAEnBC,WAAK,IAFc;AAGnBC,cAAQ,IAHW;AAInBC,gBAAU;AAJS,KAArB;;AAOA,QAAIC,0BAAJ;AACA,QAAIC,0BAAJ;;AAEA,aAASC,WAAT,CAAqBC,MAArB,EAA6B;AAC3B;AACE,YAAIxE,eAAeyE,IAAf,CAAoBD,MAApB,EAA4B,KAA5B,CAAJ,EAAwC;AACtC,cAAIE,SAAS1H,OAAO2H,wBAAP,CAAgCH,MAAhC,EAAwC,KAAxC,EAA+CrB,GAA5D;AACA,cAAIuB,UAAUA,OAAOE,cAArB,EAAqC;AACnC,mBAAO,KAAP;AACD;AACF;AACF;AACD,aAAOJ,OAAON,GAAP,KAAe5G,SAAtB;AACD;;AAED,aAASuH,WAAT,CAAqBL,MAArB,EAA6B;AAC3B;AACE,YAAIxE,eAAeyE,IAAf,CAAoBD,MAApB,EAA4B,KAA5B,CAAJ,EAAwC;AACtC,cAAIE,SAAS1H,OAAO2H,wBAAP,CAAgCH,MAAhC,EAAwC,KAAxC,EAA+CrB,GAA5D;AACA,cAAIuB,UAAUA,OAAOE,cAArB,EAAqC;AACnC,mBAAO,KAAP;AACD;AACF;AACF;AACD,aAAOJ,OAAOP,GAAP,KAAe3G,SAAtB;AACD;;AAED,aAASwH,0BAAT,CAAoCzC,KAApC,EAA2CX,WAA3C,EAAwD;AACtD,UAAIqD,wBAAwB,YAAY;AACtC,YAAI,CAACV,0BAAL,EAAiC;AAC/BA,uCAA6B,IAA7B;AACA7F,kBAAQ,KAAR,EAAe,8DAA8D,gEAA9D,GAAiI,sEAAjI,GAA0M,2CAAzN,EAAsQkD,WAAtQ;AACD;AACF,OALD;AAMAqD,4BAAsBH,cAAtB,GAAuC,IAAvC;AACA5H,aAAOkG,cAAP,CAAsBb,KAAtB,EAA6B,KAA7B,EAAoC;AAClCc,aAAK4B,qBAD6B;AAElCC,sBAAc;AAFoB,OAApC;AAID;;AAED,aAASC,0BAAT,CAAoC5C,KAApC,EAA2CX,WAA3C,EAAwD;AACtD,UAAIwD,wBAAwB,YAAY;AACtC,YAAI,CAACZ,0BAAL,EAAiC;AAC/BA,uCAA6B,IAA7B;AACA9F,kBAAQ,KAAR,EAAe,8DAA8D,gEAA9D,GAAiI,sEAAjI,GAA0M,2CAAzN,EAAsQkD,WAAtQ;AACD;AACF,OALD;AAMAwD,4BAAsBN,cAAtB,GAAuC,IAAvC;AACA5H,aAAOkG,cAAP,CAAsBb,KAAtB,EAA6B,KAA7B,EAAoC;AAClCc,aAAK+B,qBAD6B;AAElCF,sBAAc;AAFoB,OAApC;AAID;;AAED;;;;;;;;;;;;;;;;;;;;AAoBA,QAAIG,eAAe,UAAUC,IAAV,EAAgBnB,GAAhB,EAAqBC,GAArB,EAA0BmB,IAA1B,EAAgCC,MAAhC,EAAwCC,KAAxC,EAA+ClD,KAA/C,EAAsD;AACvE,UAAImD,UAAU;AACZ;AACAC,kBAAUlF,kBAFE;;AAIZ;AACA6E,cAAMA,IALM;AAMZnB,aAAKA,GANO;AAOZC,aAAKA,GAPO;AAQZ7B,eAAOA,KARK;;AAUZ;AACAqD,gBAAQH;AAXI,OAAd;;AAcA;AACE;AACA;AACA;AACA;AACAC,gBAAQG,MAAR,GAAiB,EAAjB;;AAEA;AACA;AACA;AACA;AACA3I,eAAOkG,cAAP,CAAsBsC,QAAQG,MAA9B,EAAsC,WAAtC,EAAmD;AACjDX,wBAAc,KADmC;AAEjDY,sBAAY,KAFqC;AAGjDC,oBAAU,IAHuC;AAIjDC,iBAAO;AAJ0C,SAAnD;AAMA;AACA9I,eAAOkG,cAAP,CAAsBsC,OAAtB,EAA+B,OAA/B,EAAwC;AACtCR,wBAAc,KADwB;AAEtCY,sBAAY,KAF0B;AAGtCC,oBAAU,KAH4B;AAItCC,iBAAOT;AAJ+B,SAAxC;AAMA;AACA;AACArI,eAAOkG,cAAP,CAAsBsC,OAAtB,EAA+B,SAA/B,EAA0C;AACxCR,wBAAc,KAD0B;AAExCY,sBAAY,KAF4B;AAGxCC,oBAAU,KAH8B;AAIxCC,iBAAOR;AAJiC,SAA1C;AAMA,YAAItI,OAAOC,MAAX,EAAmB;AACjBD,iBAAOC,MAAP,CAAcuI,QAAQnD,KAAtB;AACArF,iBAAOC,MAAP,CAAcuI,OAAd;AACD;AACF;;AAED,aAAOA,OAAP;AACD,KAtDD;;AAwDA;;;;AAIA,aAASO,aAAT,CAAuBX,IAAvB,EAA6BZ,MAA7B,EAAqCX,QAArC,EAA+C;AAC7C,UAAImC,QAAJ;;AAEA;AACA,UAAI3D,QAAQ,EAAZ;;AAEA,UAAI4B,MAAM,IAAV;AACA,UAAIC,MAAM,IAAV;AACA,UAAImB,OAAO,IAAX;AACA,UAAIC,SAAS,IAAb;;AAEA,UAAId,UAAU,IAAd,EAAoB;AAClB,YAAID,YAAYC,MAAZ,CAAJ,EAAyB;AACvBN,gBAAMM,OAAON,GAAb;AACD;AACD,YAAIW,YAAYL,MAAZ,CAAJ,EAAyB;AACvBP,gBAAM,KAAKO,OAAOP,GAAlB;AACD;;AAEDoB,eAAOb,OAAOL,MAAP,KAAkB7G,SAAlB,GAA8B,IAA9B,GAAqCkH,OAAOL,MAAnD;AACAmB,iBAASd,OAAOJ,QAAP,KAAoB9G,SAApB,GAAgC,IAAhC,GAAuCkH,OAAOJ,QAAvD;AACA;AACA,aAAK4B,QAAL,IAAiBxB,MAAjB,EAAyB;AACvB,cAAIxE,eAAeyE,IAAf,CAAoBD,MAApB,EAA4BwB,QAA5B,KAAyC,CAAChC,eAAehE,cAAf,CAA8BgG,QAA9B,CAA9C,EAAuF;AACrF3D,kBAAM2D,QAAN,IAAkBxB,OAAOwB,QAAP,CAAlB;AACD;AACF;AACF;;AAED;AACA;AACA,UAAIC,iBAAiBtH,UAAUC,MAAV,GAAmB,CAAxC;AACA,UAAIqH,mBAAmB,CAAvB,EAA0B;AACxB5D,cAAMwB,QAAN,GAAiBA,QAAjB;AACD,OAFD,MAEO,IAAIoC,iBAAiB,CAArB,EAAwB;AAC7B,YAAIC,aAAarH,MAAMoH,cAAN,CAAjB;AACA,aAAK,IAAIE,IAAI,CAAb,EAAgBA,IAAIF,cAApB,EAAoCE,GAApC,EAAyC;AACvCD,qBAAWC,CAAX,IAAgBxH,UAAUwH,IAAI,CAAd,CAAhB;AACD;AACD;AACE,cAAInJ,OAAOC,MAAX,EAAmB;AACjBD,mBAAOC,MAAP,CAAciJ,UAAd;AACD;AACF;AACD7D,cAAMwB,QAAN,GAAiBqC,UAAjB;AACD;;AAED;AACA,UAAId,QAAQA,KAAKgB,YAAjB,EAA+B;AAC7B,YAAIA,eAAehB,KAAKgB,YAAxB;AACA,aAAKJ,QAAL,IAAiBI,YAAjB,EAA+B;AAC7B,cAAI/D,MAAM2D,QAAN,MAAoB1I,SAAxB,EAAmC;AACjC+E,kBAAM2D,QAAN,IAAkBI,aAAaJ,QAAb,CAAlB;AACD;AACF;AACF;AACD;AACE,YAAI/B,OAAOC,GAAX,EAAgB;AACd,cAAI,OAAO7B,MAAMoD,QAAb,KAA0B,WAA1B,IAAyCpD,MAAMoD,QAAN,KAAmBlF,kBAAhE,EAAoF;AAClF,gBAAImB,cAAc,OAAO0D,IAAP,KAAgB,UAAhB,GAA6BA,KAAK1D,WAAL,IAAoB0D,KAAKhH,IAAzB,IAAiC,SAA9D,GAA0EgH,IAA5F;AACA,gBAAInB,GAAJ,EAAS;AACPa,yCAA2BzC,KAA3B,EAAkCX,WAAlC;AACD;AACD,gBAAIwC,GAAJ,EAAS;AACPe,yCAA2B5C,KAA3B,EAAkCX,WAAlC;AACD;AACF;AACF;AACF;AACD,aAAOyD,aAAaC,IAAb,EAAmBnB,GAAnB,EAAwBC,GAAxB,EAA6BmB,IAA7B,EAAmCC,MAAnC,EAA2CxB,kBAAkBC,OAA7D,EAAsE1B,KAAtE,CAAP;AACD;;AAED;;;;;AAMA,aAASgE,kBAAT,CAA4BC,UAA5B,EAAwCC,MAAxC,EAAgD;AAC9C,UAAIC,aAAarB,aAAamB,WAAWlB,IAAxB,EAA8BmB,MAA9B,EAAsCD,WAAWpC,GAAjD,EAAsDoC,WAAWG,KAAjE,EAAwEH,WAAWI,OAAnF,EAA4FJ,WAAWZ,MAAvG,EAA+GY,WAAWjE,KAA1H,CAAjB;;AAEA,aAAOmE,UAAP;AACD;;AAED;;;;AAIA,aAASG,YAAT,CAAsBnB,OAAtB,EAA+BhB,MAA/B,EAAuCX,QAAvC,EAAiD;AAC/C,UAAImC,QAAJ;;AAEA;AACA,UAAI3D,QAAQlC,QAAQ,EAAR,EAAYqF,QAAQnD,KAApB,CAAZ;;AAEA;AACA,UAAI4B,MAAMuB,QAAQvB,GAAlB;AACA,UAAIC,MAAMsB,QAAQtB,GAAlB;AACA;AACA,UAAImB,OAAOG,QAAQiB,KAAnB;AACA;AACA;AACA;AACA,UAAInB,SAASE,QAAQkB,OAArB;;AAEA;AACA,UAAInB,QAAQC,QAAQE,MAApB;;AAEA,UAAIlB,UAAU,IAAd,EAAoB;AAClB,YAAID,YAAYC,MAAZ,CAAJ,EAAyB;AACvB;AACAN,gBAAMM,OAAON,GAAb;AACAqB,kBAAQzB,kBAAkBC,OAA1B;AACD;AACD,YAAIc,YAAYL,MAAZ,CAAJ,EAAyB;AACvBP,gBAAM,KAAKO,OAAOP,GAAlB;AACD;;AAED;AACA,YAAImC,YAAJ;AACA,YAAIZ,QAAQJ,IAAR,IAAgBI,QAAQJ,IAAR,CAAagB,YAAjC,EAA+C;AAC7CA,yBAAeZ,QAAQJ,IAAR,CAAagB,YAA5B;AACD;AACD,aAAKJ,QAAL,IAAiBxB,MAAjB,EAAyB;AACvB,cAAIxE,eAAeyE,IAAf,CAAoBD,MAApB,EAA4BwB,QAA5B,KAAyC,CAAChC,eAAehE,cAAf,CAA8BgG,QAA9B,CAA9C,EAAuF;AACrF,gBAAIxB,OAAOwB,QAAP,MAAqB1I,SAArB,IAAkC8I,iBAAiB9I,SAAvD,EAAkE;AAChE;AACA+E,oBAAM2D,QAAN,IAAkBI,aAAaJ,QAAb,CAAlB;AACD,aAHD,MAGO;AACL3D,oBAAM2D,QAAN,IAAkBxB,OAAOwB,QAAP,CAAlB;AACD;AACF;AACF;AACF;;AAED;AACA;AACA,UAAIC,iBAAiBtH,UAAUC,MAAV,GAAmB,CAAxC;AACA,UAAIqH,mBAAmB,CAAvB,EAA0B;AACxB5D,cAAMwB,QAAN,GAAiBA,QAAjB;AACD,OAFD,MAEO,IAAIoC,iBAAiB,CAArB,EAAwB;AAC7B,YAAIC,aAAarH,MAAMoH,cAAN,CAAjB;AACA,aAAK,IAAIE,IAAI,CAAb,EAAgBA,IAAIF,cAApB,EAAoCE,GAApC,EAAyC;AACvCD,qBAAWC,CAAX,IAAgBxH,UAAUwH,IAAI,CAAd,CAAhB;AACD;AACD9D,cAAMwB,QAAN,GAAiBqC,UAAjB;AACD;;AAED,aAAOf,aAAaK,QAAQJ,IAArB,EAA2BnB,GAA3B,EAAgCC,GAAhC,EAAqCmB,IAArC,EAA2CC,MAA3C,EAAmDC,KAAnD,EAA0DlD,KAA1D,CAAP;AACD;;AAED;;;;;;;AAOA,aAASuE,cAAT,CAAwBC,MAAxB,EAAgC;AAC9B,aAAO,OAAOA,MAAP,KAAkB,QAAlB,IAA8BA,WAAW,IAAzC,IAAiDA,OAAOpB,QAAP,KAAoBlF,kBAA5E;AACD;;AAED,QAAIuG,yBAAyB,EAA7B;;AAEA;AACE;AACAA,6BAAuBC,eAAvB,GAAyC,IAAzC;;AAEAD,6BAAuBE,gBAAvB,GAA0C,YAAY;AACpD,YAAIC,OAAOH,uBAAuBC,eAAlC;AACA,YAAIE,IAAJ,EAAU;AACR,iBAAOA,MAAP;AACD;AACD,eAAO,IAAP;AACD,OAND;AAOD;;AAED,QAAIC,YAAY,GAAhB;AACA,QAAIC,eAAe,GAAnB;;AAEA;;;;;;AAMA,aAASC,MAAT,CAAgBnD,GAAhB,EAAqB;AACnB,UAAIoD,cAAc,OAAlB;AACA,UAAIC,gBAAgB;AAClB,aAAK,IADa;AAElB,aAAK;AAFa,OAApB;AAIA,UAAIC,gBAAgB,CAAC,KAAKtD,GAAN,EAAW9F,OAAX,CAAmBkJ,WAAnB,EAAgC,UAAUG,KAAV,EAAiB;AACnE,eAAOF,cAAcE,KAAd,CAAP;AACD,OAFmB,CAApB;;AAIA,aAAO,MAAMD,aAAb;AACD;;AAED;;;;;AAKA,QAAIE,mBAAmB,KAAvB;;AAEA,QAAIC,6BAA6B,MAAjC;AACA,aAASC,qBAAT,CAA+BC,IAA/B,EAAqC;AACnC,aAAO,CAAC,KAAKA,IAAN,EAAYzJ,OAAZ,CAAoBuJ,0BAApB,EAAgD,KAAhD,CAAP;AACD;;AAED,QAAIG,YAAY,EAAhB;AACA,QAAIC,sBAAsB,EAA1B;AACA,aAASC,wBAAT,CAAkCC,SAAlC,EAA6CC,SAA7C,EAAwDC,WAAxD,EAAqEC,UAArE,EAAiF;AAC/E,UAAIL,oBAAoBlJ,MAAxB,EAAgC;AAC9B,YAAIwJ,kBAAkBN,oBAAoBO,GAApB,EAAtB;AACAD,wBAAgBE,MAAhB,GAAyBN,SAAzB;AACAI,wBAAgBH,SAAhB,GAA4BA,SAA5B;AACAG,wBAAgBG,IAAhB,GAAuBL,WAAvB;AACAE,wBAAgB9F,OAAhB,GAA0B6F,UAA1B;AACAC,wBAAgBI,KAAhB,GAAwB,CAAxB;AACA,eAAOJ,eAAP;AACD,OARD,MAQO;AACL,eAAO;AACLE,kBAAQN,SADH;AAELC,qBAAWA,SAFN;AAGLM,gBAAML,WAHD;AAIL5F,mBAAS6F,UAJJ;AAKLK,iBAAO;AALF,SAAP;AAOD;AACF;;AAED,aAASC,sBAAT,CAAgCL,eAAhC,EAAiD;AAC/CA,sBAAgBE,MAAhB,GAAyB,IAAzB;AACAF,sBAAgBH,SAAhB,GAA4B,IAA5B;AACAG,sBAAgBG,IAAhB,GAAuB,IAAvB;AACAH,sBAAgB9F,OAAhB,GAA0B,IAA1B;AACA8F,sBAAgBI,KAAhB,GAAwB,CAAxB;AACA,UAAIV,oBAAoBlJ,MAApB,GAA6BiJ,SAAjC,EAA4C;AAC1CC,4BAAoBY,IAApB,CAAyBN,eAAzB;AACD;AACF;;AAED;;;;;;;;AAQA,aAASO,uBAAT,CAAiC9E,QAAjC,EAA2C+E,SAA3C,EAAsD7G,QAAtD,EAAgEqG,eAAhE,EAAiF;AAC/E,UAAIhD,OAAO,OAAOvB,QAAlB;;AAEA,UAAIuB,SAAS,WAAT,IAAwBA,SAAS,SAArC,EAAgD;AAC9C;AACAvB,mBAAW,IAAX;AACD;;AAED,UAAIgF,iBAAiB,KAArB;;AAEA,UAAIhF,aAAa,IAAjB,EAAuB;AACrBgF,yBAAiB,IAAjB;AACD,OAFD,MAEO;AACL,gBAAQzD,IAAR;AACE,eAAK,QAAL;AACA,eAAK,QAAL;AACEyD,6BAAiB,IAAjB;AACA;AACF,eAAK,QAAL;AACE,oBAAQhF,SAAS4B,QAAjB;AACE,mBAAKlF,kBAAL;AACA,mBAAKC,eAAL;AACA,mBAAKC,iBAAL;AACA,mBAAKC,iBAAL;AACEmI,iCAAiB,IAAjB;AALJ;AANJ;AAcD;;AAED,UAAIA,cAAJ,EAAoB;AAClB9G,iBAASqG,eAAT,EAA0BvE,QAA1B;AACA;AACA;AACA+E,sBAAc,EAAd,GAAmB1B,YAAY4B,gBAAgBjF,QAAhB,EAA0B,CAA1B,CAA/B,GAA8D+E,SAH9D;AAIA,eAAO,CAAP;AACD;;AAED,UAAIG,KAAJ;AACA,UAAIC,QAAJ;AACA,UAAIC,eAAe,CAAnB,CAvC+E,CAuCzD;AACtB,UAAIC,iBAAiBN,cAAc,EAAd,GAAmB1B,SAAnB,GAA+B0B,YAAYzB,YAAhE;;AAEA,UAAItI,MAAMsK,OAAN,CAActF,QAAd,CAAJ,EAA6B;AAC3B,aAAK,IAAIsC,IAAI,CAAb,EAAgBA,IAAItC,SAASjF,MAA7B,EAAqCuH,GAArC,EAA0C;AACxC4C,kBAAQlF,SAASsC,CAAT,CAAR;AACA6C,qBAAWE,iBAAiBJ,gBAAgBC,KAAhB,EAAuB5C,CAAvB,CAA5B;AACA8C,0BAAgBN,wBAAwBI,KAAxB,EAA+BC,QAA/B,EAAyCjH,QAAzC,EAAmDqG,eAAnD,CAAhB;AACD;AACF,OAND,MAMO;AACL,YAAIgB,aAAarI,cAAc8C,QAAd,CAAjB;AACA,YAAI,OAAOuF,UAAP,KAAsB,UAA1B,EAAsC;AACpC;AACE;AACA,gBAAIA,eAAevF,SAASwF,OAA5B,EAAqC;AACnC7K,sBAAQiJ,gBAAR,EAA0B,iEAAiE,iEAAjE,GAAqI,0BAA/J,EAA2LX,uBAAuBE,gBAAvB,EAA3L;AACAS,iCAAmB,IAAnB;AACD;AACF;;AAED,cAAI5G,WAAWuI,WAAW3E,IAAX,CAAgBZ,QAAhB,CAAf;AACA,cAAIyF,IAAJ;AACA,cAAIC,KAAK,CAAT;AACA,iBAAO,CAAC,CAACD,OAAOzI,SAAS2I,IAAT,EAAR,EAAyBC,IAAjC,EAAuC;AACrCV,oBAAQO,KAAKxD,KAAb;AACAkD,uBAAWE,iBAAiBJ,gBAAgBC,KAAhB,EAAuBQ,IAAvB,CAA5B;AACAN,4BAAgBN,wBAAwBI,KAAxB,EAA+BC,QAA/B,EAAyCjH,QAAzC,EAAmDqG,eAAnD,CAAhB;AACD;AACF,SAjBD,MAiBO,IAAIhD,SAAS,QAAb,EAAuB;AAC5B,cAAIsE,WAAW,EAAf;AACA;AACEA,uBAAW,oEAAoE,UAApE,GAAiF5C,uBAAuBE,gBAAvB,EAA5F;AACD;AACD,cAAI2C,iBAAiB,KAAK9F,QAA1B;AACArG,oBAAU,KAAV,EAAiB,uDAAjB,EAA0EmM,mBAAmB,iBAAnB,GAAuC,uBAAuB3M,OAAO4M,IAAP,CAAY/F,QAAZ,EAAsBgG,IAAtB,CAA2B,IAA3B,CAAvB,GAA0D,GAAjG,GAAuGF,cAAjL,EAAiMD,QAAjM;AACD;AACF;;AAED,aAAOT,YAAP;AACD;;AAED;;;;;;;;;;;;;;;;AAgBA,aAASa,mBAAT,CAA6BjG,QAA7B,EAAuC9B,QAAvC,EAAiDqG,eAAjD,EAAkE;AAChE,UAAIvE,YAAY,IAAhB,EAAsB;AACpB,eAAO,CAAP;AACD;;AAED,aAAO8E,wBAAwB9E,QAAxB,EAAkC,EAAlC,EAAsC9B,QAAtC,EAAgDqG,eAAhD,CAAP;AACD;;AAED;;;;;;;AAOA,aAASU,eAAT,CAAyBiB,SAAzB,EAAoCC,KAApC,EAA2C;AACzC;AACA;AACA,UAAI,OAAOD,SAAP,KAAqB,QAArB,IAAiCA,cAAc,IAA/C,IAAuDA,UAAU9F,GAAV,IAAiB,IAA5E,EAAkF;AAChF;AACA,eAAOmD,OAAO2C,UAAU9F,GAAjB,CAAP;AACD;AACD;AACA,aAAO+F,MAAMC,QAAN,CAAe,EAAf,CAAP;AACD;;AAED,aAASC,kBAAT,CAA4BC,WAA5B,EAAyCpB,KAAzC,EAAgD3K,IAAhD,EAAsD;AACpD,UAAImK,OAAO4B,YAAY5B,IAAvB;AAAA,UACIjG,UAAU6H,YAAY7H,OAD1B;;AAGAiG,WAAK9D,IAAL,CAAUnC,OAAV,EAAmByG,KAAnB,EAA0BoB,YAAY3B,KAAZ,EAA1B;AACD;;AAED;;;;;;;;;;;;AAYA,aAAS4B,eAAT,CAAyBvG,QAAzB,EAAmCwG,WAAnC,EAAgDC,cAAhD,EAAgE;AAC9D,UAAIzG,YAAY,IAAhB,EAAsB;AACpB,eAAOA,QAAP;AACD;AACD,UAAIuE,kBAAkBL,yBAAyB,IAAzB,EAA+B,IAA/B,EAAqCsC,WAArC,EAAkDC,cAAlD,CAAtB;AACAR,0BAAoBjG,QAApB,EAA8BqG,kBAA9B,EAAkD9B,eAAlD;AACAK,6BAAuBL,eAAvB;AACD;;AAED,aAASmC,yBAAT,CAAmCJ,WAAnC,EAAgDpB,KAAhD,EAAuDyB,QAAvD,EAAiE;AAC/D,UAAIlC,SAAS6B,YAAY7B,MAAzB;AAAA,UACIL,YAAYkC,YAAYlC,SAD5B;AAAA,UAEIM,OAAO4B,YAAY5B,IAFvB;AAAA,UAGIjG,UAAU6H,YAAY7H,OAH1B;;AAMA,UAAImI,cAAclC,KAAK9D,IAAL,CAAUnC,OAAV,EAAmByG,KAAnB,EAA0BoB,YAAY3B,KAAZ,EAA1B,CAAlB;AACA,UAAI3J,MAAMsK,OAAN,CAAcsB,WAAd,CAAJ,EAAgC;AAC9BC,qCAA6BD,WAA7B,EAA0CnC,MAA1C,EAAkDkC,QAAlD,EAA4DlM,cAAcqM,mBAA1E;AACD,OAFD,MAEO,IAAIF,eAAe,IAAnB,EAAyB;AAC9B,YAAI7D,eAAe6D,WAAf,CAAJ,EAAiC;AAC/BA,wBAAcpE,mBAAmBoE,WAAnB;AACd;AACA;AACAxC,uBAAawC,YAAYxG,GAAZ,KAAoB,CAAC8E,KAAD,IAAUA,MAAM9E,GAAN,KAAcwG,YAAYxG,GAAxD,IAA+D0D,sBAAsB8C,YAAYxG,GAAlC,IAAyC,GAAxG,GAA8G,EAA3H,IAAiIuG,QAHnH,CAAd;AAID;AACDlC,eAAOI,IAAP,CAAY+B,WAAZ;AACD;AACF;;AAED,aAASC,4BAAT,CAAsC7G,QAAtC,EAAgD+G,KAAhD,EAAuDC,MAAvD,EAA+DtC,IAA/D,EAAqEjG,OAArE,EAA8E;AAC5E,UAAIwI,gBAAgB,EAApB;AACA,UAAID,UAAU,IAAd,EAAoB;AAClBC,wBAAgBnD,sBAAsBkD,MAAtB,IAAgC,GAAhD;AACD;AACD,UAAIzC,kBAAkBL,yBAAyB6C,KAAzB,EAAgCE,aAAhC,EAA+CvC,IAA/C,EAAqDjG,OAArD,CAAtB;AACAwH,0BAAoBjG,QAApB,EAA8B0G,yBAA9B,EAAyDnC,eAAzD;AACAK,6BAAuBL,eAAvB;AACD;;AAED;;;;;;;;;;;;;AAaA,aAAS2C,WAAT,CAAqBlH,QAArB,EAA+B0E,IAA/B,EAAqCjG,OAArC,EAA8C;AAC5C,UAAIuB,YAAY,IAAhB,EAAsB;AACpB,eAAOA,QAAP;AACD;AACD,UAAIyE,SAAS,EAAb;AACAoC,mCAA6B7G,QAA7B,EAAuCyE,MAAvC,EAA+C,IAA/C,EAAqDC,IAArD,EAA2DjG,OAA3D;AACA,aAAOgG,MAAP;AACD;;AAED;;;;;;;;;AASA,aAAS0C,aAAT,CAAuBnH,QAAvB,EAAiCvB,OAAjC,EAA0C;AACxC,aAAOwH,oBAAoBjG,QAApB,EAA8BvF,cAAc2M,eAA5C,EAA6D,IAA7D,CAAP;AACD;;AAED;;;;;;AAMA,aAASC,OAAT,CAAiBrH,QAAjB,EAA2B;AACzB,UAAIyE,SAAS,EAAb;AACAoC,mCAA6B7G,QAA7B,EAAuCyE,MAAvC,EAA+C,IAA/C,EAAqDhK,cAAcqM,mBAAnE;AACA,aAAOrC,MAAP;AACD;;AAED;;;;;;;;;;;;;;AAcA,aAAS6C,SAAT,CAAmBtH,QAAnB,EAA6B;AAC3B,OAAC+C,eAAe/C,QAAf,CAAD,GAA4BrG,UAAU,KAAV,EAAiB,uEAAjB,CAA5B,GAAwH,KAAK,CAA7H;AACA,aAAOqG,QAAP;AACD;;AAED,QAAIuH,yBAAyB,UAAUhN,IAAV,EAAgBkH,MAAhB,EAAwB+F,SAAxB,EAAmC;AAC9D,aAAO,eAAejN,QAAQ,SAAvB,KAAqCkH,SAAS,UAAUA,OAAOgG,QAAP,CAAgBnN,OAAhB,CAAwB,WAAxB,EAAqC,EAArC,CAAV,GAAqD,GAArD,GAA2DmH,OAAOiG,UAAlE,GAA+E,GAAxF,GAA8FF,YAAY,kBAAkBA,SAAlB,GAA8B,GAA1C,GAAgD,EAAnL,CAAP;AACD,KAFD;;AAIA,aAASG,gBAAT,CAA0BC,KAA1B,EAAiC;AAC/B,UAAIrG,OAAOqG,MAAMrG,IAAjB;;AAEA,UAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B;AAC5B,eAAOA,IAAP;AACD;AACD,UAAI,OAAOA,IAAP,KAAgB,UAApB,EAAgC;AAC9B,eAAOA,KAAK1D,WAAL,IAAoB0D,KAAKhH,IAAhC;AACD;AACD,aAAO,IAAP;AACD;;AAED;;;;;;;AAOA;AACE,UAAIsN,6BAA6B,IAAjC;;AAEA,UAAIC,gCAAgC,KAApC;;AAEA,UAAIC,iBAAiB,UAAUpG,OAAV,EAAmB;AACtC,YAAIA,WAAW,IAAf,EAAqB;AACnB,iBAAO,QAAP;AACD,SAFD,MAEO,IAAI,OAAOA,OAAP,KAAmB,QAAnB,IAA+B,OAAOA,OAAP,KAAmB,QAAtD,EAAgE;AACrE,iBAAO,OAAP;AACD,SAFM,MAEA,IAAI,OAAOA,QAAQJ,IAAf,KAAwB,QAA5B,EAAsC;AAC3C,iBAAOI,QAAQJ,IAAf;AACD,SAFM,MAEA,IAAII,QAAQJ,IAAR,KAAiBzE,mBAArB,EAA0C;AAC/C,iBAAO,gBAAP;AACD,SAFM,MAEA;AACL,iBAAO6E,QAAQJ,IAAR,CAAa1D,WAAb,IAA4B8D,QAAQJ,IAAR,CAAahH,IAAzC,IAAiD,SAAxD;AACD;AACF,OAZD;;AAcA,UAAI4I,mBAAmB,YAAY;AACjC,YAAI9G,QAAQ,EAAZ;AACA,YAAIwL,0BAAJ,EAAgC;AAC9B,cAAItN,OAAOwN,eAAeF,0BAAf,CAAX;AACA,cAAInG,QAAQmG,2BAA2BhG,MAAvC;AACAxF,mBAASkL,uBAAuBhN,IAAvB,EAA6BsN,2BAA2BhF,OAAxD,EAAiEnB,SAASiG,iBAAiBjG,KAAjB,CAA1E,CAAT;AACD;AACDrF,iBAAS4G,uBAAuBE,gBAAvB,MAA6C,EAAtD;AACA,eAAO9G,KAAP;AACD,OATD;;AAWA,UAAI2L,uBAAuB,IAAIC,GAAJ,CAAQ,CAAC,CAAC,UAAD,EAAa,IAAb,CAAD,EAAqB,CAAC,KAAD,EAAQ,IAAR,CAArB,CAAR,CAA3B;AACD;;AAED,aAASC,2BAAT,GAAuC;AACrC,UAAIjI,kBAAkBC,OAAtB,EAA+B;AAC7B,YAAI3F,OAAOoN,iBAAiB1H,kBAAkBC,OAAnC,CAAX;AACA,YAAI3F,IAAJ,EAAU;AACR,iBAAO,qCAAqCA,IAArC,GAA4C,IAAnD;AACD;AACF;AACD,aAAO,EAAP;AACD;;AAED,aAAS4N,0BAAT,CAAoCC,YAApC,EAAkD;AAChD,UAAIA,iBAAiB,IAAjB,IAAyBA,iBAAiB3O,SAA1C,IAAuD2O,aAAa7H,QAAb,KAA0B9G,SAArF,EAAgG;AAC9F,YAAIgI,SAAS2G,aAAa7H,QAA1B;AACA,YAAIkH,WAAWhG,OAAOgG,QAAP,CAAgBnN,OAAhB,CAAwB,WAAxB,EAAqC,EAArC,CAAf;AACA,YAAIoN,aAAajG,OAAOiG,UAAxB;AACA,eAAO,4BAA4BD,QAA5B,GAAuC,GAAvC,GAA6CC,UAA7C,GAA0D,GAAjE;AACD;AACD,aAAO,EAAP;AACD;;AAED;;;;;AAKA,QAAIW,wBAAwB,EAA5B;;AAEA,aAASC,4BAAT,CAAsCC,UAAtC,EAAkD;AAChD,UAAInJ,OAAO8I,6BAAX;;AAEA,UAAI,CAAC9I,IAAL,EAAW;AACT,YAAIoJ,aAAa,OAAOD,UAAP,KAAsB,QAAtB,GAAiCA,UAAjC,GAA8CA,WAAW1K,WAAX,IAA0B0K,WAAWhO,IAApG;AACA,YAAIiO,UAAJ,EAAgB;AACdpJ,iBAAO,gDAAgDoJ,UAAhD,GAA6D,IAApE;AACD;AACF;AACD,aAAOpJ,IAAP;AACD;;AAED;;;;;;;;;;;AAWA,aAASqJ,mBAAT,CAA6B9G,OAA7B,EAAsC4G,UAAtC,EAAkD;AAChD,UAAI,CAAC5G,QAAQG,MAAT,IAAmBH,QAAQG,MAAR,CAAe4G,SAAlC,IAA+C/G,QAAQvB,GAAR,IAAe,IAAlE,EAAwE;AACtE;AACD;AACDuB,cAAQG,MAAR,CAAe4G,SAAf,GAA2B,IAA3B;;AAEA,UAAIC,4BAA4BL,6BAA6BC,UAA7B,CAAhC;AACA,UAAIF,sBAAsBM,yBAAtB,CAAJ,EAAsD;AACpD;AACD;AACDN,4BAAsBM,yBAAtB,IAAmD,IAAnD;;AAEA;AACA;AACA;AACA,UAAIC,aAAa,EAAjB;AACA,UAAIjH,WAAWA,QAAQE,MAAnB,IAA6BF,QAAQE,MAAR,KAAmB5B,kBAAkBC,OAAtE,EAA+E;AAC7E;AACA0I,qBAAa,iCAAiCjB,iBAAiBhG,QAAQE,MAAzB,CAAjC,GAAoE,GAAjF;AACD;;AAEDgG,mCAA6BlG,OAA7B;AACA;AACEhH,gBAAQ,KAAR,EAAe,wEAAwE,mEAAvF,EAA4JgO,yBAA5J,EAAuLC,UAAvL,EAAmMzF,kBAAnM;AACD;AACD0E,mCAA6B,IAA7B;AACD;;AAED;;;;;;;;;AASA,aAASgB,iBAAT,CAA2BC,IAA3B,EAAiCP,UAAjC,EAA6C;AAC3C,UAAI,OAAOO,IAAP,KAAgB,QAApB,EAA8B;AAC5B;AACD;AACD,UAAI9N,MAAMsK,OAAN,CAAcwD,IAAd,CAAJ,EAAyB;AACvB,aAAK,IAAIxG,IAAI,CAAb,EAAgBA,IAAIwG,KAAK/N,MAAzB,EAAiCuH,GAAjC,EAAsC;AACpC,cAAI4C,QAAQ4D,KAAKxG,CAAL,CAAZ;AACA,cAAIS,eAAemC,KAAf,CAAJ,EAA2B;AACzBuD,gCAAoBvD,KAApB,EAA2BqD,UAA3B;AACD;AACF;AACF,OAPD,MAOO,IAAIxF,eAAe+F,IAAf,CAAJ,EAA0B;AAC/B;AACA,YAAIA,KAAKhH,MAAT,EAAiB;AACfgH,eAAKhH,MAAL,CAAY4G,SAAZ,GAAwB,IAAxB;AACD;AACF,OALM,MAKA,IAAII,IAAJ,EAAU;AACf,YAAIvD,aAAarI,cAAc4L,IAAd,CAAjB;AACA,YAAI,OAAOvD,UAAP,KAAsB,UAA1B,EAAsC;AACpC;AACA;AACA,cAAIA,eAAeuD,KAAKtD,OAAxB,EAAiC;AAC/B,gBAAIxI,WAAWuI,WAAW3E,IAAX,CAAgBkI,IAAhB,CAAf;AACA,gBAAIrD,IAAJ;AACA,mBAAO,CAAC,CAACA,OAAOzI,SAAS2I,IAAT,EAAR,EAAyBC,IAAjC,EAAuC;AACrC,kBAAI7C,eAAe0C,KAAKxD,KAApB,CAAJ,EAAgC;AAC9BwG,oCAAoBhD,KAAKxD,KAAzB,EAAgCsG,UAAhC;AACD;AACF;AACF;AACF;AACF;AACF;;AAED;;;;;;AAMA,aAASQ,iBAAT,CAA2BpH,OAA3B,EAAoC;AAClC,UAAIqH,iBAAiBrH,QAAQJ,IAA7B;AACA,UAAI,OAAOyH,cAAP,KAA0B,UAA9B,EAA0C;AACxC;AACD;AACD,UAAIzO,OAAOyO,eAAenL,WAAf,IAA8BmL,eAAezO,IAAxD;AACA,UAAI0O,YAAYD,eAAeC,SAA/B;AACA,UAAIA,SAAJ,EAAe;AACbpB,qCAA6BlG,OAA7B;AACA/F,uBAAeqN,SAAf,EAA0BtH,QAAQnD,KAAlC,EAAyC,MAAzC,EAAiDjE,IAAjD,EAAuD4I,gBAAvD;AACA0E,qCAA6B,IAA7B;AACD,OAJD,MAIO,IAAImB,eAAeE,SAAf,KAA6BzP,SAA7B,IAA0C,CAACqO,6BAA/C,EAA8E;AACnFA,wCAAgC,IAAhC;AACAnN,gBAAQ,KAAR,EAAe,qGAAf,EAAsHJ,QAAQ,SAA9H;AACD;AACD,UAAI,OAAOyO,eAAeG,eAAtB,KAA0C,UAA9C,EAA0D;AACxDxO,gBAAQqO,eAAeG,eAAf,CAA+BC,oBAAvC,EAA6D,+DAA+D,kEAA5H;AACD;AACF;;AAED;;;;AAIA,aAASC,qBAAT,CAA+BC,QAA/B,EAAyC;AACvCzB,mCAA6ByB,QAA7B;;AAEA,UAAIC,4BAA4B,IAAhC;AACA,UAAIC,oBAAoB,KAAxB;AACA,UAAIC,iBAAiBhQ,SAArB;;AAEA,UAAI;AACF,aAAK,IAAIiQ,YAAYvQ,OAAO4M,IAAP,CAAYuD,SAAS9K,KAArB,EAA4B/B,OAAOO,QAAnC,GAAhB,EAAgE2M,KAArE,EAA4E,EAAEJ,4BAA4B,CAACI,QAAQD,UAAU/D,IAAV,EAAT,EAA2BC,IAAzD,CAA5E,EAA4I2D,4BAA4B,IAAxK,EAA8K;AAC5K,cAAInJ,MAAMuJ,MAAM1H,KAAhB;;AAEA,cAAI,CAAC+F,qBAAqB4B,GAArB,CAAyBxJ,GAAzB,CAAL,EAAoC;AAClCzF,oBAAQ,KAAR,EAAe,qDAAqD,4DAApE,EAAkIyF,GAAlI,EAAuI+C,kBAAvI;AACA;AACD;AACF;AACF,OATD,CASE,OAAO0G,GAAP,EAAY;AACZL,4BAAoB,IAApB;AACAC,yBAAiBI,GAAjB;AACD,OAZD,SAYU;AACR,YAAI;AACF,cAAI,CAACN,yBAAD,IAA8BG,UAAU,QAAV,CAAlC,EAAuD;AACrDA,sBAAU,QAAV;AACD;AACF,SAJD,SAIU;AACR,cAAIF,iBAAJ,EAAuB;AACrB,kBAAMC,cAAN;AACD;AACF;AACF;;AAED,UAAIH,SAASjJ,GAAT,KAAiB,IAArB,EAA2B;AACzB1F,gBAAQ,KAAR,EAAe,yDAAf,EAA0EwI,kBAA1E;AACD;;AAED0E,mCAA6B,IAA7B;AACD;;AAED,aAASiC,2BAAT,CAAqCvI,IAArC,EAA2C/C,KAA3C,EAAkDwB,QAAlD,EAA4D;AAC1D,UAAI+J,YAAY,OAAOxI,IAAP,KAAgB,QAAhB,IAA4B,OAAOA,IAAP,KAAgB,UAA5C,IAA0D,OAAOA,IAAP,KAAgB,QAA1E,IAAsF,OAAOA,IAAP,KAAgB,QAAtH;AACA;AACA;AACA,UAAI,CAACwI,SAAL,EAAgB;AACd,YAAI3K,OAAO,EAAX;AACA,YAAImC,SAAS9H,SAAT,IAAsB,OAAO8H,IAAP,KAAgB,QAAhB,IAA4BA,SAAS,IAArC,IAA6CpI,OAAO4M,IAAP,CAAYxE,IAAZ,EAAkBxG,MAAlB,KAA6B,CAApG,EAAuG;AACrGqE,kBAAQ,+DAA+D,wEAAvE;AACD;;AAED,YAAI4K,aAAa7B,2BAA2B3J,KAA3B,CAAjB;AACA,YAAIwL,UAAJ,EAAgB;AACd5K,kBAAQ4K,UAAR;AACD,SAFD,MAEO;AACL5K,kBAAQ8I,6BAAR;AACD;;AAED9I,gBAAQ+D,sBAAsB,EAA9B;;AAEAxI,gBAAQ,KAAR,EAAe,oEAAoE,0DAApE,GAAiI,4BAAhJ,EAA8K4G,QAAQ,IAAR,GAAeA,IAAf,GAAsB,OAAOA,IAA3M,EAAiNnC,IAAjN;AACD;;AAED,UAAIuC,UAAUO,cAAc1G,KAAd,CAAoB,IAApB,EAA0BV,SAA1B,CAAd;;AAEA;AACA;AACA,UAAI6G,WAAW,IAAf,EAAqB;AACnB,eAAOA,OAAP;AACD;;AAED;AACA;AACA;AACA;AACA;AACA,UAAIoI,SAAJ,EAAe;AACb,aAAK,IAAIzH,IAAI,CAAb,EAAgBA,IAAIxH,UAAUC,MAA9B,EAAsCuH,GAAtC,EAA2C;AACzCuG,4BAAkB/N,UAAUwH,CAAV,CAAlB,EAAgCf,IAAhC;AACD;AACF;;AAED,UAAI,OAAOA,IAAP,KAAgB,QAAhB,IAA4BA,SAASzE,mBAAzC,EAA8D;AAC5DuM,8BAAsB1H,OAAtB;AACD,OAFD,MAEO;AACLoH,0BAAkBpH,OAAlB;AACD;;AAED,aAAOA,OAAP;AACD;;AAED,aAASsI,2BAAT,CAAqC1I,IAArC,EAA2C;AACzC,UAAI2I,mBAAmBJ,4BAA4BK,IAA5B,CAAiC,IAAjC,EAAuC5I,IAAvC,CAAvB;AACA;AACA2I,uBAAiB3I,IAAjB,GAAwBA,IAAxB;;AAEA;AACEpI,eAAOkG,cAAP,CAAsB6K,gBAAtB,EAAwC,MAAxC,EAAgD;AAC9CnI,sBAAY,KADkC;AAE9CzC,eAAK,YAAY;AACf/B,iCAAqB,KAArB,EAA4B,2DAA2D,qCAAvF;AACApE,mBAAOkG,cAAP,CAAsB,IAAtB,EAA4B,MAA5B,EAAoC;AAClC4C,qBAAOV;AAD2B,aAApC;AAGA,mBAAOA,IAAP;AACD;AAR6C,SAAhD;AAUD;;AAED,aAAO2I,gBAAP;AACD;;AAED,aAASE,0BAAT,CAAoCzI,OAApC,EAA6CnD,KAA7C,EAAoDwB,QAApD,EAA8D;AAC5D,UAAI2C,aAAaG,aAAatH,KAAb,CAAmB,IAAnB,EAAyBV,SAAzB,CAAjB;AACA,WAAK,IAAIwH,IAAI,CAAb,EAAgBA,IAAIxH,UAAUC,MAA9B,EAAsCuH,GAAtC,EAA2C;AACzCuG,0BAAkB/N,UAAUwH,CAAV,CAAlB,EAAgCK,WAAWpB,IAA3C;AACD;AACDwH,wBAAkBpG,UAAlB;AACA,aAAOA,UAAP;AACD;;AAED,QAAI0H,QAAQ;AACVC,gBAAU;AACRC,aAAKrD,WADG;AAERsD,iBAASjE,eAFD;AAGR5B,eAAOwC,aAHC;AAIRE,iBAASA,OAJD;AAKRoD,cAAMnD;AALE,OADA;;AASV/I,iBAAWA,SATD;AAUViB,qBAAeA,aAVL;AAWVkL,+BAAyB9K,cAXf;;AAaV+K,gBAAU7N,mBAbA;;AAeVoF,qBAAe4H,2BAfL;AAgBVhH,oBAAcsH,0BAhBJ;AAiBVQ,qBAAeX,2BAjBL;AAkBVlH,sBAAgBA,cAlBN;;AAoBV8H,eAAStO,YApBC;;AAsBVuO,0DAAoD;AAClD7K,2BAAmBA,iBAD+B;AAElD;AACA8K,gBAAQzO;AAH0C;AAtB1C,KAAZ;;AA6BA;AACEA,cAAQ+N,MAAMS,kDAAd,EAAkE;AAChE;AACA7H,gCAAwBA,sBAFwC;AAGhE;AACA;AACA+H,gCAAwB;AALwC,OAAlE;AAOD;;AAID,QAAIC,UAAU9R,OAAOC,MAAP,CAAc;AAC3B8R,eAASb;AADkB,KAAd,CAAd;;AAIA,QAAIc,UAAYF,WAAWZ,KAAb,IAAwBY,OAAtC;;AAEA;AACA;AACA,QAAIG,QAAQD,QAAQ,SAAR,IAAqBA,QAAQ,SAAR,CAArB,GAA0CA,OAAtD;;AAEA9R,WAAOC,OAAP,GAAiB8R,KAAjB;AACG,GA7zCD;AA8zCD;;AC50CD;;AAEA,IAAI,kBAAyB,YAA7B,EAA2C;AACzC/R,SAAOC,OAAP,GAAiBoB,QAAQ,+BAAR,CAAjB;AACD,CAFD,MAEO;AACLrB,SAAOC,OAAP,GAAiBoB,QAAQ,4BAAR,CAAjB;AACD;;;;;;;;ACND;;;;;;AAEA,IAAM2Q,MAAM,SAANA,GAAM,GAAM;AAChB,SAAO;AAAA;AAAA;AAAA;AAAA,GAAP;AACD,CAFD;;kBAIeA","file":"index.map","sourcesContent":["/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyObject = {};\n\nif (process.env.NODE_ENV !== 'production') {\n Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/** @license React v16.2.0\n * react.production.min.js\n *\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var m=require(\"object-assign\"),n=require(\"fbjs/lib/emptyObject\"),p=require(\"fbjs/lib/emptyFunction\"),q=\"function\"===typeof Symbol&&Symbol[\"for\"],r=q?Symbol[\"for\"](\"react.element\"):60103,t=q?Symbol[\"for\"](\"react.call\"):60104,u=q?Symbol[\"for\"](\"react.return\"):60105,v=q?Symbol[\"for\"](\"react.portal\"):60106,w=q?Symbol[\"for\"](\"react.fragment\"):60107,x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){for(var b=arguments.length-1,e=\"Minified React error #\"+a+\"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant\\x3d\"+a,c=0;cM.length&&M.push(a)}\nfunction P(a,b,e,c){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case r:case t:case u:case v:g=!0}}if(g)return e(c,a,\"\"===b?\".\"+Q(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n","/** @license React v16.2.0\n * react.development.js\n *\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nvar _assign = require('object-assign');\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar checkPropTypes = require('prop-types/checkPropTypes');\n\n// TODO: this is special because it gets imported during build.\n\nvar ReactVersion = '16.2.0';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol['for'];\n\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol['for']('react.element') : 0xeac7;\nvar REACT_CALL_TYPE = hasSymbol ? Symbol['for']('react.call') : 0xeac8;\nvar REACT_RETURN_TYPE = hasSymbol ? Symbol['for']('react.return') : 0xeac9;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol['for']('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol['for']('react.fragment') : 0xeacb;\n\nvar MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\n\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable === 'undefined') {\n return null;\n }\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n return null;\n}\n\n/**\n * WARNING: DO NOT manually require this module.\n * This is a replacement for `invariant(...)` used by the error code system\n * and will _only_ be required by the corresponding babel pass.\n * It always throws.\n */\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar lowPriorityWarning = function () {};\n\n{\n var printWarning = function (format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.warn(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nvar lowPriorityWarning$1 = lowPriorityWarning;\n\nvar didWarnStateUpdateForUnmountedComponent = {};\n\nfunction warnNoop(publicInstance, callerName) {\n {\n var constructor = publicInstance.constructor;\n var componentName = constructor && (constructor.displayName || constructor.name) || 'ReactClass';\n var warningKey = componentName + '.' + callerName;\n if (didWarnStateUpdateForUnmountedComponent[warningKey]) {\n return;\n }\n warning(false, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op.\\n\\nPlease check the code for the %s component.', callerName, callerName, componentName);\n didWarnStateUpdateForUnmountedComponent[warningKey] = true;\n }\n}\n\n/**\n * This is the abstract API for an update queue.\n */\nvar ReactNoopUpdateQueue = {\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function (publicInstance) {\n return false;\n },\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */\n enqueueForceUpdate: function (publicInstance, callback, callerName) {\n warnNoop(publicInstance, 'forceUpdate');\n },\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} completeState Next state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */\n enqueueReplaceState: function (publicInstance, completeState, callback, callerName) {\n warnNoop(publicInstance, 'replaceState');\n },\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialState Next partial state to be merged with state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} Name of the calling function in the public API.\n * @internal\n */\n enqueueSetState: function (publicInstance, partialState, callback, callerName) {\n warnNoop(publicInstance, 'setState');\n }\n};\n\n/**\n * Base class helpers for the updating state of a component.\n */\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n // We initialize the default updater but the real one gets injected by the\n // renderer.\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nComponent.prototype.isReactComponent = {};\n\n/**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together. You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n * produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\nComponent.prototype.setState = function (partialState, callback) {\n !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? invariant(false, 'setState(...): takes an object of state variables to update or a function which returns an object of state variables.') : void 0;\n this.updater.enqueueSetState(this, partialState, callback, 'setState');\n};\n\n/**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, 'forceUpdate');\n};\n\n/**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */\n{\n var deprecatedAPIs = {\n isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n };\n var defineDeprecationWarning = function (methodName, info) {\n Object.defineProperty(Component.prototype, methodName, {\n get: function () {\n lowPriorityWarning$1(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);\n return undefined;\n }\n });\n };\n for (var fnName in deprecatedAPIs) {\n if (deprecatedAPIs.hasOwnProperty(fnName)) {\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n }\n }\n}\n\n/**\n * Base class helpers for the updating state of a component.\n */\nfunction PureComponent(props, context, updater) {\n // Duplicated from Component.\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n // We initialize the default updater but the real one gets injected by the\n // renderer.\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\nvar pureComponentPrototype = PureComponent.prototype = new ComponentDummy();\npureComponentPrototype.constructor = PureComponent;\n// Avoid an extra prototype jump for these methods.\n_assign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = true;\n\nfunction AsyncComponent(props, context, updater) {\n // Duplicated from Component.\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n // We initialize the default updater but the real one gets injected by the\n // renderer.\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nvar asyncComponentPrototype = AsyncComponent.prototype = new ComponentDummy();\nasyncComponentPrototype.constructor = AsyncComponent;\n// Avoid an extra prototype jump for these methods.\n_assign(asyncComponentPrototype, Component.prototype);\nasyncComponentPrototype.unstable_isAsyncReactComponent = true;\nasyncComponentPrototype.render = function () {\n return this.props.children;\n};\n\n/**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */\nvar ReactCurrentOwner = {\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n};\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\n\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.key !== undefined;\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n warning(false, '%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName);\n }\n };\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n warning(false, '%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName);\n }\n };\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n}\n\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, no instanceof check\n * will work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} key\n * @param {string|object} ref\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @param {*} owner\n * @param {*} props\n * @internal\n */\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allow us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {};\n\n // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n });\n // self and source are DEV only properties.\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n });\n // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n\n/**\n * Create and return a new ReactElement of the given type.\n * See https://reactjs.org/docs/react-api.html#createelement\n */\nfunction createElement(type, config, children) {\n var propName;\n\n // Reserved names are extracted\n var props = {};\n\n var key = null;\n var ref = null;\n var self = null;\n var source = null;\n\n if (config != null) {\n if (hasValidRef(config)) {\n ref = config.ref;\n }\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\n self = config.__self === undefined ? null : config.__self;\n source = config.__source === undefined ? null : config.__source;\n // Remaining properties are added to a new props object\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n }\n }\n\n // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n var childrenLength = arguments.length - 2;\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n {\n if (Object.freeze) {\n Object.freeze(childArray);\n }\n }\n props.children = childArray;\n }\n\n // Resolve default props\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n {\n if (key || ref) {\n if (typeof props.$$typeof === 'undefined' || props.$$typeof !== REACT_ELEMENT_TYPE) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n }\n }\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n}\n\n/**\n * Return a function that produces ReactElements of a given type.\n * See https://reactjs.org/docs/react-api.html#createfactory\n */\n\n\nfunction cloneAndReplaceKey(oldElement, newKey) {\n var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n\n return newElement;\n}\n\n/**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://reactjs.org/docs/react-api.html#cloneelement\n */\nfunction cloneElement(element, config, children) {\n var propName;\n\n // Original props are copied\n var props = _assign({}, element.props);\n\n // Reserved names are extracted\n var key = element.key;\n var ref = element.ref;\n // Self is preserved since the owner is preserved.\n var self = element._self;\n // Source is preserved since cloneElement is unlikely to be targeted by a\n // transpiler, and the original source is probably a better indicator of the\n // true owner.\n var source = element._source;\n\n // Owner will be preserved, unless ref is overridden\n var owner = element._owner;\n\n if (config != null) {\n if (hasValidRef(config)) {\n // Silently steal the ref from the parent.\n ref = config.ref;\n owner = ReactCurrentOwner.current;\n }\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\n // Remaining properties override existing props\n var defaultProps;\n if (element.type && element.type.defaultProps) {\n defaultProps = element.type.defaultProps;\n }\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n if (config[propName] === undefined && defaultProps !== undefined) {\n // Resolve default props\n props[propName] = defaultProps[propName];\n } else {\n props[propName] = config[propName];\n }\n }\n }\n }\n\n // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n var childrenLength = arguments.length - 2;\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n props.children = childArray;\n }\n\n return ReactElement(element.type, key, ref, self, source, owner, props);\n}\n\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a valid component.\n * @final\n */\nfunction isValidElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\n\nvar ReactDebugCurrentFrame = {};\n\n{\n // Component that is being worked on\n ReactDebugCurrentFrame.getCurrentStack = null;\n\n ReactDebugCurrentFrame.getStackAddendum = function () {\n var impl = ReactDebugCurrentFrame.getCurrentStack;\n if (impl) {\n return impl();\n }\n return null;\n };\n}\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = ('' + key).replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n\n return '$' + escapedString;\n}\n\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\nvar didWarnAboutMaps = false;\n\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction escapeUserProvidedKey(text) {\n return ('' + text).replace(userProvidedKeyEscapeRegex, '$&/');\n}\n\nvar POOL_SIZE = 10;\nvar traverseContextPool = [];\nfunction getPooledTraverseContext(mapResult, keyPrefix, mapFunction, mapContext) {\n if (traverseContextPool.length) {\n var traverseContext = traverseContextPool.pop();\n traverseContext.result = mapResult;\n traverseContext.keyPrefix = keyPrefix;\n traverseContext.func = mapFunction;\n traverseContext.context = mapContext;\n traverseContext.count = 0;\n return traverseContext;\n } else {\n return {\n result: mapResult,\n keyPrefix: keyPrefix,\n func: mapFunction,\n context: mapContext,\n count: 0\n };\n }\n}\n\nfunction releaseTraverseContext(traverseContext) {\n traverseContext.result = null;\n traverseContext.keyPrefix = null;\n traverseContext.func = null;\n traverseContext.context = null;\n traverseContext.count = 0;\n if (traverseContextPool.length < POOL_SIZE) {\n traverseContextPool.push(traverseContext);\n }\n}\n\n/**\n * @param {?*} children Children tree container.\n * @param {!string} nameSoFar Name of the key path so far.\n * @param {!function} callback Callback to invoke with each child found.\n * @param {?*} traverseContext Used to pass information throughout the traversal\n * process.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) {\n var type = typeof children;\n\n if (type === 'undefined' || type === 'boolean') {\n // All of the above are perceived as null.\n children = null;\n }\n\n var invokeCallback = false;\n\n if (children === null) {\n invokeCallback = true;\n } else {\n switch (type) {\n case 'string':\n case 'number':\n invokeCallback = true;\n break;\n case 'object':\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_CALL_TYPE:\n case REACT_RETURN_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = true;\n }\n }\n }\n\n if (invokeCallback) {\n callback(traverseContext, children,\n // If it's the only child, treat the name as if it was wrapped in an array\n // so that it's consistent if the number of children grows.\n nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar);\n return 1;\n }\n\n var child;\n var nextName;\n var subtreeCount = 0; // Count of children found in the current subtree.\n var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n nextName = nextNamePrefix + getComponentKey(child, i);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n if (typeof iteratorFn === 'function') {\n {\n // Warn about using Maps as children\n if (iteratorFn === children.entries) {\n warning(didWarnAboutMaps, 'Using Maps as children is unsupported and will likely yield ' + 'unexpected results. Convert it to a sequence/iterable of keyed ' + 'ReactElements instead.%s', ReactDebugCurrentFrame.getStackAddendum());\n didWarnAboutMaps = true;\n }\n }\n\n var iterator = iteratorFn.call(children);\n var step;\n var ii = 0;\n while (!(step = iterator.next()).done) {\n child = step.value;\n nextName = nextNamePrefix + getComponentKey(child, ii++);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n } else if (type === 'object') {\n var addendum = '';\n {\n addendum = ' If you meant to render a collection of children, use an array ' + 'instead.' + ReactDebugCurrentFrame.getStackAddendum();\n }\n var childrenString = '' + children;\n invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum);\n }\n }\n\n return subtreeCount;\n}\n\n/**\n * Traverses children that are typically specified as `props.children`, but\n * might also be specified through attributes:\n *\n * - `traverseAllChildren(this.props.children, ...)`\n * - `traverseAllChildren(this.props.leftPanelChildren, ...)`\n *\n * The `traverseContext` is an optional argument that is passed through the\n * entire traversal. It can be used to store accumulations or anything else that\n * the callback might find relevant.\n *\n * @param {?*} children Children tree object.\n * @param {!function} callback To invoke upon traversing each child.\n * @param {?*} traverseContext Context for traversal.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildren(children, callback, traverseContext) {\n if (children == null) {\n return 0;\n }\n\n return traverseAllChildrenImpl(children, '', callback, traverseContext);\n}\n\n/**\n * Generate a key string that identifies a component within a set.\n *\n * @param {*} component A component that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\nfunction getComponentKey(component, index) {\n // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (typeof component === 'object' && component !== null && component.key != null) {\n // Explicit key\n return escape(component.key);\n }\n // Implicit key determined by the index in the set\n return index.toString(36);\n}\n\nfunction forEachSingleChild(bookKeeping, child, name) {\n var func = bookKeeping.func,\n context = bookKeeping.context;\n\n func.call(context, child, bookKeeping.count++);\n}\n\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#react.children.foreach\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n if (children == null) {\n return children;\n }\n var traverseContext = getPooledTraverseContext(null, null, forEachFunc, forEachContext);\n traverseAllChildren(children, forEachSingleChild, traverseContext);\n releaseTraverseContext(traverseContext);\n}\n\nfunction mapSingleChildIntoContext(bookKeeping, child, childKey) {\n var result = bookKeeping.result,\n keyPrefix = bookKeeping.keyPrefix,\n func = bookKeeping.func,\n context = bookKeeping.context;\n\n\n var mappedChild = func.call(context, child, bookKeeping.count++);\n if (Array.isArray(mappedChild)) {\n mapIntoWithKeyPrefixInternal(mappedChild, result, childKey, emptyFunction.thatReturnsArgument);\n } else if (mappedChild != null) {\n if (isValidElement(mappedChild)) {\n mappedChild = cloneAndReplaceKey(mappedChild,\n // Keep both the (mapped) and old keys if they differ, just as\n // traverseAllChildren used to do for objects as children\n keyPrefix + (mappedChild.key && (!child || child.key !== mappedChild.key) ? escapeUserProvidedKey(mappedChild.key) + '/' : '') + childKey);\n }\n result.push(mappedChild);\n }\n}\n\nfunction mapIntoWithKeyPrefixInternal(children, array, prefix, func, context) {\n var escapedPrefix = '';\n if (prefix != null) {\n escapedPrefix = escapeUserProvidedKey(prefix) + '/';\n }\n var traverseContext = getPooledTraverseContext(array, escapedPrefix, func, context);\n traverseAllChildren(children, mapSingleChildIntoContext, traverseContext);\n releaseTraverseContext(traverseContext);\n}\n\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#react.children.map\n *\n * The provided mapFunction(child, key, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\nfunction mapChildren(children, func, context) {\n if (children == null) {\n return children;\n }\n var result = [];\n mapIntoWithKeyPrefixInternal(children, result, null, func, context);\n return result;\n}\n\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#react.children.count\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\nfunction countChildren(children, context) {\n return traverseAllChildren(children, emptyFunction.thatReturnsNull, null);\n}\n\n/**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n *\n * See https://reactjs.org/docs/react-api.html#react.children.toarray\n */\nfunction toArray(children) {\n var result = [];\n mapIntoWithKeyPrefixInternal(children, result, null, emptyFunction.thatReturnsArgument);\n return result;\n}\n\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection.\n *\n * See https://reactjs.org/docs/react-api.html#react.children.only\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */\nfunction onlyChild(children) {\n !isValidElement(children) ? invariant(false, 'React.Children.only expected to receive a single React element child.') : void 0;\n return children;\n}\n\nvar describeComponentFrame = function (name, source, ownerName) {\n return '\\n in ' + (name || 'Unknown') + (source ? ' (at ' + source.fileName.replace(/^.*[\\\\\\/]/, '') + ':' + source.lineNumber + ')' : ownerName ? ' (created by ' + ownerName + ')' : '');\n};\n\nfunction getComponentName(fiber) {\n var type = fiber.type;\n\n if (typeof type === 'string') {\n return type;\n }\n if (typeof type === 'function') {\n return type.displayName || type.name;\n }\n return null;\n}\n\n/**\n * ReactElementValidator provides a wrapper around a element factory\n * which validates the props passed to the element. This is intended to be\n * used only in DEV and could be replaced by a static type checker for languages\n * that support it.\n */\n\n{\n var currentlyValidatingElement = null;\n\n var propTypesMisspellWarningShown = false;\n\n var getDisplayName = function (element) {\n if (element == null) {\n return '#empty';\n } else if (typeof element === 'string' || typeof element === 'number') {\n return '#text';\n } else if (typeof element.type === 'string') {\n return element.type;\n } else if (element.type === REACT_FRAGMENT_TYPE) {\n return 'React.Fragment';\n } else {\n return element.type.displayName || element.type.name || 'Unknown';\n }\n };\n\n var getStackAddendum = function () {\n var stack = '';\n if (currentlyValidatingElement) {\n var name = getDisplayName(currentlyValidatingElement);\n var owner = currentlyValidatingElement._owner;\n stack += describeComponentFrame(name, currentlyValidatingElement._source, owner && getComponentName(owner));\n }\n stack += ReactDebugCurrentFrame.getStackAddendum() || '';\n return stack;\n };\n\n var VALID_FRAGMENT_PROPS = new Map([['children', true], ['key', true]]);\n}\n\nfunction getDeclarationErrorAddendum() {\n if (ReactCurrentOwner.current) {\n var name = getComponentName(ReactCurrentOwner.current);\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n return '';\n}\n\nfunction getSourceInfoErrorAddendum(elementProps) {\n if (elementProps !== null && elementProps !== undefined && elementProps.__source !== undefined) {\n var source = elementProps.__source;\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n return '';\n}\n\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n if (parentName) {\n info = '\\n\\nCheck the top-level render call using <' + parentName + '>.';\n }\n }\n return info;\n}\n\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\nfunction validateExplicitKey(element, parentType) {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n element._store.validated = true;\n\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true;\n\n // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n var childOwner = '';\n if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n // Give the component that originally created this child.\n childOwner = ' It was passed a child from ' + getComponentName(element._owner) + '.';\n }\n\n currentlyValidatingElement = element;\n {\n warning(false, 'Each child in an array or iterator should have a unique \"key\" prop.' + '%s%s See https://fb.me/react-warning-keys for more information.%s', currentComponentErrorInfo, childOwner, getStackAddendum());\n }\n currentlyValidatingElement = null;\n}\n\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\nfunction validateChildKeys(node, parentType) {\n if (typeof node !== 'object') {\n return;\n }\n if (Array.isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n}\n\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\nfunction validatePropTypes(element) {\n var componentClass = element.type;\n if (typeof componentClass !== 'function') {\n return;\n }\n var name = componentClass.displayName || componentClass.name;\n var propTypes = componentClass.propTypes;\n if (propTypes) {\n currentlyValidatingElement = element;\n checkPropTypes(propTypes, element.props, 'prop', name, getStackAddendum);\n currentlyValidatingElement = null;\n } else if (componentClass.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true;\n warning(false, 'Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', name || 'Unknown');\n }\n if (typeof componentClass.getDefaultProps === 'function') {\n warning(componentClass.getDefaultProps.isReactClassApproved, 'getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n}\n\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\nfunction validateFragmentProps(fragment) {\n currentlyValidatingElement = fragment;\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = Object.keys(fragment.props)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n\n if (!VALID_FRAGMENT_PROPS.has(key)) {\n warning(false, 'Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.%s', key, getStackAddendum());\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator['return']) {\n _iterator['return']();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n if (fragment.ref !== null) {\n warning(false, 'Invalid attribute `ref` supplied to `React.Fragment`.%s', getStackAddendum());\n }\n\n currentlyValidatingElement = null;\n}\n\nfunction createElementWithValidation(type, props, children) {\n var validType = typeof type === 'string' || typeof type === 'function' || typeof type === 'symbol' || typeof type === 'number';\n // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n if (!validType) {\n var info = '';\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendum(props);\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n info += getStackAddendum() || '';\n\n warning(false, 'React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', type == null ? type : typeof type, info);\n }\n\n var element = createElement.apply(this, arguments);\n\n // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n if (element == null) {\n return element;\n }\n\n // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n if (validType) {\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], type);\n }\n }\n\n if (typeof type === 'symbol' && type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n}\n\nfunction createFactoryWithValidation(type) {\n var validatedFactory = createElementWithValidation.bind(null, type);\n // Legacy hook TODO: Warn if this is accessed\n validatedFactory.type = type;\n\n {\n Object.defineProperty(validatedFactory, 'type', {\n enumerable: false,\n get: function () {\n lowPriorityWarning$1(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');\n Object.defineProperty(this, 'type', {\n value: type\n });\n return type;\n }\n });\n }\n\n return validatedFactory;\n}\n\nfunction cloneElementWithValidation(element, props, children) {\n var newElement = cloneElement.apply(this, arguments);\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], newElement.type);\n }\n validatePropTypes(newElement);\n return newElement;\n}\n\nvar React = {\n Children: {\n map: mapChildren,\n forEach: forEachChildren,\n count: countChildren,\n toArray: toArray,\n only: onlyChild\n },\n\n Component: Component,\n PureComponent: PureComponent,\n unstable_AsyncComponent: AsyncComponent,\n\n Fragment: REACT_FRAGMENT_TYPE,\n\n createElement: createElementWithValidation,\n cloneElement: cloneElementWithValidation,\n createFactory: createFactoryWithValidation,\n isValidElement: isValidElement,\n\n version: ReactVersion,\n\n __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: {\n ReactCurrentOwner: ReactCurrentOwner,\n // Used by renderers to avoid bundling object-assign twice in UMD bundles:\n assign: _assign\n }\n};\n\n{\n _assign(React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, {\n // These should not be included in production.\n ReactDebugCurrentFrame: ReactDebugCurrentFrame,\n // Shim for React DOM 16.0.0 which still destructured (but not used) this.\n // TODO: remove in React 17.0.\n ReactComponentTreeHook: {}\n });\n}\n\n\n\nvar React$2 = Object.freeze({\n\tdefault: React\n});\n\nvar React$3 = ( React$2 && React ) || React$2;\n\n// TODO: decide on the top-level export form.\n// This is hacky but makes it work with both Rollup and Jest.\nvar react = React$3['default'] ? React$3['default'] : React$3;\n\nmodule.exports = react;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","import React from 'react'\n\nconst App = () => {\n return Hi
\n}\n\nexport default App"]}
--------------------------------------------------------------------------------